a2ps-4.14/0000755000175000017500000000000010735337377011644 5ustar mhattamhattaa2ps-4.14/configure.in0000644000175000017500000002642310616012445014144 0ustar mhattamhattaAC_PREREQ(2.59) AC_COPYRIGHT([Copyright (C) 2007- Akim Demaille, Miguel Santana, Masayuki Hatta]) ## ---------------- ## ## Initialization. ## ## ---------------- ## AC_INIT([GNU a2ps], [4.14], [bug-a2ps@gnu.org]) AC_CONFIG_AUX_DIR(auxdir) m4_pattern_forbid([^jm_[A-Z]]) # Initialize automake AM_INIT_AUTOMAKE AM_CONFIG_HEADER(config.h) # Specify the liba2ps version number LIBVERSION=1:0:0 AC_SUBST(LIBVERSION) GNU_PACKAGE="GNU $PACKAGE" AC_DEFINE_UNQUOTED(GNU_PACKAGE, "$GNU_PACKAGE", [The concatenation of the strings `GNU ', and PACKAGE.]) AC_SUBST(GNU_PACKAGE) # Available translations ALL_LINGUAS="ca cs da de es fr it ja ko nl no pl pt ru sl sv tr" ## --------------------- ## ## Checks for programs. ## ## --------------------- ## AC_PROG_AWK AC_PROG_GNU_M4 AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_MAKE_SET jm_PATH_PERL # Check for the C compiler and the various oddities that may exist AC_PROG_CC AC_AIX AC_MINIX AC_ISC_POSIX AC_PROG_CPP AM_PROG_CC_STDC AM_C_PROTOTYPES AC_PROG_YACC fp_PROG_ECHO AC_PROG_GPERF missing_dir=`cd $ac_aux_dir && pwd` AM_MISSING_PROG(GPERF, gperf, $missing_dir) # I want flex, and only flex AM_PROG_LEX if test "$LEX" = lex; then LEX="$missing_dir/missing flex" LEX_OUTPUT_ROOT=lex.yy AC_SUBST(LEX_OUTPUT_ROOT)dnl fi # Libtool. By default, don't do shared libs, liba2ps is not widely used. AC_DISABLE_SHARED AC_PROG_LIBTOOL ## ------------------------- ## ## Checks for header files. ## ## ------------------------- ## AC_HEADER_STDC AC_HEADER_STAT AC_HEADER_TIME AC_HEADER_SYS_WAIT AC_HEADER_DIRENT AC_CHECK_HEADERS(sys/time.h sys/stat.h sys/types.h sys/ioctl.h \ math.h string.h strings.h stdlib.h unistd.h stdarg.h pwd.h malloc.h \ memory.h errno.h fcntl.h stdbool.h fnmatch.h) ## --------------------- ## ## Checks for typedefs. ## ## --------------------- ## # # Checks for typedefs, structures, and compiler characteristics. # AC_C_CONST AC_C_INLINE AC_CHECK_TYPE(uchar, unsigned char) AC_TYPE_SIZE_T AC_TYPE_PID_T AC_TYPE_SIGNAL AC_STRUCT_TM AC_CHECK_MEMBERS([struct passwd.pw_gecos],,, [#if HAVE_PWD_H # include #endif]) jm_AC_PREREQ_XSTRTOUMAX jm_AC_TYPE_UINTMAX_T # # Portability non-Unix # AC_EXEEXT # Checking for sys_siglist. Stolen from gmake-3.77 AC_CHECK_DECLS([sys_siglist],,, [#include #include /* NetBSD declares sys_siglist in unistd.h. */ #if HAVE_UNISTD_H # include #endif]) AC_MSG_CHECKING(for sys_siglist) AC_CACHE_VAL(ac_cv_check_symbol_sys_siglist, [AC_TRY_LINK(, [extern char *sys_siglist[]; puts(*sys_siglist);], ac_cv_check_symbol_sys_siglist=yes, ac_cv_check_symbol_sys_siglist=no)]) if test "$ac_cv_check_symbol_sys_siglist" = yes; then AC_DEFINE_UNQUOTED(HAVE_SYS_SIGLIST, 1, [Define if your system has `sys_siglist'.]) fi AC_MSG_RESULT($ac_cv_check_symbol_sys_siglist) ## ---------------------- ## ## Checks for Libraries. ## ## ---------------------- ## # -lsun is sometimes needed on IRIX to use passwd AC_SEARCH_LIBS(getpwuid, sun, [AC_DEFINE(HAVE_GETPWUID, 1, [Define if you have the function `getpwuid'.])],) ## ------------------------------ ## ## checks for library functions. ## ## ------------------------------ ## AC_REPLACE_FUNCS(stpcpy stpncpy strtoul memcpy memset gethostname getuid) ad_REPLACE_FUNC_STRCASECMP ad_REPLACE_FUNC_STRNCASECMP ad_REPLACE_FUNC_RENAME AC_CHECK_FUNCS(uname strchr strerror strerror_r getcwd bcopy bzero tempnam strsignal psignal setlocale) ad_FUNC_SYSTEMPAPERNAME ad_FUNC_ATEXIT ad_FUNC_STRFTIME AC_FUNC_CLOSEDIR_VOID AC_FUNC_VPRINTF AC_FUNC_OBSTACK AC_FUNC_ALLOCA AC_FUNC_ERROR_AT_LINE jm_FUNC_MALLOC jm_FUNC_REALLOC jm_PREREQ_QUOTEARG # Check and replace broken or missing "fnmatch" AC_FUNC_FNMATCH if test $ac_cv_func_fnmatch_works = no; then AC_LIBOBJ(fnmatch) AC_DEFINE_UNQUOTED(fnmatch, rpl_fnmatch, [Define to rpl_fnmatch if the replacement function should be used.]) fi # Needed checks for tinyterm.[ch] ad_TINYTERM_CHECKS AC_CHECK_DECLS([fputs, strlen]) # Internationalization. AM_GNU_GETTEXT_VERSION(0.11.5) AM_GNU_GETTEXT(external, need-ngettext) # Save the cache AC_CACHE_SAVE # 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. ## ## ---------------------------- ## # Some extra warnings ad_GCC_WARNINGS CFLAGS="$CFLAGS $EXTRA_CFLAGS" # 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, AC_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 Currently, we don't try TeX fonts, because sed expressions dnl explode. Anyway, we really need to support kpathsea to get there. dnl # Try to find where are the TeX fonts. dnl for ac_dir in /usr/local/TeX /usr/local/tex /usr/local/teTeX; dnl do dnl if test -d "$ac_dir/texmf/fonts/type1"; then dnl # There are fonts here. Let's fetch all the directories. dnl for ac_dir2 in $ac_dir/texmf/fonts/type1/* \ dnl $ac_dir/texmf/fonts/type1/*/* \ dnl $ac_dir/texmf/fonts/type1/*/*/* \ dnl $ac_dir/texmf/fonts/afm/* \ dnl $ac_dir/texmf/fonts/afm/*/* \ dnl $ac_dir/texmf/fonts/afm/*/*/* ; dnl do dnl if test -d "$ac_dir2" \ dnl && test -n `echo $ac_dir2/*.afm $ac_dir2/*.gsf $ac_dir2/*.pf?`; then dnl ac_psfont_path="$ac_psfont_path:$ac_dir2"; dnl fi dnl done dnl fi dnl 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 the file program with follows the links # ad_PROG_FILE_LINK AC_SUBST(FILE_LINK) # How to send things in the printer queue ad_PROG_LPR # # default medium to use (defaulted to A4) # AC_ARG_WITH(medium, AC_HELP_STRING([--with-medium=medium], [specify the default medium (A4, Letter, Legal, etc.) [default=A4]]), MEDIUM=$with_medium, if test x"$ac_cv_lib_paper_systempapername" = xyes; then MEDIUM=libpaper else MEDIUM=A4 fi) AC_SUBST(MEDIUM) # # default encoding to use (defaulted to latin1) # AC_ARG_WITH(encoding, AC_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([netscape, html2ps]) if test "x$COM_netscape" = x; then AC_CACHE_CHECK(whether netscape support remote-command, remote_com_netscape, [$netscape --help >conftest.help 2>&1 if fgrep -e -remote conftest.help >/dev/null && fgrep -e -noraise conftest.help >/dev/null; then remote_com_netscape=yes else remote_com_netscape=no fi rm -f conftest.help]) test "$remote_com_netscape" = no && COM_netscape='#' fi # PDF delegation ad_CHECK_PROGS([acroread, pdf2ps]) COM_acroread4='#' AC_SUBST(COM_acroread4) # If we have acroread, is it a version which supports -shrink etc.? if test "x$COM_acroread" = x; then AC_CACHE_CHECK(whether acroread is acroread 4, a2_cv_com_acroread4, [$acroread -helpall >conftest.help if fgrep -e -size conftest.help >/dev/null && fgrep -e -shrink conftest.help >/dev/null; then a2_cv_com_acroread4=yes else a2_cv_com_acroread4=no fi rm -f conftest.help]) test "$a2_cv_com_acroread4" = yes && COM_acroread4='' fi # Outputting PDF ad_CHECK_PROGS([distill, ps2pdf]) test "$COM_distill$COM_ps2pdf" = "##" && COM_PS2PDF="#" AC_SUBST(COM_PS2PDF) # PostScript delegation. Check for psutils 1.17 a2_PSUTILS(1, 17) # ROFF delegation ad_CHECK_PROG(grog, [a2ps works better with groff. Consider fetching groff at any ftp site proposing GNU programs]) # 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. ## ## ---------- ## # This is necessary so that .o files in LIBOBJS are also built via # the ANSI2KNR-filtering rules. LIB@&t@OBJS=`echo "$LIB@&t@OBJS" | sed 's/\.o /\$U.o /g;s/\.o$/\$U.o/'` # Autoconf 2.14a is not ready for libtool LTLIBOBJS=`echo "$LIB@&t@OBJS" | sed 's/\.o/\.lo/g'` AC_SUBST(LTLIBOBJS) LTALLOCA=`echo "$ALLOCA" | sed 's/\.o/\.lo/g'` AC_SUBST(LTALLOCA) 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/psmandup, chmod +x contrib/psmandup) AC_CONFIG_FILES(contrib/psset, chmod +x contrib/psset) AC_CONFIG_FILES([Makefile src/Makefile doc/Makefile man/Makefile tests/Makefile tests/defs lib/Makefile auxdir/Makefile m4/Makefile etc/Makefile etc/a2ps_cfg etc/a2ps-site.cfg po/Makefile.in sheets/Makefile encoding/Makefile ps/Makefile afm/Makefile contrib/Makefile contrib/sample/Makefile contrib/emacs/Makefile fonts/Makefile ppd/Makefile]) AC_OUTPUT if test $MEDIUM = libpaper; then libpaper_msg=" * (\`libpaper' means a2ps asks the medium to libpaper. See man paperconf.)" fi cat <" 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.14/sheets/python.ssh0000644000175000017500000000564010735324710015167 0ustar mhattamhatta# 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 " 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(http://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.14/sheets/dc_shell.ssh0000644000175000017500000000502610735324705015425 0ustar mhattamhatta# 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 " 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.14/sheets/ssh.ssh0000644000175000017500000001653410735324711014450 0ustar mhattamhatta# 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 # Created # ## 1.1 Akim Demaille # In level 2, substitute the latex symbols # ## 1.2 Akim Demaille # New keywords: closers, documentation, ancestors, alphabets. # New sequence: /regex/ style "a2ps style sheet" is written by "Akim Demaille " 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.14/sheets/sh.ssh0000644000175000017500000000342610735324711014261 0ustar mhattamhatta# 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 " 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.14/sheets/asn1.ssh0000644000175000017500000000505510735322122014503 0ustar mhattamhatta# # 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 " 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.14/sheets/initora.ssh0000644000175000017500000000733310735322122015307 0ustar mhattamhattastyle "Oracle parameter file" is written by "Pierre Mareschal " 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.14/sheets/small.ssh0000644000175000017500000000373010735322123014750 0ustar mhattamhatta# Style sheet for Small 2.1.0 # http://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 " 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.14/sheets/stratego.ssh0000644000175000017500000000553110735322123015471 0ustar mhattamhatta# 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://www.cwi.nl/~mdejonge/grammar-base/stratego.0.7/index.html # style "stratego" is written by "Nicolas Tisserand " 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.14/sheets/matlab4.ssh0000644000175000017500000001554310735324706015202 0ustar mhattamhatta# 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 " 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.14/sheets/ppd.ssh0000644000175000017500000000411310735324710014423 0ustar mhattamhatta# 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 " 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.14/sheets/eps.ssh0000644000175000017500000000260010735324705014432 0ustar mhattamhatta# 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 " 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.14/sheets/oberon.ssh0000644000175000017500000000472510735324707015143 0ustar mhattamhatta# 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 " 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.math.tau.ac.il/~laden/Oberon.html)url(The Oberon Reference 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.14/sheets/st.ssh0000644000175000017500000000446210735322123014271 0ustar mhattamhatta# 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 , Kurt Hornik , Dirk Eddelbuettel " 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 `http://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.14/sheets/rexx.ssh0000644000175000017500000000504710735322123014631 0ustar mhattamhatta# 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 " version is 0.22 documentation is "This style sheet supports REXX." "You can get information about REXX from the url(http://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.14/sheets/card.ssh0000644000175000017500000000455610735324704014567 0ustar mhattamhatta# 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 " 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 /<[^>]+>/ 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.14/sheets/modula2.ssh0000644000175000017500000000240510735322123015201 0ustar mhattamhatta# 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 " 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.14/sheets/oracle.ssh0000644000175000017500000001000710735322123015100 0ustar mhattamhatta# 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 " 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.14/sheets/tex.ssh0000644000175000017500000001043510735322123014440 0ustar mhattamhatta############################## -*- Mode: a2ps -*- ############################# ## tex.ssh --- Sheet definitions for (La)TeX files ## ## Author : Denis GIROU (CNRS/IDRIS - France) ## Created the : Wed May 6 15:35:36 1997 ## Last mod. by : Denis GIROU (CNRS/IDRIS - France) ## 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 " 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.14/sheets/fortran.ssh0000644000175000017500000000334710735322122015316 0ustar mhattamhatta############################## -*- Mode: a2ps -*- ############################# ## Fortran.ssh --- Sheet definitions for Fortran files ## ## Author : Denis GIROU (CNRS/IDRIS - France) ## Created the : Thu Oct 10 18:35:36 1996 ## Last mod. by : Denis GIROU (CNRS/IDRIS - France) ## Last mod. the : Fri Apr 10 11:38:35 1998 ############################################################################### style "Fortran" is written by "Denis Girou , Alexander Mai " 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.14/sheets/pre.ssh0000644000175000017500000000471110735324710014432 0ustar mhattamhatta# 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 " 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.14/sheets/idl.ssh0000644000175000017500000003431410735322122014411 0ustar mhattamhatta# 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 , Manfred Schwarb " 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." "http://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.14/sheets/claire.ssh0000644000175000017500000000640310735324704015106 0ustar mhattamhatta# 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 " 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(http://www.ens.fr/~laburthe/claire.html)url(claire home page)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.14/sheets/gmake.ssh0000644000175000017500000000326710735324705014741 0ustar mhattamhatta# 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 " 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.14/sheets/c.ssh0000644000175000017500000000444510735322122014065 0ustar mhattamhatta# 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 " 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 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.14/sheets/yacc.ssh0000644000175000017500000000315510735322123014560 0ustar mhattamhatta# 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 " 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.14/sheets/wdiff.ssh0000644000175000017500000000364610735324712014753 0ustar mhattamhatta# 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 " 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.14/sheets/s.ssh0000644000175000017500000000471010735322123014101 0ustar mhattamhatta# 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 , Kurt Hornik , Dirk Eddelbuettel " 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 `http://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.14/sheets/for90-fixed.ssh0000644000175000017500000000233710735322122015675 0ustar mhattamhatta# 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 , Alexander Mai " 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.14/sheets/lout.ssh0000644000175000017500000001654210735322122014627 0ustar mhattamhatta# 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 # # # 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 # See # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 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 " 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.14/sheets/Makefile.am0000644000175000017500000000570310735322220015155 0ustar mhattamhatta## Makefile for the sheets subdirectory of a2ps ## Copyright (c) 1995-2000 Akim Demaille, Miguel Santana ## Process this file with automake to produce Makefile.in # 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 " @echo "cp sheets.map /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.14/sheets/mail.ssh0000644000175000017500000002616010735324706014575 0ustar mhattamhatta# 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" ' ## 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 " 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" # 3. Foo 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 (/^(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" (/^(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.14/sheets/php.ssh0000644000175000017500000000553010735324707014441 0ustar mhattamhatta# 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 " 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 "", "<%", "%>", (/<\\([^>]*\\)>/ "<", \1, ">") end operators sequences are "/*" Comment "*/", "//" Comment, "#" Comment, "", C-string, C-char, "case " Keyword_strong Label : Plain exceptions are "':'" end exceptions, # Tags with arguments (E.g., , , ...) (/<\\([[: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.14/sheets/is5rul.ssh0000644000175000017500000003714010735322122015064 0ustar mhattamhatta# 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 " 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.14/sheets/shell.ssh0000644000175000017500000000375410735322123014755 0ustar mhattamhatta# 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 " 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.14/sheets/pretex.ssh0000644000175000017500000000632610735324710015157 0ustar mhattamhatta# 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 " 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 caracter # `\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.14/sheets/Makefile.in0000644000175000017500000003602110735337310015171 0ustar mhattamhatta# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 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@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = sheets DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/a2_psutils.m4 \ $(top_srcdir)/m4/atexit.m4 $(top_srcdir)/m4/file.m4 \ $(top_srcdir)/m4/fp_echo.m4 $(top_srcdir)/m4/fullpath.m4 \ $(top_srcdir)/m4/gccwarn.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gperf-check.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \ $(top_srcdir)/m4/lex.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/lpr.m4 \ $(top_srcdir)/m4/m4.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \ $(top_srcdir)/m4/perl.m4 $(top_srcdir)/m4/prereq.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/protos.m4 \ $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/rename.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/strcasecmp.m4 \ $(top_srcdir)/m4/strftim.m4 $(top_srcdir)/m4/termios.m4 \ $(top_srcdir)/m4/tterm.m4 $(top_srcdir)/m4/uintmax_t.m4 \ $(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/winsz.m4 \ $(top_srcdir)/m4/xstrtoumax.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/auxdir/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = 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 = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(sheetsdir)" sheetsDATA_INSTALL = $(INSTALL_DATA) DATA = $(sheets_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ COM_DISPLAY = @COM_DISPLAY@ COM_LATEX = @COM_LATEX@ COM_PS2PDF = @COM_PS2PDF@ COM_PSUTILS = @COM_PSUTILS@ COM_TEXI = @COM_TEXI@ COM_acroread = @COM_acroread@ COM_acroread4 = @COM_acroread4@ COM_bzip = @COM_bzip@ COM_bzip2 = @COM_bzip2@ COM_convert = @COM_convert@ COM_distill = @COM_distill@ 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_netscape = @COM_netscape@ COM_pdf2ps = @COM_pdf2ps@ COM_ps2pdf = @COM_ps2pdf@ COM_psnup = @COM_psnup@ COM_psselect = @COM_psselect@ COM_tex = @COM_tex@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ ENCODING = @ENCODING@ EXEEXT = @EXEEXT@ EXTENSIONS_FALSE = @EXTENSIONS_FALSE@ EXTENSIONS_TRUE = @EXTENSIONS_TRUE@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ F77 = @F77@ FFLAGS = @FFLAGS@ FILE_LINK = @FILE_LINK@ GMSGFMT = @GMSGFMT@ GNU_PACKAGE = @GNU_PACKAGE@ GPERF = @GPERF@ GREP = @GREP@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBVERSION = @LIBVERSION@ LN_S = @LN_S@ LPR = @LPR@ LPR_QUEUE_OPTION = @LPR_QUEUE_OPTION@ LTALLOCA = @LTALLOCA@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ M4 = @M4@ MAKEINFO = @MAKEINFO@ MEDIUM = @MEDIUM@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ POSUB = @POSUB@ PSFONT_PATH = @PSFONT_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ U = @U@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ YACC = @YACC@ YFLAGS = @YFLAGS@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ acroread = @acroread@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ 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@ bzip = @bzip@ bzip2 = @bzip2@ convert = @convert@ datadir = @datadir@ datarootdir = @datarootdir@ distill = @distill@ docdir = @docdir@ dvidir = @dvidir@ dvips = @dvips@ exec_prefix = @exec_prefix@ file_prog = @file_prog@ ghostview = @ghostview@ 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@ netscape = @netscape@ oldincludedir = @oldincludedir@ pdf2ps = @pdf2ps@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ ps2pdf = @ps2pdf@ psdir = @psdir@ psnup = @psnup@ psselect = @psselect@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ tex = @tex@ # 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 \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu sheets/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu sheets/Makefile .PRECIOUS: 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__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ 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 mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: install-sheetsDATA: $(sheets_DATA) @$(NORMAL_INSTALL) test -z "$(sheetsdir)" || $(mkdir_p) "$(DESTDIR)$(sheetsdir)" @list='$(sheets_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(sheetsDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(sheetsdir)/$$f'"; \ $(sheetsDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(sheetsdir)/$$f"; \ done uninstall-sheetsDATA: @$(NORMAL_UNINSTALL) @list='$(sheets_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(sheetsdir)/$$f'"; \ rm -f "$(DESTDIR)$(sheetsdir)/$$f"; \ done tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(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: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-sheetsDATA install-exec-am: install-info: install-info-am install-man: 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 mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am uninstall-sheetsDATA .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-exec install-exec-am \ install-info install-info-am install-man install-sheetsDATA \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ uninstall uninstall-am uninstall-info-am uninstall-sheetsDATA # 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 " @echo "cp sheets.map /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.14/sheets/plsql.ssh0000644000175000017500000000510210735322123014766 0ustar mhattamhatta# 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 " 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.14/sheets/tcsh.ssh0000644000175000017500000000644610735324711014615 0ustar mhattamhatta# 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 " 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.14/sheets/vrml.ssh0000644000175000017500000000446210735322123014623 0ustar mhattamhatta# 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 " version is 1.0 requires a2ps 4.12 case sensitive documentation is "According to" " url(http://vag.vrml.org/VRML2.0/FINAL/spec/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.14/sheets/elisp.ssh0000644000175000017500000000574410735324705014773 0ustar mhattamhatta# 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 " 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.14/sheets/lex.ssh0000644000175000017500000000333710735324706014444 0ustar mhattamhatta# 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 " 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.14/sheets/csharp.ssh0000644000175000017500000000710310735322122015115 0ustar mhattamhatta# 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 " 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.14/sheets/cxx.ssh0000644000175000017500000000363310735322122014443 0ustar mhattamhatta# 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 " 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.14/sheets/tk.ssh0000644000175000017500000000404010735324712014257 0ustar mhattamhatta# 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 # Inherits from tcl. ## 1.2 Larry W. Virden # Cleaned up, included Tk 8.0 keywords style tk is written by "Akim Demaille , Larry W. Virden " 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.14/sheets/vhdl.ssh0000644000175000017500000000342110735322123014572 0ustar mhattamhattastyle VHDL is written by "Thomas Parmelan " 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.14/sheets/autoconf.ssh0000644000175000017500000000252710735322122015460 0ustar mhattamhatta# 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 " version is 1.1 requires a2ps 4.12i documentation is "Suitable for both code(configure.in)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.14/sheets/.a2psrc0000644000175000017500000000140107440740403014311 0ustar mhattamhatta########## # Variables used in the generation of the sheets.html file # # The home for most html files: Variable: html.home http://www.inf.enst.fr/~demaille # The rules: Variable: html.hline \ # To have a backgroung Variable: html.begin.hook \ Variable: html.end.hook \ #{html.hline}\n\ # The title that goes in the Windows' title Variable: hmtl.title \ GNU a2ps language support # The title that goes inside the frame. I want a picture Variable: html.title.1 \ #{html.title} a2ps-4.14/sheets/rd.ssh0000644000175000017500000000414610735324710014253 0ustar mhattamhatta# $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 , Kurt Hornik , Dirk Eddelbuettel " 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 `http://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.14/sheets/csh.ssh0000644000175000017500000000327510735324704014430 0ustar mhattamhatta# 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 " 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.14/sheets/ada.ssh0000644000175000017500000000630210735324703014371 0ustar mhattamhatta# 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 " 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.14/sheets/symbols.ssh0000644000175000017500000001051310735324711015332 0ustar mhattamhatta# 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 " 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.14/sheets/gnuc.ssh0000644000175000017500000000333010735324706014601 0ustar mhattamhatta# 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 " 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.14/sheets/sdl88.ssh0000644000175000017500000000570610735324711014614 0ustar mhattamhatta# 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 " 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.14/sheets/texinfo.ssh0000644000175000017500000001151010735324712015315 0ustar mhattamhatta# 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 " 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.14/sheets/cpp.ssh0000644000175000017500000000246510735324704014435 0ustar mhattamhatta# 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 " 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.14/sheets/README0000644000175000017500000000456107440740403014010 0ustar mhattamhatta 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.14/sheets/haskell.ssh0000644000175000017500000000610010735322122015254 0ustar mhattamhatta# 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; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place - Suite 330, # Boston, MA 02111-1307, USA. # this file: ftp://ftp.cs.chalmers.se/pub/users/ilya/a2ps/haskell.ssh # Haskell http://www.haskell.org/ # a2ps http://www.infres.enst.fr/~demaille/a2ps/ # GNU GPL http://www.gnu.org/copyleft/gpl.html style Haskell is written by "Ilya Beylin " version is 1.3 requires a2ps 4.12k documentation is "Haskell: non-strict functional programming language" " http::/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.14/sheets/html.ssh0000644000175000017500000000404710735324706014617 0ustar mhattamhatta# 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 , Wesley J. Chun " 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(foo)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 "", # Tags with arguments (E.g., , ,
...) (/<([[: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.14/sheets/pascal.ssh0000644000175000017500000000557510735324707015126 0ustar mhattamhatta# 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 # Added `destructor' (reported by Daniel.Meier@ascom.ch) ## 1.7 Akim Demaille # Highlights functions and procedures. # Removed write and so one. # Fixed strings. style Pascal is written by "Akim Demaille " 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.14/sheets/xs.ssh0000644000175000017500000000350310735322123014270 0ustar mhattamhatta# 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 " 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.14/sheets/java.ssh0000644000175000017500000000474010735324706014574 0ustar mhattamhatta# 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 " 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.14/sheets/pov.ssh0000644000175000017500000001156010735322123014444 0ustar mhattamhatta# 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 " 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.14/sheets/octave.ssh0000644000175000017500000000151210735322123015115 0ustar mhattamhattastyle "Octave" is written by "C.P. Earls " 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.14/sheets/for77-free.ssh0000644000175000017500000000233410735322122015521 0ustar mhattamhatta# 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 , Alexander Mai " 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.14/sheets/ocaml.ssh0000644000175000017500000000402310735322123014727 0ustar mhattamhatta# 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.14/sheets/cidl.ssh0000644000175000017500000000710510735322122014552 0ustar mhattamhatta# 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 " 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.14/sheets/sheets.map0000644000175000017500000002237410735325602015125 0ustar mhattamhatta# 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'). # # 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/ # # Default language plain: /*/ # Some binary files we probably don't want to print binary: /*.tar.*/ /*.tar/ /*.tgz/ /*.[ao]/ # 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*\/*/ # Compressed files gzip: /*.gz/ bzip: /*.bz/ bzip2: /*.bz2/ compress: /*.Z/ # 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.in/ /*\/configure.in/ /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 # 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 # Haskell programs haskell: /*.hs/ <*/runhugs> # HTML documents 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 # 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/ # 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 # Perl files perl: /*.p[ml]/ <*perl*> # PHP files php: /*.php/ # plsql files plsql: /*.pk[sb]/ /*.pls/ # PNG files png: /*.png/i # 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: # Bash files sh: <*bash*> # Csh files csh: /.csh*/ /*\/.csh*/ <*csh*> # Ksh sh: <*ksh*> # Tcsh tcsh: /.tcsh*/ /*\/.tcsh*/ <*tcsh*> # Zsh files zsh: <*zsh*> /.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/ # Texinfo files texinfo: /*.txi/ /*.texi/ /*.texinfo/ # tcl files tcl: /*.tcl/ /*.tclscript/ # Extended Tcl tclx: /*.tclx/ <*tclx*> # Visual Tcl vtcl: /*.vtcl/ <*vtcl*> # TIFF images tiff: /.tif/i /.tiff/i # 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.14/sheets/vtcl.ssh0000644000175000017500000000476710735322123014623 0ustar mhattamhatta# 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 " 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.14/sheets/unity.ssh0000644000175000017500000000351110735324712015013 0ustar mhattamhatta# 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 " 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.14/sheets/maple.ssh0000644000175000017500000000347310735322122014741 0ustar mhattamhatta# 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 " 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.14/sheets/tiger.ssh0000644000175000017500000000320010735322123014742 0ustar mhattamhatta# 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 " version is 0.1 documentation is "Tiger is a toy language that serves as example of the book " "url(http://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.14/sheets/for77-fixed.ssh0000644000175000017500000000233610735322122015701 0ustar mhattamhatta# 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 , Alexander Mai " 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.14/sheets/o2c.ssh0000644000175000017500000000332610735324707014336 0ustar mhattamhatta# 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 # 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.14/sheets/ps.ssh0000644000175000017500000000452010735324710014264 0ustar mhattamhatta# 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 " 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.14/sheets/make.ssh0000644000175000017500000000403310735324706014563 0ustar mhattamhatta# 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 " 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.14/sheets/promela.ssh0000644000175000017500000000373510735324710015310 0ustar mhattamhatta# 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 " 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.14/sheets/pic16f84.ssh0000644000175000017500000000512010735324710015103 0ustar mhattamhatta# 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 " 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.14/sheets/perl.ssh0000644000175000017500000001502010735322123014575 0ustar mhattamhatta# 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 " 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 "<" 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(http://www.icsi.berkeley.edu/~sather/index.html)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.14/sheets/for90-free.ssh0000644000175000017500000000233510735322122015515 0ustar mhattamhatta# 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 , Alexander Mai " 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.14/sheets/for77kwds.ssh0000644000175000017500000000743610735322122015503 0ustar mhattamhatta# 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 , Alexander Mai " 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.14/sheets/verilog.ssh0000644000175000017500000000360210735322123015305 0ustar mhattamhattastyle VERILOG is written by "Edward Arthur " 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.14/sheets/udiff.ssh0000644000175000017500000000366510735324712014752 0ustar mhattamhatta# 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 " 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.14/sheets/prolog.ssh0000644000175000017500000000362310735324710015147 0ustar mhattamhatta# 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 " 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.14/sheets/eiffel.ssh0000644000175000017500000000525510735324705015106 0ustar mhattamhatta# 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 " 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.14/sheets/sed.ssh0000644000175000017500000000235410735322123014414 0ustar mhattamhatta# 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 " 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.14/sheets/for90kwds.ssh0000644000175000017500000001176510735322122015476 0ustar mhattamhatta# 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 , Alexander Mai " 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.14/sheets/specc.ssh0000644000175000017500000000507110735324711014742 0ustar mhattamhatta# Style sheet for SpecC 1.0 # http://www.ics.uci.edu/~specc/reference/main.html # $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 " 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.14/sheets/mib.ssh0000644000175000017500000000346610735322122014414 0ustar mhattamhatta# 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 " 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.14/sheets/objc.ssh0000644000175000017500000000336710735324707014575 0ustar mhattamhatta# 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 # Created ## 1.1 Akim Demaille # Made it inherit from c.ssh style "Objective C" is written by "Paul Shum " 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.14/sheets/for-fixed.ssh0000644000175000017500000000255410735322122015525 0ustar mhattamhatta# 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 , Alexander Mai " 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.14/sheets/coqv.ssh0000644000175000017500000000413010735324704014612 0ustar mhattamhatta# 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 " 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.14/sheets/tcl.ssh0000644000175000017500000000546410735324711014435 0ustar mhattamhatta# 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 # Cleaned up, and made it a base for tk. ## 1.2 Larry W. Virden # Cleaned up, included Tcl 8.0 keywords style "Tool Command Language" is written by "Akim Demaille , Larry W. Virden " 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.14/sheets/zsh.ssh0000644000175000017500000000443610735322123014450 0ustar mhattamhatta# 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.14/sheets/sml.ssh0000644000175000017500000000446110735322123014435 0ustar mhattamhatta# 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 , Daniel Wang " 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 stylea2ps-4.14/sheets/tclx.ssh0000644000175000017500000000376710735322123014624 0ustar mhattamhatta# 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 " 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.14/sheets/nasm.ssh0000644000175000017500000001126210735324707014607 0ustar mhattamhatta# 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 " 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.14/sheets/lace.ssh0000644000175000017500000000355010735324706014555 0ustar mhattamhatta# 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 " 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.14/sheets/a2psrc.ssh0000644000175000017500000000346210735324703015042 0ustar mhattamhatta# 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 # Added MacroMetaSequences: and PageLabelFormat: ## 1.2 Akim Demaille # Added (Append||Prepend)LibraryPath: ## 1.3 Akim Demaille # Added FileCommand: and TemporaryDirectory: style "a2ps configuration file" is written by "Akim Demaille " 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.14/sheets/for-free.ssh0000644000175000017500000000231210735322122015337 0ustar mhattamhatta# 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 , Alexander Mai " 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.14/sheets/vba.ssh0000644000175000017500000000441710735322123014413 0ustar mhattamhatta# 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 " 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.14/sheets/matlab.ssh0000644000175000017500000000476210735322122015105 0ustar mhattamhatta# Style sheet for Matlab # Copyright (c) 2002, Joakim Lübeck # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 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 Lübeck " 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.14/sheets/texscript.ssh0000644000175000017500000000403010735324712015665 0ustar mhattamhatta# 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 " 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 caracter # `\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.14/sheets/68000.ssh0000644000175000017500000000306610735322122014316 0ustar mhattamhatta# 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 # Regexp for macro processor style 68000 is written by "Akim Demaille " 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.14/sheets/b.ssh0000644000175000017500000000543410735322122014063 0ustar mhattamhatta# # 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 " 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.14/sheets/js.ssh0000644000175000017500000000555510735322122014262 0ustar mhattamhatta# 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 " 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.14/sheets/chlog.ssh0000644000175000017500000000340310735324704014740 0ustar mhattamhatta# 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 " 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.14/sheets/clisp.ssh0000644000175000017500000000523010735322122014746 0ustar mhattamhatta# 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 " 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.14/sheets/caml.ssh0000644000175000017500000000173110735322122014552 0ustar mhattamhatta# 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.14/sheets/bc.ssh0000644000175000017500000000320210735322122014215 0ustar mhattamhatta# 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 " 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.14/sheets/sql.ssh0000644000175000017500000000341310735322123014435 0ustar mhattamhatta# 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 " 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.14/sheets/awk.ssh0000644000175000017500000000337010735322122014421 0ustar mhattamhatta# 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 " 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.14/sheets/modula3.ssh0000644000175000017500000000617010735324707015217 0ustar mhattamhatta# 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 " 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.research.digital.com/SRC/modula-3/html/home.html)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.14/sheets/sql92.ssh0000644000175000017500000000463210735322123014614 0ustar mhattamhattastyle "SQL 92" is written by "Pierre Mareschal " 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.14/sheets/ruby.ssh0000644000175000017500000000357510735322123014630 0ustar mhattamhatta# 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.14/sheets/mly.ssh0000644000175000017500000000250110735322123014434 0ustar mhattamhatta# 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 " 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.14/ppd/0000755000175000017500000000000010735337377012427 5ustar mhattamhattaa2ps-4.14/ppd/level1.ppd0000644000175000017500000000354410735322272014316 0ustar mhattamhatta*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.14/ppd/Makefile.am0000644000175000017500000000217710735324702014456 0ustar mhattamhatta# -*- Makefile -*- # # Makefile for a2ps' ppd directory. # # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # $Id: Makefile.am,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. # # 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.14/ppd/Makefile.in0000644000175000017500000003244010735337307014470 0ustar mhattamhatta# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 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@ # -*- Makefile -*- # # Makefile for a2ps' ppd directory. # # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # $Id: Makefile.am,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. # srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = ppd DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/a2_psutils.m4 \ $(top_srcdir)/m4/atexit.m4 $(top_srcdir)/m4/file.m4 \ $(top_srcdir)/m4/fp_echo.m4 $(top_srcdir)/m4/fullpath.m4 \ $(top_srcdir)/m4/gccwarn.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gperf-check.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \ $(top_srcdir)/m4/lex.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/lpr.m4 \ $(top_srcdir)/m4/m4.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \ $(top_srcdir)/m4/perl.m4 $(top_srcdir)/m4/prereq.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/protos.m4 \ $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/rename.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/strcasecmp.m4 \ $(top_srcdir)/m4/strftim.m4 $(top_srcdir)/m4/termios.m4 \ $(top_srcdir)/m4/tterm.m4 $(top_srcdir)/m4/uintmax_t.m4 \ $(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/winsz.m4 \ $(top_srcdir)/m4/xstrtoumax.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/auxdir/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = 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 = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(ppddir)" ppdDATA_INSTALL = $(INSTALL_DATA) DATA = $(ppd_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ COM_DISPLAY = @COM_DISPLAY@ COM_LATEX = @COM_LATEX@ COM_PS2PDF = @COM_PS2PDF@ COM_PSUTILS = @COM_PSUTILS@ COM_TEXI = @COM_TEXI@ COM_acroread = @COM_acroread@ COM_acroread4 = @COM_acroread4@ COM_bzip = @COM_bzip@ COM_bzip2 = @COM_bzip2@ COM_convert = @COM_convert@ COM_distill = @COM_distill@ 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_netscape = @COM_netscape@ COM_pdf2ps = @COM_pdf2ps@ COM_ps2pdf = @COM_ps2pdf@ COM_psnup = @COM_psnup@ COM_psselect = @COM_psselect@ COM_tex = @COM_tex@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ ENCODING = @ENCODING@ EXEEXT = @EXEEXT@ EXTENSIONS_FALSE = @EXTENSIONS_FALSE@ EXTENSIONS_TRUE = @EXTENSIONS_TRUE@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ F77 = @F77@ FFLAGS = @FFLAGS@ FILE_LINK = @FILE_LINK@ GMSGFMT = @GMSGFMT@ GNU_PACKAGE = @GNU_PACKAGE@ GPERF = @GPERF@ GREP = @GREP@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBVERSION = @LIBVERSION@ LN_S = @LN_S@ LPR = @LPR@ LPR_QUEUE_OPTION = @LPR_QUEUE_OPTION@ LTALLOCA = @LTALLOCA@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ M4 = @M4@ MAKEINFO = @MAKEINFO@ MEDIUM = @MEDIUM@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ POSUB = @POSUB@ PSFONT_PATH = @PSFONT_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ U = @U@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ YACC = @YACC@ YFLAGS = @YFLAGS@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ acroread = @acroread@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ 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@ bzip = @bzip@ bzip2 = @bzip2@ convert = @convert@ datadir = @datadir@ datarootdir = @datarootdir@ distill = @distill@ docdir = @docdir@ dvidir = @dvidir@ dvips = @dvips@ exec_prefix = @exec_prefix@ file_prog = @file_prog@ ghostview = @ghostview@ 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@ netscape = @netscape@ oldincludedir = @oldincludedir@ pdf2ps = @pdf2ps@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ ps2pdf = @ps2pdf@ psdir = @psdir@ psnup = @psnup@ psselect = @psselect@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ tex = @tex@ # 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 \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ppd/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu ppd/Makefile .PRECIOUS: 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__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ 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 mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: install-ppdDATA: $(ppd_DATA) @$(NORMAL_INSTALL) test -z "$(ppddir)" || $(mkdir_p) "$(DESTDIR)$(ppddir)" @list='$(ppd_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(ppdDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(ppddir)/$$f'"; \ $(ppdDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(ppddir)/$$f"; \ done uninstall-ppdDATA: @$(NORMAL_UNINSTALL) @list='$(ppd_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(ppddir)/$$f'"; \ rm -f "$(DESTDIR)$(ppddir)/$$f"; \ done tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(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: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-ppdDATA install-exec-am: install-info: install-info-am install-man: 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 mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am uninstall-ppdDATA .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-exec install-exec-am \ install-info install-info-am install-man install-ppdDATA \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ uninstall uninstall-am uninstall-info-am uninstall-ppdDATA # 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.14/ppd/level2.ppd0000644000175000017500000000525310735322272014316 0ustar mhattamhatta*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.14/ppd/README0000644000175000017500000000045507440740403013276 0ustar mhattamhatta 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.14/TODO0000644000175000017500000001103107440740377012325 0ustar mhattamhattaHere 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.14/m4/0000755000175000017500000000000010735337377012164 5ustar mhattamhattaa2ps-4.14/m4/codeset.m40000644000175000017500000000157610735337263014057 0ustar mhattamhatta# codeset.m4 serial AM1 (gettext-0.10.40) dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl From Bruno Haible. AC_DEFUN([AM_LANGINFO_CODESET], [ AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset, [AC_TRY_LINK([#include ], [char* cs = nl_langinfo(CODESET);], 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 and nl_langinfo(CODESET).]) fi ]) a2ps-4.14/m4/xstrtoumax.m40000644000175000017500000000116510735325571014660 0ustar mhattamhatta#serial 1 # autoconf tests required for use of xstrtoumax.c AC_DEFUN([jm_AC_PREREQ_XSTRTOUMAX], [ AC_REQUIRE([jm_AC_HEADER_INTTYPES_H]) AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG]) AC_CHECK_HEADERS(stdlib.h) AC_REPLACE_FUNCS(strtoumax) dnl We don't need (and can't compile) the replacement strtoull dnl unless the type `unsigned long long' exists. dnl Also, only the replacement strtoumax invokes strtoull, dnl so we need the replacement strtoull only if strtoumax does not exist. case "$ac_cv_type_unsigned_long_long,$ac_cv_func_strtoumax" in yes,no) AC_REPLACE_FUNCS(strtoull) ;; esac ]) a2ps-4.14/m4/a2_psutils.m40000644000175000017500000000241510735325571014506 0ustar mhattamhattadnl -*- Autoconf -*- dnl Testing delegations for a2ps: a recent version of psutils dnl dnl Usage: a2_PSUTILS(major, minor) dnl dnl If psutils version MAJOR, patch level MINOR is available dnl SUBST(PSUTILS) to dnl else dnl SUBST(PSUTILS) to `#' dnl Akim.Demaille@inf.enst.fr # serial 2 AC_DEFUN([a2_PSUTILS], [ad_CHECK_PROG(psselect) ad_CHECK_PROG(psnup) if test "$COM_psselect" = "#"; then COM_PSUTILS="#" else # There is one. Check version > MAJOR.MINOR ac_prog_psselect_banner=`psselect -v 2>&1 | sed 1q` ac_prog_psselect_release=`set -- $ac_prog_psselect_banner && echo $[3]` ac_prog_psselect_patch=`set -- $ac_prog_psselect_banner && echo $[5]` test ${ac_prog_psselect_release}0 -lt $1[0] && COM_PSUTILS="#" test ${ac_prog_psselect_patch}0 -lt $2[0] && COM_PSUTILS="#" fi if test "$COM_PSUTILS" = "#"; then AC_MSG_WARN([===========================================================]) AC_MSG_WARN([a2ps works much better with the psutils. Available at]) AC_MSG_WARN([ http://www.dcs.ed.ac.uk/home/ajcd/psutils/]) AC_MSG_WARN([You *really* should install them *before* installing a2ps.]) AC_MSG_WARN([===========================================================]) fi AC_SUBST(COM_PSUTILS)]) a2ps-4.14/m4/isc-posix.m40000644000175000017500000000213310735337263014335 0ustar mhattamhatta# isc-posix.m4 serial 2 (gettext-0.11.2) dnl Copyright (C) 1995-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. # This file is not needed with autoconf-2.53 and newer. Remove it in 2005. # This test replaces the one in autoconf. # Currently this macro should have the same name as the autoconf macro # because gettext's gettext.m4 (distributed in the automake package) # still uses it. Otherwise, the use in gettext.m4 makes autoheader # give these diagnostics: # configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX # configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX undefine([AC_ISC_POSIX]) AC_DEFUN([AC_ISC_POSIX], [ dnl This test replaces the obsolescent AC_ISC_POSIX kludge. AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"]) ] ) a2ps-4.14/m4/inttypes_h.m40000644000175000017500000000207310735337263014610 0ustar mhattamhatta# inttypes_h.m4 serial 4 (gettext-0.11.4) dnl Copyright (C) 1997-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl From Paul Eggert. # Define HAVE_INTTYPES_H_WITH_UINTMAX if exists, # doesn't clash with , and declares uintmax_t. AC_DEFUN([jm_AC_HEADER_INTTYPES_H], [ AC_CACHE_CHECK([for inttypes.h], jm_ac_cv_header_inttypes_h, [AC_TRY_COMPILE( [#include #include ], [uintmax_t i = (uintmax_t) -1;], jm_ac_cv_header_inttypes_h=yes, jm_ac_cv_header_inttypes_h=no)]) if test $jm_ac_cv_header_inttypes_h = yes; then AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H_WITH_UINTMAX, 1, [Define if exists, doesn't clash with , and declares uintmax_t. ]) fi ]) a2ps-4.14/m4/lcmessage.m40000644000175000017500000000261610735337263014370 0ustar mhattamhatta# lcmessage.m4 serial 3 (gettext-0.11.3) dnl Copyright (C) 1995-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library 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 Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995. # Check whether LC_MESSAGES is available in . AC_DEFUN([AM_LC_MESSAGES], [ AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, [AC_TRY_LINK([#include ], [return LC_MESSAGES], am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) if test $am_cv_val_LC_MESSAGES = yes; then AC_DEFINE(HAVE_LC_MESSAGES, 1, [Define if your file defines LC_MESSAGES.]) fi ]) a2ps-4.14/m4/protos.m40000644000175000017500000000117010735325571013744 0ustar mhattamhatta## ------------------------------- ## ## Check for function prototypes. ## ## From Franc,ois Pinard ## ## ------------------------------- ## # serial 1 AC_DEFUN([AM_C_PROTOTYPES], [AC_REQUIRE([AM_PROG_CC_STDC]) AC_REQUIRE([AC_PROG_CPP]) AC_MSG_CHECKING([for function prototypes]) if test "$am_cv_prog_cc_stdc" != no; then AC_MSG_RESULT(yes) AC_DEFINE(PROTOTYPES,1,[Define if compiler has function prototypes]) U= ANSI2KNR= else AC_MSG_RESULT(no) U=_ ANSI2KNR=./ansi2knr # Ensure some checks needed by ansi2knr itself. AC_HEADER_STDC AC_CHECK_HEADERS(string.h) fi AC_SUBST(U)dnl AC_SUBST(ANSI2KNR)dnl ]) a2ps-4.14/m4/glibc21.m40000644000175000017500000000172710735337263013652 0ustar mhattamhatta# glibc21.m4 serial 2 (fileutils-4.1.3, gettext-0.10.40) dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. # Test for the GNU C Library, version 2.1 or newer. # From Bruno Haible. AC_DEFUN([jm_GLIBC21], [ AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer, ac_cv_gnu_library_2_1, [AC_EGREP_CPP([Lucky GNU user], [ #include #ifdef __GNU_LIBRARY__ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) Lucky GNU user #endif #endif ], ac_cv_gnu_library_2_1=yes, ac_cv_gnu_library_2_1=no) ] ) AC_SUBST(GLIBC21) GLIBC21="$ac_cv_gnu_library_2_1" ] ) a2ps-4.14/m4/Makefile.am0000644000175000017500000000114710604771032014204 0ustar mhattamhatta## Process this file with automake to produce Makefile.in -*-Makefile-*- EXTRA_DIST = \ a2_psutils.m4 \ atexit.m4 \ file.m4 \ fp_echo.m4 \ fullpath.m4 \ gccwarn.m4 \ gettext.m4 \ gperf-check.m4 \ iconv.m4 \ lex.m4 \ lib-ld.m4 \ lib-link.m4 \ libpaper.m4 \ lib-prefix.m4 \ lpr.m4 \ m4.m4 \ malloc.m4 \ mbrtowc.m4 \ mbstate_t.m4 \ perl.m4 \ prereq.m4 \ progtest.m4 \ protos.m4 \ realloc.m4 \ rename.m4 \ strcasecmp.m4 \ strftim.m4 \ termios.m4 \ tterm.m4 \ winsz.m4 \ xstrtoumax.m4 a2ps-4.14/m4/Makefile.in0000644000175000017500000002721310735337307014227 0ustar mhattamhatta# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 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@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = m4 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/a2_psutils.m4 \ $(top_srcdir)/m4/atexit.m4 $(top_srcdir)/m4/file.m4 \ $(top_srcdir)/m4/fp_echo.m4 $(top_srcdir)/m4/fullpath.m4 \ $(top_srcdir)/m4/gccwarn.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gperf-check.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \ $(top_srcdir)/m4/lex.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/lpr.m4 \ $(top_srcdir)/m4/m4.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \ $(top_srcdir)/m4/perl.m4 $(top_srcdir)/m4/prereq.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/protos.m4 \ $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/rename.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/strcasecmp.m4 \ $(top_srcdir)/m4/strftim.m4 $(top_srcdir)/m4/termios.m4 \ $(top_srcdir)/m4/tterm.m4 $(top_srcdir)/m4/uintmax_t.m4 \ $(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/winsz.m4 \ $(top_srcdir)/m4/xstrtoumax.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/auxdir/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ COM_DISPLAY = @COM_DISPLAY@ COM_LATEX = @COM_LATEX@ COM_PS2PDF = @COM_PS2PDF@ COM_PSUTILS = @COM_PSUTILS@ COM_TEXI = @COM_TEXI@ COM_acroread = @COM_acroread@ COM_acroread4 = @COM_acroread4@ COM_bzip = @COM_bzip@ COM_bzip2 = @COM_bzip2@ COM_convert = @COM_convert@ COM_distill = @COM_distill@ 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_netscape = @COM_netscape@ COM_pdf2ps = @COM_pdf2ps@ COM_ps2pdf = @COM_ps2pdf@ COM_psnup = @COM_psnup@ COM_psselect = @COM_psselect@ COM_tex = @COM_tex@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ ENCODING = @ENCODING@ EXEEXT = @EXEEXT@ EXTENSIONS_FALSE = @EXTENSIONS_FALSE@ EXTENSIONS_TRUE = @EXTENSIONS_TRUE@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ F77 = @F77@ FFLAGS = @FFLAGS@ FILE_LINK = @FILE_LINK@ GMSGFMT = @GMSGFMT@ GNU_PACKAGE = @GNU_PACKAGE@ GPERF = @GPERF@ GREP = @GREP@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBVERSION = @LIBVERSION@ LN_S = @LN_S@ LPR = @LPR@ LPR_QUEUE_OPTION = @LPR_QUEUE_OPTION@ LTALLOCA = @LTALLOCA@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ M4 = @M4@ MAKEINFO = @MAKEINFO@ MEDIUM = @MEDIUM@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ POSUB = @POSUB@ PSFONT_PATH = @PSFONT_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ U = @U@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ YACC = @YACC@ YFLAGS = @YFLAGS@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ acroread = @acroread@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ 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@ bzip = @bzip@ bzip2 = @bzip2@ convert = @convert@ datadir = @datadir@ datarootdir = @datarootdir@ distill = @distill@ docdir = @docdir@ dvidir = @dvidir@ dvips = @dvips@ exec_prefix = @exec_prefix@ file_prog = @file_prog@ ghostview = @ghostview@ 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@ netscape = @netscape@ oldincludedir = @oldincludedir@ pdf2ps = @pdf2ps@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ ps2pdf = @ps2pdf@ psdir = @psdir@ psnup = @psnup@ psselect = @psselect@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ tex = @tex@ EXTRA_DIST = \ a2_psutils.m4 \ atexit.m4 \ file.m4 \ fp_echo.m4 \ fullpath.m4 \ gccwarn.m4 \ gettext.m4 \ gperf-check.m4 \ iconv.m4 \ lex.m4 \ lib-ld.m4 \ lib-link.m4 \ libpaper.m4 \ lib-prefix.m4 \ lpr.m4 \ m4.m4 \ malloc.m4 \ mbrtowc.m4 \ mbstate_t.m4 \ perl.m4 \ prereq.m4 \ progtest.m4 \ protos.m4 \ realloc.m4 \ rename.m4 \ strcasecmp.m4 \ strftim.m4 \ termios.m4 \ tterm.m4 \ winsz.m4 \ xstrtoumax.m4 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 \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu m4/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu m4/Makefile .PRECIOUS: 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__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ 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 mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile 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: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: 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 mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-exec install-exec-am \ install-info install-info-am install-man install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ uninstall-info-am # 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.14/m4/libpaper.m40000644000175000017500000000110210735325571014207 0ustar mhattamhattadnl ## --------------------------------------------------------- ## 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.14/m4/malloc.m40000644000175000017500000000172110735325571013667 0ustar mhattamhatta#serial 3 dnl From Jim Meyering. dnl Determine whether malloc accepts 0 as its argument. dnl If it doesn't, arrange to use the replacement function. dnl AC_DEFUN([jm_FUNC_MALLOC], [ dnl xmalloc.c requires that this symbol be defined so it doesn't dnl mistakenly use a broken malloc -- as it might if this test were omitted. AC_DEFINE_UNQUOTED(HAVE_DONE_WORKING_MALLOC_CHECK, 1, [Define if the malloc check has been performed. ]) AC_CACHE_CHECK([for working malloc], jm_cv_func_working_malloc, [AC_TRY_RUN([ char *malloc (); int main () { exit (malloc (0) ? 0 : 1); } ], jm_cv_func_working_malloc=yes, jm_cv_func_working_malloc=no, dnl When crosscompiling, assume malloc is broken. jm_cv_func_working_malloc=no) ]) if test $jm_cv_func_working_malloc = no; then AC_LIBOBJ(malloc) AC_DEFINE_UNQUOTED(malloc, rpl_malloc, [Define to rpl_malloc if the replacement function should be used.]) fi ]) a2ps-4.14/m4/iconv.m40000644000175000017500000000665310735337263013550 0ustar mhattamhatta# iconv.m4 serial AM4 (gettext-0.11.3) dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. 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). 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_TRY_LINK will then fail, the second AC_TRY_LINK 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_TRY_LINK([#include #include ], [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_TRY_LINK([#include #include ], [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_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.]) 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) ]) 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_TRY_COMPILE([ #include #include extern #ifdef __cplusplus "C" #endif #if defined(__STDC__) || 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([$]{ac_t:- }[$]am_cv_proto_iconv) AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1, [Define as const if the declaration of iconv() needs const.]) fi ]) a2ps-4.14/m4/atexit.m40000644000175000017500000000137510735325571013723 0ustar mhattamhatta## --------------------------------------------------------- ## ## Check if atexit is available, and replace if necessary ## ## demaille@inf.enst.fr ## ## --------------------------------------------------------- ## dnl dnl acconfig.h should contains these two lines dnl /* Define to rpl_exit if the replacement function should be used. */ dnl #undef exit dnl and atexit.c should be available # serial 2 AC_DEFUN([ad_FUNC_ATEXIT], [AC_CHECK_FUNCS(atexit) if test $ac_cv_func_atexit = no; then AC_CHECK_FUNCS(on_exit) AC_LIBOBJ(atexit) if test $ac_cv_func_on_exit = no; then AC_DEFINE_UNQUOTED(exit, rpl_exit, [Define to rpl_exit if the replacement function should be used]) fi fi]) a2ps-4.14/m4/intdiv0.m40000644000175000017500000000356510735337263014006 0ustar mhattamhatta# intdiv0.m4 serial 1 (gettext-0.11.3) dnl Copyright (C) 2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl From Bruno Haible. AC_DEFUN([gt_INTDIV0], [ AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_CACHE_CHECK([whether integer division by zero raises SIGFPE], gt_cv_int_divbyzero_sigfpe, [ AC_TRY_RUN([ #include #include static void #ifdef __cplusplus sigfpe_handler (int sig) #else sigfpe_handler (sig) int sig; #endif { /* Exit with code 0 if SIGFPE, with code 1 if any other signal. */ exit (sig != SIGFPE); } int x = 1; int y = 0; int z; int nan; int main () { signal (SIGFPE, sigfpe_handler); /* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP. */ #if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP) signal (SIGTRAP, sigfpe_handler); #endif /* Linux/SPARC yields signal SIGILL. */ #if defined (__sparc__) && defined (__linux__) signal (SIGILL, sigfpe_handler); #endif z = x / y; nan = y / y; exit (1); } ], gt_cv_int_divbyzero_sigfpe=yes, gt_cv_int_divbyzero_sigfpe=no, [ # Guess based on the CPU. case "$host_cpu" in alpha* | i[34567]86 | m68k | s390*) gt_cv_int_divbyzero_sigfpe="guessing yes";; *) gt_cv_int_divbyzero_sigfpe="guessing no";; esac ]) ]) case "$gt_cv_int_divbyzero_sigfpe" in *yes) value=1;; *) value=0;; esac AC_DEFINE_UNQUOTED(INTDIV0_RAISES_SIGFPE, $value, [Define if integer division by zero raises signal SIGFPE.]) ]) a2ps-4.14/m4/lib-link.m40000644000175000017500000005563310735337263014135 0ustar mhattamhatta# lib-link.m4 serial 3 (gettext-0.11.3) dnl Copyright (C) 2001-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl From Bruno Haible. 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. AC_DEFUN([AC_LIB_LINKFLAGS], [ AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) define([Name],[translit([$1],[./-], [___])]) define([NAME],[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" ]) LIB[]NAME="$ac_cv_lib[]Name[]_libs" LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs" INC[]NAME="$ac_cv_lib[]Name[]_cppflags" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) AC_SUBST([LIB]NAME) AC_SUBST([LTLIB]NAME) 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 undefine([Name]) undefine([NAME]) ]) dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode) 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. If found, it dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and dnl 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. AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], [ AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) define([Name],[translit([$1],[./-], [___])]) define([NAME],[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" LIBS="$LIBS $LIB[]NAME" AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no]) 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 $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= fi AC_SUBST([HAVE_LIB]NAME) AC_SUBST([LIB]NAME) AC_SUBST([LTLIB]NAME) undefine([Name]) undefine([NAME]) ]) dnl Determine the platform dependent parameters needed to use rpath: dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator, dnl hardcode_direct, hardcode_minus_L, dnl sys_lib_search_path_spec, sys_lib_dlsearch_path_spec. AC_DEFUN([AC_LIB_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" libext="$acl_cv_libext" shlibext="$acl_cv_shlibext" hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" hardcode_direct="$acl_cv_hardcode_direct" hardcode_minus_L="$acl_cv_hardcode_minus_L" sys_lib_search_path_spec="$acl_cv_sys_lib_search_path_spec" sys_lib_dlsearch_path_spec="$acl_cv_sys_lib_dlsearch_path_spec" 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_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. AC_DEFUN([AC_LIB_LINKFLAGS_BODY], [ define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) 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$1-prefix], [ --with-lib$1-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib --without-lib$1-prefix don't search for lib$1 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/lib" fi fi ]) dnl Search the library and its dependencies in $additional_libdir and dnl $LDFLAGS. Using breadth-first-seach. LIB[]NAME= LTLIB[]NAME= INC[]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= if test $use_additional = yes; then if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then found_dir="$additional_libdir" found_so="$additional_libdir/lib$name.$shlibext" if test -f "$additional_libdir/lib$name.la"; then found_la="$additional_libdir/lib$name.la" fi else if test -f "$additional_libdir/lib$name.$libext"; then found_dir="$additional_libdir" found_a="$additional_libdir/lib$name.$libext" if test -f "$additional_libdir/lib$name.la"; then found_la="$additional_libdir/lib$name.la" fi fi fi 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//'` if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then found_dir="$dir" found_so="$dir/lib$name.$shlibext" if test -f "$dir/lib$name.la"; then found_la="$dir/lib$name.la" fi else if test -f "$dir/lib$name.$libext"; then found_dir="$dir" found_a="$dir/lib$name.$libext" if test -f "$dir/lib$name.la"; then found_la="$dir/lib$name.la" fi 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/lib"; 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 "$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 "$hardcode_libdir_flag_spec" && test "$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 "$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 $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 */lib | */lib/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'` 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*) 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*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` dnl Potentially add $additional_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$additional_libdir" != "X/usr/lib"; then haveit= if test "X$additional_libdir" = "X/usr/local/lib"; then if test -n "$GCC"; then case $host_os in linux*) 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$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LIBNAME. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_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$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LTLIBNAME. LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_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. names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.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 "$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:+$hardcode_libdir_separator}$found_dir" done dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl. acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$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=\"$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 ]) 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 ]) a2ps-4.14/m4/gccwarn.m40000644000175000017500000000342010735325571014042 0ustar mhattamhattadnl Check if the compiler supports useful warning options. There's a few that dnl we don't use, simply because they're too noisy: dnl dnl -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x) dnl -Wredundant-decls (system headers make this too noisy) dnl -Wpointer-arith I have problems with the glibc. dnl -Wtraditional (combines too many unrelated messages, only a few useful) dnl -Wcast-qual because with char * cp; const char * ccp; dnl cp = (char *) ccp; dnl is the only portable way to do cp = ccp; dnl -pedantic dnl #serial 3 AC_DEFUN([ad_GCC_WARNINGS], [AC_ARG_ENABLE(warnings, [ --enable-warnings enable compiler warnings]) if test "$enable_warnings" = "yes"; then CF_GCC_WARNINGS fi]) AC_DEFUN([CF_GCC_WARNINGS], [if test -n "$GCC"; then AC_CACHE_CHECK([for gcc warning options], ac_cv_prog_gcc_warn_flags, [changequote(,)dnl cat > conftest.$ac_ext <], [mbstate_t state; return ! (sizeof state && mbrtowc);], jm_cv_func_mbrtowc=yes, jm_cv_func_mbrtowc=no)]) if test $jm_cv_func_mbrtowc = yes; then AC_DEFINE(HAVE_MBRTOWC, 1, [Define to 1 if mbrtowc and mbstate_t are properly declared.]) fi ]) a2ps-4.14/m4/gperf-check.m40000644000175000017500000000362410735325571014602 0ustar mhattamhattadnl dnl AC_PROG_GPERF (MINIMUM-VERSION) dnl dnl Check for availability of gperf. dnl Abort if not found or if current version is not up to par. dnl AC_DEFUN([AC_PROG_GPERF],[ AC_PATH_PROG(GPERF, gperf, no) if test "$GPERF" = no; then AC_MSG_ERROR(Could not find gperf) fi min_gperf_version=ifelse([$1], ,2.7,$1) AC_MSG_CHECKING(for gperf - version >= $min_gperf_version) gperf_major_version=`$GPERF --version | \ sed 's/GNU gperf \([[0-9]]*\).\([[0-9]]*\)/\1/'` gperf_minor_version=`$GPERF --version | \ sed 's/GNU gperf \([[0-9]]*\).\([[0-9]]*\)/\2/'` no_gperf="" dnl dnl Now check if the installed gperf is sufficiently new. dnl AC_TRY_RUN([ #include #include #include static char* my_strdup (char *str) { char *new_str; if (str) { new_str = malloc ((strlen (str) + 1) * sizeof(char)); strcpy (new_str, str); } else new_str = NULL; return new_str; } int main () { char *tmp_version; int major; int minor; /* HP/UX 9 (%@#!) writes to sscanf strings */ tmp_version = my_strdup("$min_gperf_version"); if (sscanf(tmp_version, "%d.%d", &major, &minor) != 2) { printf ("%s, bad version string\n", "$min_gperf_version"); exit (1); } if (($gperf_major_version > major) || (($gperf_major_version == major) && ($gperf_minor_version >= minor))) { return 0; } else { printf ("\n"); printf ("*** An old version of gperf ($gperf_major_version.$gperf_minor_version) was found.\n"); printf ("*** You need a version of gperf newer than %d.%d.%d. The latest version of\n", major, minor); printf ("*** gperf is always available from ftp://ftp.gnu.org.\n"); printf ("***\n"); return 1; } } ],,no_gperf=yes,[/bin/true]) if test "x$no_gperf" = x ; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) fi ]) a2ps-4.14/m4/uintmax_t.m40000644000175000017500000000211410735337263014426 0ustar mhattamhatta# uintmax_t.m4 serial 6 (gettext-0.11) dnl Copyright (C) 1997-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl From Paul Eggert. AC_PREREQ(2.13) # Define uintmax_t to `unsigned long' or `unsigned long long' # if does not exist. AC_DEFUN([jm_AC_TYPE_UINTMAX_T], [ AC_REQUIRE([jm_AC_HEADER_INTTYPES_H]) AC_REQUIRE([jm_AC_HEADER_STDINT_H]) if test $jm_ac_cv_header_inttypes_h = no && test $jm_ac_cv_header_stdint_h = no; then AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG]) test $ac_cv_type_unsigned_long_long = yes \ && ac_type='unsigned long long' \ || ac_type='unsigned long' AC_DEFINE_UNQUOTED(uintmax_t, $ac_type, [Define to unsigned long or unsigned long long if and don't define.]) fi ]) a2ps-4.14/m4/fullpath.m40000644000175000017500000000320110735325571014232 0ustar mhattamhatta# -*- 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.14/m4/rename.m40000644000175000017500000000211310735325571013663 0ustar mhattamhatta# -*- Autoconf -*- ## -------------------------------------------------- ## ## Check if rename(2) is available and working. ## ## Replace if necessary ## ## akim@epita.fr ## ## -------------------------------------------------- ## # rename.c should be available # serial 2 AC_DEFUN([ad_CHECK_FUNC_RENAME], [AC_CHECK_FUNCS(rename) if test $ac_cv_func_rename = yes; then AC_CACHE_CHECK([whether rename works], ac_cv_func_rename_works, [ac_cv_func_rename_works=no : >conftest.1 : >conftest.2 AC_TRY_RUN([#include int main () { exit (rename ("conftest.1", "conftest.2")); }], test -f conftest.1 || ac_cv_func_rename_works=yes,,:)]) fi]) AC_DEFUN([ad_REPLACE_FUNC_RENAME], [AC_REQUIRE([ad_CHECK_FUNC_RENAME])dnl AC_REQUIRE([AC_HEADER_STAT])dnl if test "$ac_cv_func_rename" = no || test "$ac_cv_func_rename_works" = no; then AC_CHECK_FUNCS(link) # FIXME: Define MVDIR AC_LIBOBJ(rename) AC_DEFINE_UNQUOTED(rename, rpl_rename, [Define to the replacement function if should be used.]) fi]) a2ps-4.14/m4/prereq.m40000644000175000017500000000052610735325571013720 0ustar mhattamhatta#serial 2 dnl These are the prerequisite macros for files in the lib/ dnl directories of Bison. AC_DEFUN([jm_PREREQ_QUOTEARG], [ AC_CHECK_FUNCS(isascii iswprint mbsinit) jm_FUNC_MBRTOWC AC_CHECK_HEADERS(limits.h stddef.h stdlib.h string.h wchar.h wctype.h) AC_HEADER_STDC AC_C_BACKSLASH_A AC_TYPE_MBSTATE_T AM_C_PROTOTYPES ]) a2ps-4.14/m4/mbstate_t.m40000644000175000017500000000222310735325571014400 0ustar mhattamhatta# mbstate_t.m4 serial 9 dnl Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. # From Paul Eggert. # BeOS 5 has 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_CACHE_CHECK([for mbstate_t], ac_cv_type_mbstate_t, [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [AC_INCLUDES_DEFAULT # include ], [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 declares mbstate_t.]) else AC_DEFINE([mbstate_t], int, [Define to a type if does not define.]) fi]) a2ps-4.14/m4/winsz.m40000644000175000017500000000162110735325571013571 0ustar mhattamhattadnl From Jim Meyering. # serial 1 AC_DEFUN([AM_HEADER_TIOCGWINSZ_NEEDS_SYS_IOCTL], [AC_REQUIRE([AM_SYS_POSIX_TERMIOS]) AC_CACHE_CHECK([whether use of TIOCGWINSZ requires sys/ioctl.h], am_cv_sys_tiocgwinsz_needs_sys_ioctl_h, [am_cv_sys_tiocgwinsz_needs_sys_ioctl_h=no gwinsz_in_termios_h=no if test $am_cv_sys_posix_termios = yes; then AC_EGREP_CPP([yes], [#include # include # ifdef TIOCGWINSZ yes # endif ], gwinsz_in_termios_h=yes) fi if test $gwinsz_in_termios_h = no; then AC_EGREP_CPP([yes], [#include # include # ifdef TIOCGWINSZ yes # endif ], am_cv_sys_tiocgwinsz_needs_sys_ioctl_h=yes) fi ]) if test $am_cv_sys_tiocgwinsz_needs_sys_ioctl_h = yes; then AC_DEFINE(GWINSZ_IN_SYS_IOCTL,1, [Define if TIOCGWINSZ requires sys/ioctl.h]) fi ]) a2ps-4.14/m4/inttypes.m40000644000175000017500000000171710735337263014305 0ustar mhattamhatta# inttypes.m4 serial 1 (gettext-0.11.4) dnl Copyright (C) 1997-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl From Paul Eggert. # Define HAVE_INTTYPES_H if exists and doesn't clash with # . AC_DEFUN([gt_HEADER_INTTYPES_H], [ AC_CACHE_CHECK([for inttypes.h], gt_cv_header_inttypes_h, [ AC_TRY_COMPILE( [#include #include ], [], gt_cv_header_inttypes_h=yes, gt_cv_header_inttypes_h=no) ]) if test $gt_cv_header_inttypes_h = yes; then AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H, 1, [Define if exists and doesn't clash with .]) fi ]) a2ps-4.14/m4/inttypes-pri.m40000644000175000017500000000222710735337263015072 0ustar mhattamhatta# inttypes-pri.m4 serial 1 (gettext-0.11.4) dnl Copyright (C) 1997-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl From Bruno Haible. # Define PRI_MACROS_BROKEN if exists and defines the PRI* # macros to non-string values. This is the case on AIX 4.3.3. AC_DEFUN([gt_INTTYPES_PRI], [ AC_REQUIRE([gt_HEADER_INTTYPES_H]) if test $gt_cv_header_inttypes_h = yes; then AC_CACHE_CHECK([whether the inttypes.h PRIxNN macros are broken], gt_cv_inttypes_pri_broken, [ AC_TRY_COMPILE([#include #ifdef PRId32 char *p = PRId32; #endif ], [], gt_cv_inttypes_pri_broken=no, gt_cv_inttypes_pri_broken=yes) ]) fi if test "$gt_cv_inttypes_pri_broken" = yes; then AC_DEFINE_UNQUOTED(PRI_MACROS_BROKEN, 1, [Define if exists and defines unusable PRI* macros.]) fi ]) a2ps-4.14/m4/stdint_h.m40000644000175000017500000000204310735337263014233 0ustar mhattamhatta# stdint_h.m4 serial 2 (gettext-0.11.4) dnl Copyright (C) 1997-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl From Paul Eggert. # Define HAVE_STDINT_H_WITH_UINTMAX if exists, # doesn't clash with , and declares uintmax_t. AC_DEFUN([jm_AC_HEADER_STDINT_H], [ AC_CACHE_CHECK([for stdint.h], jm_ac_cv_header_stdint_h, [AC_TRY_COMPILE( [#include #include ], [uintmax_t i = (uintmax_t) -1;], jm_ac_cv_header_stdint_h=yes, jm_ac_cv_header_stdint_h=no)]) if test $jm_ac_cv_header_stdint_h = yes; then AC_DEFINE_UNQUOTED(HAVE_STDINT_H_WITH_UINTMAX, 1, [Define if exists, doesn't clash with , and declares uintmax_t. ]) fi ]) a2ps-4.14/m4/fp_echo.m40000644000175000017500000000145110735325571014023 0ustar mhattamhatta# Once this macro is called, you may output with no echo in a Makefile or # script using: echo @ECHO_N@ "STRING_TO_OUTPUT@ECHO_C@". AC_DEFUN([fp_PROG_ECHO], [AC_MSG_CHECKING(how to suppress newlines using echo) AC_CACHE_VAL(fp_cv_prog_echo_nonl, [if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then fp_cv_prog_echo_nonl=no else fp_cv_prog_echo_nonl=option fi else fp_cv_prog_echo_nonl=escape fi ]) AC_MSG_RESULT($fp_cv_prog_echo_nonl) test $fp_cv_prog_echo_nonl = no \ && echo 2>&1 "WARNING: \`echo' not powerful enough for \`make check'" case $fp_cv_prog_echo_nonl in no) ECHO_N= ECHO_C= ;; option) ECHO_N=-n ECHO_C= ;; escape) ECHO_N= ECHO_C='\c' ;; esac AC_SUBST(ECHO_N)dnl AC_SUBST(ECHO_C)dnl ]) a2ps-4.14/m4/lpr.m40000644000175000017500000000142710735325571013220 0ustar mhattamhatta## --------------------------------------------------------- ## ## Find what is the program to use to send to the printer ## ## demaille@inf.enst.fr ## ## --------------------------------------------------------- ## # serial 3 # # Find the program to send to the printer # Put the prog name in LPR, its option for destination in LPR_QUEUE_OPTION # AC_DEFUN([ad_PROG_LPR], [AC_CHECK_PROGS(LPR, lp lpr, no) AC_MSG_CHECKING([for printer queue selection]) case "x$LPR" in xlp) LPR_QUEUE_OPTION=-d ;; xlpr) LPR_QUEUE_OPTION=-P ;; xno) LPR="cat" LPR_QUEUE_OPTION=">" ;; *) # This user has specified per $LPR and $LPR_QUEUE_OPTION ;; esac AC_MSG_RESULT([$LPR $LPR_QUEUE_OPTION PRINTER]) AC_SUBST(LPR_QUEUE_OPTION)]) a2ps-4.14/m4/strcasecmp.m40000644000175000017500000000207010735325571014562 0ustar mhattamhatta# -*- Autoconf -*- ## --------------------------------------------------------- ## ## Check if strcasecmp/strncasecmp are available, ## ## and replace if necessary ## ## demaille@inf.enst.fr ## ## --------------------------------------------------------- ## # strcasecmp.c and/or strncasecmp should be available. # serial 2 AC_DEFUN([ad_REPLACE_FUNC_STRCASECMP], [AC_CHECK_FUNCS(strcasecmp) if test $ac_cv_func_strcasecmp = no; then AC_CHECK_FUNCS(stricmp) if test $ac_cv_func_stricmp = no; then AC_LIBOBJ(strcasecmp) else AC_DEFINE_UNQUOTED(strcasecmp, stricmp, [Define to the replacement function if should be used.]) fi fi]) AC_DEFUN([ad_REPLACE_FUNC_STRNCASECMP], [AC_CHECK_FUNCS(strncasecmp) if test $ac_cv_func_strncasecmp = no; then AC_CHECK_FUNCS(strnicmp) if test $ac_cv_func_strnicmp = no; then AC_LIBOBJ(strncasecmp) else AC_DEFINE_UNQUOTED(strncasecmp, strnicmp, [Define to the replacement function if should be used.]) fi fi]) a2ps-4.14/m4/tterm.m40000644000175000017500000000042610735325571013554 0ustar mhattamhattadnl Make all the needed checks to use tinyterm.[ch] dnl Akim.Demaille@inf.enst.fr #serial 2 AC_DEFUN([ad_TINYTERM_CHECKS], [AC_REQUIRE([AM_HEADER_TIOCGWINSZ_NEEDS_SYS_IOCTL]) AC_CHECK_HEADERS(termios.h sys/types.h unistd.h limits.h) AC_REQUIRE([jm_AC_HEADER_INTTYPES_H]) ]) a2ps-4.14/m4/lib-ld.m40000644000175000017500000000626010735337263013567 0ustar mhattamhatta# lib-ld.m4 serial 1 (gettext-0.11) dnl Copyright (C) 1996-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl Subroutines of libtool.m4, dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision dnl with libtool.m4. dnl From libtool-1.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 ld's only accept -v. if $LD -v 2>&1 &5; then acl_cv_prog_gnu_ld=yes else acl_cv_prog_gnu_ld=no fi]) with_gnu_ld=$acl_cv_prog_gnu_ld ]) dnl From libtool-1.4. Sets the variable LD. AC_DEFUN([AC_LIB_PROG_LD], [AC_ARG_WITH(gnu-ld, [ --with-gnu-ld assume the C compiler uses GNU ld [default=no]], test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no) AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by GCC]) 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. [[\\/]* | [A-Za-z]:[\\/]*)] [re_direlt='/[^/][^/]*/\.\./'] # Canonicalize the path 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 "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(acl_cv_path_LD, [if test -z "$LD"; then IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" for ac_dir in $PATH; do 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 GNU ld's only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. if "$acl_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then test "$with_gnu_ld" != no && break else test "$with_gnu_ld" != yes && break fi fi done IFS="$ac_save_ifs" else acl_cv_path_LD="$LD" # Let the user override the test with a path. fi]) LD="$acl_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]) AC_LIB_PROG_LD_GNU ]) a2ps-4.14/m4/gettext.m40000644000175000017500000005730110735337263014112 0ustar mhattamhatta# gettext.m4 serial 17 (gettext-0.11.5) dnl Copyright (C) 1995-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library 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 Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2002. dnl Macro to add for using GNU gettext. dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The dnl default (if it is not specified or empty) is 'no-libtool'. dnl INTLSYMBOL should be 'external' for packages with no intl directory, dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory. 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). If INTLSYMBOL is 'no-libtool', a static library dnl $(top_builddir)/intl/libintl.a will be created. 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 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], [no-libtool], , [ifelse([$1], [use-libtool], , [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT ])])])])]) 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])) define(gt_libtool_suffix_prefix, ifelse([$1], [use-libtool], [l], [])) 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 test "$gt_cv_func_gnugettext_libc" != "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 only in autoconf >= 2.52 and not dnl documented, we avoid it. ifelse(gt_included_intl, yes, , [ AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) ]) 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) ifelse(gt_included_intl, yes, [ BUILD_INCLUDED_LIBINTL=no USE_INCLUDED_LIBINTL=no ]) LIBINTL= LTLIBINTL= POSUB= 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. dnl Add a version number to the cache macros. define([gt_api_version], ifelse([$2], [need-formatstring-macros], 3, ifelse([$2], [need-ngettext], 2, 1))) define([gt_cv_func_gnugettext_libc], [gt_cv_func_gnugettext]gt_api_version[_libc]) define([gt_cv_func_gnugettext_libintl], [gt_cv_func_gnugettext]gt_api_version[_libintl]) AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc, [AC_TRY_LINK([#include ]ifelse([$2], [need-formatstring-macros], [#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 ], [])[extern int _nl_msg_cat_cntr; extern int *_nl_domain_bindings;], [bindtextdomain ("", ""); return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings], gt_cv_func_gnugettext_libc=yes, gt_cv_func_gnugettext_libc=no)]) if test "$gt_cv_func_gnugettext_libc" != "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_cv_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_TRY_LINK([#include ]ifelse([$2], [need-formatstring-macros], [#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 ], [])[extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias ();], [bindtextdomain ("", ""); return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)], gt_cv_func_gnugettext_libintl=yes, gt_cv_func_gnugettext_libintl=no) dnl Now see whether libintl exists and depends on libiconv. if test "$gt_cv_func_gnugettext_libintl" != yes && test -n "$LIBICONV"; then LIBS="$LIBS $LIBICONV" AC_TRY_LINK([#include ]ifelse([$2], [need-formatstring-macros], [#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 ], [])[extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias ();], [bindtextdomain ("", ""); return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)], [LIBINTL="$LIBINTL $LIBICONV" LTLIBINTL="$LTLIBINTL $LTLIBICONV" gt_cv_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 test "$gt_cv_func_gnugettext_libc" = "yes" \ || { test "$gt_cv_func_gnugettext_libintl" = "yes" \ && test "$PACKAGE" != gettext; }; 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. INTLOBJS="\$(GETTOBJS)" BUILD_INCLUDED_LIBINTL=yes USE_INCLUDED_LIBINTL=yes LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV" LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV" LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` fi 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 "$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 if test "$USE_NLS" = "yes"; then if test "$gt_use_preinstalled_gnugettext" = "yes"; then if test "$gt_cv_func_gnugettext_libintl" = "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 If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL dnl to 'yes' because some of the testsuite requires it. if test "$PACKAGE" = gettext; then BUILD_INCLUDED_LIBINTL=yes fi dnl Make all variables we use known to autoconf. AC_SUBST(BUILD_INCLUDED_LIBINTL) AC_SUBST(USE_INCLUDED_LIBINTL) AC_SUBST(CATOBJEXT) AC_SUBST(INTLOBJS) dnl For backward compatibility. Some configure.ins may be using this. nls_cv_header_intl= nls_cv_header_libgt= dnl For backward compatibility. Some Makefiles may be using this. DATADIRNAME=share AC_SUBST(DATADIRNAME) dnl For backward compatibility. Some Makefiles may be using this. INSTOBJEXT=.mo AC_SUBST(INSTOBJEXT) dnl For backward compatibility. Some Makefiles may be using this. GENCAT=gencat AC_SUBST(GENCAT) dnl Enable libtool support if the surrounding package wishes it. INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX) ]) 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 Checks for all prerequisites of the po subdirectory, dnl except for USE_NLS. AC_DEFUN([AM_PO_SUBDIRS], [ AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl AC_REQUIRE([AM_MKINSTALLDIRS])dnl 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 >/dev/null 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 Search for GNU xgettext 0.11 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= /dev/null >/dev/null 2>&1 && (if $ac_dir/$ac_word --omit-header --copyright-holder= /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 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 >/dev/null 2>&1], :) dnl This could go away some day; the PATH_PROG_WITH_TEST already does it. dnl Test whether we really found GNU msgfmt. if test "$GMSGFMT" != ":"; then dnl If it is no GNU msgfmt we define it as : so that the dnl Makefiles still can work. if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 && (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then : ; else GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'` AC_MSG_RESULT( [found $GMSGFMT program is not GNU msgfmt; ignore it]) GMSGFMT=":" fi fi dnl This could go away some day; the PATH_PROG_WITH_TEST already does it. dnl Test whether we really found GNU xgettext. if test "$XGETTEXT" != ":"; then dnl If it is no GNU xgettext we define it as : so that the dnl Makefiles still can work. if $XGETTEXT --omit-header --copyright-holder= /dev/null >/dev/null 2>&1 && (if $XGETTEXT --omit-header --copyright-holder= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then : ; else AC_MSG_RESULT( [found xgettext program is not GNU xgettext; ignore it]) XGETTEXT=":" fi dnl Remove leftover from FreeBSD xgettext call. rm -f messages.po fi AC_OUTPUT_COMMANDS([ 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 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" cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" # ALL_LINGUAS, POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES 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 "$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" "$ac_given_srcdir/$ac_dir/LINGUAS"` # Hide the ALL_LINGUAS assigment from automake. eval 'ALL_LINGUAS''=$ALL_LINGUAS_' fi case "$ac_given_srcdir" in .) srcdirpre= ;; *) srcdirpre='$(srcdir)/' ;; esac POFILES= GMOFILES= UPDATEPOFILES= DUMMYPOFILES= for lang in $ALL_LINGUAS; do POFILES="$POFILES $srcdirpre$lang.po" GMOFILES="$GMOFILES $srcdirpre$lang.gmo" UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" DUMMYPOFILES="$DUMMYPOFILES $lang.nop" 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|@GMOFILES@|$GMOFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@CATALOGS@|$CATALOGS|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, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS. But hide it # from automake. eval 'ALL_LINGUAS''="$ALL_LINGUAS"' # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" ]) ]) dnl Checks for all prerequisites of the intl subdirectory, dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS, dnl USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL. AC_DEFUN([AM_INTL_SUBDIR], [ AC_REQUIRE([AC_PROG_INSTALL])dnl AC_REQUIRE([AM_MKINSTALLDIRS])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_RANLIB])dnl AC_REQUIRE([AC_ISC_POSIX])dnl AC_REQUIRE([AC_HEADER_STDC])dnl AC_REQUIRE([AC_C_CONST])dnl AC_REQUIRE([AC_C_INLINE])dnl AC_REQUIRE([AC_TYPE_OFF_T])dnl AC_REQUIRE([AC_TYPE_SIZE_T])dnl AC_REQUIRE([AC_FUNC_ALLOCA])dnl AC_REQUIRE([AC_FUNC_MMAP])dnl AC_REQUIRE([jm_GLIBC21])dnl AC_REQUIRE([gt_INTDIV0])dnl AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])dnl AC_REQUIRE([gt_HEADER_INTTYPES_H])dnl AC_REQUIRE([gt_INTTYPES_PRI])dnl AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \ stdlib.h string.h unistd.h sys/param.h]) AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getc_unlocked getcwd getegid \ geteuid getgid getuid mempcpy munmap putenv setenv setlocale stpcpy \ strcasecmp strdup strtoul tsearch __argz_count __argz_stringify __argz_next]) AM_ICONV AM_LANGINFO_CODESET if test $ac_cv_header_locale_h = yes; then AM_LC_MESSAGES fi dnl intl/plural.c is generated from intl/plural.y. It requires bison, dnl because plural.y uses bison specific features. It requires at least dnl bison-1.26 because earlier versions generate a plural.c that doesn't dnl compile. dnl bison is only needed for the maintainer (who touches plural.y). But in dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put dnl the rule in general Makefile. Now, some people carelessly touch the dnl files or have a broken "make" program, hence the plural.c rule will dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not dnl present or too old. AC_CHECK_PROGS([INTLBISON], [bison]) if test -z "$INTLBISON"; then ac_verc_fail=yes else dnl Found it, now check the version. AC_MSG_CHECKING([version of bison]) changequote(<<,>>)dnl ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'` case $ac_prog_version in '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*) changequote([,])dnl ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; esac AC_MSG_RESULT([$ac_prog_version]) fi if test $ac_verc_fail = yes; then INTLBISON=: fi ]) AC_DEFUN([AM_MKINSTALLDIRS], [ dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly dnl find the mkinstalldirs script in another subdir but $(top_srcdir). dnl Try to locate is. MKINSTALLDIRS= if test -n "$ac_aux_dir"; then MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi AC_SUBST(MKINSTALLDIRS) ]) dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) a2ps-4.14/m4/ulonglong.m40000644000175000017500000000200010735337263014414 0ustar mhattamhatta# ulonglong.m4 serial 2 (fileutils-4.0.32, gettext-0.10.40) dnl Copyright (C) 1999-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl From Paul Eggert. AC_DEFUN([jm_AC_TYPE_UNSIGNED_LONG_LONG], [ AC_CACHE_CHECK([for unsigned long long], ac_cv_type_unsigned_long_long, [AC_TRY_LINK([unsigned long long ull = 1; int i = 63;], [unsigned long long ullmax = (unsigned long long) -1; return ull << i | ull >> i | ullmax / ull | ullmax % ull;], ac_cv_type_unsigned_long_long=yes, ac_cv_type_unsigned_long_long=no)]) if test $ac_cv_type_unsigned_long_long = yes; then AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1, [Define if you have the unsigned long long type.]) fi ]) a2ps-4.14/m4/lib-prefix.m40000644000175000017500000001175510735337263014472 0ustar mhattamhatta# lib-prefix.m4 serial 1 (gettext-0.11) dnl Copyright (C) 2001-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. 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_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/lib" 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*) 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/lib"; 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/lib"; 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" ]) a2ps-4.14/m4/strftim.m40000644000175000017500000000123210735325571014105 0ustar mhattamhatta## --------------------------------------------------------- ## ## Check if there is a functioning strftime, and replace ## ## demaille@inf.enst.fr ## ## --------------------------------------------------------- ## # serial 2 AC_DEFUN([ad_FUNC_STRFTIME], [ AC_FUNC_STRFTIME AC_STRUCT_TIMEZONE AC_CHECK_FUNCS(tzset mblen mbrlen) AC_CHECK_HEADERS(limits.h) AC_FUNC_MKTIME if test $ac_cv_func_strftime = no; then AC_LIBOBJ(strftime) if test $ac_cv_func_working_mktime = no; then AC_DEFINE_UNQUOTED(mktime, rpl_mktime, [Define to rpl_mktime if the replacement function should be used.]) fi fi]) a2ps-4.14/m4/realloc.m40000644000175000017500000000175410735325571014047 0ustar mhattamhatta#serial 3 dnl From Jim Meyering. dnl Determine whether realloc works when both arguments are 0. dnl If it doesn't, arrange to use the replacement function. dnl AC_DEFUN([jm_FUNC_REALLOC], [ dnl xmalloc.c requires that this symbol be defined so it doesn't dnl mistakenly use a broken realloc -- as it might if this test were omitted. AC_DEFINE_UNQUOTED(HAVE_DONE_WORKING_REALLOC_CHECK, 1, [Define if the realloc check has been performed. ]) AC_CACHE_CHECK([for working realloc], jm_cv_func_working_realloc, [AC_TRY_RUN([ char *realloc (); int main () { exit (realloc (0, 0) ? 0 : 1); } ], jm_cv_func_working_realloc=yes, jm_cv_func_working_realloc=no, dnl When crosscompiling, assume realloc is broken. jm_cv_func_working_realloc=no) ]) if test $jm_cv_func_working_realloc = no; then AC_LIBOBJ(realloc) AC_DEFINE_UNQUOTED(realloc, rpl_realloc, [Define to rpl_realloc if the replacement function should be used.]) fi ]) a2ps-4.14/m4/file.m40000644000175000017500000000406510735325571013343 0ustar mhattamhatta# -*- 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 # 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.14/m4/termios.m40000644000175000017500000000055010735325571014101 0ustar mhattamhattadnl From Jim Meyering. # serial 1 AC_DEFUN([AM_SYS_POSIX_TERMIOS], [AC_CACHE_CHECK([POSIX termios], am_cv_sys_posix_termios, [AC_TRY_LINK([#include #include #include ], [/* SunOS 4.0.3 has termios.h but not the library calls. */ tcgetattr(0, 0);], am_cv_sys_posix_termios=yes, am_cv_sys_posix_termios=no)]) ]) a2ps-4.14/m4/lex.m40000644000175000017500000000051110735325571013204 0ustar mhattamhatta## Replacement for AC_PROG_LEX and AC_DECL_YYTEXT ## by Alexandre Oliva dnl AM_PROG_LEX dnl Look for flex, lex or missing, then run AC_PROG_LEX and AC_DECL_YYTEXT AC_DEFUN([AM_PROG_LEX], [AC_REQUIRE([AM_MISSING_HAS_RUN]) AC_CHECK_PROGS(LEX, flex lex, [${am_missing_run}flex]) AC_PROG_LEX AC_DECL_YYTEXT]) a2ps-4.14/m4/progtest.m40000644000175000017500000000407410735337263014274 0ustar mhattamhatta# progtest.m4 serial 2 (gettext-0.10.40) dnl Copyright (C) 1996-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library 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 Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1996. # 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], [# 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. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in ifelse([$5], , $PATH, [$5]); do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if [$3]; then ac_cv_path_$1="$ac_dir/$ac_word" break fi fi 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.14/m4/perl.m40000644000175000017500000000411010735325571013355 0ustar mhattamhatta#serial 1 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 if test $found = no; then PERL="$missing_dir/missing perl" AC_SUBST(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.14/m4/m4.m40000644000175000017500000000212610735325571012740 0ustar mhattamhatta# Copyright 2000 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., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # AC_PROG_GNU_M4 # -------------- # Check for GNU m4, at least 1.3 (supports frozen files). AC_DEFUN([AC_PROG_GNU_M4], [AC_PATH_PROGS(M4, gm4 gnum4 m4, m4) AC_CACHE_CHECK(whether m4 supports frozen files, ac_cv_prog_gnu_m4, [ac_cv_prog_gnu_m4=no if test x"$M4" != x; then case `$M4 --help < /dev/null 2>&1` in *reload-state*) ac_cv_prog_gnu_m4=yes ;; esac fi])]) a2ps-4.14/src/0000755000175000017500000000000010735337377012433 5ustar mhattamhattaa2ps-4.14/src/read.h0000644000175000017500000000231010735324714013502 0ustar mhattamhatta/* * read.h * * routines of input with no style sheets * Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana * Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana * $Id: read.h,v 1.1.1.1.2.1 2007/12/29 01:58:36 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 _READ_H_ #define _READ_H_ #include "faces.h" #include "buffer.h" struct a2ps_job; void plain_print_postscript PARAMS ((struct a2ps_job * job, buffer_t * buffer)); #endif /* not defined(_READ_H_) */ a2ps-4.14/src/sheets-map.l0000644000175000017500000001732310735322035014645 0ustar mhattamhatta%{ /* -*- 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 "main.h" #include "select.h" #include "xobstack.h" extern struct darray * sheets_map; int yylex PARAMS ((void)); void yyerror PARAMS ((const char *)); static void yy_include_push PARAMS ((char *file)); static void yy_include_pop PARAMS ((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); } <> { message (msg_file, (stderr, "End of file `%s'.\n", yyfilename)); if (--include_stack_ptr < 0) yyterminate (); else yy_include_pop () ; } { \/i? { /* return the string */ uchar *string; obstack_1grow (&string_stack, '\0'); string = (uchar *) obstack_finish (&string_stack); obstack_free (&string_stack, string); token_val = xustrdup (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); } } { /* string of characters */ \>i? { /* return the string */ uchar *string; obstack_1grow (&string_stack, '\0'); string = (uchar *) obstack_finish (&string_stack); obstack_free (&string_stack, string); token_val = xustrdup (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 <>.*/ 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); free (yyfilename); } 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.14/src/main.c0000644000175000017500000010532610735322006013511 0ustar mhattamhatta/* * main.c -- main loop, and interface with user * * Copyright (c) 1988-1993 Miguel Santana * Copyright (c) 1995-2000 Akim Demaille, Miguel Santana * Copyright (c) 2007 Akim Demaille, Miguel Santana and Masayuki Hatta */ /* * 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 #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 "lexps.h" #include #include "signame.h" #include "long-options.h" #include "version-etc.h" #include /* From basename.c */ char *base_name PARAMS ((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; const char *program_invocation_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 */ uchar *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 RETSIGTYPE signal_handler (int signum) { /* Error calls exit which calls atexit which removes the files. */ error (EXIT_FAILURE, 0, _("received signal %d: %s"), signum, strsignal (signum)); } /************************************************************************ * 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_ASSERT (highlight_level_args, highlight_level_types); return XARGCASEMATCH (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")) uchar buf[256], buf2[256]; const char *cp = NULL; uchar *ucp = NULL; /* Title of --list-options (%s%s is `a2ps' `version' */ title (stream, '=', true, _("Configuration status of %s %s\n"), program_invocation_name, VERSION); putc ('\n', stream); title (stream, '-', false, _("Sheets:\n")); fprintf (stream, _("\ medium = %s%s, %s\n\ page layout = %d x %d, %s\n\ borders = %s\n\ file alignment = %s\n\ interior margin = %d\n"), a_job->medium->name, (a2ps_medium_libpaper_p (job, job->medium_request) ? " (libpaper)" : ""), (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, _("%d characters per line"), a_job->columns_requested); else if (a_job->lines_requested > 0) sprintf ((char *) buf, _("%d lines per page"), a_job->lines_requested); else sprintf ((char *) buf, _("font size is %gpt"), a_job->fontsize); switch (a_job->numbering) { case 0: ustrcpy (buf2, _("no")); break; case 1: /* number line: each line */ ustrcpy (buf2, _("each line")); break; default: /* number line: each %d line */ sprintf ((char *) buf2, _("each %d lines"), a_job->numbering); } title (stream, '-', false, _("Virtual pages:\n")); fprintf (stream, _("\ number lines = %s\n\ format = %s\n\ tabulation size = %d\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. */ ustrcpy (buf, _("selected automatically")); else ustrcpy (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 */ ucp = a2ps_flag_destination_to_string (a_job); /* Make a nice message to tell what version control is used */ switch (a_job->backup_type) { case none: cp = _("never make backups"); break; case simple: cp = _("simple backups of every file"); break; case numbered_existing: /* appears in a2ps --version-=existing --list=defaults */ cp = _("numbered backups of files already numbered,\n\ and simple of others"); break; case numbered: 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"), ucp, cp, simple_backup_suffix); putc ('\n', stream); free (ucp); /* * 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 = %d\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 = %d\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), (const uchar *) "Debugging info", (const uchar *) "%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); 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. | `------------------------*/ #define sfputs(String) fputs (String, stream) #define sputc(Char) putc (Char, stream) static void usage (int status) { /* Currently, there seem to be no use in being able to use another stream than STDOUT. */ FILE *stream = stdout; fprintf (stream, _("\ 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"), program_invocation_name); /* * Does not print, and exits with success */ sputc ('\n'); sfputs (_("Tasks:\n")); sfputs (_("\ --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")); sputc ('\n'); sfputs (_("\ After having performed the task, exit successfully. Detailed lists may\n\ provide additional help on specific features.\n")); /* * Applies to the whole behavior */ sputc ('\n'); sfputs (_("Global:\n")); sfputs (_("\ -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")); sputc ('\n'); sfputs (_("Sheets:\n")); sfputs (_("\ -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")); sputc ('\n'); sfputs (_("\ 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")); sputc ('\n'); sfputs (_("Virtual pages:\n")); sfputs (_("\ --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")); sputc ('\n'); sfputs (_("Headings:\n")); /* xgettext:no-c-format */ sfputs (_("\ -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")); sputc ('\n'); sfputs (_("\ The TEXTs may use special escapes.\n")); sputc ('\n'); sfputs (_("Input:\n")); sfputs (_("\ -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")); sputc ('\n'); sfputs (_("\ 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")); sputc ('\n'); sfputs (_("Pretty-printing:\n")); sfputs (_("\ -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")); sputc ('\n'); sfputs (_("Output:\n")); sfputs (_("\ -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")); sputc ('\n'); sfputs (_("PostScript:\n")); sfputs (_("\ --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. */ sputc ('\n'); sfputs (_("\ 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")); /* Finally, some addresses. */ sputc ('\n'); sfputs (_("\ News, updates and documentation: visit http://www.gnu.org/software/a2ps/.\n")); sfputs (_("Report bugs to .\n")); 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_ASSERT (behavior_args, behavior_types); behavior = XARGCASEMATCH ("--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}. */ xustrcpy (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; /* Architecture specific initialization. */ #ifdef __EMX__ /* Wildcard expansion for OS/2 */ _wildcard (&argc, &argv); #endif /* Name under which this program was called. */ program_name = base_name (argv[0]); program_invocation_name = xstrdup (program_name); version_etc_copyright = N_("\ 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"); /* Set the NLS on */ setlocale (LC_TIME, ""); #ifdef HAVE_LC_MESSAGES setlocale (LC_MESSAGES, ""); #endif setlocale (LC_CTYPE, ""); bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); /* People don't want initializations when they just request a --help or --version. */ parse_long_options (argc, argv, NULL, GNU_PACKAGE, VERSION, "Akim Demaille, Miguel Santana", usage); /* 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); signame_init (); #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 syntax that has be chosen for regexp */ 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); /* 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 ((uchar *) argv[argn]); else /* A guess is asked upon stdin */ guess (UNULL); 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++) { fputs (expand_user_string (job, FIRST_FILE (job), "--list=expand", (uchar *) argv[argn]), stdout); putc ('\n', stdout); } 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, (uchar *) argv[argn], NULL); if (cp) { fputs (cp, stdout); putc ('\n', stdout); } } 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, (uchar *) argv[argn], stdout); break; case b_version: version_etc (stdout, NULL, GNU_PACKAGE, VERSION, "Akim Demaille, Miguel Santana"); break; case b_help: usage (0); 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 (UNULL, &native_jobs, &delegated_jobs); else /* Print following files */ for (; argn < argc; argn++) print ((uchar *) argv[argn], &native_jobs, &delegated_jobs); if (!IS_EMPTY (toc)) print_toc ((uchar *) _("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 (); } a2ps_job_free (job); job = NULL; return (EXIT_SUCCESS); } a2ps-4.14/src/version-etc.h0000644000175000017500000000236310735322023015024 0ustar mhattamhatta/* Utility to help print --version output in a consistent format. Copyright (C) 1999 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Written by Jim Meyering. */ #ifndef VERSION_ETC_H # define VERSION_ETC_H 1 # ifndef PARAMS # if defined PROTOTYPES || (defined __STDC__ && __STDC__) # define PARAMS(Args) Args # else # define PARAMS(Args) () # endif # endif extern char *version_etc_copyright; void version_etc PARAMS ((FILE *stream, const char *command_name, const char *package, const char *version, const char *authors)); #endif /* VERSION_ETC_H */ a2ps-4.14/src/delegate.h0000644000175000017500000000420110735324713014341 0ustar mhattamhatta/* * delegate.h * * Handling the delegations * 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: delegate.h,v 1.1.1.1.2.1 2007/12/29 01:58:35 mhatta Exp $ */ #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 PARAMS ((void)); void delegation_table_free PARAMS ((struct hash_table_s * table)); void add_delegation PARAMS ((const char *filename, int line, char *contract_line)); struct delegation *get_subcontract PARAMS ((const char *src_type, const char *dest_type)); char *get_delegate_command PARAMS ((struct delegation * contract, struct file_job * file, int evaluate)); /* Execute the sub contract */ int subcontract PARAMS ((struct file_job * file, buffer_t * buffer, struct delegation * contractor)); /* * For the command line interface */ void delegations_list_long PARAMS ((struct hash_table_s * contracts, FILE * stream)); void delegations_list_short PARAMS ((struct hash_table_s * contracts, FILE * stream)); #endif /* !defined(_DELEGATE_H_) */ a2ps-4.14/src/Makefile.am0000644000175000017500000000363610735322211014454 0ustar mhattamhatta## Makefile for a2ps' sources. -*- Makefile -*- ## Copyright (c) 1988-93 Miguel Santana ## 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. ## ## Process this file with automake to produce Makefile.in ## Since this package is written in ansi, be ready to un-ansify AUTOMAKE_OPTIONS = $(top_builddir)/lib/ansi2knr bin_PROGRAMS = a2ps DEFS = @DEFS@ -DLOCALEDIR=\"$(datadir)/locale\" a2ps_SOURCES = main.c \ read.c sshread.c ssheet.c select.c generate.c \ delegate.c regex.c buffer.c versions.c ffaces.c \ version-etc.c long-options.c \ parsessh.y lexssh.l lexps.l sheets-map.l noinst_HEADERS = main.h \ read.h sshread.h ssheet.h select.h generate.h \ delegate.h regex.h buffer.h versions.h ffaces.h \ version-etc.h long-options.h \ yy2ssh.h lexps.h BUILT_SOURCES = parsessh.c parsessh.h YFLAGS = -dtv LEX = @LEX@ # 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)... INCLUDES = -I.. -I$(srcdir) -I$(top_srcdir)/lib -I$(top_builddir)/intl a2ps_LDADD = $(top_builddir)/lib/liba2ps.la @LIBINTL@ -lm EXTRA_DIST = $(BUILT_SOURCES) a2ps-4.14/src/versions.h0000644000175000017500000000332110735322023014431 0ustar mhattamhatta/* * versions.h -- Handling standard version numbers * 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. */ #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 PARAMS ((version_t version)); bool version_null_p PARAMS ((version_t version)); int version_cmp PARAMS ((version_t v1, version_t v2)); void version_cpy PARAMS ((version_t d, version_t s)); void version_self_print PARAMS ((version_t version , FILE *stream)); /* Return the length occupied by this version number once printed */ int version_length PARAMS ((version_t version)); void version_add PARAMS ((version_t v1, version_t v2)); void string_to_version PARAMS ((const char *string, version_t version)); #endif /* not defined VERSIONS_H_ */ a2ps-4.14/src/sheets-map.c0000644000175000017500000016127510735337363014654 0ustar mhattamhatta#line 2 "sheets-map.c" #line 4 "sheets-map.c" #define YY_INT_ALIGNED short int /* A lexical scanner generated by flex */ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 #define YY_FLEX_SUBMINOR_VERSION 33 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ #include #include #include #include /* end standard C headers. */ /* flex integer type definitions */ #ifndef FLEXINT_H #define FLEXINT_H /* C99 systems have . Non-C99 systems may or may not. */ #if __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 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; #endif /* ! C99 */ /* 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 #endif /* ! FLEXINT_H */ #ifdef __cplusplus /* The "const" storage-class-modifier is valid. */ #define YY_USE_CONST #else /* ! __cplusplus */ #if __STDC__ #define YY_USE_CONST #endif /* __STDC__ */ #endif /* ! __cplusplus */ #ifdef YY_USE_CONST #define yyconst const #else #define yyconst #endif /* Returned upon end-of-file. */ #define YY_NULL 0 /* Promotes a possibly negative, possibly signed char to an unsigned * integer for use as an array index. If the signed char is negative, * we want to instead treat it as an 8-bit unsigned char, hence the * double cast. */ #define YY_SC_TO_UI(c) ((unsigned int) (unsigned 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 smaprestart(smapin ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE #define YY_BUF_SIZE 16384 #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 extern int smapleng; extern FILE *smapin, *smapout; #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 smaplex. * One obvious solution it to make yy_act a global. I tried that, and saw * a 5% performance hit in a non-smaplineno 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 < smapleng; ++yyl )\ if ( smaptext[yyl] == '\n' )\ --smaplineno;\ }while(0) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ do \ { \ /* Undo effects of setting up smaptext. */ \ 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 smaptext again */ \ } \ while ( 0 ) #define unput(c) yyunput( c, (yytext_ptr) ) /* The following is because we cannot portably get our hands on size_t * (without autoconf's help, which isn't available because we want * flex-generated scanners to compile on their own). */ #ifndef YY_TYPEDEF_YY_SIZE_T #define YY_TYPEDEF_YY_SIZE_T typedef unsigned int yy_size_t; #endif #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. */ yy_size_t 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 smaprestart()), so that the user can continue scanning by * just pointing smapin 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 = 0; /**< 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 smaptext is formed. */ static char yy_hold_char; static int yy_n_chars; /* number of characters read into yy_ch_buf */ int smapleng; /* Points to current character in buffer. */ static char *yy_c_buf_p = (char *) 0; static int yy_init = 0; /* whether we need to initialize */ static int yy_start = 0; /* start state number */ /* Flag which is used to allow smapwrap()'s to do buffer switches * instead of setting up a fresh smapin. A bit of a hack ... */ static int yy_did_buffer_switch_on_eof; void smaprestart (FILE *input_file ); void smap_switch_to_buffer (YY_BUFFER_STATE new_buffer ); YY_BUFFER_STATE smap_create_buffer (FILE *file,int size ); void smap_delete_buffer (YY_BUFFER_STATE b ); void smap_flush_buffer (YY_BUFFER_STATE b ); void smappush_buffer_state (YY_BUFFER_STATE new_buffer ); void smappop_buffer_state (void ); static void smapensure_buffer_stack (void ); static void smap_load_buffer_state (void ); static void smap_init_buffer (YY_BUFFER_STATE b,FILE *file ); #define YY_FLUSH_BUFFER smap_flush_buffer(YY_CURRENT_BUFFER ) YY_BUFFER_STATE smap_scan_buffer (char *base,yy_size_t size ); YY_BUFFER_STATE smap_scan_string (yyconst char *yy_str ); YY_BUFFER_STATE smap_scan_bytes (yyconst char *bytes,int len ); void *smapalloc (yy_size_t ); void *smaprealloc (void *,yy_size_t ); void smapfree (void * ); #define yy_new_buffer smap_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ smapensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ smap_create_buffer(smapin,YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ smapensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ smap_create_buffer(smapin,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 unsigned char YY_CHAR; FILE *smapin = (FILE *) 0, *smapout = (FILE *) 0; typedef int yy_state_type; extern int smaplineno; int smaplineno = 1; extern char *smaptext; #define yytext_ptr smaptext 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 yy_fatal_error (yyconst char msg[] ); /* Done after the current pattern has been matched and before the * corresponding action - sets up smaptext. */ #define YY_DO_BEFORE_ACTION \ (yytext_ptr) = yy_bp; \ smapleng = (size_t) (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 yyconst 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 yyconst flex_int32_t 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 yyconst flex_int32_t 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 yyconst 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 yyconst 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 yyconst 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 yyconst 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 yyconst 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 smap_flex_debug; int smap_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 *smaptext; #line 1 "sheets-map.l" #line 2 "sheets-map.l" /* 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 "main.h" #include "select.h" #include "xobstack.h" extern struct darray * sheets_map; int smaplex PARAMS ((void)); void yyerror PARAMS ((const char *)); static void yy_include_push PARAMS ((char *file)); static void yy_include_pop PARAMS ((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 628 "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 #endif #ifndef YY_EXTRA_TYPE #define YY_EXTRA_TYPE void * #endif static int yy_init_globals (void ); /* Macros after this point can all be overridden by user definitions in * section 1. */ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus extern "C" int smapwrap (void ); #else extern int smapwrap (void ); #endif #endif static void yyunput (int c,char *buf_ptr ); #ifndef yytext_ptr static void yy_flex_strncpy (char *,yyconst char *,int ); #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (yyconst 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 #define YY_READ_BUF_SIZE 8192 #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 (void) fwrite( smaptext, smapleng, 1, smapout ) #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 = '*'; \ size_t n; \ for ( n = 0; n < max_size && \ (c = getc( smapin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ if ( c == '\n' ) \ buf[n++] = (char) c; \ if ( c == EOF && ferror( smapin ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ result = n; \ } \ else \ { \ errno=0; \ while ( (result = fread(buf, 1, max_size, smapin))==0 && ferror(smapin)) \ { \ if( errno != EINTR) \ { \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ break; \ } \ errno=0; \ clearerr(smapin); \ } \ }\ \ #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 smaplex (void); #define YY_DECL int smaplex (void) #endif /* !YY_DECL */ /* Code executed at the beginning of each rule, after smaptext and smapleng * 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 break; #endif #define YY_RULE_SETUP \ YY_USER_ACTION /** The main scanner function which does all the work. */ YY_DECL { register yy_state_type yy_current_state; register char *yy_cp, *yy_bp; register int yy_act; #line 98 "sheets-map.l" #line 786 "sheets-map.c" if ( !(yy_init) ) { (yy_init) = 1; #ifdef YY_USER_INIT YY_USER_INIT; #endif if ( ! (yy_start) ) (yy_start) = 1; /* first start state */ if ( ! smapin ) smapin = stdin; if ( ! smapout ) smapout = stdout; if ( ! YY_CURRENT_BUFFER ) { smapensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = smap_create_buffer(smapin,YY_BUF_SIZE ); } smap_load_buffer_state( ); } while ( 1 ) /* loops until end-of-file is reached */ { yy_cp = (yy_c_buf_p); /* Support of smaptext. */ *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 { register 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[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) 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 < smapleng; ++yyl ) if ( smaptext[yyl] == '\n' ) smaplineno++; ; } 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 100 "sheets-map.l" token_val = xstrndup (smaptext, smapleng - 1); return tKEY; YY_BREAK case 2: YY_RULE_SETUP #line 101 "sheets-map.l" BEGIN STATE_GLOB; YY_BREAK case 3: YY_RULE_SETUP #line 102 "sheets-map.l" BEGIN STATE_FILE; YY_BREAK case 4: /* rule 4 can match eol */ YY_RULE_SETUP #line 103 "sheets-map.l" ; YY_BREAK case 5: YY_RULE_SETUP #line 104 "sheets-map.l" ; YY_BREAK case 6: /* rule 6 can match eol */ YY_RULE_SETUP #line 105 "sheets-map.l" { /* Kill the closing paren and pass the file name. */ smaptext[smapleng - 1] = '\0'; yy_include_push (smaptext + strlen ("include(")); } YY_BREAK case 7: YY_RULE_SETUP #line 110 "sheets-map.l" { error_at_line (1, 0, yyfilename, smaplineno, _("unexpected character `%c'"), *smaptext); } YY_BREAK case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(STATE_GLOB): case YY_STATE_EOF(STATE_FILE): #line 113 "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 122 "sheets-map.l" { /* return the string */ uchar *string; obstack_1grow (&string_stack, '\0'); string = (uchar *) obstack_finish (&string_stack); obstack_free (&string_stack, string); token_val = xustrdup (string); /* Decode the additional flags. */ insensitive_p = smaptext[1] == 'i'; BEGIN INITIAL; /* Return to the regular scanning */ return tGLOB; } YY_BREAK case 9: YY_RULE_SETUP #line 137 "sheets-map.l" { obstack_octal_grow (&string_stack, smaptext + 1); } YY_BREAK case 10: YY_RULE_SETUP #line 138 "sheets-map.l" { obstack_hexa_grow (&string_stack, smaptext + 2); } YY_BREAK case 11: YY_RULE_SETUP #line 139 "sheets-map.l" { obstack_1grow (&string_stack, '\007'); } YY_BREAK case 12: YY_RULE_SETUP #line 140 "sheets-map.l" { obstack_1grow (&string_stack, '\b'); } YY_BREAK case 13: YY_RULE_SETUP #line 141 "sheets-map.l" { obstack_1grow (&string_stack, 127); } YY_BREAK case 14: YY_RULE_SETUP #line 142 "sheets-map.l" { obstack_1grow (&string_stack, 27); } YY_BREAK case 15: YY_RULE_SETUP #line 143 "sheets-map.l" { obstack_1grow (&string_stack, '\f'); } YY_BREAK case 16: YY_RULE_SETUP #line 144 "sheets-map.l" { obstack_1grow (&string_stack, '\n'); } YY_BREAK case 17: YY_RULE_SETUP #line 145 "sheets-map.l" { obstack_1grow (&string_stack, '\r'); } YY_BREAK case 18: YY_RULE_SETUP #line 146 "sheets-map.l" { obstack_1grow (&string_stack, '\t'); } YY_BREAK case 19: YY_RULE_SETUP #line 147 "sheets-map.l" { obstack_1grow (&string_stack, '\v'); } YY_BREAK case 20: YY_RULE_SETUP #line 148 "sheets-map.l" { obstack_1grow (&string_stack, smaptext[1]); } YY_BREAK case 21: /* rule 21 can match eol */ YY_RULE_SETUP #line 150 "sheets-map.l" { error_at_line (1, 0, yyfilename, smaplineno, /* TRANS: %s is ".." or <..> or /../ etc. */ _("end of line inside a %s"), "/../"); } YY_BREAK case 22: YY_RULE_SETUP #line 156 "sheets-map.l" { obstack_grow (&string_stack, smaptext, smapleng); } YY_BREAK /* string of characters */ case 23: YY_RULE_SETUP #line 162 "sheets-map.l" { /* return the string */ uchar *string; obstack_1grow (&string_stack, '\0'); string = (uchar *) obstack_finish (&string_stack); obstack_free (&string_stack, string); token_val = xustrdup (string); /* Decode the additional flags. */ insensitive_p = smaptext[1] == 'i'; BEGIN INITIAL; /* Return to the regular scanning */ return tFILE; } YY_BREAK case 24: YY_RULE_SETUP #line 177 "sheets-map.l" { obstack_octal_grow (&string_stack, smaptext + 1); } YY_BREAK case 25: YY_RULE_SETUP #line 178 "sheets-map.l" { obstack_hexa_grow (&string_stack, smaptext + 2); } YY_BREAK case 26: YY_RULE_SETUP #line 179 "sheets-map.l" { obstack_1grow (&string_stack, '\007'); } YY_BREAK case 27: YY_RULE_SETUP #line 180 "sheets-map.l" { obstack_1grow (&string_stack, '\b'); } YY_BREAK case 28: YY_RULE_SETUP #line 181 "sheets-map.l" { obstack_1grow (&string_stack, 127); } YY_BREAK case 29: YY_RULE_SETUP #line 182 "sheets-map.l" { obstack_1grow (&string_stack, 27); } YY_BREAK case 30: YY_RULE_SETUP #line 183 "sheets-map.l" { obstack_1grow (&string_stack, '\f'); } YY_BREAK case 31: YY_RULE_SETUP #line 184 "sheets-map.l" { obstack_1grow (&string_stack, '\n'); } YY_BREAK case 32: YY_RULE_SETUP #line 185 "sheets-map.l" { obstack_1grow (&string_stack, '\r'); } YY_BREAK case 33: YY_RULE_SETUP #line 186 "sheets-map.l" { obstack_1grow (&string_stack, '\t'); } YY_BREAK case 34: YY_RULE_SETUP #line 187 "sheets-map.l" { obstack_1grow (&string_stack, '\v'); } YY_BREAK case 35: YY_RULE_SETUP #line 188 "sheets-map.l" { obstack_1grow (&string_stack, smaptext[1]); } YY_BREAK case 36: /* rule 36 can match eol */ YY_RULE_SETUP #line 190 "sheets-map.l" { error_at_line (1, 0, yyfilename, smaplineno, _("end of line inside a %s"), "<..>"); } YY_BREAK case 37: YY_RULE_SETUP #line 195 "sheets-map.l" { obstack_grow (&string_stack, smaptext, smapleng); } YY_BREAK case 38: YY_RULE_SETUP #line 199 "sheets-map.l" ECHO; YY_BREAK #line 1131 "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 smapin at a new source and called * smaplex(). 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 = smapin; 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 ( smapwrap( ) ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up * smaptext, 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 smaplex */ /* 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) { register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; register char *source = (yytext_ptr); register 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; 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. */ smaprealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); } else /* Can't grow it, we don't own it. */ b->yy_ch_buf = 0; 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), (size_t) 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; smaprestart(smapin ); } 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; (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) { register yy_state_type yy_current_state; register char *yy_cp; yy_current_state = (yy_start); for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) { register 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[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) 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 ) { register int yy_is_jam; register char *yy_cp = (yy_c_buf_p); register 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[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; yy_is_jam = (yy_current_state == 73); return yy_is_jam ? 0 : yy_current_state; } static void yyunput (int c, register char * yy_bp ) { register char *yy_cp; yy_cp = (yy_c_buf_p); /* undo effects of setting up smaptext */ *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. */ register int number_to_move = (yy_n_chars) + 2; register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; register 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) = 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' ){ --smaplineno; } (yytext_ptr) = yy_bp; (yy_hold_char) = *yy_cp; (yy_c_buf_p) = yy_cp; } #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 = (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. */ smaprestart(smapin ); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { if ( smapwrap( ) ) return EOF; 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 smaptext */ (yy_hold_char) = *++(yy_c_buf_p); if ( c == '\n' ) smaplineno++; ; 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 smaprestart (FILE * input_file ) { if ( ! YY_CURRENT_BUFFER ){ smapensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = smap_create_buffer(smapin,YY_BUF_SIZE ); } smap_init_buffer(YY_CURRENT_BUFFER,input_file ); smap_load_buffer_state( ); } /** Switch to a different input buffer. * @param new_buffer The new input buffer. * */ void smap_switch_to_buffer (YY_BUFFER_STATE new_buffer ) { /* TODO. We should be able to replace this entire function body * with * smappop_buffer_state(); * smappush_buffer_state(new_buffer); */ smapensure_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; smap_load_buffer_state( ); /* We don't actually know whether we did this switch during * EOF (smapwrap()) processing, but the only time this flag * is looked at is after smapwrap() is called, so it's safe * to go ahead and always set it. */ (yy_did_buffer_switch_on_eof) = 1; } static void smap_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; smapin = 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 smap_create_buffer (FILE * file, int size ) { YY_BUFFER_STATE b; b = (YY_BUFFER_STATE) smapalloc(sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in smap_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 *) smapalloc(b->yy_buf_size + 2 ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in smap_create_buffer()" ); b->yy_is_our_buffer = 1; smap_init_buffer(b,file ); return b; } /** Destroy the buffer. * @param b a buffer created with smap_create_buffer() * */ void smap_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 ) smapfree((void *) b->yy_ch_buf ); smapfree((void *) b ); } #ifndef __cplusplus extern int isatty (int ); #endif /* __cplusplus */ /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a smaprestart() or at EOF. */ static void smap_init_buffer (YY_BUFFER_STATE b, FILE * file ) { int oerrno = errno; smap_flush_buffer(b ); b->yy_input_file = file; b->yy_fill_buffer = 1; /* If b is the current buffer, then smap_init_buffer was _probably_ * called from smaprestart() 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 smap_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 ) smap_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 smappush_buffer_state (YY_BUFFER_STATE new_buffer ) { if (new_buffer == NULL) return; smapensure_buffer_stack(); /* This block is copied from smap_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 smap_switch_to_buffer. */ smap_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 smappop_buffer_state (void) { if (!YY_CURRENT_BUFFER) return; smap_delete_buffer(YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; if ((yy_buffer_stack_top) > 0) --(yy_buffer_stack_top); if (YY_CURRENT_BUFFER) { smap_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 smapensure_buffer_stack (void) { int 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; (yy_buffer_stack) = (struct yy_buffer_state**)smapalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); 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. */ int grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; (yy_buffer_stack) = (struct yy_buffer_state**)smaprealloc ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state*) ); /* 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 smap_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 0; b = (YY_BUFFER_STATE) smapalloc(sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in smap_scan_buffer()" ); b->yy_buf_size = 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 = 0; 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; smap_switch_to_buffer(b ); return b; } /** Setup the input buffer state to scan a string. The next call to smaplex() 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 * smap_scan_bytes() instead. */ YY_BUFFER_STATE smap_scan_string (yyconst char * yystr ) { return smap_scan_bytes(yystr,strlen(yystr) ); } /** Setup the input buffer state to scan the given bytes. The next call to smaplex() will * scan from a @e copy of @a bytes. * @param bytes the byte buffer to scan * @param len the number of bytes in the buffer pointed to by @a bytes. * * @return the newly allocated buffer state object. */ YY_BUFFER_STATE smap_scan_bytes (yyconst 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 = _yybytes_len + 2; buf = (char *) smapalloc(n ); if ( ! buf ) YY_FATAL_ERROR( "out of dynamic memory in smap_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 = smap_scan_buffer(buf,n ); if ( ! b ) YY_FATAL_ERROR( "bad buffer in smap_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 yy_fatal_error (yyconst char* msg ) { (void) 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 smaptext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ smaptext[smapleng] = (yy_hold_char); \ (yy_c_buf_p) = smaptext + yyless_macro_arg; \ (yy_hold_char) = *(yy_c_buf_p); \ *(yy_c_buf_p) = '\0'; \ smapleng = yyless_macro_arg; \ } \ while ( 0 ) /* Accessor methods (get/set functions) to struct members. */ /** Get the current line number. * */ int smapget_lineno (void) { return smaplineno; } /** Get the input stream. * */ FILE *smapget_in (void) { return smapin; } /** Get the output stream. * */ FILE *smapget_out (void) { return smapout; } /** Get the length of the current token. * */ int smapget_leng (void) { return smapleng; } /** Get the current token. * */ char *smapget_text (void) { return smaptext; } /** Set the current line number. * @param line_number * */ void smapset_lineno (int line_number ) { smaplineno = line_number; } /** Set the input stream. This does not discard the current * input buffer. * @param in_str A readable stream. * * @see smap_switch_to_buffer */ void smapset_in (FILE * in_str ) { smapin = in_str ; } void smapset_out (FILE * out_str ) { smapout = out_str ; } int smapget_debug (void) { return smap_flex_debug; } void smapset_debug (int bdebug ) { smap_flex_debug = bdebug ; } static int yy_init_globals (void) { /* Initialization is the same as for the non-reentrant scanner. * This function is called from smaplex_destroy(), so don't allocate here. */ /* We do not touch smaplineno unless the option is enabled. */ smaplineno = 1; (yy_buffer_stack) = 0; (yy_buffer_stack_top) = 0; (yy_buffer_stack_max) = 0; (yy_c_buf_p) = (char *) 0; (yy_init) = 0; (yy_start) = 0; /* Defined in main.c */ #ifdef YY_STDINIT smapin = stdin; smapout = stdout; #else smapin = (FILE *) 0; smapout = (FILE *) 0; #endif /* For future reference: Set errno on error, since we are called by * smaplex_init() */ return 0; } /* smaplex_destroy is for both reentrant and non-reentrant scanners. */ int smaplex_destroy (void) { /* Pop the buffer stack, destroying each element. */ while(YY_CURRENT_BUFFER){ smap_delete_buffer(YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; smappop_buffer_state(); } /* Destroy the stack itself. */ smapfree((yy_buffer_stack) ); (yy_buffer_stack) = NULL; /* Reset the globals. This is important in a non-reentrant scanner so the next time * smaplex() is called, initialization will occur. */ yy_init_globals( ); return 0; } /* * Internal utility routines. */ #ifndef yytext_ptr static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) { register int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (yyconst char * s ) { register int n; for ( n = 0; s[n]; ++n ) ; return n; } #endif void *smapalloc (yy_size_t size ) { return (void *) malloc( size ); } void *smaprealloc (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 (void *) realloc( (char *) ptr, size ); } void smapfree (void * ptr ) { free( (char *) ptr ); /* see smaprealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" #line 199 "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] = smaplineno; filename_stack[include_stack_ptr++] = yyfilename; message (msg_file, (stderr, "%s:%d: includes %s\n", yyfilename, smaplineno, file)); yyfilename = file; smapin = xrfopen (yyfilename); smap_switch_to_buffer (smap_create_buffer (smapin, YY_BUF_SIZE)); } /* Pop the inclusion stack and proceed. To be called on <>.*/ static void yy_include_pop (void) { fclose (smapin); smap_delete_buffer (YY_CURRENT_BUFFER); yyfilename = filename_stack[include_stack_ptr]; smaplineno = lineno_stack[include_stack_ptr]; smap_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); smapin = xrfopen (yyfilename); include_stack_ptr = 0; } /* End of the scanning. */ static inline void yy_close (void) { fclose (smapin); free (yyfilename); } int smapwrap (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 = smaplex ())) { switch (token) { case tKEY: key = token_val; break; case tGLOB: if (!key) error_at_line (1, 0, yyfilename, smaplineno, _("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, smaplineno, _("no key defined for `%s'"), quotearg (token_val)); sheets_map_add (token_val, true, insensitive_p, key); break; } } yy_close (); } a2ps-4.14/src/Makefile.in0000644000175000017500000006201310735337310014465 0ustar mhattamhatta# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 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@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ ANSI2KNR = $(top_builddir)/lib/ansi2knr bin_PROGRAMS = a2ps$(EXEEXT) subdir = src DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in lexps.c lexssh.c parsessh.c sheets-map.c ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/a2_psutils.m4 \ $(top_srcdir)/m4/atexit.m4 $(top_srcdir)/m4/file.m4 \ $(top_srcdir)/m4/fp_echo.m4 $(top_srcdir)/m4/fullpath.m4 \ $(top_srcdir)/m4/gccwarn.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gperf-check.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \ $(top_srcdir)/m4/lex.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/lpr.m4 \ $(top_srcdir)/m4/m4.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \ $(top_srcdir)/m4/perl.m4 $(top_srcdir)/m4/prereq.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/protos.m4 \ $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/rename.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/strcasecmp.m4 \ $(top_srcdir)/m4/strftim.m4 $(top_srcdir)/m4/termios.m4 \ $(top_srcdir)/m4/tterm.m4 $(top_srcdir)/m4/uintmax_t.m4 \ $(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/winsz.m4 \ $(top_srcdir)/m4/xstrtoumax.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/auxdir/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = am__installdirs = "$(DESTDIR)$(bindir)" binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) PROGRAMS = $(bin_PROGRAMS) am_a2ps_OBJECTS = main$U.$(OBJEXT) read$U.$(OBJEXT) \ sshread$U.$(OBJEXT) ssheet$U.$(OBJEXT) select$U.$(OBJEXT) \ generate$U.$(OBJEXT) delegate$U.$(OBJEXT) regex$U.$(OBJEXT) \ buffer$U.$(OBJEXT) versions$U.$(OBJEXT) ffaces$U.$(OBJEXT) \ version-etc$U.$(OBJEXT) long-options$U.$(OBJEXT) \ parsessh$U.$(OBJEXT) lexssh$U.$(OBJEXT) lexps$U.$(OBJEXT) \ sheets-map$U.$(OBJEXT) a2ps_OBJECTS = $(am_a2ps_OBJECTS) a2ps_DEPENDENCIES = $(top_builddir)/lib/liba2ps.la DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/auxdir/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ LEXCOMPILE = $(LEX) $(LFLAGS) $(AM_LFLAGS) LTLEXCOMPILE = $(LIBTOOL) --mode=compile $(LEX) $(LFLAGS) $(AM_LFLAGS) YLWRAP = $(top_srcdir)/auxdir/ylwrap YACCCOMPILE = $(YACC) $(YFLAGS) $(AM_YFLAGS) LTYACCCOMPILE = $(LIBTOOL) --mode=compile $(YACC) $(YFLAGS) \ $(AM_YFLAGS) SOURCES = $(a2ps_SOURCES) DIST_SOURCES = $(a2ps_SOURCES) HEADERS = $(noinst_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ COM_DISPLAY = @COM_DISPLAY@ COM_LATEX = @COM_LATEX@ COM_PS2PDF = @COM_PS2PDF@ COM_PSUTILS = @COM_PSUTILS@ COM_TEXI = @COM_TEXI@ COM_acroread = @COM_acroread@ COM_acroread4 = @COM_acroread4@ COM_bzip = @COM_bzip@ COM_bzip2 = @COM_bzip2@ COM_convert = @COM_convert@ COM_distill = @COM_distill@ 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_netscape = @COM_netscape@ COM_pdf2ps = @COM_pdf2ps@ COM_ps2pdf = @COM_ps2pdf@ COM_psnup = @COM_psnup@ COM_psselect = @COM_psselect@ COM_tex = @COM_tex@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ -DLOCALEDIR=\"$(datadir)/locale\" DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ ENCODING = @ENCODING@ EXEEXT = @EXEEXT@ EXTENSIONS_FALSE = @EXTENSIONS_FALSE@ EXTENSIONS_TRUE = @EXTENSIONS_TRUE@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ F77 = @F77@ FFLAGS = @FFLAGS@ FILE_LINK = @FILE_LINK@ GMSGFMT = @GMSGFMT@ GNU_PACKAGE = @GNU_PACKAGE@ GPERF = @GPERF@ GREP = @GREP@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBVERSION = @LIBVERSION@ LN_S = @LN_S@ LPR = @LPR@ LPR_QUEUE_OPTION = @LPR_QUEUE_OPTION@ LTALLOCA = @LTALLOCA@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ M4 = @M4@ MAKEINFO = @MAKEINFO@ MEDIUM = @MEDIUM@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ POSUB = @POSUB@ PSFONT_PATH = @PSFONT_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ U = @U@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ YACC = @YACC@ YFLAGS = -dtv ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ acroread = @acroread@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ 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@ bzip = @bzip@ bzip2 = @bzip2@ convert = @convert@ datadir = @datadir@ datarootdir = @datarootdir@ distill = @distill@ docdir = @docdir@ dvidir = @dvidir@ dvips = @dvips@ exec_prefix = @exec_prefix@ file_prog = @file_prog@ ghostview = @ghostview@ 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@ netscape = @netscape@ oldincludedir = @oldincludedir@ pdf2ps = @pdf2ps@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ ps2pdf = @ps2pdf@ psdir = @psdir@ psnup = @psnup@ psselect = @psselect@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ tex = @tex@ AUTOMAKE_OPTIONS = $(top_builddir)/lib/ansi2knr a2ps_SOURCES = main.c \ read.c sshread.c ssheet.c select.c generate.c \ delegate.c regex.c buffer.c versions.c ffaces.c \ version-etc.c long-options.c \ parsessh.y lexssh.l lexps.l sheets-map.l noinst_HEADERS = main.h \ read.h sshread.h ssheet.h select.h generate.h \ delegate.h regex.h buffer.h versions.h ffaces.h \ version-etc.h long-options.h \ yy2ssh.h lexps.h BUILT_SOURCES = parsessh.c parsessh.h # 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)... INCLUDES = -I.. -I$(srcdir) -I$(top_srcdir)/lib -I$(top_builddir)/intl a2ps_LDADD = $(top_builddir)/lib/liba2ps.la @LIBINTL@ -lm EXTRA_DIST = $(BUILT_SOURCES) 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 \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/Makefile .PRECIOUS: 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__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ 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 install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ || test -f $$p1 \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ rm -f "$(DESTDIR)$(bindir)/$$f"; \ done clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done a2ps$(EXEEXT): $(a2ps_OBJECTS) $(a2ps_DEPENDENCIES) @rm -f a2ps$(EXEEXT) $(LINK) $(a2ps_LDFLAGS) $(a2ps_OBJECTS) $(a2ps_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c $(top_builddir)/lib/ansi2knr: cd $(top_builddir)/lib && $(MAKE) $(AM_MAKEFLAGS) ansi2knr mostlyclean-kr: -test "$U" = "" || rm -f *_.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/buffer$U.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/delegate$U.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ffaces$U.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/generate$U.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lexps$U.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lexssh$U.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/long-options$U.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main$U.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parsessh$U.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/read$U.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/regex$U.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/select$U.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sheets-map$U.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ssheet$U.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sshread$U.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/version-etc$U.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/versions$U.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< buffer_.c: buffer.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/buffer.c; then echo $(srcdir)/buffer.c; else echo buffer.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ delegate_.c: delegate.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/delegate.c; then echo $(srcdir)/delegate.c; else echo delegate.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ ffaces_.c: ffaces.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/ffaces.c; then echo $(srcdir)/ffaces.c; else echo ffaces.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ generate_.c: generate.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/generate.c; then echo $(srcdir)/generate.c; else echo generate.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ lexps_.c: lexps.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lexps.c; then echo $(srcdir)/lexps.c; else echo lexps.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ lexssh_.c: lexssh.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lexssh.c; then echo $(srcdir)/lexssh.c; else echo lexssh.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ long-options_.c: long-options.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/long-options.c; then echo $(srcdir)/long-options.c; else echo long-options.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ main_.c: main.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/main.c; then echo $(srcdir)/main.c; else echo main.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ parsessh_.c: parsessh.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/parsessh.c; then echo $(srcdir)/parsessh.c; else echo parsessh.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ read_.c: read.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/read.c; then echo $(srcdir)/read.c; else echo read.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ regex_.c: regex.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/regex.c; then echo $(srcdir)/regex.c; else echo regex.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ select_.c: select.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/select.c; then echo $(srcdir)/select.c; else echo select.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ sheets-map_.c: sheets-map.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/sheets-map.c; then echo $(srcdir)/sheets-map.c; else echo sheets-map.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ ssheet_.c: ssheet.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/ssheet.c; then echo $(srcdir)/ssheet.c; else echo ssheet.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ sshread_.c: sshread.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/sshread.c; then echo $(srcdir)/sshread.c; else echo sshread.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ version-etc_.c: version-etc.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/version-etc.c; then echo $(srcdir)/version-etc.c; else echo version-etc.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ versions_.c: versions.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/versions.c; then echo $(srcdir)/versions.c; else echo versions.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ buffer_.$(OBJEXT) buffer_.lo delegate_.$(OBJEXT) delegate_.lo \ ffaces_.$(OBJEXT) ffaces_.lo generate_.$(OBJEXT) generate_.lo \ lexps_.$(OBJEXT) lexps_.lo lexssh_.$(OBJEXT) lexssh_.lo \ long-options_.$(OBJEXT) long-options_.lo main_.$(OBJEXT) main_.lo \ parsessh_.$(OBJEXT) parsessh_.lo read_.$(OBJEXT) read_.lo \ regex_.$(OBJEXT) regex_.lo select_.$(OBJEXT) select_.lo \ sheets-map_.$(OBJEXT) sheets-map_.lo ssheet_.$(OBJEXT) ssheet_.lo \ sshread_.$(OBJEXT) sshread_.lo version-etc_.$(OBJEXT) version-etc_.lo \ versions_.$(OBJEXT) versions_.lo : $(ANSI2KNR) .l.c: $(SHELL) $(YLWRAP) $< $(LEX_OUTPUT_ROOT).c $@ -- $(LEXCOMPILE) .y.c: $(YACCCOMPILE) $< if test -f y.tab.h; then \ to=`echo "$*_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$$to/g" -e "s|y\.tab\.h|$*.h|" \ y.tab.h >$*.ht; \ rm -f y.tab.h; \ if cmp -s $*.ht $*.h; then \ rm -f $*.ht ;\ else \ mv $*.ht $*.h; \ fi; \ fi if test -f y.output; then \ mv y.output $*.output; \ fi sed '/^#/ s|y\.tab\.c|$@|' y.tab.c >$@t && mv $@t $@ rm -f y.tab.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-am all-am: Makefile $(PROGRAMS) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(bindir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -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 mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-exec-am: install-binPROGRAMS install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic mostlyclean-kr \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \ clean-generic clean-libtool ctags 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-data install-data-am install-exec \ install-exec-am install-info install-info-am install-man \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-kr \ mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \ uninstall-am uninstall-binPROGRAMS uninstall-info-am # 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.14/src/lexps.c0000644000175000017500000013022310735337363013726 0ustar mhattamhatta#line 2 "lexps.c" #line 4 "lexps.c" #define YY_INT_ALIGNED short int /* A lexical scanner generated by flex */ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 #define YY_FLEX_SUBMINOR_VERSION 33 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ #include #include #include #include /* end standard C headers. */ /* flex integer type definitions */ #ifndef FLEXINT_H #define FLEXINT_H /* C99 systems have . Non-C99 systems may or may not. */ #if __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 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; #endif /* ! C99 */ /* 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 #endif /* ! FLEXINT_H */ #ifdef __cplusplus /* The "const" storage-class-modifier is valid. */ #define YY_USE_CONST #else /* ! __cplusplus */ #if __STDC__ #define YY_USE_CONST #endif /* __STDC__ */ #endif /* ! __cplusplus */ #ifdef YY_USE_CONST #define yyconst const #else #define yyconst #endif /* Returned upon end-of-file. */ #define YY_NULL 0 /* Promotes a possibly negative, possibly signed char to an unsigned * integer for use as an array index. If the signed char is negative, * we want to instead treat it as an 8-bit unsigned char, hence the * double cast. */ #define YY_SC_TO_UI(c) ((unsigned int) (unsigned 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 psrestart(psin ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE #define YY_BUF_SIZE 16384 #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 extern int psleng; extern FILE *psin, *psout; #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 #define YY_LESS_LINENO(n) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ do \ { \ /* Undo effects of setting up pstext. */ \ 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 pstext again */ \ } \ while ( 0 ) #define unput(c) yyunput( c, (yytext_ptr) ) /* The following is because we cannot portably get our hands on size_t * (without autoconf's help, which isn't available because we want * flex-generated scanners to compile on their own). */ #ifndef YY_TYPEDEF_YY_SIZE_T #define YY_TYPEDEF_YY_SIZE_T typedef unsigned int yy_size_t; #endif #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. */ yy_size_t 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 psrestart()), so that the user can continue scanning by * just pointing psin 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 = 0; /**< 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 pstext is formed. */ static char yy_hold_char; static int yy_n_chars; /* number of characters read into yy_ch_buf */ int psleng; /* Points to current character in buffer. */ static char *yy_c_buf_p = (char *) 0; static int yy_init = 0; /* whether we need to initialize */ static int yy_start = 0; /* start state number */ /* Flag which is used to allow pswrap()'s to do buffer switches * instead of setting up a fresh psin. A bit of a hack ... */ static int yy_did_buffer_switch_on_eof; void psrestart (FILE *input_file ); void ps_switch_to_buffer (YY_BUFFER_STATE new_buffer ); YY_BUFFER_STATE ps_create_buffer (FILE *file,int size ); void ps_delete_buffer (YY_BUFFER_STATE b ); void ps_flush_buffer (YY_BUFFER_STATE b ); void pspush_buffer_state (YY_BUFFER_STATE new_buffer ); void pspop_buffer_state (void ); static void psensure_buffer_stack (void ); static void ps_load_buffer_state (void ); static void ps_init_buffer (YY_BUFFER_STATE b,FILE *file ); #define YY_FLUSH_BUFFER ps_flush_buffer(YY_CURRENT_BUFFER ) YY_BUFFER_STATE ps_scan_buffer (char *base,yy_size_t size ); YY_BUFFER_STATE ps_scan_string (yyconst char *yy_str ); YY_BUFFER_STATE ps_scan_bytes (yyconst char *bytes,int len ); void *psalloc (yy_size_t ); void *psrealloc (void *,yy_size_t ); void psfree (void * ); #define yy_new_buffer ps_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ psensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ ps_create_buffer(psin,YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ psensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ ps_create_buffer(psin,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 unsigned char YY_CHAR; FILE *psin = (FILE *) 0, *psout = (FILE *) 0; typedef int yy_state_type; extern int pslineno; int pslineno = 1; extern char *pstext; #define yytext_ptr pstext 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 yy_fatal_error (yyconst char msg[] ); /* Done after the current pattern has been matched and before the * corresponding action - sets up pstext. */ #define YY_DO_BEFORE_ACTION \ (yytext_ptr) = yy_bp; \ psleng = (size_t) (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 yyconst 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 yyconst flex_int32_t 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 yyconst flex_int32_t yy_meta[13] = { 0, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; static yyconst 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 yyconst 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 yyconst 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 yyconst 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 ps_flex_debug; int ps_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 *pstext; #line 1 "lexps.l" #line 2 "lexps.l" /* 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 "main.h" #include "lexps.h" int pslex PARAMS ((void)); void yyerror PARAMS ((const char *)); /* Initilizes the obstacks */ void pslex_initialize PARAMS ((void)); #line 501 "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 #endif #ifndef YY_EXTRA_TYPE #define YY_EXTRA_TYPE void * #endif static int yy_init_globals (void ); /* Macros after this point can all be overridden by user definitions in * section 1. */ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus extern "C" int pswrap (void ); #else extern int pswrap (void ); #endif #endif static void yyunput (int c,char *buf_ptr ); #ifndef yytext_ptr static void yy_flex_strncpy (char *,yyconst char *,int ); #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (yyconst 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 #define YY_READ_BUF_SIZE 8192 #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 (void) fwrite( pstext, psleng, 1, psout ) #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 = '*'; \ size_t n; \ for ( n = 0; n < max_size && \ (c = getc( psin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ if ( c == '\n' ) \ buf[n++] = (char) c; \ if ( c == EOF && ferror( psin ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ result = n; \ } \ else \ { \ errno=0; \ while ( (result = fread(buf, 1, max_size, psin))==0 && ferror(psin)) \ { \ if( errno != EINTR) \ { \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ break; \ } \ errno=0; \ clearerr(psin); \ } \ }\ \ #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 pslex (void); #define YY_DECL int pslex (void) #endif /* !YY_DECL */ /* Code executed at the beginning of each rule, after pstext and psleng * 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 break; #endif #define YY_RULE_SETUP \ if ( psleng > 0 ) \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \ (pstext[psleng - 1] == '\n'); \ YY_USER_ACTION /** The main scanner function which does all the work. */ YY_DECL { register yy_state_type yy_current_state; register char *yy_cp, *yy_bp; register int yy_act; #line 42 "lexps.l" #line 661 "lexps.c" if ( !(yy_init) ) { (yy_init) = 1; #ifdef YY_USER_INIT YY_USER_INIT; #endif if ( ! (yy_start) ) (yy_start) = 1; /* first start state */ if ( ! psin ) psin = stdin; if ( ! psout ) psout = stdout; if ( ! YY_CURRENT_BUFFER ) { psensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = ps_create_buffer(psin,YY_BUF_SIZE ); } ps_load_buffer_state( ); } while ( 1 ) /* loops until end-of-file is reached */ { yy_cp = (yy_c_buf_p); /* Support of pstext. */ *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 { register 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[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) 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 44 "lexps.l" { ECHO; pagedevice_dump (psout, job); BEGIN FINISH; } YY_BREAK case 2: YY_RULE_SETUP #line 50 "lexps.l" ECHO; YY_BREAK case 3: YY_RULE_SETUP #line 53 "lexps.l" ECHO; YY_BREAK case 4: YY_RULE_SETUP #line 55 "lexps.l" ECHO; YY_BREAK #line 772 "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 psin at a new source and called * pslex(). 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 = psin; 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 ( pswrap( ) ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up * pstext, 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 pslex */ /* 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) { register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; register char *source = (yytext_ptr); register 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; 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. */ psrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); } else /* Can't grow it, we don't own it. */ b->yy_ch_buf = 0; 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), (size_t) 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; psrestart(psin ); } 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; (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) { register yy_state_type yy_current_state; register 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 ) { register 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[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) 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 ) { register int yy_is_jam; register char *yy_cp = (yy_c_buf_p); register 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[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; yy_is_jam = (yy_current_state == 25); return yy_is_jam ? 0 : yy_current_state; } static void yyunput (int c, register char * yy_bp ) { register char *yy_cp; yy_cp = (yy_c_buf_p); /* undo effects of setting up pstext */ *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. */ register int number_to_move = (yy_n_chars) + 2; register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; register 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) = 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; } #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 = (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. */ psrestart(psin ); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { if ( pswrap( ) ) return EOF; 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 pstext */ (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 psrestart (FILE * input_file ) { if ( ! YY_CURRENT_BUFFER ){ psensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = ps_create_buffer(psin,YY_BUF_SIZE ); } ps_init_buffer(YY_CURRENT_BUFFER,input_file ); ps_load_buffer_state( ); } /** Switch to a different input buffer. * @param new_buffer The new input buffer. * */ void ps_switch_to_buffer (YY_BUFFER_STATE new_buffer ) { /* TODO. We should be able to replace this entire function body * with * pspop_buffer_state(); * pspush_buffer_state(new_buffer); */ psensure_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; ps_load_buffer_state( ); /* We don't actually know whether we did this switch during * EOF (pswrap()) processing, but the only time this flag * is looked at is after pswrap() is called, so it's safe * to go ahead and always set it. */ (yy_did_buffer_switch_on_eof) = 1; } static void ps_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; psin = 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 ps_create_buffer (FILE * file, int size ) { YY_BUFFER_STATE b; b = (YY_BUFFER_STATE) psalloc(sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in ps_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 *) psalloc(b->yy_buf_size + 2 ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in ps_create_buffer()" ); b->yy_is_our_buffer = 1; ps_init_buffer(b,file ); return b; } /** Destroy the buffer. * @param b a buffer created with ps_create_buffer() * */ void ps_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 ) psfree((void *) b->yy_ch_buf ); psfree((void *) b ); } #ifndef __cplusplus extern int isatty (int ); #endif /* __cplusplus */ /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a psrestart() or at EOF. */ static void ps_init_buffer (YY_BUFFER_STATE b, FILE * file ) { int oerrno = errno; ps_flush_buffer(b ); b->yy_input_file = file; b->yy_fill_buffer = 1; /* If b is the current buffer, then ps_init_buffer was _probably_ * called from psrestart() 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 ps_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 ) ps_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 pspush_buffer_state (YY_BUFFER_STATE new_buffer ) { if (new_buffer == NULL) return; psensure_buffer_stack(); /* This block is copied from ps_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 ps_switch_to_buffer. */ ps_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 pspop_buffer_state (void) { if (!YY_CURRENT_BUFFER) return; ps_delete_buffer(YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; if ((yy_buffer_stack_top) > 0) --(yy_buffer_stack_top); if (YY_CURRENT_BUFFER) { ps_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 psensure_buffer_stack (void) { int 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; (yy_buffer_stack) = (struct yy_buffer_state**)psalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); 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. */ int grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; (yy_buffer_stack) = (struct yy_buffer_state**)psrealloc ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state*) ); /* 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 ps_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 0; b = (YY_BUFFER_STATE) psalloc(sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in ps_scan_buffer()" ); b->yy_buf_size = 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 = 0; 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; ps_switch_to_buffer(b ); return b; } /** Setup the input buffer state to scan a string. The next call to pslex() 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 * ps_scan_bytes() instead. */ YY_BUFFER_STATE ps_scan_string (yyconst char * yystr ) { return ps_scan_bytes(yystr,strlen(yystr) ); } /** Setup the input buffer state to scan the given bytes. The next call to pslex() will * scan from a @e copy of @a bytes. * @param bytes the byte buffer to scan * @param len the number of bytes in the buffer pointed to by @a bytes. * * @return the newly allocated buffer state object. */ YY_BUFFER_STATE ps_scan_bytes (yyconst 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 = _yybytes_len + 2; buf = (char *) psalloc(n ); if ( ! buf ) YY_FATAL_ERROR( "out of dynamic memory in ps_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 = ps_scan_buffer(buf,n ); if ( ! b ) YY_FATAL_ERROR( "bad buffer in ps_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 yy_fatal_error (yyconst char* msg ) { (void) 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 pstext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ pstext[psleng] = (yy_hold_char); \ (yy_c_buf_p) = pstext + yyless_macro_arg; \ (yy_hold_char) = *(yy_c_buf_p); \ *(yy_c_buf_p) = '\0'; \ psleng = yyless_macro_arg; \ } \ while ( 0 ) /* Accessor methods (get/set functions) to struct members. */ /** Get the current line number. * */ int psget_lineno (void) { return pslineno; } /** Get the input stream. * */ FILE *psget_in (void) { return psin; } /** Get the output stream. * */ FILE *psget_out (void) { return psout; } /** Get the length of the current token. * */ int psget_leng (void) { return psleng; } /** Get the current token. * */ char *psget_text (void) { return pstext; } /** Set the current line number. * @param line_number * */ void psset_lineno (int line_number ) { pslineno = line_number; } /** Set the input stream. This does not discard the current * input buffer. * @param in_str A readable stream. * * @see ps_switch_to_buffer */ void psset_in (FILE * in_str ) { psin = in_str ; } void psset_out (FILE * out_str ) { psout = out_str ; } int psget_debug (void) { return ps_flex_debug; } void psset_debug (int bdebug ) { ps_flex_debug = bdebug ; } static int yy_init_globals (void) { /* Initialization is the same as for the non-reentrant scanner. * This function is called from pslex_destroy(), so don't allocate here. */ (yy_buffer_stack) = 0; (yy_buffer_stack_top) = 0; (yy_buffer_stack_max) = 0; (yy_c_buf_p) = (char *) 0; (yy_init) = 0; (yy_start) = 0; /* Defined in main.c */ #ifdef YY_STDINIT psin = stdin; psout = stdout; #else psin = (FILE *) 0; psout = (FILE *) 0; #endif /* For future reference: Set errno on error, since we are called by * pslex_init() */ return 0; } /* pslex_destroy is for both reentrant and non-reentrant scanners. */ int pslex_destroy (void) { /* Pop the buffer stack, destroying each element. */ while(YY_CURRENT_BUFFER){ ps_delete_buffer(YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; pspop_buffer_state(); } /* Destroy the stack itself. */ psfree((yy_buffer_stack) ); (yy_buffer_stack) = NULL; /* Reset the globals. This is important in a non-reentrant scanner so the next time * pslex() is called, initialization will occur. */ yy_init_globals( ); return 0; } /* * Internal utility routines. */ #ifndef yytext_ptr static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) { register int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (yyconst char * s ) { register int n; for ( n = 0; s[n]; ++n ) ; return n; } #endif void *psalloc (yy_size_t size ) { return (void *) malloc( size ); } void *psrealloc (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 (void *) realloc( (char *) ptr, size ); } void psfree (void * ptr ) { free( (char *) ptr ); /* see psrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" #line 55 "lexps.l" int pswrap (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) { psin = xrfopen (filename); psout = stream; pslex (); } a2ps-4.14/src/lexssh.l0000644000175000017500000003127410735324713014113 0ustar mhattamhatta%{ /* -*- 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 "main.h" #include "yy2ssh.h" #include "parsessh.h" #include "xobstack.h" #include "regex.h" /* Defines if the comments are printed or not */ extern int strip_level; /* #define YY_DECL yylex (YYSTYPE *lvalp);*/ int yylex PARAMS ((void)); void yyerror PARAMS ((const char *)); /* Initilizes the obstacks */ void sshlex_initialize PARAMS ((void)); /* Obstack for strings reading */ static struct obstack string_stack; /* The file we scan. */ const char * sshfilename; #define LATEX_SYM_RETURN(Str) \ yylval.string = (uchar *) 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 = xustrdup (yytext); return tSTRING; } . { return yytext[0]; } { /* string of characters */ \" { /* return the string */ uchar * string; obstack_1grow (&string_stack, '\0'); string = (uchar *) obstack_finish (&string_stack); obstack_free (&string_stack, string); BEGIN INITIAL; /* Return to the regular scanning */ yylval.string = xustrdup (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); } } { /* 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, 1); /* 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 = XMALLOC (char, pattern_len); 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.14/src/sshread.c0000644000175000017500000003217410735324714014226 0ustar mhattamhatta/* * sshread.c * * routines of input, and formatting according to the styles * Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana * Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana * $Id: sshread.c,v 1.1.1.1.2.1 2007/12/29 01:58:36 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. */ /* * $Id: sshread.c,v 1.1.1.1.2.1 2007/12/29 01:58:36 mhatta Exp $ */ #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 "assert.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, buffer->len, 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_face(_i_) \ (fface_get_face(token_dest_fface(_i_))) #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, 1); res->registers = XMALLOC (struct re_registers, 1); res->registers->start = XMALLOC (regoff_t, 30); res->registers->end = XMALLOC (regoff_t, 30); return res; } static inline struct darray * rhs_plain_new (void) { return rhs_new_single (NULL, 0, Plain_fface); } static inline void token_free (struct token *token) { free (token); } /* Where the token and its attributes are stored */ static struct token *token = NULL; #define token_set_registers(_start_, _len_) \ do { \ token->registers->start [0] = _start_; \ token->registers->end [0] = _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) { int start = buffer->curr; do buffer->curr++; while (sheet->alpha2[*(buffer->content + buffer->curr)] && !buffer_is_empty (buffer)); token->rhs = plain_rhs; token_dest (0)->face = Plain_fface; token->registers->start[0] = start; token->registers->end[0] = 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, uchar * alphabet) { struct rule **key; uchar *string = buffer->value + buffer->curr; int i; int res; /* First try the words */ if (words->min[*string]) for (key = words->max[*string] ; words->min[*string] <= key ; key--) { if (ustrprefix ((*key)->word, string) && !alphabet[string[ustrlen ((*key)->word)]]) { token->rhs = (*key)->rhs; token_set_registers (buffer->curr, ustrlen ((*key)->word)); buffer->curr += ustrlen ((*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 += 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 inline int match_operator (buffer_t * buffer, struct words *words) { struct rule **key; uchar *string = buffer->value + buffer->curr; int i; int res; /* First the words */ if (words->min[*string]) for (key = words->max[*string] ; words->min[*string] <= key ; key--) { if (ustrprefix ((*key)->word, string)) { token->rhs = (*key)->rhs; token_set_registers (buffer->curr, ustrlen ((*key)->word)); buffer->curr += ustrlen ((*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 += 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; uchar *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 += res; return SEQ (i); } } else { /* It's a string */ if (ustrprefix (SEQ (i)->open->word, string)) { token_set_registers (buffer->curr, ustrlen (SEQ (i)->open->word)); token->rhs = SEQ (i)->open->rhs; buffer->curr += ustrlen (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 imput 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] = buffer->curr++; token->registers->end[0] = buffer->curr; return 1; } else { /* (not in sequence) */ if ((sequence = match_sequence (buffer, sheet))) return 1; else if (sheet->alpha1[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] = buffer->curr++; token->registers->end[0] = buffer->curr; return 1; } #define GRAB_TAG(_tag_) \ do { \ ustrncat (_tag_, \ buffer->content + token_start (i), \ 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 */ uchar 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, (char *) bufenc); /* encoding_build_faces_wx (job, newenc); */ if (!newenc) error (0, 0, _ ("unknown encoding `%s', ignored"), quotearg ((char *) 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) ustrcat (Job->tag1, token_dest (i)->string); if (fface_get_flags (fface) & ff_Tag2) ustrcat (Job->tag2, token_dest (i)->string); if (fface_get_flags (fface) & ff_Tag3) ustrcat (Job->tag3, token_dest (i)->string); if (fface_get_flags (fface) & ff_Tag4) ustrcat (Job->tag4, token_dest (i)->string); /* Grab the dynamic encodings */ if (fface_get_flags (fface) & ff_Encoding) { grabbing_encoding = true; ustrcat (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, token_start (i), token_end (i), fface.face); } } /* FIXME: Find a way to remove the token some day token_free (token); */ } a2ps-4.14/src/select.h0000644000175000017500000000372410735324714014060 0ustar mhattamhatta/* * select.h * * Selection of a style * 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: select.h,v 1.1.1.1.2.1 2007/12/29 01:58:36 mhatta Exp $ */ #ifndef _SELECT_H_ #define _SELECT_H_ #include "ssheet.h" #include "darray.h" /* Used as hook when reading the options */ void set_requested_style PARAMS ((const char * arg)); /************************************************************************/ /* sheets.map handling */ /************************************************************************/ /* * Structure in charge of remembering the sheets read */ struct darray * sheets_map_new PARAMS ((void)); void sheets_map_add PARAMS ((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 PARAMS ((const uchar * name_to_match, const uchar * name_to_file)); struct pattern_rule * pattern_rule_new PARAMS ((const char *pattern, int on_file_verdict, bool insensitive_p, const char *command)); void sheets_map_load PARAMS ((const char *filename)); #endif /* !defined(_SELECT_H_) */ a2ps-4.14/src/ssheet.h0000644000175000017500000001560010735324714014070 0ustar mhattamhatta/* * ssheet.h * * definition of the languages style sheets * Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana * Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana * $Id: ssheet.h,v 1.1.1.1.2.1 2007/12/29 01:58:36 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 _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 { uchar * 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 { uchar *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 uchar * name; /* Who wrote it, and when */ const uchar * author; int version[4]; /* What version of a2ps is required? */ int requirement[4]; /* Note describing the mode or the language */ const uchar * 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). */ uchar alpha1 [256]; uchar 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 PARAMS ((uchar * string, int reg_ref, struct fface_s fface)); /* * The version numbers */ void style_sheet_set_version PARAMS ((struct style_sheet * sheet, const char * version_string)); int style_sheet_set_requirement PARAMS ((struct style_sheet * sheet, const char * version_string)); /* * The destinations (part of rule) */ struct darray * rhs_new PARAMS ((void)); struct darray * rhs_new_single PARAMS ((uchar * string, int reg_ref, struct fface_s fface)); void rhs_add PARAMS ((struct darray * dest, struct faced_string * str)); void rhs_self_print PARAMS ((struct darray * rhs, FILE * stream)); /* * Dealing with the keywords, rules and operators */ struct rule * rule_new PARAMS ((uchar * word, struct pattern * pattern, struct darray * destination, const char *filename, size_t line)); struct rule * keyword_rule_new PARAMS ((uchar * word, struct pattern * pattern, struct darray * destination, const char *filename, size_t line)); /* * Dealing with the sequences */ struct pattern * new_pattern PARAMS ((char * pattern, size_t len)); struct sequence * sequence_new PARAMS ((struct rule * Open, struct fface_s in_face, struct words * Close, struct words * exceptions)); void free_sequence PARAMS ((struct sequence * sequence)); struct sequence * new_C_string_sequence PARAMS ((const char * delimitor)); void sequence_self_print PARAMS ((struct sequence * v, FILE * stream)); /* * Dealing with the struct words */ struct words * words_new PARAMS ((const char * name_strings, const char * name_regexps, size_t size, size_t increment)); void words_free PARAMS ((struct words * words)); void words_add_string PARAMS ((struct words * words, struct rule * rule)); void words_add_regex PARAMS ((struct words * words, struct rule * rule)); void words_set_no_face PARAMS ((struct words * words, struct fface_s face)); void words_merge_rules_unique PARAMS ((struct words * words, struct words * new)); /* * Dealing with the style sheets */ struct style_sheet * new_style_sheet PARAMS ((const uchar * name)); void style_sheet_finalize PARAMS ((struct style_sheet * sheet)); void style_sheet_self_print PARAMS ((struct style_sheet * sheet, FILE * stream)); /* * Dealing with the hash table for style sheets */ struct hash_table_s * new_style_sheets PARAMS ((void)); struct style_sheet * get_style_sheet PARAMS ((const char * name)); /************************************************************************/ /* style selection */ /************************************************************************/ /* * List the style sheets */ void list_style_sheets_short PARAMS ((FILE * stream)); void list_style_sheets_long PARAMS ((FILE * strea)); void list_style_sheets_html PARAMS ((FILE * strea)); void list_style_sheets_texinfo PARAMS ((FILE * strea)); #endif /* not defined _SSHEET_H_ */ a2ps-4.14/src/lexssh.c0000644000175000017500000030110510735337362014077 0ustar mhattamhatta#line 2 "lexssh.c" #line 4 "lexssh.c" #define YY_INT_ALIGNED short int /* A lexical scanner generated by flex */ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 #define YY_FLEX_SUBMINOR_VERSION 33 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ #include #include #include #include /* end standard C headers. */ /* flex integer type definitions */ #ifndef FLEXINT_H #define FLEXINT_H /* C99 systems have . Non-C99 systems may or may not. */ #if __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 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; #endif /* ! C99 */ /* 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 #endif /* ! FLEXINT_H */ #ifdef __cplusplus /* The "const" storage-class-modifier is valid. */ #define YY_USE_CONST #else /* ! __cplusplus */ #if __STDC__ #define YY_USE_CONST #endif /* __STDC__ */ #endif /* ! __cplusplus */ #ifdef YY_USE_CONST #define yyconst const #else #define yyconst #endif /* Returned upon end-of-file. */ #define YY_NULL 0 /* Promotes a possibly negative, possibly signed char to an unsigned * integer for use as an array index. If the signed char is negative, * we want to instead treat it as an 8-bit unsigned char, hence the * double cast. */ #define YY_SC_TO_UI(c) ((unsigned int) (unsigned 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 sshrestart(sshin ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE #define YY_BUF_SIZE 16384 #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 extern int sshleng; extern FILE *sshin, *sshout; #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 sshlex. * One obvious solution it to make yy_act a global. I tried that, and saw * a 5% performance hit in a non-sshlineno 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 < sshleng; ++yyl )\ if ( sshtext[yyl] == '\n' )\ --sshlineno;\ }while(0) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ do \ { \ /* Undo effects of setting up sshtext. */ \ 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 sshtext again */ \ } \ while ( 0 ) #define unput(c) yyunput( c, (yytext_ptr) ) /* The following is because we cannot portably get our hands on size_t * (without autoconf's help, which isn't available because we want * flex-generated scanners to compile on their own). */ #ifndef YY_TYPEDEF_YY_SIZE_T #define YY_TYPEDEF_YY_SIZE_T typedef unsigned int yy_size_t; #endif #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. */ yy_size_t 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 sshrestart()), so that the user can continue scanning by * just pointing sshin 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 = 0; /**< 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 sshtext is formed. */ static char yy_hold_char; static int yy_n_chars; /* number of characters read into yy_ch_buf */ int sshleng; /* Points to current character in buffer. */ static char *yy_c_buf_p = (char *) 0; static int yy_init = 0; /* whether we need to initialize */ static int yy_start = 0; /* start state number */ /* Flag which is used to allow sshwrap()'s to do buffer switches * instead of setting up a fresh sshin. A bit of a hack ... */ static int yy_did_buffer_switch_on_eof; void sshrestart (FILE *input_file ); void ssh_switch_to_buffer (YY_BUFFER_STATE new_buffer ); YY_BUFFER_STATE ssh_create_buffer (FILE *file,int size ); void ssh_delete_buffer (YY_BUFFER_STATE b ); void ssh_flush_buffer (YY_BUFFER_STATE b ); void sshpush_buffer_state (YY_BUFFER_STATE new_buffer ); void sshpop_buffer_state (void ); static void sshensure_buffer_stack (void ); static void ssh_load_buffer_state (void ); static void ssh_init_buffer (YY_BUFFER_STATE b,FILE *file ); #define YY_FLUSH_BUFFER ssh_flush_buffer(YY_CURRENT_BUFFER ) YY_BUFFER_STATE ssh_scan_buffer (char *base,yy_size_t size ); YY_BUFFER_STATE ssh_scan_string (yyconst char *yy_str ); YY_BUFFER_STATE ssh_scan_bytes (yyconst char *bytes,int len ); void *sshalloc (yy_size_t ); void *sshrealloc (void *,yy_size_t ); void sshfree (void * ); #define yy_new_buffer ssh_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ sshensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ ssh_create_buffer(sshin,YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ sshensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ ssh_create_buffer(sshin,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 unsigned char YY_CHAR; FILE *sshin = (FILE *) 0, *sshout = (FILE *) 0; typedef int yy_state_type; extern int sshlineno; int sshlineno = 1; extern char *sshtext; #define yytext_ptr sshtext 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 yy_fatal_error (yyconst char msg[] ); /* Done after the current pattern has been matched and before the * corresponding action - sets up sshtext. */ #define YY_DO_BEFORE_ACTION \ (yytext_ptr) = yy_bp; \ sshleng = (size_t) (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 yyconst 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 yyconst flex_int32_t 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 yyconst flex_int32_t 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 yyconst 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 yyconst 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 yyconst 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 yyconst 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 yyconst 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 ssh_flex_debug; int ssh_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 *sshtext; #line 1 "lexssh.l" #line 2 "lexssh.l" /* * 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 "main.h" #include "yy2ssh.h" #include "parsessh.h" #include "xobstack.h" #include "regex.h" /* Defines if the comments are printed or not */ extern int strip_level; /* #define YY_DECL sshlex (YYSTYPE *lvalp);*/ int sshlex PARAMS ((void)); void yyerror PARAMS ((const char *)); /* Initilizes the obstacks */ void sshlex_initialize PARAMS ((void)); /* Obstack for strings reading */ static struct obstack string_stack; /* The file we scan. */ const char * sshfilename; #define LATEX_SYM_RETURN(Str) \ yylval.string = (uchar *) xstrdup (Str) ; return tLATEXSYMBOL ; #define RETURN_FACE(_f_)\ {yylval.face = _f_ ; return tFACE ;} #define RETURN_FFLAGS(_f_)\ {yylval.fflags = _f_ ; return tFFLAGS ;} #line 1085 "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 #endif #ifndef YY_EXTRA_TYPE #define YY_EXTRA_TYPE void * #endif static int yy_init_globals (void ); /* Macros after this point can all be overridden by user definitions in * section 1. */ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus extern "C" int sshwrap (void ); #else extern int sshwrap (void ); #endif #endif static void yyunput (int c,char *buf_ptr ); #ifndef yytext_ptr static void yy_flex_strncpy (char *,yyconst char *,int ); #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (yyconst 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 #define YY_READ_BUF_SIZE 8192 #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 (void) fwrite( sshtext, sshleng, 1, sshout ) #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 = '*'; \ size_t n; \ for ( n = 0; n < max_size && \ (c = getc( sshin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ if ( c == '\n' ) \ buf[n++] = (char) c; \ if ( c == EOF && ferror( sshin ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ result = n; \ } \ else \ { \ errno=0; \ while ( (result = fread(buf, 1, max_size, sshin))==0 && ferror(sshin)) \ { \ if( errno != EINTR) \ { \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ break; \ } \ errno=0; \ clearerr(sshin); \ } \ }\ \ #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 sshlex (void); #define YY_DECL int sshlex (void) #endif /* !YY_DECL */ /* Code executed at the beginning of each rule, after sshtext and sshleng * 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 break; #endif #define YY_RULE_SETUP \ YY_USER_ACTION /** The main scanner function which does all the work. */ YY_DECL { register yy_state_type yy_current_state; register char *yy_cp, *yy_bp; register int yy_act; #line 78 "lexssh.l" #line 1243 "lexssh.c" if ( !(yy_init) ) { (yy_init) = 1; #ifdef YY_USER_INIT YY_USER_INIT; #endif if ( ! (yy_start) ) (yy_start) = 1; /* first start state */ if ( ! sshin ) sshin = stdin; if ( ! sshout ) sshout = stdout; if ( ! YY_CURRENT_BUFFER ) { sshensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = ssh_create_buffer(sshin,YY_BUF_SIZE ); } ssh_load_buffer_state( ); } while ( 1 ) /* loops until end-of-file is reached */ { yy_cp = (yy_c_buf_p); /* Support of sshtext. */ *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 { register 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[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) 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 < sshleng; ++yyl ) if ( sshtext[yyl] == '\n' ) sshlineno++; ; } 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 80 "lexssh.l" { ; } YY_BREAK case 2: /* rule 2 can match eol */ YY_RULE_SETUP #line 81 "lexssh.l" { ; } YY_BREAK case 3: YY_RULE_SETUP #line 83 "lexssh.l" { BEGIN STATE_STRING; } YY_BREAK case 4: YY_RULE_SETUP #line 84 "lexssh.l" { BEGIN STATE_REGEXP; } YY_BREAK case 5: YY_RULE_SETUP #line 86 "lexssh.l" LATEX_SYM_RETURN ("\042"); YY_BREAK case 6: YY_RULE_SETUP #line 87 "lexssh.l" LATEX_SYM_RETURN ("\044"); YY_BREAK case 7: YY_RULE_SETUP #line 88 "lexssh.l" LATEX_SYM_RETURN ("\047"); YY_BREAK case 8: YY_RULE_SETUP #line 89 "lexssh.l" LATEX_SYM_RETURN ("\100"); YY_BREAK case 9: YY_RULE_SETUP #line 90 "lexssh.l" LATEX_SYM_RETURN ("\101"); YY_BREAK case 10: YY_RULE_SETUP #line 91 "lexssh.l" LATEX_SYM_RETURN ("\102"); YY_BREAK case 11: YY_RULE_SETUP #line 92 "lexssh.l" LATEX_SYM_RETURN ("\103"); YY_BREAK case 12: YY_RULE_SETUP #line 93 "lexssh.l" LATEX_SYM_RETURN ("\104"); YY_BREAK case 13: YY_RULE_SETUP #line 94 "lexssh.l" LATEX_SYM_RETURN ("\105"); YY_BREAK case 14: YY_RULE_SETUP #line 95 "lexssh.l" LATEX_SYM_RETURN ("\106"); YY_BREAK case 15: YY_RULE_SETUP #line 96 "lexssh.l" LATEX_SYM_RETURN ("\107"); YY_BREAK case 16: YY_RULE_SETUP #line 97 "lexssh.l" LATEX_SYM_RETURN ("\110"); YY_BREAK case 17: YY_RULE_SETUP #line 98 "lexssh.l" LATEX_SYM_RETURN ("\111"); YY_BREAK case 18: YY_RULE_SETUP #line 99 "lexssh.l" LATEX_SYM_RETURN ("\112"); YY_BREAK case 19: YY_RULE_SETUP #line 100 "lexssh.l" LATEX_SYM_RETURN ("\113"); YY_BREAK case 20: YY_RULE_SETUP #line 101 "lexssh.l" LATEX_SYM_RETURN ("\114"); YY_BREAK case 21: YY_RULE_SETUP #line 102 "lexssh.l" LATEX_SYM_RETURN ("\115"); YY_BREAK case 22: YY_RULE_SETUP #line 103 "lexssh.l" LATEX_SYM_RETURN ("\116"); YY_BREAK case 23: YY_RULE_SETUP #line 104 "lexssh.l" LATEX_SYM_RETURN ("\117"); YY_BREAK case 24: YY_RULE_SETUP #line 105 "lexssh.l" LATEX_SYM_RETURN ("\120"); YY_BREAK case 25: YY_RULE_SETUP #line 106 "lexssh.l" LATEX_SYM_RETURN ("\121"); YY_BREAK case 26: YY_RULE_SETUP #line 107 "lexssh.l" LATEX_SYM_RETURN ("\122"); YY_BREAK case 27: YY_RULE_SETUP #line 108 "lexssh.l" LATEX_SYM_RETURN ("\123"); YY_BREAK case 28: YY_RULE_SETUP #line 109 "lexssh.l" LATEX_SYM_RETURN ("\124"); YY_BREAK case 29: YY_RULE_SETUP #line 110 "lexssh.l" LATEX_SYM_RETURN ("\125"); YY_BREAK case 30: YY_RULE_SETUP #line 111 "lexssh.l" LATEX_SYM_RETURN ("\126"); YY_BREAK case 31: YY_RULE_SETUP #line 112 "lexssh.l" LATEX_SYM_RETURN ("\127"); YY_BREAK case 32: YY_RULE_SETUP #line 113 "lexssh.l" LATEX_SYM_RETURN ("\130"); YY_BREAK case 33: YY_RULE_SETUP #line 114 "lexssh.l" LATEX_SYM_RETURN ("\131"); YY_BREAK case 34: YY_RULE_SETUP #line 115 "lexssh.l" LATEX_SYM_RETURN ("\132"); YY_BREAK case 35: YY_RULE_SETUP #line 116 "lexssh.l" LATEX_SYM_RETURN ("\134"); YY_BREAK case 36: YY_RULE_SETUP #line 117 "lexssh.l" LATEX_SYM_RETURN ("\136"); YY_BREAK case 37: YY_RULE_SETUP #line 118 "lexssh.l" LATEX_SYM_RETURN ("\140"); YY_BREAK case 38: YY_RULE_SETUP #line 119 "lexssh.l" LATEX_SYM_RETURN ("\141"); YY_BREAK case 39: YY_RULE_SETUP #line 120 "lexssh.l" LATEX_SYM_RETURN ("\142"); YY_BREAK case 40: YY_RULE_SETUP #line 121 "lexssh.l" LATEX_SYM_RETURN ("\143"); YY_BREAK case 41: YY_RULE_SETUP #line 122 "lexssh.l" LATEX_SYM_RETURN ("\144"); YY_BREAK case 42: YY_RULE_SETUP #line 123 "lexssh.l" LATEX_SYM_RETURN ("\145"); YY_BREAK case 43: YY_RULE_SETUP #line 124 "lexssh.l" LATEX_SYM_RETURN ("\146"); YY_BREAK case 44: YY_RULE_SETUP #line 125 "lexssh.l" LATEX_SYM_RETURN ("\147"); YY_BREAK case 45: YY_RULE_SETUP #line 126 "lexssh.l" LATEX_SYM_RETURN ("\150"); YY_BREAK case 46: YY_RULE_SETUP #line 127 "lexssh.l" LATEX_SYM_RETURN ("\151"); YY_BREAK case 47: YY_RULE_SETUP #line 128 "lexssh.l" LATEX_SYM_RETURN ("\152"); YY_BREAK case 48: YY_RULE_SETUP #line 129 "lexssh.l" LATEX_SYM_RETURN ("\153"); YY_BREAK case 49: YY_RULE_SETUP #line 130 "lexssh.l" LATEX_SYM_RETURN ("\154"); YY_BREAK case 50: YY_RULE_SETUP #line 131 "lexssh.l" LATEX_SYM_RETURN ("\155"); YY_BREAK case 51: YY_RULE_SETUP #line 132 "lexssh.l" LATEX_SYM_RETURN ("\156"); YY_BREAK case 52: YY_RULE_SETUP #line 133 "lexssh.l" LATEX_SYM_RETURN ("\157"); YY_BREAK case 53: YY_RULE_SETUP #line 134 "lexssh.l" LATEX_SYM_RETURN ("\160"); YY_BREAK case 54: YY_RULE_SETUP #line 135 "lexssh.l" LATEX_SYM_RETURN ("\161"); YY_BREAK case 55: YY_RULE_SETUP #line 136 "lexssh.l" LATEX_SYM_RETURN ("\162"); YY_BREAK case 56: YY_RULE_SETUP #line 137 "lexssh.l" LATEX_SYM_RETURN ("\163"); YY_BREAK case 57: YY_RULE_SETUP #line 138 "lexssh.l" LATEX_SYM_RETURN ("\164"); YY_BREAK case 58: YY_RULE_SETUP #line 139 "lexssh.l" LATEX_SYM_RETURN ("\165"); YY_BREAK case 59: YY_RULE_SETUP #line 140 "lexssh.l" LATEX_SYM_RETURN ("\166"); YY_BREAK case 60: YY_RULE_SETUP #line 141 "lexssh.l" LATEX_SYM_RETURN ("\167"); YY_BREAK case 61: YY_RULE_SETUP #line 142 "lexssh.l" LATEX_SYM_RETURN ("\170"); YY_BREAK case 62: YY_RULE_SETUP #line 143 "lexssh.l" LATEX_SYM_RETURN ("\171"); YY_BREAK case 63: YY_RULE_SETUP #line 144 "lexssh.l" LATEX_SYM_RETURN ("\172"); YY_BREAK case 64: YY_RULE_SETUP #line 145 "lexssh.l" LATEX_SYM_RETURN ("\176"); YY_BREAK case 65: YY_RULE_SETUP #line 146 "lexssh.l" LATEX_SYM_RETURN ("\241"); YY_BREAK case 66: YY_RULE_SETUP #line 147 "lexssh.l" LATEX_SYM_RETURN ("\242"); YY_BREAK case 67: YY_RULE_SETUP #line 148 "lexssh.l" LATEX_SYM_RETURN ("\243"); YY_BREAK case 68: YY_RULE_SETUP #line 149 "lexssh.l" LATEX_SYM_RETURN ("\245"); YY_BREAK case 69: YY_RULE_SETUP #line 150 "lexssh.l" LATEX_SYM_RETURN ("\246"); YY_BREAK case 70: YY_RULE_SETUP #line 151 "lexssh.l" LATEX_SYM_RETURN ("\247"); YY_BREAK case 71: YY_RULE_SETUP #line 152 "lexssh.l" LATEX_SYM_RETURN ("\250"); YY_BREAK case 72: YY_RULE_SETUP #line 153 "lexssh.l" LATEX_SYM_RETURN ("\251"); YY_BREAK case 73: YY_RULE_SETUP #line 154 "lexssh.l" LATEX_SYM_RETURN ("\252"); YY_BREAK case 74: YY_RULE_SETUP #line 155 "lexssh.l" LATEX_SYM_RETURN ("\253"); YY_BREAK case 75: YY_RULE_SETUP #line 156 "lexssh.l" LATEX_SYM_RETURN ("\254"); YY_BREAK case 76: YY_RULE_SETUP #line 157 "lexssh.l" LATEX_SYM_RETURN ("\255"); YY_BREAK case 77: YY_RULE_SETUP #line 158 "lexssh.l" LATEX_SYM_RETURN ("\256"); YY_BREAK case 78: YY_RULE_SETUP #line 159 "lexssh.l" LATEX_SYM_RETURN ("\257"); YY_BREAK case 79: YY_RULE_SETUP #line 160 "lexssh.l" LATEX_SYM_RETURN ("\260"); YY_BREAK case 80: YY_RULE_SETUP #line 161 "lexssh.l" LATEX_SYM_RETURN ("\261"); YY_BREAK case 81: YY_RULE_SETUP #line 162 "lexssh.l" LATEX_SYM_RETURN ("\263"); YY_BREAK case 82: YY_RULE_SETUP #line 163 "lexssh.l" LATEX_SYM_RETURN ("\264"); YY_BREAK case 83: YY_RULE_SETUP #line 164 "lexssh.l" LATEX_SYM_RETURN ("\265"); YY_BREAK case 84: YY_RULE_SETUP #line 165 "lexssh.l" LATEX_SYM_RETURN ("\266"); YY_BREAK case 85: YY_RULE_SETUP #line 166 "lexssh.l" LATEX_SYM_RETURN ("\267"); YY_BREAK case 86: YY_RULE_SETUP #line 167 "lexssh.l" LATEX_SYM_RETURN ("\270"); YY_BREAK case 87: YY_RULE_SETUP #line 168 "lexssh.l" LATEX_SYM_RETURN ("\271"); YY_BREAK case 88: YY_RULE_SETUP #line 169 "lexssh.l" LATEX_SYM_RETURN ("\272"); YY_BREAK case 89: YY_RULE_SETUP #line 170 "lexssh.l" LATEX_SYM_RETURN ("\273"); YY_BREAK case 90: YY_RULE_SETUP #line 171 "lexssh.l" LATEX_SYM_RETURN ("\274"); YY_BREAK case 91: YY_RULE_SETUP #line 172 "lexssh.l" LATEX_SYM_RETURN ("\276"); YY_BREAK case 92: YY_RULE_SETUP #line 173 "lexssh.l" LATEX_SYM_RETURN ("\277"); YY_BREAK case 93: YY_RULE_SETUP #line 174 "lexssh.l" LATEX_SYM_RETURN ("\300"); YY_BREAK case 94: YY_RULE_SETUP #line 175 "lexssh.l" LATEX_SYM_RETURN ("\301"); YY_BREAK case 95: YY_RULE_SETUP #line 176 "lexssh.l" LATEX_SYM_RETURN ("\302"); YY_BREAK case 96: YY_RULE_SETUP #line 177 "lexssh.l" LATEX_SYM_RETURN ("\303"); YY_BREAK case 97: YY_RULE_SETUP #line 178 "lexssh.l" LATEX_SYM_RETURN ("\304"); YY_BREAK case 98: YY_RULE_SETUP #line 179 "lexssh.l" LATEX_SYM_RETURN ("\305"); YY_BREAK case 99: YY_RULE_SETUP #line 180 "lexssh.l" LATEX_SYM_RETURN ("\306"); YY_BREAK case 100: YY_RULE_SETUP #line 181 "lexssh.l" LATEX_SYM_RETURN ("\307"); YY_BREAK case 101: YY_RULE_SETUP #line 182 "lexssh.l" LATEX_SYM_RETURN ("\310"); YY_BREAK case 102: YY_RULE_SETUP #line 183 "lexssh.l" LATEX_SYM_RETURN ("\311"); YY_BREAK case 103: YY_RULE_SETUP #line 184 "lexssh.l" LATEX_SYM_RETURN ("\312"); YY_BREAK case 104: YY_RULE_SETUP #line 185 "lexssh.l" LATEX_SYM_RETURN ("\313"); YY_BREAK case 105: YY_RULE_SETUP #line 186 "lexssh.l" LATEX_SYM_RETURN ("\314"); YY_BREAK case 106: YY_RULE_SETUP #line 187 "lexssh.l" LATEX_SYM_RETURN ("\315"); YY_BREAK case 107: YY_RULE_SETUP #line 188 "lexssh.l" LATEX_SYM_RETURN ("\316"); YY_BREAK case 108: YY_RULE_SETUP #line 189 "lexssh.l" LATEX_SYM_RETURN ("\317"); YY_BREAK case 109: YY_RULE_SETUP #line 190 "lexssh.l" LATEX_SYM_RETURN ("\320"); YY_BREAK case 110: YY_RULE_SETUP #line 191 "lexssh.l" LATEX_SYM_RETURN ("\321"); YY_BREAK case 111: YY_RULE_SETUP #line 192 "lexssh.l" LATEX_SYM_RETURN ("\322"); YY_BREAK case 112: YY_RULE_SETUP #line 193 "lexssh.l" LATEX_SYM_RETURN ("\324"); YY_BREAK case 113: YY_RULE_SETUP #line 194 "lexssh.l" LATEX_SYM_RETURN ("\324"); YY_BREAK case 114: YY_RULE_SETUP #line 195 "lexssh.l" LATEX_SYM_RETURN ("\325"); YY_BREAK case 115: YY_RULE_SETUP #line 196 "lexssh.l" LATEX_SYM_RETURN ("\326"); YY_BREAK case 116: YY_RULE_SETUP #line 197 "lexssh.l" LATEX_SYM_RETURN ("\327"); YY_BREAK case 117: YY_RULE_SETUP #line 198 "lexssh.l" LATEX_SYM_RETURN ("\330"); YY_BREAK case 118: YY_RULE_SETUP #line 199 "lexssh.l" LATEX_SYM_RETURN ("\331"); YY_BREAK case 119: YY_RULE_SETUP #line 200 "lexssh.l" LATEX_SYM_RETURN ("\332"); YY_BREAK case 120: YY_RULE_SETUP #line 201 "lexssh.l" LATEX_SYM_RETURN ("\333"); YY_BREAK case 121: YY_RULE_SETUP #line 202 "lexssh.l" LATEX_SYM_RETURN ("\334"); YY_BREAK case 122: YY_RULE_SETUP #line 203 "lexssh.l" LATEX_SYM_RETURN ("\335"); YY_BREAK case 123: YY_RULE_SETUP #line 204 "lexssh.l" LATEX_SYM_RETURN ("\336"); YY_BREAK case 124: YY_RULE_SETUP #line 205 "lexssh.l" LATEX_SYM_RETURN ("\337"); YY_BREAK case 125: YY_RULE_SETUP #line 206 "lexssh.l" LATEX_SYM_RETURN ("\340"); YY_BREAK case 126: YY_RULE_SETUP #line 207 "lexssh.l" LATEX_SYM_RETURN ("\341"); YY_BREAK case 127: YY_RULE_SETUP #line 208 "lexssh.l" LATEX_SYM_RETURN ("\342"); YY_BREAK case 128: YY_RULE_SETUP #line 209 "lexssh.l" LATEX_SYM_RETURN ("\342"); YY_BREAK case 129: YY_RULE_SETUP #line 210 "lexssh.l" LATEX_SYM_RETURN ("\344"); YY_BREAK case 130: YY_RULE_SETUP #line 211 "lexssh.l" LATEX_SYM_RETURN ("\345"); YY_BREAK case 131: YY_RULE_SETUP #line 212 "lexssh.l" LATEX_SYM_RETURN ("\351"); YY_BREAK case 132: YY_RULE_SETUP #line 213 "lexssh.l" LATEX_SYM_RETURN ("\353"); YY_BREAK case 133: YY_RULE_SETUP #line 214 "lexssh.l" LATEX_SYM_RETURN ("\361"); YY_BREAK case 134: YY_RULE_SETUP #line 215 "lexssh.l" LATEX_SYM_RETURN ("\362"); YY_BREAK case 135: YY_RULE_SETUP #line 216 "lexssh.l" LATEX_SYM_RETURN ("\371"); YY_BREAK case 136: YY_RULE_SETUP #line 217 "lexssh.l" LATEX_SYM_RETURN ("\373"); YY_BREAK case 137: YY_RULE_SETUP #line 219 "lexssh.l" { int value = sshtext[1] - '0'; char *cursor = sshtext + 2; while (*cursor) value = 8 * value + *cursor++ - '0'; yylval.integer = value; return tBACK_REF; } YY_BREAK case 138: YY_RULE_SETUP #line 229 "lexssh.l" return tA2PS; YY_BREAK case 139: YY_RULE_SETUP #line 230 "lexssh.l" return tALPHABET; YY_BREAK case 140: YY_RULE_SETUP #line 231 "lexssh.l" return tALPHABETS; YY_BREAK case 141: YY_RULE_SETUP #line 232 "lexssh.l" return tANCESTORS; YY_BREAK case 142: YY_RULE_SETUP #line 233 "lexssh.l" return tARE; YY_BREAK case 143: YY_RULE_SETUP #line 234 "lexssh.l" return tBY; YY_BREAK case 144: YY_RULE_SETUP #line 235 "lexssh.l" return tCASE; YY_BREAK case 145: YY_RULE_SETUP #line 236 "lexssh.l" return tCLOSERS; YY_BREAK case 146: YY_RULE_SETUP #line 237 "lexssh.l" return tCCHAR; YY_BREAK case 147: YY_RULE_SETUP #line 238 "lexssh.l" return tCSTRING; YY_BREAK case 148: YY_RULE_SETUP #line 239 "lexssh.l" return tDOCUMENTATION; YY_BREAK case 149: YY_RULE_SETUP #line 240 "lexssh.l" return tEND; YY_BREAK case 150: YY_RULE_SETUP #line 241 "lexssh.l" return tEXCEPTIONS; YY_BREAK case 151: YY_RULE_SETUP #line 242 "lexssh.l" return tFIRST; YY_BREAK case 152: YY_RULE_SETUP #line 243 "lexssh.l" return tIN; YY_BREAK case 153: YY_RULE_SETUP #line 244 "lexssh.l" { yylval.sensitiveness = case_insensitive ; return tSENSITIVENESS; } YY_BREAK case 154: YY_RULE_SETUP #line 247 "lexssh.l" return tIS; YY_BREAK case 155: YY_RULE_SETUP #line 248 "lexssh.l" return tKEYWORDS; YY_BREAK case 156: YY_RULE_SETUP #line 249 "lexssh.l" return tREQUIRES; YY_BREAK case 157: YY_RULE_SETUP #line 250 "lexssh.l" return tSECOND; YY_BREAK case 158: YY_RULE_SETUP #line 251 "lexssh.l" { yylval.sensitiveness = case_sensitive ; return tSENSITIVENESS; } YY_BREAK case 159: YY_RULE_SETUP #line 254 "lexssh.l" return tOPERATORS; YY_BREAK case 160: YY_RULE_SETUP #line 255 "lexssh.l" return tOPTIONAL; YY_BREAK case 161: YY_RULE_SETUP #line 256 "lexssh.l" return tSEQUENCES; YY_BREAK case 162: YY_RULE_SETUP #line 257 "lexssh.l" return tSTYLE; YY_BREAK case 163: YY_RULE_SETUP #line 258 "lexssh.l" return tVERSION; YY_BREAK case 164: YY_RULE_SETUP #line 259 "lexssh.l" return tWRITTEN; YY_BREAK case 165: YY_RULE_SETUP #line 261 "lexssh.l" RETURN_FACE (Plain) YY_BREAK case 166: YY_RULE_SETUP #line 262 "lexssh.l" RETURN_FACE (Keyword) YY_BREAK case 167: YY_RULE_SETUP #line 263 "lexssh.l" RETURN_FACE (Keyword_strong) YY_BREAK case 168: YY_RULE_SETUP #line 264 "lexssh.l" RETURN_FACE (Error) YY_BREAK case 169: YY_RULE_SETUP #line 265 "lexssh.l" RETURN_FACE (Label) YY_BREAK case 170: YY_RULE_SETUP #line 266 "lexssh.l" RETURN_FACE (Label_strong) YY_BREAK case 171: YY_RULE_SETUP #line 267 "lexssh.l" RETURN_FACE (String) YY_BREAK case 172: YY_RULE_SETUP #line 268 "lexssh.l" RETURN_FACE (Symbol) YY_BREAK case 173: YY_RULE_SETUP #line 269 "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 275 "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 282 "lexssh.l" RETURN_FFLAGS (ff_Tag1) YY_BREAK case 176: YY_RULE_SETUP #line 283 "lexssh.l" RETURN_FFLAGS (ff_Tag2) YY_BREAK case 177: YY_RULE_SETUP #line 284 "lexssh.l" RETURN_FFLAGS (ff_Tag3) YY_BREAK case 178: YY_RULE_SETUP #line 285 "lexssh.l" RETURN_FFLAGS (ff_Tag4) YY_BREAK case 179: YY_RULE_SETUP #line 286 "lexssh.l" RETURN_FFLAGS (ff_Index1) YY_BREAK case 180: YY_RULE_SETUP #line 287 "lexssh.l" RETURN_FFLAGS (ff_Index2) YY_BREAK case 181: YY_RULE_SETUP #line 288 "lexssh.l" RETURN_FFLAGS (ff_Index3) YY_BREAK case 182: YY_RULE_SETUP #line 289 "lexssh.l" RETURN_FFLAGS (ff_Index4) YY_BREAK case 183: YY_RULE_SETUP #line 290 "lexssh.l" RETURN_FFLAGS (ff_Encoding) YY_BREAK case 184: YY_RULE_SETUP #line 291 "lexssh.l" RETURN_FFLAGS (ff_Invisible) YY_BREAK case 185: YY_RULE_SETUP #line 293 "lexssh.l" { yylval.string = xustrdup (sshtext); return tSTRING; } YY_BREAK case 186: YY_RULE_SETUP #line 297 "lexssh.l" { return sshtext[0]; } YY_BREAK /* string of characters */ case 187: YY_RULE_SETUP #line 300 "lexssh.l" { /* return the string */ uchar * string; obstack_1grow (&string_stack, '\0'); string = (uchar *) obstack_finish (&string_stack); obstack_free (&string_stack, string); BEGIN INITIAL; /* Return to the regular scanning */ yylval.string = xustrdup (string); return tSTRING; } YY_BREAK case 188: YY_RULE_SETUP #line 313 "lexssh.l" { int value = sshtext[1] - '0'; char *cursor = sshtext + 2; while (*cursor) value = 8 * value + *cursor++ - '0'; obstack_1grow (&string_stack, value); } YY_BREAK case 189: YY_RULE_SETUP #line 322 "lexssh.l" { int value = 0; char *cursor = sshtext + 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 336 "lexssh.l" { obstack_1grow (&string_stack, '\007'); } YY_BREAK case 191: YY_RULE_SETUP #line 337 "lexssh.l" { obstack_1grow (&string_stack, '\b'); } YY_BREAK case 192: YY_RULE_SETUP #line 338 "lexssh.l" { obstack_1grow (&string_stack, 127); } YY_BREAK case 193: YY_RULE_SETUP #line 339 "lexssh.l" { obstack_1grow (&string_stack, 27); } YY_BREAK case 194: YY_RULE_SETUP #line 340 "lexssh.l" { obstack_1grow (&string_stack, '\f'); } YY_BREAK case 195: YY_RULE_SETUP #line 341 "lexssh.l" { obstack_1grow (&string_stack, '\n'); } YY_BREAK case 196: YY_RULE_SETUP #line 342 "lexssh.l" { obstack_1grow (&string_stack, '\r'); } YY_BREAK case 197: YY_RULE_SETUP #line 343 "lexssh.l" { obstack_1grow (&string_stack, '\t'); } YY_BREAK case 198: YY_RULE_SETUP #line 344 "lexssh.l" { obstack_1grow (&string_stack, '\v'); } YY_BREAK case 199: YY_RULE_SETUP #line 345 "lexssh.l" { obstack_1grow (&string_stack, sshtext[1]); } YY_BREAK case 200: /* rule 200 can match eol */ YY_RULE_SETUP #line 347 "lexssh.l" { yyerror (_("end-of-line in string constant")); } YY_BREAK case 201: YY_RULE_SETUP #line 351 "lexssh.l" { obstack_grow (&string_stack, sshtext, sshleng); } YY_BREAK /* a regular expression */ case 202: YY_RULE_SETUP #line 357 "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, 1); /* 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 = XMALLOC (char, pattern_len); memcpy (yylval.pattern->pattern, pattern, pattern_len); BEGIN INITIAL; /* Return to the regular scanning */ return tREGEX; } YY_BREAK case 203: YY_RULE_SETUP #line 379 "lexssh.l" { int value = sshtext[1] - '0'; char *cursor = sshtext + 2; while (*cursor) value = 8 * value + *cursor++ - '0'; obstack_1grow (&string_stack, value); } YY_BREAK case 204: YY_RULE_SETUP #line 388 "lexssh.l" { int value = 0; char *cursor = sshtext + 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 402 "lexssh.l" { obstack_1grow (&string_stack, '\007'); } YY_BREAK case 206: YY_RULE_SETUP #line 403 "lexssh.l" { obstack_1grow (&string_stack, '\b'); } YY_BREAK case 207: YY_RULE_SETUP #line 404 "lexssh.l" { obstack_1grow (&string_stack, 127); } YY_BREAK case 208: YY_RULE_SETUP #line 405 "lexssh.l" { obstack_1grow (&string_stack, 27); } YY_BREAK case 209: YY_RULE_SETUP #line 406 "lexssh.l" { obstack_1grow (&string_stack, '\f'); } YY_BREAK case 210: YY_RULE_SETUP #line 407 "lexssh.l" { obstack_1grow (&string_stack, '\n'); } YY_BREAK case 211: YY_RULE_SETUP #line 408 "lexssh.l" { obstack_1grow (&string_stack, '\r'); } YY_BREAK case 212: YY_RULE_SETUP #line 409 "lexssh.l" { obstack_1grow (&string_stack, '\t'); } YY_BREAK case 213: YY_RULE_SETUP #line 410 "lexssh.l" { obstack_1grow (&string_stack, '\v'); } YY_BREAK case 214: YY_RULE_SETUP #line 411 "lexssh.l" { obstack_1grow (&string_stack, sshtext[1]); } YY_BREAK case 215: /* rule 215 can match eol */ YY_RULE_SETUP #line 413 "lexssh.l" { error_at_line (1, 0, sshfilename, sshlineno, _("end of line inside a %s"), "\"..\""); } YY_BREAK case 216: YY_RULE_SETUP #line 418 "lexssh.l" { obstack_grow (&string_stack, sshtext, sshleng); } YY_BREAK case 217: YY_RULE_SETUP #line 423 "lexssh.l" ECHO; YY_BREAK #line 2530 "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 sshin at a new source and called * sshlex(). 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 = sshin; 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 ( sshwrap( ) ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up * sshtext, 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 sshlex */ /* 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) { register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; register char *source = (yytext_ptr); register 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; 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. */ sshrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); } else /* Can't grow it, we don't own it. */ b->yy_ch_buf = 0; 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), (size_t) 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; sshrestart(sshin ); } 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; (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) { register yy_state_type yy_current_state; register char *yy_cp; yy_current_state = (yy_start); for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) { register 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[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) 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 ) { register int yy_is_jam; register char *yy_cp = (yy_c_buf_p); register 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[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; yy_is_jam = (yy_current_state == 900); return yy_is_jam ? 0 : yy_current_state; } static void yyunput (int c, register char * yy_bp ) { register char *yy_cp; yy_cp = (yy_c_buf_p); /* undo effects of setting up sshtext */ *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. */ register int number_to_move = (yy_n_chars) + 2; register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; register 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) = 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' ){ --sshlineno; } (yytext_ptr) = yy_bp; (yy_hold_char) = *yy_cp; (yy_c_buf_p) = yy_cp; } #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 = (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. */ sshrestart(sshin ); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { if ( sshwrap( ) ) return EOF; 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 sshtext */ (yy_hold_char) = *++(yy_c_buf_p); if ( c == '\n' ) sshlineno++; ; 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 sshrestart (FILE * input_file ) { if ( ! YY_CURRENT_BUFFER ){ sshensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = ssh_create_buffer(sshin,YY_BUF_SIZE ); } ssh_init_buffer(YY_CURRENT_BUFFER,input_file ); ssh_load_buffer_state( ); } /** Switch to a different input buffer. * @param new_buffer The new input buffer. * */ void ssh_switch_to_buffer (YY_BUFFER_STATE new_buffer ) { /* TODO. We should be able to replace this entire function body * with * sshpop_buffer_state(); * sshpush_buffer_state(new_buffer); */ sshensure_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; ssh_load_buffer_state( ); /* We don't actually know whether we did this switch during * EOF (sshwrap()) processing, but the only time this flag * is looked at is after sshwrap() is called, so it's safe * to go ahead and always set it. */ (yy_did_buffer_switch_on_eof) = 1; } static void ssh_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; sshin = 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 ssh_create_buffer (FILE * file, int size ) { YY_BUFFER_STATE b; b = (YY_BUFFER_STATE) sshalloc(sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in ssh_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 *) sshalloc(b->yy_buf_size + 2 ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in ssh_create_buffer()" ); b->yy_is_our_buffer = 1; ssh_init_buffer(b,file ); return b; } /** Destroy the buffer. * @param b a buffer created with ssh_create_buffer() * */ void ssh_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 ) sshfree((void *) b->yy_ch_buf ); sshfree((void *) b ); } #ifndef __cplusplus extern int isatty (int ); #endif /* __cplusplus */ /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a sshrestart() or at EOF. */ static void ssh_init_buffer (YY_BUFFER_STATE b, FILE * file ) { int oerrno = errno; ssh_flush_buffer(b ); b->yy_input_file = file; b->yy_fill_buffer = 1; /* If b is the current buffer, then ssh_init_buffer was _probably_ * called from sshrestart() 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 ssh_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 ) ssh_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 sshpush_buffer_state (YY_BUFFER_STATE new_buffer ) { if (new_buffer == NULL) return; sshensure_buffer_stack(); /* This block is copied from ssh_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 ssh_switch_to_buffer. */ ssh_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 sshpop_buffer_state (void) { if (!YY_CURRENT_BUFFER) return; ssh_delete_buffer(YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; if ((yy_buffer_stack_top) > 0) --(yy_buffer_stack_top); if (YY_CURRENT_BUFFER) { ssh_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 sshensure_buffer_stack (void) { int 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; (yy_buffer_stack) = (struct yy_buffer_state**)sshalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); 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. */ int grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; (yy_buffer_stack) = (struct yy_buffer_state**)sshrealloc ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state*) ); /* 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 ssh_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 0; b = (YY_BUFFER_STATE) sshalloc(sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in ssh_scan_buffer()" ); b->yy_buf_size = 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 = 0; 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; ssh_switch_to_buffer(b ); return b; } /** Setup the input buffer state to scan a string. The next call to sshlex() 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 * ssh_scan_bytes() instead. */ YY_BUFFER_STATE ssh_scan_string (yyconst char * yystr ) { return ssh_scan_bytes(yystr,strlen(yystr) ); } /** Setup the input buffer state to scan the given bytes. The next call to sshlex() will * scan from a @e copy of @a bytes. * @param bytes the byte buffer to scan * @param len the number of bytes in the buffer pointed to by @a bytes. * * @return the newly allocated buffer state object. */ YY_BUFFER_STATE ssh_scan_bytes (yyconst 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 = _yybytes_len + 2; buf = (char *) sshalloc(n ); if ( ! buf ) YY_FATAL_ERROR( "out of dynamic memory in ssh_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 = ssh_scan_buffer(buf,n ); if ( ! b ) YY_FATAL_ERROR( "bad buffer in ssh_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 yy_fatal_error (yyconst char* msg ) { (void) 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 sshtext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ sshtext[sshleng] = (yy_hold_char); \ (yy_c_buf_p) = sshtext + yyless_macro_arg; \ (yy_hold_char) = *(yy_c_buf_p); \ *(yy_c_buf_p) = '\0'; \ sshleng = yyless_macro_arg; \ } \ while ( 0 ) /* Accessor methods (get/set functions) to struct members. */ /** Get the current line number. * */ int sshget_lineno (void) { return sshlineno; } /** Get the input stream. * */ FILE *sshget_in (void) { return sshin; } /** Get the output stream. * */ FILE *sshget_out (void) { return sshout; } /** Get the length of the current token. * */ int sshget_leng (void) { return sshleng; } /** Get the current token. * */ char *sshget_text (void) { return sshtext; } /** Set the current line number. * @param line_number * */ void sshset_lineno (int line_number ) { sshlineno = line_number; } /** Set the input stream. This does not discard the current * input buffer. * @param in_str A readable stream. * * @see ssh_switch_to_buffer */ void sshset_in (FILE * in_str ) { sshin = in_str ; } void sshset_out (FILE * out_str ) { sshout = out_str ; } int sshget_debug (void) { return ssh_flex_debug; } void sshset_debug (int bdebug ) { ssh_flex_debug = bdebug ; } static int yy_init_globals (void) { /* Initialization is the same as for the non-reentrant scanner. * This function is called from sshlex_destroy(), so don't allocate here. */ /* We do not touch sshlineno unless the option is enabled. */ sshlineno = 1; (yy_buffer_stack) = 0; (yy_buffer_stack_top) = 0; (yy_buffer_stack_max) = 0; (yy_c_buf_p) = (char *) 0; (yy_init) = 0; (yy_start) = 0; /* Defined in main.c */ #ifdef YY_STDINIT sshin = stdin; sshout = stdout; #else sshin = (FILE *) 0; sshout = (FILE *) 0; #endif /* For future reference: Set errno on error, since we are called by * sshlex_init() */ return 0; } /* sshlex_destroy is for both reentrant and non-reentrant scanners. */ int sshlex_destroy (void) { /* Pop the buffer stack, destroying each element. */ while(YY_CURRENT_BUFFER){ ssh_delete_buffer(YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; sshpop_buffer_state(); } /* Destroy the stack itself. */ sshfree((yy_buffer_stack) ); (yy_buffer_stack) = NULL; /* Reset the globals. This is important in a non-reentrant scanner so the next time * sshlex() is called, initialization will occur. */ yy_init_globals( ); return 0; } /* * Internal utility routines. */ #ifndef yytext_ptr static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) { register int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (yyconst char * s ) { register int n; for ( n = 0; s[n]; ++n ) ; return n; } #endif void *sshalloc (yy_size_t size ) { return (void *) malloc( size ); } void *sshrealloc (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 (void *) realloc( (char *) ptr, size ); } void sshfree (void * ptr ) { free( (char *) ptr ); /* see sshrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" #line 423 "lexssh.l" int sshwrap (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.14/src/sshread.h0000644000175000017500000000247210735324714014231 0ustar mhattamhatta/* * sshread.h * * routines of input, and formatting according to the styles * Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana * Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana * $Id: sshread.h,v 1.1.1.1.2.1 2007/12/29 01:58:36 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 _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 PARAMS ((struct a2ps_job * job, buffer_t * buffer, struct style_sheet * sheet)); #endif /* not defined(_SHHREAD_H_) */ a2ps-4.14/src/generate.c0000644000175000017500000002375510735322006014364 0ustar mhattamhatta/* * generate.c -- Input files and pretty printing. * * 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. */ #include "main.h" extern int isdir PARAMS ((const char *path)); /* 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 (strequ (string, "binary")) return binary; else if (strequ (string, "UNPRINTABLE")) return unprintable; else if (strequ (string, "plain")) return no_style; else if (strequ (string, "delegate")) return delegate; return sshparser; } /************************************************************************/ /* The inputs */ /************************************************************************/ static buffer_t * input_new (uchar * name) { NEW (buffer_t, res); 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) || ustrequ (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 = (uchar *) name; if ((input_stream = fopen ((char *) name, "r")) == NULL) { error (0, errno, _("cannot open file `%s'"), quotearg ((char *) name)); file_job->printable = false; } else if (stat ((char *) name, &statbuf) == -1) { error (0, errno, _("cannot get informations on file `%s'"), quotearg ((char *) 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 ? (uchar *) 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); buffer_release (buffer); free (buffer); 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) { int 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): %d pages on 1 sheet]\n"), CURRENT_FILE (Job)->name, stylename, CURRENT_FILE (Job)->pages)); else /* several sheets */ message (msg_report2, (stderr, _("[%s (%s): %d pages on %d sheets]\n"), CURRENT_FILE (Job)->name, stylename, CURRENT_FILE (Job)-> pages, sheets)); } /* * Total printed */ void msg_job_pages_printed (a2ps_job * Job) { int sheets; uchar *ucp; sheets = Job->sheets; if (Job->duplex) sheets = (sheets + 1) / 2; /* Make a nice message to tell where the output is sent */ ucp = 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"), ucp)); else if (sheets == 1) /* several pages on 1 sheet */ message (msg_report1, (stderr, _("[Total: %d pages on 1 sheet] %s\n"), Job->pages, ucp)); else /* several sheets */ message (msg_report1, (stderr, _("[Total: %d pages on %d sheets] %s\n"), Job-> pages, sheets, ucp)); /* 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, _("[%d lines wrapped]\n"), Job->lines_folded)); } free (ucp); } /* * Total printed */ void msg_nothing_printed (void) { message (msg_report1, (stderr, _("[No output produced]\n"))); } void print_toc (const uchar * name, const uchar * value, int * native_jobs) { buffer_t toc_buffer; uchar * toc_content; /* Create a entry for the toc, as if it were a regular file */ a2ps_open_input_session (job, xustrdup (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; austrcpy (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 (uchar * 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 (uchar * 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, free, and close the input session */ if (buffer->stream && buffer->stream != stdin) fclose (buffer->stream); } a2ps-4.14/src/parsessh.c0000644000175000017500000023031010735337355014422 0ustar mhattamhatta/* A Bison parser, made by GNU Bison 2.3. */ /* Skeleton implementation for Bison's Yacc-like parsers in C Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* 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. */ /* 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. */ #define YYBISON 1 /* Bison version. */ #define YYBISON_VERSION "2.3" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" /* Pure parsers. */ #define YYPURE 0 /* Using locations. */ #define YYLSP_NEEDED 0 /* Tokens. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE /* Put the tokens into the symbol table, so that GDB and other debuggers know about them. */ enum yytokentype { tSTYLE = 258, tIS = 259, tEND = 260, tKEYWORDS = 261, tARE = 262, tIN = 263, tOPERATORS = 264, tSEQUENCES = 265, tFIRST = 266, tSECOND = 267, tALPHABET = 268, tALPHABETS = 269, tDOCUMENTATION = 270, tEXCEPTIONS = 271, tCASE = 272, tCSTRING = 273, tCCHAR = 274, tOPTIONAL = 275, tCLOSERS = 276, tWRITTEN = 277, tBY = 278, tVERSION = 279, tREQUIRES = 280, tA2PS = 281, tANCESTORS = 282, tFACE = 283, tFFLAGS = 284, tSTRING = 285, tLATEXSYMBOL = 286, tREGEX = 287, tSENSITIVENESS = 288, tBACK_REF = 289 }; #endif /* Tokens. */ #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 /* Copy the first part of user declarations. */ #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 "a2ps.h" #include "jobs.h" #include "ffaces.h" #include "ssheet.h" #include "message.h" #include "routines.h" #include "yy2ssh.h" #include "regex.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 PARAMS ((const char *msg)); static void yyprint (); /* Initilizes the obstacks */ void sshlex_initialize PARAMS ((void)); /* Comes from main.c */ extern int highlight_level; int yylex PARAMS ((void)); struct style_sheet * parse_style_sheet PARAMS ((const char * filename)); /* Defines the style sheet being loaded */ static struct style_sheet * parsed_style_sheet = NULL; /* Enabling traces. */ #ifndef YYDEBUG # define YYDEBUG 1 #endif /* Enabling verbose error messages. */ #ifdef YYERROR_VERBOSE # undef YYERROR_VERBOSE # define YYERROR_VERBOSE 1 #else # define YYERROR_VERBOSE 0 #endif /* Enabling the token table. */ #ifndef YYTOKEN_TABLE # define YYTOKEN_TABLE 0 #endif #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE #line 81 "parsessh.y" { int integer; uchar * 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 187 of yacc.c. */ #line 260 "parsessh.c" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 # define YYSTYPE_IS_TRIVIAL 1 #endif /* Copy the second part of user declarations. */ /* Line 216 of yacc.c. */ #line 273 "parsessh.c" #ifdef short # undef short #endif #ifdef YYTYPE_UINT8 typedef YYTYPE_UINT8 yytype_uint8; #else typedef unsigned char yytype_uint8; #endif #ifdef YYTYPE_INT8 typedef YYTYPE_INT8 yytype_int8; #elif (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) typedef signed char yytype_int8; #else typedef short int yytype_int8; #endif #ifdef YYTYPE_UINT16 typedef YYTYPE_UINT16 yytype_uint16; #else typedef unsigned short int yytype_uint16; #endif #ifdef YYTYPE_INT16 typedef YYTYPE_INT16 yytype_int16; #else typedef short int yytype_int16; #endif #ifndef YYSIZE_T # ifdef __SIZE_TYPE__ # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else # define YYSIZE_T unsigned int # endif #endif #define YYSIZE_MAXIMUM ((YYSIZE_T) -1) #ifndef YY_ # if YYENABLE_NLS # if ENABLE_NLS # include /* INFRINGES ON USER NAME SPACE */ # define YY_(msgid) dgettext ("bison-runtime", msgid) # endif # endif # ifndef YY_ # define YY_(msgid) msgid # endif #endif /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ # define YYUSE(e) ((void) (e)) #else # define YYUSE(e) /* empty */ #endif /* Identity function, used to suppress warnings about constant conditions. */ #ifndef lint # define YYID(n) (n) #else #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static int YYID (int i) #else static int YYID (i) int i; #endif { return i; } #endif #if ! defined yyoverflow || YYERROR_VERBOSE /* 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 /* INFRINGES ON USER NAME SPACE */ # elif defined _AIX # define YYSTACK_ALLOC __alloca # elif defined _MSC_VER # include /* INFRINGES ON USER NAME SPACE */ # define alloca _alloca # else # define YYSTACK_ALLOC alloca # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) # include /* INFRINGES ON USER NAME SPACE */ # ifndef _STDLIB_H # define _STDLIB_H 1 # endif # endif # endif # endif # endif # ifdef YYSTACK_ALLOC /* Pacify GCC's `empty if-body' warning. */ # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (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 _STDLIB_H \ && ! ((defined YYMALLOC || defined malloc) \ && (defined YYFREE || defined free))) # include /* INFRINGES ON USER NAME SPACE */ # ifndef _STDLIB_H # define _STDLIB_H 1 # endif # endif # ifndef YYMALLOC # define YYMALLOC malloc # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ # endif # endif # ifndef YYFREE # define YYFREE free # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) void free (void *); /* INFRINGES ON USER NAME SPACE */ # endif # endif # endif #endif /* ! defined yyoverflow || YYERROR_VERBOSE */ #if (! defined yyoverflow \ && (! defined __cplusplus \ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc { yytype_int16 yyss; YYSTYPE yyvs; }; /* The size of the maximum gap between one aligned stack and the next. */ # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + YYSTACK_GAP_MAXIMUM) /* Copy COUNT objects from FROM to TO. The source and destination do not overlap. */ # ifndef YYCOPY # if defined __GNUC__ && 1 < __GNUC__ # define YYCOPY(To, From, Count) \ __builtin_memcpy (To, From, (Count) * sizeof (*(From))) # else # define YYCOPY(To, From, Count) \ do \ { \ YYSIZE_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ (To)[yyi] = (From)[yyi]; \ } \ while (YYID (0)) # endif # endif /* 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) \ do \ { \ YYSIZE_T yynewbytes; \ YYCOPY (&yyptr->Stack, Stack, yysize); \ Stack = &yyptr->Stack; \ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ yyptr += yynewbytes / sizeof (*yyptr); \ } \ while (YYID (0)) #endif /* 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 /* YYNRULES -- Number of states. */ #define YYNSTATES 200 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 #define YYMAXUTOK 289 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ static const yytype_uint8 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 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in YYRHS. */ static const yytype_uint16 yyprhs[] = { 0, 0, 3, 5, 12, 13, 19, 24, 30, 35, 39, 42, 45, 50, 56, 62, 65, 68, 71, 74, 77, 81, 86, 92, 94, 97, 101, 105, 108, 114, 116, 120, 123, 125, 128, 130, 133, 135, 137, 140, 142, 144, 146, 150, 152, 154, 158, 160, 162, 166, 170, 173, 175, 180, 186, 190, 192, 194, 198, 202, 205, 207, 212, 218, 222, 224, 226, 230, 234, 237, 239, 244, 250, 252, 256, 262, 269, 275, 281, 286, 293, 299, 305, 310, 318, 326, 328, 330, 331, 333, 335, 339, 340 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int8 yyrhs[] = { 40, 0, -1, 41, -1, 3, 30, 4, 42, 5, 3, -1, -1, 42, 20, 6, 58, 6, -1, 42, 6, 58, 6, -1, 42, 20, 9, 61, 9, -1, 42, 9, 61, 9, -1, 42, 20, 64, -1, 42, 64, -1, 42, 48, -1, 42, 14, 7, 30, -1, 42, 11, 13, 4, 30, -1, 42, 12, 13, 4, 30, -1, 42, 50, -1, 42, 44, -1, 42, 46, -1, 42, 47, -1, 42, 43, -1, 25, 26, 30, -1, 25, 26, 24, 30, -1, 15, 4, 45, 5, 15, -1, 30, -1, 45, 30, -1, 22, 23, 30, -1, 24, 4, 30, -1, 24, 30, -1, 27, 7, 49, 5, 27, -1, 30, -1, 49, 35, 30, -1, 17, 33, -1, 32, -1, 51, 32, -1, 53, -1, 30, 55, -1, 30, -1, 55, -1, 34, 55, -1, 34, -1, 31, -1, 53, -1, 54, 35, 53, -1, 28, -1, 29, -1, 36, 56, 37, -1, 28, -1, 29, -1, 56, 38, 28, -1, 56, 38, 29, -1, 30, 52, -1, 30, -1, 36, 30, 54, 37, -1, 8, 55, 7, 59, 5, -1, 7, 59, 5, -1, 57, -1, 60, -1, 59, 35, 57, -1, 59, 35, 60, -1, 51, 52, -1, 51, -1, 36, 51, 54, 37, -1, 8, 55, 7, 62, 5, -1, 7, 62, 5, -1, 57, -1, 63, -1, 62, 35, 57, -1, 62, 35, 63, -1, 51, 52, -1, 51, -1, 36, 51, 54, 37, -1, 10, 7, 65, 5, 10, -1, 66, -1, 65, 35, 66, -1, 30, 31, 55, 67, 68, -1, 30, 30, 55, 55, 67, 68, -1, 30, 55, 55, 67, 68, -1, 30, 30, 55, 67, 68, -1, 30, 55, 67, 68, -1, 51, 30, 55, 55, 67, 68, -1, 51, 55, 55, 67, 68, -1, 51, 30, 55, 67, 68, -1, 51, 55, 67, 68, -1, 36, 30, 54, 37, 55, 67, 68, -1, 36, 51, 54, 37, 55, 67, 68, -1, 18, -1, 19, -1, -1, 57, -1, 63, -1, 21, 61, 21, -1, -1, 16, 61, 16, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { 0, 129, 129, 136, 145, 148, 157, 163, 172, 178, 186, 191, 196, 204, 211, 218, 221, 224, 227, 230, 245, 246, 249, 251, 252, 267, 270, 271, 276, 283, 291, 298, 306, 310, 322, 330, 334, 338, 342, 346, 350, 357, 363, 374, 379, 386, 396, 401, 406, 412, 426, 431, 437, 449, 453, 460, 465, 470, 475, 487, 492, 499, 509, 513, 520, 526, 532, 537, 549, 554, 560, 570, 573, 579, 602, 610, 618, 626, 634, 642, 650, 658, 666, 674, 681, 689, 693, 701, 709, 715, 721, 730, 733 }; #endif #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { "$end", "error", "$undefined", "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", 0 }; #endif # ifdef YYPRINT /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to token YYLEX-NUM. */ static const yytype_uint16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 44, 40, 41, 43 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 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[YYN] -- Number of symbols composing right hand side of rule YYN. */ static const yytype_uint8 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 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state STATE-NUM when YYTABLE doesn't specify something else to do. Zero means the default is an error. */ static const yytype_uint8 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 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { -1, 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 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ #define YYPACT_NINF -150 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 }; /* 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 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule which number is the opposite. If zero, do what YYDEFACT says. If YYTABLE_NINF, syntax error. */ #define YYTABLE_NINF -1 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 (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 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 }; #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) #define YYEMPTY (-2) #define YYEOF 0 #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab #define YYERROR goto yyerrorlab /* Like YYERROR except do call yyerror. This remains here temporarily to ease the transition to the new meaning of YYERROR, for GCC. Once GCC version 2 has supplanted version 1, this can go. */ #define YYFAIL goto yyerrlab #define YYRECOVERING() (!!yyerrstatus) #define YYBACKUP(Token, Value) \ do \ if (yychar == YYEMPTY && yylen == 1) \ { \ yychar = (Token); \ yylval = (Value); \ yytoken = YYTRANSLATE (yychar); \ YYPOPSTACK (1); \ goto yybackup; \ } \ else \ { \ yyerror (YY_("syntax error: cannot back up")); \ YYERROR; \ } \ while (YYID (0)) #define YYTERROR 1 #define YYERRCODE 256 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. If N is 0, then set CURRENT to the empty location which ends the previous symbol: RHS[0] (always defined). */ #define YYRHSLOC(Rhs, K) ((Rhs)[K]) #ifndef YYLLOC_DEFAULT # define YYLLOC_DEFAULT(Current, Rhs, N) \ do \ if (YYID (N)) \ { \ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ } \ else \ { \ (Current).first_line = (Current).last_line = \ YYRHSLOC (Rhs, 0).last_line; \ (Current).first_column = (Current).last_column = \ YYRHSLOC (Rhs, 0).last_column; \ } \ while (YYID (0)) #endif /* YY_LOCATION_PRINT -- Print the location on the stream. This macro was not mandated originally: define only if we know we won't break user code: when these are the locations we know. */ #ifndef YY_LOCATION_PRINT # if YYLTYPE_IS_TRIVIAL # define YY_LOCATION_PRINT(File, Loc) \ fprintf (File, "%d.%d-%d.%d", \ (Loc).first_line, (Loc).first_column, \ (Loc).last_line, (Loc).last_column) # else # define YY_LOCATION_PRINT(File, Loc) ((void) 0) # endif #endif /* YYLEX -- calling `yylex' with the right arguments. */ #ifdef YYLEX_PARAM # define YYLEX yylex (YYLEX_PARAM) #else # define YYLEX yylex () #endif /* Enable debugging if requested. */ #if YYDEBUG # ifndef YYFPRINTF # include /* INFRINGES ON USER NAME SPACE */ # define YYFPRINTF fprintf # endif # define YYDPRINTF(Args) \ do { \ if (yydebug) \ YYFPRINTF Args; \ } while (YYID (0)) # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ do { \ if (yydebug) \ { \ YYFPRINTF (stderr, "%s ", Title); \ yy_symbol_print (stderr, \ Type, Value); \ YYFPRINTF (stderr, "\n"); \ } \ } while (YYID (0)) /*--------------------------------. | Print this symbol on YYOUTPUT. | `--------------------------------*/ /*ARGSUSED*/ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) #else static void yy_symbol_value_print (yyoutput, yytype, yyvaluep) FILE *yyoutput; int yytype; YYSTYPE const * const yyvaluep; #endif { if (!yyvaluep) return; # ifdef YYPRINT if (yytype < YYNTOKENS) YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); # else YYUSE (yyoutput); # endif switch (yytype) { default: break; } } /*--------------------------------. | Print this symbol on YYOUTPUT. | `--------------------------------*/ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) #else static void yy_symbol_print (yyoutput, yytype, yyvaluep) FILE *yyoutput; int yytype; YYSTYPE const * const yyvaluep; #endif { if (yytype < YYNTOKENS) YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); else YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); yy_symbol_value_print (yyoutput, yytype, yyvaluep); YYFPRINTF (yyoutput, ")"); } /*------------------------------------------------------------------. | yy_stack_print -- Print the state stack from its BOTTOM up to its | | TOP (included). | `------------------------------------------------------------------*/ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void yy_stack_print (yytype_int16 *bottom, yytype_int16 *top) #else static void yy_stack_print (bottom, top) yytype_int16 *bottom; yytype_int16 *top; #endif { YYFPRINTF (stderr, "Stack now"); for (; bottom <= top; ++bottom) YYFPRINTF (stderr, " %d", *bottom); YYFPRINTF (stderr, "\n"); } # define YY_STACK_PRINT(Bottom, Top) \ do { \ if (yydebug) \ yy_stack_print ((Bottom), (Top)); \ } while (YYID (0)) /*------------------------------------------------. | Report that the YYRULE is going to be reduced. | `------------------------------------------------*/ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void yy_reduce_print (YYSTYPE *yyvsp, int yyrule) #else static void yy_reduce_print (yyvsp, yyrule) YYSTYPE *yyvsp; int yyrule; #endif { int yynrhs = yyr2[yyrule]; int yyi; unsigned long int yylno = yyrline[yyrule]; YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { fprintf (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], &(yyvsp[(yyi + 1) - (yynrhs)]) ); fprintf (stderr, "\n"); } } # define YY_REDUCE_PRINT(Rule) \ do { \ if (yydebug) \ yy_reduce_print (yyvsp, Rule); \ } while (YYID (0)) /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ # define YYDPRINTF(Args) # define YY_SYMBOL_PRINT(Title, Type, 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 #if YYERROR_VERBOSE # ifndef yystrlen # if defined __GLIBC__ && defined _STRING_H # define yystrlen strlen # else /* Return the length of YYSTR. */ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static YYSIZE_T yystrlen (const char *yystr) #else static YYSIZE_T yystrlen (yystr) const char *yystr; #endif { YYSIZE_T yylen; for (yylen = 0; yystr[yylen]; yylen++) continue; return yylen; } # endif # endif # ifndef yystpcpy # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE # define yystpcpy stpcpy # else /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in YYDEST. */ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static char * yystpcpy (char *yydest, const char *yysrc) #else static char * yystpcpy (yydest, yysrc) char *yydest; const char *yysrc; #endif { char *yyd = yydest; const char *yys = yysrc; while ((*yyd++ = *yys++) != '\0') continue; return yyd - 1; } # endif # endif # ifndef yytnamerr /* Copy to YYRES the contents of YYSTR after stripping away unnecessary quotes and backslashes, so that it's suitable for yyerror. The heuristic is that double-quoting is unnecessary unless the string contains an apostrophe, a comma, or backslash (other than backslash-backslash). YYSTR is taken from yytname. If YYRES is null, do not copy; instead, return the length of what the result would have been. */ static YYSIZE_T yytnamerr (char *yyres, const char *yystr) { if (*yystr == '"') { YYSIZE_T yyn = 0; char const *yyp = yystr; for (;;) switch (*++yyp) { case '\'': case ',': goto do_not_strip_quotes; case '\\': if (*++yyp != '\\') goto do_not_strip_quotes; /* Fall through. */ default: if (yyres) yyres[yyn] = *yyp; yyn++; break; case '"': if (yyres) yyres[yyn] = '\0'; return yyn; } do_not_strip_quotes: ; } if (! yyres) return yystrlen (yystr); return yystpcpy (yyres, yystr) - yyres; } # endif /* Copy into YYRESULT an error message about the unexpected token YYCHAR while in state YYSTATE. Return the number of bytes copied, including the terminating null byte. If YYRESULT is null, do not copy anything; just return the number of bytes that would be copied. As a special case, return 0 if an ordinary "syntax error" message will do. Return YYSIZE_MAXIMUM if overflow occurs during size calculation. */ static YYSIZE_T yysyntax_error (char *yyresult, int yystate, int yychar) { int yyn = yypact[yystate]; if (! (YYPACT_NINF < yyn && yyn <= YYLAST)) return 0; else { int yytype = YYTRANSLATE (yychar); YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); YYSIZE_T yysize = yysize0; YYSIZE_T yysize1; int yysize_overflow = 0; enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; int yyx; # if 0 /* This is so xgettext sees the translatable formats that are constructed on the fly. */ YY_("syntax error, unexpected %s"); YY_("syntax error, unexpected %s, expecting %s"); YY_("syntax error, unexpected %s, expecting %s or %s"); YY_("syntax error, unexpected %s, expecting %s or %s or %s"); YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); # endif char *yyfmt; char const *yyf; static char const yyunexpected[] = "syntax error, unexpected %s"; static char const yyexpecting[] = ", expecting %s"; static char const yyor[] = " or %s"; char yyformat[sizeof yyunexpected + sizeof yyexpecting - 1 + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) * (sizeof yyor - 1))]; char const *yyprefix = yyexpecting; /* Start YYX at -YYN if negative to avoid negative indexes in YYCHECK. */ int yyxbegin = yyn < 0 ? -yyn : 0; /* Stay within bounds of both yycheck and yytname. */ int yychecklim = YYLAST - yyn + 1; int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; int yycount = 1; yyarg[0] = yytname[yytype]; yyfmt = yystpcpy (yyformat, yyunexpected); for (yyx = yyxbegin; yyx < yyxend; ++yyx) if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) { if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) { yycount = 1; yysize = yysize0; yyformat[sizeof yyunexpected - 1] = '\0'; break; } yyarg[yycount++] = yytname[yyx]; yysize1 = yysize + yytnamerr (0, yytname[yyx]); yysize_overflow |= (yysize1 < yysize); yysize = yysize1; yyfmt = yystpcpy (yyfmt, yyprefix); yyprefix = yyor; } yyf = YY_(yyformat); yysize1 = yysize + yystrlen (yyf); yysize_overflow |= (yysize1 < yysize); yysize = yysize1; if (yysize_overflow) return YYSIZE_MAXIMUM; if (yyresult) { /* Avoid sprintf, as that infringes on the user's name space. Don't have undefined behavior even if the translation produced a string with the wrong number of "%s"s. */ char *yyp = yyresult; int yyi = 0; while ((*yyp = *yyf) != '\0') { if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) { yyp += yytnamerr (yyp, yyarg[yyi++]); yyf += 2; } else { yyp++; yyf++; } } } return yysize; } } #endif /* YYERROR_VERBOSE */ /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ /*ARGSUSED*/ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) #else static void yydestruct (yymsg, yytype, yyvaluep) const char *yymsg; int yytype; YYSTYPE *yyvaluep; #endif { YYUSE (yyvaluep); if (!yymsg) yymsg = "Deleting"; YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); switch (yytype) { default: break; } } /* Prevent warnings from -Wmissing-prototypes. */ #ifdef YYPARSE_PARAM #if defined __STDC__ || defined __cplusplus int yyparse (void *YYPARSE_PARAM); #else int yyparse (); #endif #else /* ! YYPARSE_PARAM */ #if defined __STDC__ || defined __cplusplus int yyparse (void); #else int yyparse (); #endif #endif /* ! YYPARSE_PARAM */ /* The look-ahead symbol. */ int yychar; /* The semantic value of the look-ahead symbol. */ YYSTYPE yylval; /* Number of syntax errors so far. */ int yynerrs; /*----------. | yyparse. | `----------*/ #ifdef YYPARSE_PARAM #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) int yyparse (void *YYPARSE_PARAM) #else int yyparse (YYPARSE_PARAM) void *YYPARSE_PARAM; #endif #else /* ! YYPARSE_PARAM */ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) int yyparse (void) #else int yyparse () #endif #endif { int yystate; int yyn; int yyresult; /* Number of tokens to shift before error messages enabled. */ int yyerrstatus; /* Look-ahead token as an internal (translated) token number. */ int yytoken = 0; #if YYERROR_VERBOSE /* Buffer for error messages, and its allocated size. */ char yymsgbuf[128]; char *yymsg = yymsgbuf; YYSIZE_T yymsg_alloc = sizeof yymsgbuf; #endif /* Three stacks and their tools: `yyss': related to states, `yyvs': related to semantic values, `yyls': related to locations. Refer to the stacks thru separate pointers, to allow yyoverflow to reallocate them elsewhere. */ /* The state stack. */ yytype_int16 yyssa[YYINITDEPTH]; yytype_int16 *yyss = yyssa; yytype_int16 *yyssp; /* The semantic value stack. */ YYSTYPE yyvsa[YYINITDEPTH]; YYSTYPE *yyvs = yyvsa; YYSTYPE *yyvsp; #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) YYSIZE_T yystacksize = YYINITDEPTH; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; /* 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")); yystate = 0; yyerrstatus = 0; yynerrs = 0; yychar = YYEMPTY; /* Cause a token to be read. */ /* Initialize stack pointers. Waste one element of value and location stack so that they stay on the same level as the state stack. The wasted elements are never initialized. */ yyssp = yyss; yyvsp = yyvs; 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: *yyssp = yystate; if (yyss + yystacksize - 1 <= yyssp) { /* Get the current used size of the three stacks, in elements. */ YYSIZE_T yysize = yyssp - yyss + 1; #ifdef 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. */ YYSTYPE *yyvs1 = yyvs; yytype_int16 *yyss1 = yyss; /* 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 * sizeof (*yyssp), &yyvs1, yysize * sizeof (*yyvsp), &yystacksize); yyss = yyss1; yyvs = yyvs1; } #else /* no yyoverflow */ # ifndef YYSTACK_RELOCATE goto yyexhaustedlab; # else /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) goto yyexhaustedlab; yystacksize *= 2; if (YYMAXDEPTH < yystacksize) yystacksize = YYMAXDEPTH; { yytype_int16 *yyss1 = yyss; union yyalloc *yyptr = (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); if (! yyptr) goto yyexhaustedlab; YYSTACK_RELOCATE (yyss); YYSTACK_RELOCATE (yyvs); # undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } # endif #endif /* no yyoverflow */ yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; YYDPRINTF ((stderr, "Stack size increased to %lu\n", (unsigned long int) yystacksize)); if (yyss + yystacksize - 1 <= yyssp) YYABORT; } YYDPRINTF ((stderr, "Entering state %d\n", yystate)); goto yybackup; /*-----------. | yybackup. | `-----------*/ yybackup: /* Do appropriate processing given the current state. Read a look-ahead token if we need one and don't already have one. */ /* First try to decide what to do without reference to look-ahead token. */ yyn = yypact[yystate]; if (yyn == YYPACT_NINF) goto yydefault; /* Not known => get a look-ahead token if don't already have one. */ /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); yychar = YYLEX; } if (yychar <= YYEOF) { yychar = yytoken = YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } 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 (yyn == 0 || yyn == YYTABLE_NINF) goto yyerrlab; yyn = -yyn; goto yyreduce; } if (yyn == YYFINAL) YYACCEPT; /* Count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; /* Shift the look-ahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); /* Discard the shifted token unless it is eof. */ if (yychar != YYEOF) yychar = YYEMPTY; yystate = yyn; *++yyvsp = yylval; 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: #line 130 "parsessh.y" { parsed_style_sheet = (yyvsp[(1) - (1)].sheet); } break; case 3: #line 137 "parsessh.y" { (yyvsp[(4) - (6)].sheet)->name = (yyvsp[(2) - (6)].string); (yyvsp[(4) - (6)].sheet)->key = ""; (yyval.sheet) = (yyvsp[(4) - (6)].sheet); } break; case 4: #line 145 "parsessh.y" { (yyval.sheet) = new_style_sheet ((const uchar *) ""); } break; case 5: #line 149 "parsessh.y" { if (highlight_level == 2) { words_set_no_face ((yyvsp[(4) - (5)].words), Plain_fface); words_merge_rules_unique ((yyvsp[(1) - (5)].sheet)->keywords, (yyvsp[(4) - (5)].words)); } else words_free ((yyvsp[(4) - (5)].words)); (yyval.sheet) = (yyvsp[(1) - (5)].sheet); } break; case 6: #line 158 "parsessh.y" { words_set_no_face ((yyvsp[(3) - (4)].words), Plain_fface); words_merge_rules_unique ((yyvsp[(1) - (4)].sheet)->keywords, (yyvsp[(3) - (4)].words)); (yyval.sheet) = (yyvsp[(1) - (4)].sheet); } break; case 7: #line 164 "parsessh.y" { if (highlight_level == 2) { words_set_no_face ((yyvsp[(4) - (5)].words), Plain_fface); words_merge_rules_unique ((yyvsp[(1) - (5)].sheet)->operators, (yyvsp[(4) - (5)].words)); } else words_free ((yyvsp[(4) - (5)].words)); (yyval.sheet) = (yyvsp[(1) - (5)].sheet); } break; case 8: #line 173 "parsessh.y" { words_set_no_face ((yyvsp[(3) - (4)].words), Plain_fface); words_merge_rules_unique ((yyvsp[(1) - (4)].sheet)->operators, (yyvsp[(3) - (4)].words)); (yyval.sheet) = (yyvsp[(1) - (4)].sheet); } break; case 9: #line 178 "parsessh.y" { if (highlight_level == 2) { da_concat ((yyvsp[(1) - (3)].sheet)->sequences, (yyvsp[(3) - (3)].array)); da_erase ((yyvsp[(3) - (3)].array)); } else da_free ((yyvsp[(3) - (3)].array), (da_map_func_t) free_sequence); (yyval.sheet) = (yyvsp[(1) - (3)].sheet); } break; case 10: #line 186 "parsessh.y" { da_concat ((yyvsp[(1) - (2)].sheet)->sequences, (yyvsp[(2) - (2)].array)); da_erase ((yyvsp[(2) - (2)].array)); (yyval.sheet) = (yyvsp[(1) - (2)].sheet); } break; case 11: #line 191 "parsessh.y" { da_concat ((yyvsp[(1) - (2)].sheet)->ancestors, (yyvsp[(2) - (2)].array)); da_erase ((yyvsp[(2) - (2)].array)); (yyval.sheet) = (yyvsp[(1) - (2)].sheet); } break; case 12: #line 196 "parsessh.y" { string_to_array ((yyvsp[(1) - (4)].sheet)->alpha1, (yyvsp[(4) - (4)].string)); string_to_array ((yyvsp[(1) - (4)].sheet)->alpha2, (yyvsp[(4) - (4)].string)); /* This is the syntax table used by regex */ free ((yyvsp[(4) - (4)].string)); (yyvsp[(4) - (4)].string) = NULL; (yyval.sheet) = (yyvsp[(1) - (4)].sheet); } break; case 13: #line 204 "parsessh.y" { string_to_array ((yyvsp[(1) - (5)].sheet)->alpha1, (yyvsp[(5) - (5)].string)); /* This is the syntax table used by regex */ free ((yyvsp[(5) - (5)].string)); (yyvsp[(5) - (5)].string) = NULL; (yyval.sheet) = (yyvsp[(1) - (5)].sheet); } break; case 14: #line 211 "parsessh.y" { string_to_array ((yyvsp[(1) - (5)].sheet)->alpha2, (yyvsp[(5) - (5)].string)); /* This is the syntax table used by regex */ free ((yyvsp[(5) - (5)].string)); (yyvsp[(5) - (5)].string) = NULL; (yyval.sheet) = (yyvsp[(1) - (5)].sheet); } break; case 15: #line 218 "parsessh.y" { (yyvsp[(1) - (2)].sheet)->sensitiveness = (yyvsp[(2) - (2)].sensitiveness); } break; case 16: #line 221 "parsessh.y" { (yyvsp[(1) - (2)].sheet)->documentation = (yyvsp[(2) - (2)].string); } break; case 17: #line 224 "parsessh.y" { (yyvsp[(1) - (2)].sheet)->author = (yyvsp[(2) - (2)].string); } break; case 18: #line 227 "parsessh.y" { style_sheet_set_version ((yyvsp[(1) - (2)].sheet), (const char *) (yyvsp[(2) - (2)].string)); } break; case 19: #line 230 "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) - (2)].sheet), (const char *) (yyvsp[(2) - (2)].string))) error (1, 0, _("cannot process `%s' which requires a2ps version %s"), sshfilename, (yyvsp[(2) - (2)].string)); } break; case 20: #line 245 "parsessh.y" { (yyval.string) = (yyvsp[(3) - (3)].string) ; } break; case 21: #line 246 "parsessh.y" { (yyval.string) = (yyvsp[(4) - (4)].string) ; } break; case 22: #line 249 "parsessh.y" { (yyval.string) = (yyvsp[(3) - (5)].string) ; } break; case 23: #line 251 "parsessh.y" { (yyval.string) = (yyvsp[(1) - (1)].string); } break; case 24: #line 253 "parsessh.y" { size_t len1; size_t len2; len1 = ustrlen ((yyvsp[(1) - (2)].string)); (yyvsp[(1) - (2)].string)[len1] = '\n'; len2 = ustrlen ((yyvsp[(2) - (2)].string)); (yyval.string) = XMALLOC (uchar, len1 + len2 + 2); ustpcpy (ustpncpy ((yyval.string), (yyvsp[(1) - (2)].string), len1 + 1), (yyvsp[(2) - (2)].string)); free ((yyvsp[(1) - (2)].string)); free ((yyvsp[(2) - (2)].string)); } break; case 25: #line 267 "parsessh.y" { (yyval.string) = (yyvsp[(3) - (3)].string) ; } break; case 26: #line 270 "parsessh.y" { (yyval.string) = (yyvsp[(3) - (3)].string) ; } break; case 27: #line 271 "parsessh.y" { (yyval.string) = (yyvsp[(2) - (2)].string) ; } break; case 28: #line 277 "parsessh.y" { /* The list of keys of style sheets from which it inherits */ (yyval.array) = (yyvsp[(3) - (5)].array); } break; case 29: #line 284 "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[(1) - (1)].string)); } break; case 30: #line 292 "parsessh.y" { da_append ((yyvsp[(1) - (3)].array), (yyvsp[(3) - (3)].string)); (yyval.array) = (yyvsp[(1) - (3)].array); } break; case 31: #line 298 "parsessh.y" { (yyval.sensitiveness) = (yyvsp[(2) - (2)].sensitiveness) ; } break; case 32: #line 307 "parsessh.y" { (yyval.pattern) = (yyvsp[(1) - (1)].pattern); } break; case 33: #line 311 "parsessh.y" { /* Concatenate $2 to $1 makes $$ */ (yyval.pattern) = (yyvsp[(1) - (2)].pattern); (yyval.pattern)->pattern = XREALLOC ((yyval.pattern)->pattern, char, (yyvsp[(1) - (2)].pattern)->len + (yyvsp[(2) - (2)].pattern)->len + 1); strncpy ((yyval.pattern)->pattern + (yyval.pattern)->len, (yyvsp[(2) - (2)].pattern)->pattern, (yyvsp[(2) - (2)].pattern)->len); (yyval.pattern)->len += (yyvsp[(2) - (2)].pattern)->len; free ((yyvsp[(2) - (2)].pattern)->pattern); } break; case 34: #line 323 "parsessh.y" { (yyval.array) = rhs_new (); rhs_add ((yyval.array), (yyvsp[(1) - (1)].faced_string)); } break; case 35: #line 331 "parsessh.y" { (yyval.faced_string) = faced_string_new ((yyvsp[(1) - (2)].string), 0, (yyvsp[(2) - (2)].fface)); } break; case 36: #line 335 "parsessh.y" { (yyval.faced_string) = faced_string_new ((yyvsp[(1) - (1)].string), 0, No_fface); } break; case 37: #line 339 "parsessh.y" { (yyval.faced_string) = faced_string_new (NULL, 0, (yyvsp[(1) - (1)].fface)); } break; case 38: #line 343 "parsessh.y" { (yyval.faced_string) = faced_string_new (UNULL, (yyvsp[(1) - (2)].integer), (yyvsp[(2) - (2)].fface)); } break; case 39: #line 347 "parsessh.y" { (yyval.faced_string) = faced_string_new (UNULL, (yyvsp[(1) - (1)].integer), No_fface); } break; case 40: #line 351 "parsessh.y" { (yyval.faced_string) = faced_string_new ((yyvsp[(1) - (1)].string), 0, Symbol_fface); } break; case 41: #line 358 "parsessh.y" { (yyval.array) = rhs_new (); rhs_add ((yyval.array), (yyvsp[(1) - (1)].faced_string)); } break; case 42: #line 364 "parsessh.y" { rhs_add ((yyvsp[(1) - (3)].array), (yyvsp[(3) - (3)].faced_string)); (yyval.array) = (yyvsp[(1) - (3)].array); } break; case 43: #line 375 "parsessh.y" { fface_set_face ((yyval.fface), (yyvsp[(1) - (1)].face)); fface_reset_flags ((yyval.fface)); } break; case 44: #line 380 "parsessh.y" { fface_reset_face ((yyval.fface)); fface_set_flags ((yyval.fface), (yyvsp[(1) - (1)].fflags)); /* If there is no face, then set Invisible */ fface_add_flags ((yyval.fface), ff_Invisible); } break; case 45: #line 387 "parsessh.y" { (yyval.fface) = (yyvsp[(2) - (3)].fface); /* If there is no face, then set Invisible */ if (fface_get_face ((yyval.fface)) == No_face) fface_add_flags ((yyval.fface), ff_Invisible); } break; case 46: #line 397 "parsessh.y" { fface_set_face((yyval.fface), (yyvsp[(1) - (1)].face)); fface_reset_flags((yyval.fface)); } break; case 47: #line 402 "parsessh.y" { fface_reset_face((yyval.fface)); fface_set_flags((yyval.fface), (yyvsp[(1) - (1)].fflags)); } break; case 48: #line 407 "parsessh.y" { /* FIXME: Overloading of the face should be forbidden */ (yyval.fface) = (yyvsp[(1) - (3)].fface); fface_set_face((yyval.fface), (yyvsp[(3) - (3)].face)); } break; case 49: #line 413 "parsessh.y" { (yyval.fface) = (yyvsp[(1) - (3)].fface); fface_add_flags((yyval.fface), (yyvsp[(3) - (3)].fflags)); } break; case 50: #line 427 "parsessh.y" { (yyval.rule) = rule_new ((yyvsp[(1) - (2)].string), NULL, (yyvsp[(2) - (2)].array), sshfilename, sshlineno); } break; case 51: #line 432 "parsessh.y" { (yyval.rule) = rule_new ((yyvsp[(1) - (1)].string), NULL, rhs_new_single (UNULL, 0, No_fface), sshfilename, sshlineno); } break; case 52: #line 438 "parsessh.y" { (yyval.rule) = rule_new ((yyvsp[(2) - (4)].string), NULL, (yyvsp[(3) - (4)].array), sshfilename, sshlineno); } break; case 53: #line 449 "parsessh.y" { words_set_no_face ((yyvsp[(4) - (5)].words), (yyvsp[(2) - (5)].fface)); (yyval.words) = (yyvsp[(4) - (5)].words); } break; case 54: #line 453 "parsessh.y" { /* First of all, the No_face must be turned into Plain */ (yyval.words) = (yyvsp[(2) - (3)].words); } break; case 55: #line 461 "parsessh.y" { (yyval.words) = words_new ("Keywords: Strings", "Keywords: Regexps", 100, 100); words_add_string ((yyval.words), (yyvsp[(1) - (1)].rule)); } break; case 56: #line 466 "parsessh.y" { (yyval.words) = words_new ("Keywords: Strings", "Keywords: Regexps", 100, 100); words_add_regex ((yyval.words), (yyvsp[(1) - (1)].rule)); } break; case 57: #line 471 "parsessh.y" { words_add_string ((yyvsp[(1) - (3)].words), (yyvsp[(3) - (3)].rule)); (yyval.words) = (yyvsp[(1) - (3)].words); } break; case 58: #line 476 "parsessh.y" { words_add_regex ((yyvsp[(1) - (3)].words), (yyvsp[(3) - (3)].rule)); (yyval.words) = (yyvsp[(1) - (3)].words); } break; case 59: #line 488 "parsessh.y" { (yyval.rule) = keyword_rule_new (UNULL, (yyvsp[(1) - (2)].pattern), (yyvsp[(2) - (2)].array), sshfilename, sshlineno); } break; case 60: #line 493 "parsessh.y" { (yyval.rule) = keyword_rule_new (UNULL, (yyvsp[(1) - (1)].pattern), rhs_new_single (UNULL, 0, No_fface), sshfilename, sshlineno); } break; case 61: #line 500 "parsessh.y" { (yyval.rule) = keyword_rule_new (UNULL, (yyvsp[(2) - (4)].pattern), (yyvsp[(3) - (4)].array), sshfilename, sshlineno); } break; case 62: #line 509 "parsessh.y" { words_set_no_face ((yyvsp[(4) - (5)].words), (yyvsp[(2) - (5)].fface)); (yyval.words) = (yyvsp[(4) - (5)].words); } break; case 63: #line 513 "parsessh.y" { /* First of all, the No_face must be turned into Plain */ (yyval.words) = (yyvsp[(2) - (3)].words); } break; case 64: #line 521 "parsessh.y" { (yyval.words) = words_new ("Operators: Strings", "Operators: Regexps", 100, 100); words_add_string ((yyval.words), (yyvsp[(1) - (1)].rule)); } break; case 65: #line 527 "parsessh.y" { (yyval.words) = words_new ("Operators: Strings", "Operators: Regexps", 100, 100); words_add_regex ((yyval.words), (yyvsp[(1) - (1)].rule)); } break; case 66: #line 533 "parsessh.y" { words_add_string ((yyvsp[(1) - (3)].words), (yyvsp[(3) - (3)].rule)); (yyval.words) = (yyvsp[(1) - (3)].words); } break; case 67: #line 538 "parsessh.y" { words_add_regex ((yyvsp[(1) - (3)].words), (yyvsp[(3) - (3)].rule)); (yyval.words) = (yyvsp[(1) - (3)].words); } break; case 68: #line 550 "parsessh.y" { (yyval.rule) = rule_new (UNULL, (yyvsp[(1) - (2)].pattern), (yyvsp[(2) - (2)].array), sshfilename, sshlineno); } break; case 69: #line 555 "parsessh.y" { (yyval.rule) = rule_new (UNULL, (yyvsp[(1) - (1)].pattern), rhs_new_single (UNULL, 0, No_fface), sshfilename, sshlineno); } break; case 70: #line 561 "parsessh.y" { (yyval.rule) = rule_new (UNULL, (yyvsp[(2) - (4)].pattern), (yyvsp[(3) - (4)].array), sshfilename, sshlineno); } break; case 71: #line 570 "parsessh.y" { (yyval.array) = (yyvsp[(3) - (5)].array); } break; case 72: #line 573 "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[(1) - (1)].sequence)); } break; case 73: #line 579 "parsessh.y" { da_append ((yyvsp[(1) - (3)].array), (yyvsp[(3) - (3)].sequence)); (yyval.array) = (yyvsp[(1) - (3)].array); } break; case 74: #line 603 "parsessh.y" { struct rule * open_rule; open_rule = rule_new ((yyvsp[(1) - (5)].string), NULL, rhs_new_single ((yyvsp[(2) - (5)].string), 0, Symbol_fface), sshfilename, sshlineno); (yyval.sequence) = sequence_new (open_rule, (yyvsp[(3) - (5)].fface), (yyvsp[(4) - (5)].words), (yyvsp[(5) - (5)].words)); } break; case 75: #line 611 "parsessh.y" { struct rule * open_rule; open_rule = rule_new ((yyvsp[(1) - (6)].string), NULL, rhs_new_single ((yyvsp[(2) - (6)].string), 0, (yyvsp[(3) - (6)].fface)), sshfilename, sshlineno); (yyval.sequence) = sequence_new (open_rule, (yyvsp[(4) - (6)].fface), (yyvsp[(5) - (6)].words), (yyvsp[(6) - (6)].words)); } break; case 76: #line 619 "parsessh.y" { struct rule * open_rule; open_rule = rule_new ((yyvsp[(1) - (5)].string), NULL, rhs_new_single (UNULL, 0, (yyvsp[(2) - (5)].fface)), sshfilename, sshlineno); (yyval.sequence) = sequence_new (open_rule, (yyvsp[(3) - (5)].fface), (yyvsp[(4) - (5)].words), (yyvsp[(5) - (5)].words)); } break; case 77: #line 627 "parsessh.y" { struct rule * open_rule; open_rule = rule_new ((yyvsp[(1) - (5)].string), NULL, rhs_new_single ((yyvsp[(2) - (5)].string), 0, (yyvsp[(3) - (5)].fface)), sshfilename, sshlineno); (yyval.sequence) = sequence_new (open_rule, (yyvsp[(3) - (5)].fface), (yyvsp[(4) - (5)].words), (yyvsp[(5) - (5)].words)); } break; case 78: #line 635 "parsessh.y" { struct rule * open_rule; open_rule = rule_new ((yyvsp[(1) - (4)].string), NULL, rhs_new_single (UNULL, 0, (yyvsp[(2) - (4)].fface)), sshfilename, sshlineno); (yyval.sequence) = sequence_new (open_rule, (yyvsp[(2) - (4)].fface), (yyvsp[(3) - (4)].words), (yyvsp[(4) - (4)].words)); } break; case 79: #line 643 "parsessh.y" { struct rule * open_rule; open_rule = rule_new (UNULL, (yyvsp[(1) - (6)].pattern), rhs_new_single ((yyvsp[(2) - (6)].string), 0, (yyvsp[(3) - (6)].fface)), sshfilename, sshlineno); (yyval.sequence) = sequence_new (open_rule, (yyvsp[(4) - (6)].fface), (yyvsp[(5) - (6)].words), (yyvsp[(6) - (6)].words)); } break; case 80: #line 651 "parsessh.y" { struct rule * open_rule; open_rule = rule_new (UNULL, (yyvsp[(1) - (5)].pattern), rhs_new_single (UNULL, 0, (yyvsp[(2) - (5)].fface)), sshfilename, sshlineno); (yyval.sequence) = sequence_new (open_rule, (yyvsp[(3) - (5)].fface), (yyvsp[(4) - (5)].words), (yyvsp[(5) - (5)].words)); } break; case 81: #line 659 "parsessh.y" { struct rule * open_rule; open_rule = rule_new (UNULL, (yyvsp[(1) - (5)].pattern), rhs_new_single ((yyvsp[(2) - (5)].string), 0, (yyvsp[(3) - (5)].fface)), sshfilename, sshlineno); (yyval.sequence) = sequence_new (open_rule, (yyvsp[(3) - (5)].fface), (yyvsp[(4) - (5)].words), (yyvsp[(5) - (5)].words)); } break; case 82: #line 667 "parsessh.y" { struct rule * open_rule; open_rule = rule_new (UNULL, (yyvsp[(1) - (4)].pattern), rhs_new_single (UNULL, 0, No_fface), sshfilename, sshlineno); (yyval.sequence) = sequence_new (open_rule, (yyvsp[(2) - (4)].fface), (yyvsp[(3) - (4)].words), (yyvsp[(4) - (4)].words)); } break; case 83: #line 675 "parsessh.y" { struct rule * open_rule; open_rule = rule_new ((yyvsp[(2) - (7)].string), NULL, (yyvsp[(3) - (7)].array), sshfilename, sshlineno); (yyval.sequence) = sequence_new (open_rule, (yyvsp[(5) - (7)].fface), (yyvsp[(6) - (7)].words), (yyvsp[(7) - (7)].words)); } break; case 84: #line 682 "parsessh.y" { struct rule * open_rule; open_rule = rule_new (UNULL, (yyvsp[(2) - (7)].pattern), (yyvsp[(3) - (7)].array), sshfilename, sshlineno); (yyval.sequence) = sequence_new (open_rule, (yyvsp[(5) - (7)].fface), (yyvsp[(6) - (7)].words), (yyvsp[(7) - (7)].words)); } break; case 85: #line 690 "parsessh.y" { (yyval.sequence) = new_C_string_sequence ("\""); } break; case 86: #line 694 "parsessh.y" { (yyval.sequence) = new_C_string_sequence ("\'"); } break; case 87: #line 701 "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 (xustrdup ("\n"), NULL, rhs_new_single (NULL, 0, No_fface), sshfilename, sshlineno)); } break; case 88: #line 710 "parsessh.y" { /* Only one */ (yyval.words) = words_new ("Closing: Strings", "Closing: Regexps", 2, 2); words_add_string ((yyval.words), (yyvsp[(1) - (1)].rule)); } break; case 89: #line 716 "parsessh.y" { /* Only one */ (yyval.words) = words_new ("Closing: Strings", "Closing: Regexps", 2, 2); words_add_regex ((yyval.words), (yyvsp[(1) - (1)].rule)); } break; case 90: #line 722 "parsessh.y" { /* Several, comma separated, between () */ (yyval.words) = (yyvsp[(2) - (3)].words); } break; case 91: #line 730 "parsessh.y" { (yyval.words) = words_new ("Exceptions: Strings", "Exceptions: Regexps", 1, 1); } break; case 92: #line 734 "parsessh.y" { (yyval.words) = (yyvsp[(2) - (3)].words); } break; /* Line 1267 of yacc.c. */ #line 2423 "parsessh.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); YYPOPSTACK (yylen); yylen = 0; YY_STACK_PRINT (yyss, yyssp); *++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. */ yyn = yyr1[yyn]; yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) yystate = yytable[yystate]; else yystate = yydefgoto[yyn - YYNTOKENS]; goto yynewstate; /*------------------------------------. | yyerrlab -- here on detecting error | `------------------------------------*/ yyerrlab: /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { ++yynerrs; #if ! YYERROR_VERBOSE yyerror (YY_("syntax error")); #else { YYSIZE_T yysize = yysyntax_error (0, yystate, yychar); if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM) { YYSIZE_T yyalloc = 2 * yysize; if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM)) yyalloc = YYSTACK_ALLOC_MAXIMUM; if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); yymsg = (char *) YYSTACK_ALLOC (yyalloc); if (yymsg) yymsg_alloc = yyalloc; else { yymsg = yymsgbuf; yymsg_alloc = sizeof yymsgbuf; } } if (0 < yysize && yysize <= yymsg_alloc) { (void) yysyntax_error (yymsg, yystate, yychar); yyerror (yymsg); } else { yyerror (YY_("syntax error")); if (yysize != 0) goto yyexhaustedlab; } } #endif } if (yyerrstatus == 3) { /* If just tried and failed to reuse look-ahead 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 look-ahead token after shifting the error token. */ goto yyerrlab1; /*---------------------------------------------------. | yyerrorlab -- error raised explicitly by YYERROR. | `---------------------------------------------------*/ yyerrorlab: /* Pacify compilers like GCC when the user code never invokes YYERROR and the label yyerrorlab therefore never appears in user code. */ if (/*CONSTCOND*/ 0) goto yyerrorlab; /* Do not reclaim the symbols of the rule which 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. */ for (;;) { yyn = yypact[yystate]; if (yyn != YYPACT_NINF) { yyn += YYTERROR; if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) { 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", yystos[yystate], yyvsp); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); } if (yyn == YYFINAL) YYACCEPT; *++yyvsp = yylval; /* Shift the error token. */ YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); yystate = yyn; goto yynewstate; /*-------------------------------------. | yyacceptlab -- YYACCEPT comes here. | `-------------------------------------*/ yyacceptlab: yyresult = 0; goto yyreturn; /*-----------------------------------. | yyabortlab -- YYABORT comes here. | `-----------------------------------*/ yyabortlab: yyresult = 1; goto yyreturn; #ifndef yyoverflow /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ yyexhaustedlab: yyerror (YY_("memory exhausted")); yyresult = 2; /* Fall through. */ #endif yyreturn: if (yychar != YYEOF && yychar != YYEMPTY) yydestruct ("Cleanup: discarding lookahead", yytoken, &yylval); /* Do not reclaim the symbols of the rule which action triggered this YYABORT or YYACCEPT. */ YYPOPSTACK (yylen); YY_STACK_PRINT (yyss, yyssp); while (yyssp != yyss) { yydestruct ("Cleanup: popping", yystos[*yyssp], yyvsp); YYPOPSTACK (1); } #ifndef yyoverflow if (yyss != yyssa) YYSTACK_FREE (yyss); #endif #if YYERROR_VERBOSE if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); #endif /* Make sure YYID is used. */ return YYID (yyresult); } #line 738 "parsessh.y" void yyerror (const char *msg) { error_at_line (1, 0, sshfilename, sshlineno, 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.14/src/version-etc.c0000644000175000017500000000400410735322006015012 0ustar mhattamhatta/* Utility to help print --version output in a consistent format. Copyright (C) 1999 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Written by Jim Meyering. */ #if HAVE_CONFIG_H # include #endif #include #include "version-etc.h" #if ENABLE_NLS # include # define _(Text) gettext (Text) #else # define _(Text) Text #endif #define N_(Text) Text /* Default copyright goes to the FSF. */ char* version_etc_copyright = N_("Copyright (C) 1999 Free Software Foundation, Inc."); /* Display the --version information the standard way. If COMMAND_NAME is NULL, the PACKAGE is asumed to be the name of the program. The formats are therefore: PACKAGE VERSION or COMMAND_NAME (PACKAGE) VERSION. */ void version_etc (FILE *stream, const char *command_name, const char *package, const char *version, const char *authors) { if (command_name) fprintf (stream, "%s (%s) %s\n", command_name, package, version); else fprintf (stream, "%s %s\n", package, version); fprintf (stream, _("Written by %s.\n"), authors); putc ('\n', stream); fputs (_(version_etc_copyright), stream); putc ('\n', stream); fputs (_("\ 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"), stream); } a2ps-4.14/src/parsessh.output0000644000175000017500000013440710735337355015552 0ustar mhattamhatta文法 0 $accept: file $end 1 file: style_sheet 2 style_sheet: tSTYLE tSTRING tIS definition_list tEND tSTYLE 3 definition_list: /* 空 */ 4 | definition_list tOPTIONAL tKEYWORDS keywords_def tKEYWORDS 5 | definition_list tKEYWORDS keywords_def tKEYWORDS 6 | definition_list tOPTIONAL tOPERATORS operators_def tOPERATORS 7 | definition_list tOPERATORS operators_def tOPERATORS 8 | definition_list tOPTIONAL sequence_def 9 | definition_list sequence_def 10 | definition_list ancestors_def 11 | definition_list tALPHABETS tARE tSTRING 12 | definition_list tFIRST tALPHABET tIS tSTRING 13 | definition_list tSECOND tALPHABET tIS tSTRING 14 | definition_list case_def 15 | definition_list documentation 16 | definition_list authors 17 | definition_list version 18 | definition_list requirement 19 requirement: tREQUIRES tA2PS tSTRING 20 | tREQUIRES tA2PS tVERSION tSTRING 21 documentation: tDOCUMENTATION tIS long_string tEND tDOCUMENTATION 22 long_string: tSTRING 23 | long_string tSTRING 24 authors: tWRITTEN tBY tSTRING 25 version: tVERSION tIS tSTRING 26 | tVERSION tSTRING 27 ancestors_def: tANCESTORS tARE ancestors_list tEND tANCESTORS 28 ancestors_list: tSTRING 29 | ancestors_list ',' tSTRING 30 case_def: tCASE tSENSITIVENESS 31 regex: tREGEX 32 | regex tREGEX 33 rhs: a_rhs 34 a_rhs: tSTRING fface 35 | tSTRING 36 | fface 37 | tBACK_REF fface 38 | tBACK_REF 39 | tLATEXSYMBOL 40 rhs_list: a_rhs 41 | rhs_list ',' a_rhs 42 fface: tFACE 43 | tFFLAGS 44 | '(' fface_sxp ')' 45 fface_sxp: tFACE 46 | tFFLAGS 47 | fface_sxp '+' tFACE 48 | fface_sxp '+' tFFLAGS 49 rule: tSTRING rhs 50 | tSTRING 51 | '(' tSTRING rhs_list ')' 52 keywords_def: tIN fface tARE keywords_rule_list tEND 53 | tARE keywords_rule_list tEND 54 keywords_rule_list: rule 55 | keyword_regex 56 | keywords_rule_list ',' rule 57 | keywords_rule_list ',' keyword_regex 58 keyword_regex: regex rhs 59 | regex 60 | '(' regex rhs_list ')' 61 operators_def: tIN fface tARE operators_rule_list tEND 62 | tARE operators_rule_list tEND 63 operators_rule_list: rule 64 | operator_regex 65 | operators_rule_list ',' rule 66 | operators_rule_list ',' operator_regex 67 operator_regex: regex rhs 68 | regex 69 | '(' regex rhs_list ')' 70 sequence_def: tSEQUENCES tARE sequence_list tEND tSEQUENCES 71 sequence_list: sequence 72 | sequence_list ',' sequence 73 sequence: tSTRING tLATEXSYMBOL fface closers_opt exception_def_opt 74 | tSTRING tSTRING fface fface closers_opt exception_def_opt 75 | tSTRING fface fface closers_opt exception_def_opt 76 | tSTRING tSTRING fface closers_opt exception_def_opt 77 | tSTRING fface closers_opt exception_def_opt 78 | regex tSTRING fface fface closers_opt exception_def_opt 79 | regex fface fface closers_opt exception_def_opt 80 | regex tSTRING fface closers_opt exception_def_opt 81 | regex fface closers_opt exception_def_opt 82 | '(' tSTRING rhs_list ')' fface closers_opt exception_def_opt 83 | '(' regex rhs_list ')' fface closers_opt exception_def_opt 84 | tCSTRING 85 | tCCHAR 86 closers_opt: /* 空 */ 87 | rule 88 | operator_regex 89 | tCLOSERS operators_def tCLOSERS 90 exception_def_opt: /* 空 */ 91 | tEXCEPTIONS operators_def tEXCEPTIONS 出ç¾ä½ç½®ã®è¦å‰‡ã«ã‚ˆã‚‹çµ‚端 $end (0) 0 '(' (40) 44 51 60 69 82 83 ')' (41) 44 51 60 69 82 83 '+' (43) 47 48 ',' (44) 29 41 56 57 65 66 72 error (256) tSTYLE (258) 2 tIS (259) 2 12 13 21 25 tEND (260) 2 21 27 52 53 61 62 70 tKEYWORDS (261) 4 5 tARE (262) 11 27 52 53 61 62 70 tIN (263) 52 61 tOPERATORS (264) 6 7 tSEQUENCES (265) 70 tFIRST (266) 12 tSECOND (267) 13 tALPHABET (268) 12 13 tALPHABETS (269) 11 tDOCUMENTATION (270) 21 tEXCEPTIONS (271) 91 tCASE (272) 30 tCSTRING (273) 84 tCCHAR (274) 85 tOPTIONAL (275) 4 6 8 tCLOSERS (276) 89 tWRITTEN (277) 24 tBY (278) 24 tVERSION (279) 20 25 26 tREQUIRES (280) 19 20 tA2PS (281) 19 20 tANCESTORS (282) 27 tFACE (283) 42 45 47 tFFLAGS (284) 43 46 48 tSTRING (285) 2 11 12 13 19 20 22 23 24 25 26 28 29 34 35 49 50 51 73 74 75 76 77 78 80 82 tLATEXSYMBOL (286) 39 73 tREGEX (287) 31 32 tSENSITIVENESS (288) 30 tBACK_REF (289) 37 38 出ç¾ä½ç½®ã®è¦å‰‡ã«ã‚ˆã‚‹éžçµ‚端 $accept (39) 左辺: 0 file (40) 左辺: 1, å³è¾º: 0 style_sheet (41) 左辺: 2, å³è¾º: 1 definition_list (42) 左辺: 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18, å³è¾º: 2 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 requirement (43) 左辺: 19 20, å³è¾º: 18 documentation (44) 左辺: 21, å³è¾º: 15 long_string (45) 左辺: 22 23, å³è¾º: 21 23 authors (46) 左辺: 24, å³è¾º: 16 version (47) 左辺: 25 26, å³è¾º: 17 ancestors_def (48) 左辺: 27, å³è¾º: 10 ancestors_list (49) 左辺: 28 29, å³è¾º: 27 29 case_def (50) 左辺: 30, å³è¾º: 14 regex (51) 左辺: 31 32, å³è¾º: 32 58 59 60 67 68 69 78 79 80 81 83 rhs (52) 左辺: 33, å³è¾º: 49 58 67 a_rhs (53) 左辺: 34 35 36 37 38 39, å³è¾º: 33 40 41 rhs_list (54) 左辺: 40 41, å³è¾º: 41 51 60 69 82 83 fface (55) 左辺: 42 43 44, å³è¾º: 34 36 37 52 61 73 74 75 76 77 78 79 80 81 82 83 fface_sxp (56) 左辺: 45 46 47 48, å³è¾º: 44 47 48 rule (57) 左辺: 49 50 51, å³è¾º: 54 56 63 65 87 keywords_def (58) 左辺: 52 53, å³è¾º: 4 5 keywords_rule_list (59) 左辺: 54 55 56 57, å³è¾º: 52 53 56 57 keyword_regex (60) 左辺: 58 59 60, å³è¾º: 55 57 operators_def (61) 左辺: 61 62, å³è¾º: 6 7 89 91 operators_rule_list (62) 左辺: 63 64 65 66, å³è¾º: 61 62 65 66 operator_regex (63) 左辺: 67 68 69, å³è¾º: 64 66 88 sequence_def (64) 左辺: 70, å³è¾º: 8 9 sequence_list (65) 左辺: 71 72, å³è¾º: 70 72 sequence (66) 左辺: 73 74 75 76 77 78 79 80 81 82 83 84 85, å³è¾º: 71 72 closers_opt (67) 左辺: 86 87 88 89, å³è¾º: 73 74 75 76 77 78 79 80 81 82 83 exception_def_opt (68) 左辺: 90 91, å³è¾º: 73 74 75 76 77 78 79 80 81 82 83 状態 0 0 $accept: . file $end tSTYLE shift, and go to state 1 file go to state 2 style_sheet go to state 3 状態 1 2 style_sheet: tSTYLE . tSTRING tIS definition_list tEND tSTYLE tSTRING shift, and go to state 4 状態 2 0 $accept: file . $end $end shift, and go to state 5 状態 3 1 file: style_sheet . $default reduce using rule 1 (file) 状態 4 2 style_sheet: tSTYLE tSTRING . tIS definition_list tEND tSTYLE tIS shift, and go to state 6 状態 5 0 $accept: file $end . $default accept 状態 6 2 style_sheet: tSTYLE tSTRING tIS . definition_list tEND tSTYLE $default reduce using rule 3 (definition_list) definition_list go to state 7 状態 7 2 style_sheet: tSTYLE tSTRING tIS definition_list . tEND tSTYLE 4 definition_list: definition_list . tOPTIONAL tKEYWORDS keywords_def tKEYWORDS 5 | definition_list . tKEYWORDS keywords_def tKEYWORDS 6 | definition_list . tOPTIONAL tOPERATORS operators_def tOPERATORS 7 | definition_list . tOPERATORS operators_def tOPERATORS 8 | definition_list . tOPTIONAL sequence_def 9 | definition_list . sequence_def 10 | definition_list . ancestors_def 11 | definition_list . tALPHABETS tARE tSTRING 12 | definition_list . tFIRST tALPHABET tIS tSTRING 13 | definition_list . tSECOND tALPHABET tIS tSTRING 14 | definition_list . case_def 15 | definition_list . documentation 16 | definition_list . authors 17 | definition_list . version 18 | definition_list . requirement tEND shift, and go to state 8 tKEYWORDS shift, and go to state 9 tOPERATORS shift, and go to state 10 tSEQUENCES shift, and go to state 11 tFIRST shift, and go to state 12 tSECOND shift, and go to state 13 tALPHABETS shift, and go to state 14 tDOCUMENTATION shift, and go to state 15 tCASE shift, and go to state 16 tOPTIONAL shift, and go to state 17 tWRITTEN shift, and go to state 18 tVERSION shift, and go to state 19 tREQUIRES shift, and go to state 20 tANCESTORS shift, and go to state 21 requirement go to state 22 documentation go to state 23 authors go to state 24 version go to state 25 ancestors_def go to state 26 case_def go to state 27 sequence_def go to state 28 状態 8 2 style_sheet: tSTYLE tSTRING tIS definition_list tEND . tSTYLE tSTYLE shift, and go to state 29 状態 9 5 definition_list: definition_list tKEYWORDS . keywords_def tKEYWORDS tARE shift, and go to state 30 tIN shift, and go to state 31 keywords_def go to state 32 状態 10 7 definition_list: definition_list tOPERATORS . operators_def tOPERATORS tARE shift, and go to state 33 tIN shift, and go to state 34 operators_def go to state 35 状態 11 70 sequence_def: tSEQUENCES . tARE sequence_list tEND tSEQUENCES tARE shift, and go to state 36 状態 12 12 definition_list: definition_list tFIRST . tALPHABET tIS tSTRING tALPHABET shift, and go to state 37 状態 13 13 definition_list: definition_list tSECOND . tALPHABET tIS tSTRING tALPHABET shift, and go to state 38 状態 14 11 definition_list: definition_list tALPHABETS . tARE tSTRING tARE shift, and go to state 39 状態 15 21 documentation: tDOCUMENTATION . tIS long_string tEND tDOCUMENTATION tIS shift, and go to state 40 状態 16 30 case_def: tCASE . tSENSITIVENESS tSENSITIVENESS shift, and go to state 41 状態 17 4 definition_list: definition_list tOPTIONAL . tKEYWORDS keywords_def tKEYWORDS 6 | definition_list tOPTIONAL . tOPERATORS operators_def tOPERATORS 8 | definition_list tOPTIONAL . sequence_def tKEYWORDS shift, and go to state 42 tOPERATORS shift, and go to state 43 tSEQUENCES shift, and go to state 11 sequence_def go to state 44 状態 18 24 authors: tWRITTEN . tBY tSTRING tBY shift, and go to state 45 状態 19 25 version: tVERSION . tIS tSTRING 26 | tVERSION . tSTRING tIS shift, and go to state 46 tSTRING shift, and go to state 47 状態 20 19 requirement: tREQUIRES . tA2PS tSTRING 20 | tREQUIRES . tA2PS tVERSION tSTRING tA2PS shift, and go to state 48 状態 21 27 ancestors_def: tANCESTORS . tARE ancestors_list tEND tANCESTORS tARE shift, and go to state 49 状態 22 18 definition_list: definition_list requirement . $default reduce using rule 18 (definition_list) 状態 23 15 definition_list: definition_list documentation . $default reduce using rule 15 (definition_list) 状態 24 16 definition_list: definition_list authors . $default reduce using rule 16 (definition_list) 状態 25 17 definition_list: definition_list version . $default reduce using rule 17 (definition_list) 状態 26 10 definition_list: definition_list ancestors_def . $default reduce using rule 10 (definition_list) 状態 27 14 definition_list: definition_list case_def . $default reduce using rule 14 (definition_list) 状態 28 9 definition_list: definition_list sequence_def . $default reduce using rule 9 (definition_list) 状態 29 2 style_sheet: tSTYLE tSTRING tIS definition_list tEND tSTYLE . $default reduce using rule 2 (style_sheet) 状態 30 53 keywords_def: tARE . keywords_rule_list tEND tSTRING shift, and go to state 50 tREGEX shift, and go to state 51 '(' shift, and go to state 52 regex go to state 53 rule go to state 54 keywords_rule_list go to state 55 keyword_regex go to state 56 状態 31 52 keywords_def: tIN . fface tARE keywords_rule_list tEND tFACE shift, and go to state 57 tFFLAGS shift, and go to state 58 '(' shift, and go to state 59 fface go to state 60 状態 32 5 definition_list: definition_list tKEYWORDS keywords_def . tKEYWORDS tKEYWORDS shift, and go to state 61 状態 33 62 operators_def: tARE . operators_rule_list tEND tSTRING shift, and go to state 50 tREGEX shift, and go to state 51 '(' shift, and go to state 62 regex go to state 63 rule go to state 64 operators_rule_list go to state 65 operator_regex go to state 66 状態 34 61 operators_def: tIN . fface tARE operators_rule_list tEND tFACE shift, and go to state 57 tFFLAGS shift, and go to state 58 '(' shift, and go to state 59 fface go to state 67 状態 35 7 definition_list: definition_list tOPERATORS operators_def . tOPERATORS tOPERATORS shift, and go to state 68 状態 36 70 sequence_def: tSEQUENCES tARE . sequence_list tEND tSEQUENCES tCSTRING shift, and go to state 69 tCCHAR shift, and go to state 70 tSTRING shift, and go to state 71 tREGEX shift, and go to state 51 '(' shift, and go to state 72 regex go to state 73 sequence_list go to state 74 sequence go to state 75 状態 37 12 definition_list: definition_list tFIRST tALPHABET . tIS tSTRING tIS shift, and go to state 76 状態 38 13 definition_list: definition_list tSECOND tALPHABET . tIS tSTRING tIS shift, and go to state 77 状態 39 11 definition_list: definition_list tALPHABETS tARE . tSTRING tSTRING shift, and go to state 78 状態 40 21 documentation: tDOCUMENTATION tIS . long_string tEND tDOCUMENTATION tSTRING shift, and go to state 79 long_string go to state 80 状態 41 30 case_def: tCASE tSENSITIVENESS . $default reduce using rule 30 (case_def) 状態 42 4 definition_list: definition_list tOPTIONAL tKEYWORDS . keywords_def tKEYWORDS tARE shift, and go to state 30 tIN shift, and go to state 31 keywords_def go to state 81 状態 43 6 definition_list: definition_list tOPTIONAL tOPERATORS . operators_def tOPERATORS tARE shift, and go to state 33 tIN shift, and go to state 34 operators_def go to state 82 状態 44 8 definition_list: definition_list tOPTIONAL sequence_def . $default reduce using rule 8 (definition_list) 状態 45 24 authors: tWRITTEN tBY . tSTRING tSTRING shift, and go to state 83 状態 46 25 version: tVERSION tIS . tSTRING tSTRING shift, and go to state 84 状態 47 26 version: tVERSION tSTRING . $default reduce using rule 26 (version) 状態 48 19 requirement: tREQUIRES tA2PS . tSTRING 20 | tREQUIRES tA2PS . tVERSION tSTRING tVERSION shift, and go to state 85 tSTRING shift, and go to state 86 状態 49 27 ancestors_def: tANCESTORS tARE . ancestors_list tEND tANCESTORS tSTRING shift, and go to state 87 ancestors_list go to state 88 状態 50 49 rule: tSTRING . rhs 50 | tSTRING . tFACE shift, and go to state 57 tFFLAGS shift, and go to state 58 tSTRING shift, and go to state 89 tLATEXSYMBOL shift, and go to state 90 tBACK_REF shift, and go to state 91 '(' shift, and go to state 59 $default reduce using rule 50 (rule) rhs go to state 92 a_rhs go to state 93 fface go to state 94 状態 51 31 regex: tREGEX . $default reduce using rule 31 (regex) 状態 52 51 rule: '(' . tSTRING rhs_list ')' 60 keyword_regex: '(' . regex rhs_list ')' tSTRING shift, and go to state 95 tREGEX shift, and go to state 51 regex go to state 96 状態 53 32 regex: regex . tREGEX 58 keyword_regex: regex . rhs 59 | regex . tFACE shift, and go to state 57 tFFLAGS shift, and go to state 58 tSTRING shift, and go to state 89 tLATEXSYMBOL shift, and go to state 90 tREGEX shift, and go to state 97 tBACK_REF shift, and go to state 91 '(' shift, and go to state 59 $default reduce using rule 59 (keyword_regex) rhs go to state 98 a_rhs go to state 93 fface go to state 94 状態 54 54 keywords_rule_list: rule . $default reduce using rule 54 (keywords_rule_list) 状態 55 53 keywords_def: tARE keywords_rule_list . tEND 56 keywords_rule_list: keywords_rule_list . ',' rule 57 | keywords_rule_list . ',' keyword_regex tEND shift, and go to state 99 ',' shift, and go to state 100 状態 56 55 keywords_rule_list: keyword_regex . $default reduce using rule 55 (keywords_rule_list) 状態 57 42 fface: tFACE . $default reduce using rule 42 (fface) 状態 58 43 fface: tFFLAGS . $default reduce using rule 43 (fface) 状態 59 44 fface: '(' . fface_sxp ')' tFACE shift, and go to state 101 tFFLAGS shift, and go to state 102 fface_sxp go to state 103 状態 60 52 keywords_def: tIN fface . tARE keywords_rule_list tEND tARE shift, and go to state 104 状態 61 5 definition_list: definition_list tKEYWORDS keywords_def tKEYWORDS . $default reduce using rule 5 (definition_list) 状態 62 51 rule: '(' . tSTRING rhs_list ')' 69 operator_regex: '(' . regex rhs_list ')' tSTRING shift, and go to state 95 tREGEX shift, and go to state 51 regex go to state 105 状態 63 32 regex: regex . tREGEX 67 operator_regex: regex . rhs 68 | regex . tFACE shift, and go to state 57 tFFLAGS shift, and go to state 58 tSTRING shift, and go to state 89 tLATEXSYMBOL shift, and go to state 90 tREGEX shift, and go to state 97 tBACK_REF shift, and go to state 91 '(' shift, and go to state 59 $default reduce using rule 68 (operator_regex) rhs go to state 106 a_rhs go to state 93 fface go to state 94 状態 64 63 operators_rule_list: rule . $default reduce using rule 63 (operators_rule_list) 状態 65 62 operators_def: tARE operators_rule_list . tEND 65 operators_rule_list: operators_rule_list . ',' rule 66 | operators_rule_list . ',' operator_regex tEND shift, and go to state 107 ',' shift, and go to state 108 状態 66 64 operators_rule_list: operator_regex . $default reduce using rule 64 (operators_rule_list) 状態 67 61 operators_def: tIN fface . tARE operators_rule_list tEND tARE shift, and go to state 109 状態 68 7 definition_list: definition_list tOPERATORS operators_def tOPERATORS . $default reduce using rule 7 (definition_list) 状態 69 84 sequence: tCSTRING . $default reduce using rule 84 (sequence) 状態 70 85 sequence: tCCHAR . $default reduce using rule 85 (sequence) 状態 71 73 sequence: tSTRING . tLATEXSYMBOL fface closers_opt exception_def_opt 74 | tSTRING . tSTRING fface fface closers_opt exception_def_opt 75 | tSTRING . fface fface closers_opt exception_def_opt 76 | tSTRING . tSTRING fface closers_opt exception_def_opt 77 | tSTRING . fface closers_opt exception_def_opt tFACE shift, and go to state 57 tFFLAGS shift, and go to state 58 tSTRING shift, and go to state 110 tLATEXSYMBOL shift, and go to state 111 '(' shift, and go to state 59 fface go to state 112 状態 72 82 sequence: '(' . tSTRING rhs_list ')' fface closers_opt exception_def_opt 83 | '(' . regex rhs_list ')' fface closers_opt exception_def_opt tSTRING shift, and go to state 113 tREGEX shift, and go to state 51 regex go to state 114 状態 73 32 regex: regex . tREGEX 78 sequence: regex . tSTRING fface fface closers_opt exception_def_opt 79 | regex . fface fface closers_opt exception_def_opt 80 | regex . tSTRING fface closers_opt exception_def_opt 81 | regex . fface closers_opt exception_def_opt tFACE shift, and go to state 57 tFFLAGS shift, and go to state 58 tSTRING shift, and go to state 115 tREGEX shift, and go to state 97 '(' shift, and go to state 59 fface go to state 116 状態 74 70 sequence_def: tSEQUENCES tARE sequence_list . tEND tSEQUENCES 72 sequence_list: sequence_list . ',' sequence tEND shift, and go to state 117 ',' shift, and go to state 118 状態 75 71 sequence_list: sequence . $default reduce using rule 71 (sequence_list) 状態 76 12 definition_list: definition_list tFIRST tALPHABET tIS . tSTRING tSTRING shift, and go to state 119 状態 77 13 definition_list: definition_list tSECOND tALPHABET tIS . tSTRING tSTRING shift, and go to state 120 状態 78 11 definition_list: definition_list tALPHABETS tARE tSTRING . $default reduce using rule 11 (definition_list) 状態 79 22 long_string: tSTRING . $default reduce using rule 22 (long_string) 状態 80 21 documentation: tDOCUMENTATION tIS long_string . tEND tDOCUMENTATION 23 long_string: long_string . tSTRING tEND shift, and go to state 121 tSTRING shift, and go to state 122 状態 81 4 definition_list: definition_list tOPTIONAL tKEYWORDS keywords_def . tKEYWORDS tKEYWORDS shift, and go to state 123 状態 82 6 definition_list: definition_list tOPTIONAL tOPERATORS operators_def . tOPERATORS tOPERATORS shift, and go to state 124 状態 83 24 authors: tWRITTEN tBY tSTRING . $default reduce using rule 24 (authors) 状態 84 25 version: tVERSION tIS tSTRING . $default reduce using rule 25 (version) 状態 85 20 requirement: tREQUIRES tA2PS tVERSION . tSTRING tSTRING shift, and go to state 125 状態 86 19 requirement: tREQUIRES tA2PS tSTRING . $default reduce using rule 19 (requirement) 状態 87 28 ancestors_list: tSTRING . $default reduce using rule 28 (ancestors_list) 状態 88 27 ancestors_def: tANCESTORS tARE ancestors_list . tEND tANCESTORS 29 ancestors_list: ancestors_list . ',' tSTRING tEND shift, and go to state 126 ',' shift, and go to state 127 状態 89 34 a_rhs: tSTRING . fface 35 | tSTRING . tFACE shift, and go to state 57 tFFLAGS shift, and go to state 58 '(' shift, and go to state 59 $default reduce using rule 35 (a_rhs) fface go to state 128 状態 90 39 a_rhs: tLATEXSYMBOL . $default reduce using rule 39 (a_rhs) 状態 91 37 a_rhs: tBACK_REF . fface 38 | tBACK_REF . tFACE shift, and go to state 57 tFFLAGS shift, and go to state 58 '(' shift, and go to state 59 $default reduce using rule 38 (a_rhs) fface go to state 129 状態 92 49 rule: tSTRING rhs . $default reduce using rule 49 (rule) 状態 93 33 rhs: a_rhs . $default reduce using rule 33 (rhs) 状態 94 36 a_rhs: fface . $default reduce using rule 36 (a_rhs) 状態 95 51 rule: '(' tSTRING . rhs_list ')' tFACE shift, and go to state 57 tFFLAGS shift, and go to state 58 tSTRING shift, and go to state 89 tLATEXSYMBOL shift, and go to state 90 tBACK_REF shift, and go to state 91 '(' shift, and go to state 59 a_rhs go to state 130 rhs_list go to state 131 fface go to state 94 状態 96 32 regex: regex . tREGEX 60 keyword_regex: '(' regex . rhs_list ')' tFACE shift, and go to state 57 tFFLAGS shift, and go to state 58 tSTRING shift, and go to state 89 tLATEXSYMBOL shift, and go to state 90 tREGEX shift, and go to state 97 tBACK_REF shift, and go to state 91 '(' shift, and go to state 59 a_rhs go to state 130 rhs_list go to state 132 fface go to state 94 状態 97 32 regex: regex tREGEX . $default reduce using rule 32 (regex) 状態 98 58 keyword_regex: regex rhs . $default reduce using rule 58 (keyword_regex) 状態 99 53 keywords_def: tARE keywords_rule_list tEND . $default reduce using rule 53 (keywords_def) 状態 100 56 keywords_rule_list: keywords_rule_list ',' . rule 57 | keywords_rule_list ',' . keyword_regex tSTRING shift, and go to state 50 tREGEX shift, and go to state 51 '(' shift, and go to state 52 regex go to state 53 rule go to state 133 keyword_regex go to state 134 状態 101 45 fface_sxp: tFACE . $default reduce using rule 45 (fface_sxp) 状態 102 46 fface_sxp: tFFLAGS . $default reduce using rule 46 (fface_sxp) 状態 103 44 fface: '(' fface_sxp . ')' 47 fface_sxp: fface_sxp . '+' tFACE 48 | fface_sxp . '+' tFFLAGS ')' shift, and go to state 135 '+' shift, and go to state 136 状態 104 52 keywords_def: tIN fface tARE . keywords_rule_list tEND tSTRING shift, and go to state 50 tREGEX shift, and go to state 51 '(' shift, and go to state 52 regex go to state 53 rule go to state 54 keywords_rule_list go to state 137 keyword_regex go to state 56 状態 105 32 regex: regex . tREGEX 69 operator_regex: '(' regex . rhs_list ')' tFACE shift, and go to state 57 tFFLAGS shift, and go to state 58 tSTRING shift, and go to state 89 tLATEXSYMBOL shift, and go to state 90 tREGEX shift, and go to state 97 tBACK_REF shift, and go to state 91 '(' shift, and go to state 59 a_rhs go to state 130 rhs_list go to state 138 fface go to state 94 状態 106 67 operator_regex: regex rhs . $default reduce using rule 67 (operator_regex) 状態 107 62 operators_def: tARE operators_rule_list tEND . $default reduce using rule 62 (operators_def) 状態 108 65 operators_rule_list: operators_rule_list ',' . rule 66 | operators_rule_list ',' . operator_regex tSTRING shift, and go to state 50 tREGEX shift, and go to state 51 '(' shift, and go to state 62 regex go to state 63 rule go to state 139 operator_regex go to state 140 状態 109 61 operators_def: tIN fface tARE . operators_rule_list tEND tSTRING shift, and go to state 50 tREGEX shift, and go to state 51 '(' shift, and go to state 62 regex go to state 63 rule go to state 64 operators_rule_list go to state 141 operator_regex go to state 66 状態 110 74 sequence: tSTRING tSTRING . fface fface closers_opt exception_def_opt 76 | tSTRING tSTRING . fface closers_opt exception_def_opt tFACE shift, and go to state 57 tFFLAGS shift, and go to state 58 '(' shift, and go to state 59 fface go to state 142 状態 111 73 sequence: tSTRING tLATEXSYMBOL . fface closers_opt exception_def_opt tFACE shift, and go to state 57 tFFLAGS shift, and go to state 58 '(' shift, and go to state 59 fface go to state 143 状態 112 75 sequence: tSTRING fface . fface closers_opt exception_def_opt 77 | tSTRING fface . closers_opt exception_def_opt tCLOSERS shift, and go to state 144 tFACE shift, and go to state 57 tFFLAGS shift, and go to state 58 tSTRING shift, and go to state 50 tREGEX shift, and go to state 51 '(' shift, and go to state 145 $default reduce using rule 86 (closers_opt) regex go to state 63 fface go to state 146 rule go to state 147 operator_regex go to state 148 closers_opt go to state 149 状態 113 82 sequence: '(' tSTRING . rhs_list ')' fface closers_opt exception_def_opt tFACE shift, and go to state 57 tFFLAGS shift, and go to state 58 tSTRING shift, and go to state 89 tLATEXSYMBOL shift, and go to state 90 tBACK_REF shift, and go to state 91 '(' shift, and go to state 59 a_rhs go to state 130 rhs_list go to state 150 fface go to state 94 状態 114 32 regex: regex . tREGEX 83 sequence: '(' regex . rhs_list ')' fface closers_opt exception_def_opt tFACE shift, and go to state 57 tFFLAGS shift, and go to state 58 tSTRING shift, and go to state 89 tLATEXSYMBOL shift, and go to state 90 tREGEX shift, and go to state 97 tBACK_REF shift, and go to state 91 '(' shift, and go to state 59 a_rhs go to state 130 rhs_list go to state 151 fface go to state 94 状態 115 78 sequence: regex tSTRING . fface fface closers_opt exception_def_opt 80 | regex tSTRING . fface closers_opt exception_def_opt tFACE shift, and go to state 57 tFFLAGS shift, and go to state 58 '(' shift, and go to state 59 fface go to state 152 状態 116 79 sequence: regex fface . fface closers_opt exception_def_opt 81 | regex fface . closers_opt exception_def_opt tCLOSERS shift, and go to state 144 tFACE shift, and go to state 57 tFFLAGS shift, and go to state 58 tSTRING shift, and go to state 50 tREGEX shift, and go to state 51 '(' shift, and go to state 145 $default reduce using rule 86 (closers_opt) regex go to state 63 fface go to state 153 rule go to state 147 operator_regex go to state 148 closers_opt go to state 154 状態 117 70 sequence_def: tSEQUENCES tARE sequence_list tEND . tSEQUENCES tSEQUENCES shift, and go to state 155 状態 118 72 sequence_list: sequence_list ',' . sequence tCSTRING shift, and go to state 69 tCCHAR shift, and go to state 70 tSTRING shift, and go to state 71 tREGEX shift, and go to state 51 '(' shift, and go to state 72 regex go to state 73 sequence go to state 156 状態 119 12 definition_list: definition_list tFIRST tALPHABET tIS tSTRING . $default reduce using rule 12 (definition_list) 状態 120 13 definition_list: definition_list tSECOND tALPHABET tIS tSTRING . $default reduce using rule 13 (definition_list) 状態 121 21 documentation: tDOCUMENTATION tIS long_string tEND . tDOCUMENTATION tDOCUMENTATION shift, and go to state 157 状態 122 23 long_string: long_string tSTRING . $default reduce using rule 23 (long_string) 状態 123 4 definition_list: definition_list tOPTIONAL tKEYWORDS keywords_def tKEYWORDS . $default reduce using rule 4 (definition_list) 状態 124 6 definition_list: definition_list tOPTIONAL tOPERATORS operators_def tOPERATORS . $default reduce using rule 6 (definition_list) 状態 125 20 requirement: tREQUIRES tA2PS tVERSION tSTRING . $default reduce using rule 20 (requirement) 状態 126 27 ancestors_def: tANCESTORS tARE ancestors_list tEND . tANCESTORS tANCESTORS shift, and go to state 158 状態 127 29 ancestors_list: ancestors_list ',' . tSTRING tSTRING shift, and go to state 159 状態 128 34 a_rhs: tSTRING fface . $default reduce using rule 34 (a_rhs) 状態 129 37 a_rhs: tBACK_REF fface . $default reduce using rule 37 (a_rhs) 状態 130 40 rhs_list: a_rhs . $default reduce using rule 40 (rhs_list) 状態 131 41 rhs_list: rhs_list . ',' a_rhs 51 rule: '(' tSTRING rhs_list . ')' ',' shift, and go to state 160 ')' shift, and go to state 161 状態 132 41 rhs_list: rhs_list . ',' a_rhs 60 keyword_regex: '(' regex rhs_list . ')' ',' shift, and go to state 160 ')' shift, and go to state 162 状態 133 56 keywords_rule_list: keywords_rule_list ',' rule . $default reduce using rule 56 (keywords_rule_list) 状態 134 57 keywords_rule_list: keywords_rule_list ',' keyword_regex . $default reduce using rule 57 (keywords_rule_list) 状態 135 44 fface: '(' fface_sxp ')' . $default reduce using rule 44 (fface) 状態 136 47 fface_sxp: fface_sxp '+' . tFACE 48 | fface_sxp '+' . tFFLAGS tFACE shift, and go to state 163 tFFLAGS shift, and go to state 164 状態 137 52 keywords_def: tIN fface tARE keywords_rule_list . tEND 56 keywords_rule_list: keywords_rule_list . ',' rule 57 | keywords_rule_list . ',' keyword_regex tEND shift, and go to state 165 ',' shift, and go to state 100 状態 138 41 rhs_list: rhs_list . ',' a_rhs 69 operator_regex: '(' regex rhs_list . ')' ',' shift, and go to state 160 ')' shift, and go to state 166 状態 139 65 operators_rule_list: operators_rule_list ',' rule . $default reduce using rule 65 (operators_rule_list) 状態 140 66 operators_rule_list: operators_rule_list ',' operator_regex . $default reduce using rule 66 (operators_rule_list) 状態 141 61 operators_def: tIN fface tARE operators_rule_list . tEND 65 operators_rule_list: operators_rule_list . ',' rule 66 | operators_rule_list . ',' operator_regex tEND shift, and go to state 167 ',' shift, and go to state 108 状態 142 74 sequence: tSTRING tSTRING fface . fface closers_opt exception_def_opt 76 | tSTRING tSTRING fface . closers_opt exception_def_opt tCLOSERS shift, and go to state 144 tFACE shift, and go to state 57 tFFLAGS shift, and go to state 58 tSTRING shift, and go to state 50 tREGEX shift, and go to state 51 '(' shift, and go to state 145 $default reduce using rule 86 (closers_opt) regex go to state 63 fface go to state 168 rule go to state 147 operator_regex go to state 148 closers_opt go to state 169 状態 143 73 sequence: tSTRING tLATEXSYMBOL fface . closers_opt exception_def_opt tCLOSERS shift, and go to state 144 tSTRING shift, and go to state 50 tREGEX shift, and go to state 51 '(' shift, and go to state 62 $default reduce using rule 86 (closers_opt) regex go to state 63 rule go to state 147 operator_regex go to state 148 closers_opt go to state 170 状態 144 89 closers_opt: tCLOSERS . operators_def tCLOSERS tARE shift, and go to state 33 tIN shift, and go to state 34 operators_def go to state 171 状態 145 44 fface: '(' . fface_sxp ')' 51 rule: '(' . tSTRING rhs_list ')' 69 operator_regex: '(' . regex rhs_list ')' tFACE shift, and go to state 101 tFFLAGS shift, and go to state 102 tSTRING shift, and go to state 95 tREGEX shift, and go to state 51 regex go to state 105 fface_sxp go to state 103 状態 146 75 sequence: tSTRING fface fface . closers_opt exception_def_opt tCLOSERS shift, and go to state 144 tSTRING shift, and go to state 50 tREGEX shift, and go to state 51 '(' shift, and go to state 62 $default reduce using rule 86 (closers_opt) regex go to state 63 rule go to state 147 operator_regex go to state 148 closers_opt go to state 172 状態 147 87 closers_opt: rule . $default reduce using rule 87 (closers_opt) 状態 148 88 closers_opt: operator_regex . $default reduce using rule 88 (closers_opt) 状態 149 77 sequence: tSTRING fface closers_opt . exception_def_opt tEXCEPTIONS shift, and go to state 173 $default reduce using rule 90 (exception_def_opt) exception_def_opt go to state 174 状態 150 41 rhs_list: rhs_list . ',' a_rhs 82 sequence: '(' tSTRING rhs_list . ')' fface closers_opt exception_def_opt ',' shift, and go to state 160 ')' shift, and go to state 175 状態 151 41 rhs_list: rhs_list . ',' a_rhs 83 sequence: '(' regex rhs_list . ')' fface closers_opt exception_def_opt ',' shift, and go to state 160 ')' shift, and go to state 176 状態 152 78 sequence: regex tSTRING fface . fface closers_opt exception_def_opt 80 | regex tSTRING fface . closers_opt exception_def_opt tCLOSERS shift, and go to state 144 tFACE shift, and go to state 57 tFFLAGS shift, and go to state 58 tSTRING shift, and go to state 50 tREGEX shift, and go to state 51 '(' shift, and go to state 145 $default reduce using rule 86 (closers_opt) regex go to state 63 fface go to state 177 rule go to state 147 operator_regex go to state 148 closers_opt go to state 178 状態 153 79 sequence: regex fface fface . closers_opt exception_def_opt tCLOSERS shift, and go to state 144 tSTRING shift, and go to state 50 tREGEX shift, and go to state 51 '(' shift, and go to state 62 $default reduce using rule 86 (closers_opt) regex go to state 63 rule go to state 147 operator_regex go to state 148 closers_opt go to state 179 状態 154 81 sequence: regex fface closers_opt . exception_def_opt tEXCEPTIONS shift, and go to state 173 $default reduce using rule 90 (exception_def_opt) exception_def_opt go to state 180 状態 155 70 sequence_def: tSEQUENCES tARE sequence_list tEND tSEQUENCES . $default reduce using rule 70 (sequence_def) 状態 156 72 sequence_list: sequence_list ',' sequence . $default reduce using rule 72 (sequence_list) 状態 157 21 documentation: tDOCUMENTATION tIS long_string tEND tDOCUMENTATION . $default reduce using rule 21 (documentation) 状態 158 27 ancestors_def: tANCESTORS tARE ancestors_list tEND tANCESTORS . $default reduce using rule 27 (ancestors_def) 状態 159 29 ancestors_list: ancestors_list ',' tSTRING . $default reduce using rule 29 (ancestors_list) 状態 160 41 rhs_list: rhs_list ',' . a_rhs tFACE shift, and go to state 57 tFFLAGS shift, and go to state 58 tSTRING shift, and go to state 89 tLATEXSYMBOL shift, and go to state 90 tBACK_REF shift, and go to state 91 '(' shift, and go to state 59 a_rhs go to state 181 fface go to state 94 状態 161 51 rule: '(' tSTRING rhs_list ')' . $default reduce using rule 51 (rule) 状態 162 60 keyword_regex: '(' regex rhs_list ')' . $default reduce using rule 60 (keyword_regex) 状態 163 47 fface_sxp: fface_sxp '+' tFACE . $default reduce using rule 47 (fface_sxp) 状態 164 48 fface_sxp: fface_sxp '+' tFFLAGS . $default reduce using rule 48 (fface_sxp) 状態 165 52 keywords_def: tIN fface tARE keywords_rule_list tEND . $default reduce using rule 52 (keywords_def) 状態 166 69 operator_regex: '(' regex rhs_list ')' . $default reduce using rule 69 (operator_regex) 状態 167 61 operators_def: tIN fface tARE operators_rule_list tEND . $default reduce using rule 61 (operators_def) 状態 168 74 sequence: tSTRING tSTRING fface fface . closers_opt exception_def_opt tCLOSERS shift, and go to state 144 tSTRING shift, and go to state 50 tREGEX shift, and go to state 51 '(' shift, and go to state 62 $default reduce using rule 86 (closers_opt) regex go to state 63 rule go to state 147 operator_regex go to state 148 closers_opt go to state 182 状態 169 76 sequence: tSTRING tSTRING fface closers_opt . exception_def_opt tEXCEPTIONS shift, and go to state 173 $default reduce using rule 90 (exception_def_opt) exception_def_opt go to state 183 状態 170 73 sequence: tSTRING tLATEXSYMBOL fface closers_opt . exception_def_opt tEXCEPTIONS shift, and go to state 173 $default reduce using rule 90 (exception_def_opt) exception_def_opt go to state 184 状態 171 89 closers_opt: tCLOSERS operators_def . tCLOSERS tCLOSERS shift, and go to state 185 状態 172 75 sequence: tSTRING fface fface closers_opt . exception_def_opt tEXCEPTIONS shift, and go to state 173 $default reduce using rule 90 (exception_def_opt) exception_def_opt go to state 186 状態 173 91 exception_def_opt: tEXCEPTIONS . operators_def tEXCEPTIONS tARE shift, and go to state 33 tIN shift, and go to state 34 operators_def go to state 187 状態 174 77 sequence: tSTRING fface closers_opt exception_def_opt . $default reduce using rule 77 (sequence) 状態 175 82 sequence: '(' tSTRING rhs_list ')' . fface closers_opt exception_def_opt tFACE shift, and go to state 57 tFFLAGS shift, and go to state 58 '(' shift, and go to state 59 fface go to state 188 状態 176 83 sequence: '(' regex rhs_list ')' . fface closers_opt exception_def_opt tFACE shift, and go to state 57 tFFLAGS shift, and go to state 58 '(' shift, and go to state 59 fface go to state 189 状態 177 78 sequence: regex tSTRING fface fface . closers_opt exception_def_opt tCLOSERS shift, and go to state 144 tSTRING shift, and go to state 50 tREGEX shift, and go to state 51 '(' shift, and go to state 62 $default reduce using rule 86 (closers_opt) regex go to state 63 rule go to state 147 operator_regex go to state 148 closers_opt go to state 190 状態 178 80 sequence: regex tSTRING fface closers_opt . exception_def_opt tEXCEPTIONS shift, and go to state 173 $default reduce using rule 90 (exception_def_opt) exception_def_opt go to state 191 状態 179 79 sequence: regex fface fface closers_opt . exception_def_opt tEXCEPTIONS shift, and go to state 173 $default reduce using rule 90 (exception_def_opt) exception_def_opt go to state 192 状態 180 81 sequence: regex fface closers_opt exception_def_opt . $default reduce using rule 81 (sequence) 状態 181 41 rhs_list: rhs_list ',' a_rhs . $default reduce using rule 41 (rhs_list) 状態 182 74 sequence: tSTRING tSTRING fface fface closers_opt . exception_def_opt tEXCEPTIONS shift, and go to state 173 $default reduce using rule 90 (exception_def_opt) exception_def_opt go to state 193 状態 183 76 sequence: tSTRING tSTRING fface closers_opt exception_def_opt . $default reduce using rule 76 (sequence) 状態 184 73 sequence: tSTRING tLATEXSYMBOL fface closers_opt exception_def_opt . $default reduce using rule 73 (sequence) 状態 185 89 closers_opt: tCLOSERS operators_def tCLOSERS . $default reduce using rule 89 (closers_opt) 状態 186 75 sequence: tSTRING fface fface closers_opt exception_def_opt . $default reduce using rule 75 (sequence) 状態 187 91 exception_def_opt: tEXCEPTIONS operators_def . tEXCEPTIONS tEXCEPTIONS shift, and go to state 194 状態 188 82 sequence: '(' tSTRING rhs_list ')' fface . closers_opt exception_def_opt tCLOSERS shift, and go to state 144 tSTRING shift, and go to state 50 tREGEX shift, and go to state 51 '(' shift, and go to state 62 $default reduce using rule 86 (closers_opt) regex go to state 63 rule go to state 147 operator_regex go to state 148 closers_opt go to state 195 状態 189 83 sequence: '(' regex rhs_list ')' fface . closers_opt exception_def_opt tCLOSERS shift, and go to state 144 tSTRING shift, and go to state 50 tREGEX shift, and go to state 51 '(' shift, and go to state 62 $default reduce using rule 86 (closers_opt) regex go to state 63 rule go to state 147 operator_regex go to state 148 closers_opt go to state 196 状態 190 78 sequence: regex tSTRING fface fface closers_opt . exception_def_opt tEXCEPTIONS shift, and go to state 173 $default reduce using rule 90 (exception_def_opt) exception_def_opt go to state 197 状態 191 80 sequence: regex tSTRING fface closers_opt exception_def_opt . $default reduce using rule 80 (sequence) 状態 192 79 sequence: regex fface fface closers_opt exception_def_opt . $default reduce using rule 79 (sequence) 状態 193 74 sequence: tSTRING tSTRING fface fface closers_opt exception_def_opt . $default reduce using rule 74 (sequence) 状態 194 91 exception_def_opt: tEXCEPTIONS operators_def tEXCEPTIONS . $default reduce using rule 91 (exception_def_opt) 状態 195 82 sequence: '(' tSTRING rhs_list ')' fface closers_opt . exception_def_opt tEXCEPTIONS shift, and go to state 173 $default reduce using rule 90 (exception_def_opt) exception_def_opt go to state 198 状態 196 83 sequence: '(' regex rhs_list ')' fface closers_opt . exception_def_opt tEXCEPTIONS shift, and go to state 173 $default reduce using rule 90 (exception_def_opt) exception_def_opt go to state 199 状態 197 78 sequence: regex tSTRING fface fface closers_opt exception_def_opt . $default reduce using rule 78 (sequence) 状態 198 82 sequence: '(' tSTRING rhs_list ')' fface closers_opt exception_def_opt . $default reduce using rule 82 (sequence) 状態 199 83 sequence: '(' regex rhs_list ')' fface closers_opt exception_def_opt . $default reduce using rule 83 (sequence) a2ps-4.14/src/lexps.h0000644000175000017500000000224110735324713013724 0ustar mhattamhatta/* * A Simple Lexer for PostScript. * * 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: lexps.h,v 1.1.1.1.2.1 2007/12/29 01:58:35 mhatta Exp $ */ #ifndef LEXPS_H_ # define LEXPS_H_ /* Dump the file FILENAME on STREAM, while inserting the special pagedevice requests of JOB. */ void pslex_dump PARAMS ((FILE *stream, const char *filename)); #endif a2ps-4.14/src/ffaces.h0000644000175000017500000000630210735324713014022 0ustar mhattamhatta/* * ffaces.h * * definition of the flagged faces used by 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: ffaces.h,v 1.1.1.1.2.1 2007/12/29 01:58:35 mhatta Exp $ */ #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 PARAMS ((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 PARAMS ((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.14/src/parsessh.h0000644000175000017500000000743610735337355014442 0ustar mhattamhatta/* A Bison parser, made by GNU Bison 2.3. */ /* Skeleton interface for Bison's Yacc-like parsers in C Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* 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. */ /* Tokens. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE /* Put the tokens into the symbol table, so that GDB and other debuggers know about them. */ enum yytokentype { tSTYLE = 258, tIS = 259, tEND = 260, tKEYWORDS = 261, tARE = 262, tIN = 263, tOPERATORS = 264, tSEQUENCES = 265, tFIRST = 266, tSECOND = 267, tALPHABET = 268, tALPHABETS = 269, tDOCUMENTATION = 270, tEXCEPTIONS = 271, tCASE = 272, tCSTRING = 273, tCCHAR = 274, tOPTIONAL = 275, tCLOSERS = 276, tWRITTEN = 277, tBY = 278, tVERSION = 279, tREQUIRES = 280, tA2PS = 281, tANCESTORS = 282, tFACE = 283, tFFLAGS = 284, tSTRING = 285, tLATEXSYMBOL = 286, tREGEX = 287, tSENSITIVENESS = 288, tBACK_REF = 289 }; #endif /* Tokens. */ #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 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE #line 81 "parsessh.y" { int integer; uchar * 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 1489 of yacc.c. */ #line 133 "parsessh.h" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 # define YYSTYPE_IS_TRIVIAL 1 #endif extern YYSTYPE yylval; a2ps-4.14/src/select.c0000644000175000017500000001541610735322006014044 0ustar mhattamhatta/* * select.c -- Selection of a style sheet * 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. */ #include "a2ps.h" #include "select.h" #include "routines.h" #include "xfnmatch.h" #include "getshline.h" #include "path-concat.h" #include "pathwalk.h" #include "filtdir.h" #include "message.h" #include "quotearg.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) { NEW (struct pattern_rule, res); 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 can not be found: there is no automatic prettyprinting */ error (0, 0, _("automatic style selection cancelled")); return 0; } sheets_map_load (file); free (file); return 1; } /* escapes the name of a file so that the shell groks it in 'single' q.marks. The resulting pointer has to be free()ed when not longer used. */ 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 uchar *filename) { char *cp = NULL, * command; char buf [1024]; FILE * file_out; if (IS_EMPTY (job->file_command)) return NULL; filename = shell_escape(filename); if(filename == NULL) return NULL; /* Call file(1) with the correct option */ command = ALLOCA (char, (4 + strlen (job->file_command) + ustrlen (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 */ fgets (buf, sizeof (buf), file_out); pclose (file_out); 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 uchar *name_to_match, const uchar *name_to_file) { int i; char *file_verdict; uchar *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 , * Christian Mondrup and Jens Henrik Leonhard * Jensen recjhl@mediator.uni-c.dk) */ /* The loop is split to speed up */ for (i = sheets_map->len - 1 ; i >= 0 ; i--) if (rule(i)->on_file_verdict) { /* Testing upon file's result */ if (file_verdict && !fnmatch (rule(i)->pattern, file_verdict, 0)) { free (file_verdict); 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)) { XFREE (file_verdict); return rule(i)->command; } } XFREE (file_verdict); return "plain"; } a2ps-4.14/src/regex.h0000644000175000017500000005030310735322023013675 0ustar mhattamhatta/* 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 must be included (by the caller) before . */ #if !defined _POSIX_C_SOURCE && !defined _POSIX_SOURCE && defined VMS /* VMS doesn't have `size_t' in , even though POSIX says it should be there. */ # include #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 \ matches . If not set, then \ 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.14/src/read.c0000644000175000017500000001227210735322006013475 0ustar mhattamhatta/* * read.c --- routines of input with no style sheets * * 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. */ #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) { uchar 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 = buffer->content[(buffer->curr)++]; /* Check if it is a special nroff'ed sequence */ if (buffer->content[buffer->curr] == '\b') { /* We might be dealing with misceleanous nroff'ed pages. */ const uchar *input = 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 3 usuals. 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 = 0305; /* \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 = 0343; /* \copyright. */ } /* Seen in gtroff.1 : +;\b;_, for plus or minus */ else if ('+' == c && '_' == input[0]) { *face = Symbol; buffer->curr += 2; c = 0261; } /* 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 = 0263; } /* Less than or equal to. */ else if ('~' == c && '<' == input[0] && '\b' == input[1] && '_' == input[2]) { *face = Symbol; buffer->curr += 4; c = 0243; } /* 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 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, c, face); } a2ps-4.14/src/main.h0000644000175000017500000000361310735324713013521 0ustar mhattamhatta/* * main.h -- Common definitions for a2ps the program * * 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: main.h,v 1.1.1.1.2.1 2007/12/29 01:58:35 mhatta Exp $ */ #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 uchar * 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.14/src/generate.h0000644000175000017500000000235710735322023014363 0ustar mhattamhatta/* * generate.h -- Input files and pretty printing. * * 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. */ #ifndef GENERATE_H_ # define GENERATE_H_ void print PARAMS ((uchar * name, int * native_jobs, int * delegated_jobs)); void print_toc PARAMS ((const uchar * name, const uchar * value, int * native_jobs)); void msg_job_pages_printed PARAMS ((a2ps_job * job)); void msg_nothing_printed PARAMS ((void)); void guess PARAMS ((uchar * name)); #endif /* not defined(GENERATE_H_) */ a2ps-4.14/src/long-options.c0000644000175000017500000000447510735322006015220 0ustar mhattamhatta/* Utility to accept --help and --version options as unobtrusively as possible. Copyright (C) 1993, 1994, 1998, 1999 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Written by Jim Meyering. */ #if HAVE_CONFIG_H # include #endif #include #include #include "closeout.h" #include "long-options.h" #include "version-etc.h" #if ENABLE_NLS # include # define _(Text) gettext (Text) #else # define _(Text) Text #endif static struct option const long_options[] = { {"help", no_argument, 0, 'h'}, {"version", no_argument, 0, 'v'}, {0, 0, 0, 0} }; /* Process long options --help and --version, but only if argc == 2. Be careful not to gobble up `--'. */ void parse_long_options (int argc, char **argv, const char *command_name, const char *package, const char *version, const char *authors, void (*usage_func)()) { int c; int saved_opterr; saved_opterr = opterr; /* Don't print an error message for unrecognized options. */ opterr = 0; if (argc == 2 && (c = getopt_long (argc, argv, "+", long_options, NULL)) != -1) { switch (c) { case 'h': (*usage_func) (0); case 'v': version_etc (stdout, command_name, package, version, authors); close_stdout (); /* FIXME: output failure exit status should be settable via an arg. */ exit (0); default: /* Don't process any other long-named options. */ break; } } /* Restore previous value. */ opterr = saved_opterr; /* Reset this to zero so that getopt internals get initialized from the probably-new parameters when/if getopt is called later. */ optind = 0; } a2ps-4.14/src/buffer.h0000644000175000017500000000643710735324713014055 0ustar mhattamhatta/* * buffer.h - read line by line with conversion of EOL types * * 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: buffer.h,v 1.1.1.1.2.1 2007/12/29 01:58:35 mhatta Exp $ */ #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 PARAMS ((enum eol_e eol)); enum eol_e option_string_to_eol PARAMS ((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 uchar * 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 */ uchar *content; /* Exactly what is read */ enum eol_e eol; /* What is an end of line? */ bool lower_case; uchar * 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 PARAMS ((buffer_t * buffer, FILE * stream, enum eol_e eol)); void buffer_pipe_set PARAMS ((buffer_t * buffer, FILE * stream, enum eol_e eol)); void buffer_string_set PARAMS ((buffer_t * buffer, const uchar * string, enum eol_e eol)); void buffer_buffer_set PARAMS ((buffer_t * buffer, const uchar * buf, size_t bufsize, enum eol_e eol)); void buffer_set_lower_case PARAMS ((buffer_t * buffer, bool lower_case)); void buffer_self_print PARAMS ((buffer_t * buffer, FILE * stream)); void buffer_release PARAMS ((buffer_t * buffer)); void buffer_get PARAMS ((buffer_t * buffer)); void buffer_sample_get PARAMS ((buffer_t * buffer, const char * filename)); void buffer_save PARAMS ((buffer_t * buffer, const char * filename)); #define buffer_is_empty(Buf) (Buf->curr >= Buf->len) #endif a2ps-4.14/src/versions.c0000644000175000017500000000561610735322006014436 0ustar mhattamhatta/* * versions.c -- Handling standard version numbers * 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 "a2ps.h" #include "versions.h" #include "quotearg.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 */ int version_length (version_t version) { #define short_int_len(_i_) ((_i_) < 10 ? 1 : 2) if (version[2]) return 2 + short_int_len(version[0]) + short_int_len(version[1]) + 1; else return 1 + 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.14/src/yy2ssh.h0000644000175000017500000000166210735322023014030 0ustar mhattamhatta#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.14/src/ffaces.c0000644000175000017500000000573110735324713014022 0ustar mhattamhatta/* * ffaces.h * * definition of the flagged faces used by a2ps * Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana * Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana * $Id: ffaces.c,v 1.1.1.1.2.1 2007/12/29 01:58:35 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. */ #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.14/src/ssheet.c0000644000175000017500000012140510735322006014054 0ustar mhattamhatta/* * ssheet.c -- definition of the languages style sheets * * Copyright (c) 1988-93 Miguel Santana * 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. */ #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 PARAMS ((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 PARAMS ((struct darray * keys, int sum [4], int requirement [4])); /* return true iff OK */ static bool style_sheet_check PARAMS ((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 uchar *) \ "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_") #define DEFAULT_ALPHA2 ((const uchar *) \ "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789") static void alphabet_self_print (char *a, FILE *s) { if (ALPHABET_IS_UNDEFINED (a)) fputs ("\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, 1); res->pattern = pattern; res->len = len; return res; } /* * The faced_string */ struct faced_string * faced_string_new (uchar * string, int reg_ref, struct fface_s face) { struct faced_string * res = XMALLOC (struct faced_string, 1); 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); } inline static void faced_string_free (struct faced_string * faced_string) { XFREE (faced_string->string); free (faced_string); } /* * 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 (uchar * 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 (uchar * word, struct darray * rhs) { struct rule * res = XMALLOC (struct rule, 1); 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, int regexp_len, struct darray *rhs, const char *filename, size_t line) { struct rule *res = XMALLOC (struct rule, 1); 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 = (uchar *) pattern->pattern; /* Build the regex structure, and compile the pattern */ res->regex = XMALLOC (struct re_pattern_buffer, 1); 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, line, _("cannot compile regular expression `%s': %s"), regexp, error_msg); free (pattern); res->rhs = rhs; return res; } /* * Dealing with the rules and operators */ struct rule * rule_new (uchar * 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 (uchar * word, struct pattern * pattern, struct darray * rhs, const char *filename, size_t line) { int 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); } /*--------------. | Free a rule. | `--------------*/ static void free_rule (struct rule * rule) { XFREE (rule->word); if (rule->regex) { regfree (rule->regex); free (rule->regex); } da_free (rule->rhs, (da_map_func_t) faced_string_free); free (rule); } /* * Compare two rules. * Note: they should be string-rules, not regex-rule */ static int rule_cmp (struct rule * k1, struct rule * k2) { return ustrcmp (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, 1); /* 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 inline void words_erase (struct words * words) { /* Do not free the items, there may be pointers onto them */ da_erase (words->strings); da_erase (words->regexps); free (words); } void words_free (struct words * words) { da_free (words->strings, (da_map_func_t) free_rule); da_free (words->regexps, (da_map_func_t) free_rule); free (words); } 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_map_func_t) free_rule, da_2_wins); /* Empty the structure, but don't free, since words->regexps * keeps a reference to them */ words_erase (new); } /* * 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 [content[i]->word[0]] == NULL) list->min [content[i]->word[0]] = content + i; list->max [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. Do not free the item, coz' your being killing another style sheet! */ da_merge (sheet->keywords->strings, ancestor->keywords->strings, NULL, da_1_wins); /* Inherit from their string operators */ da_merge (sheet->operators->strings, ancestor->operators->strings, NULL, 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 (uchar) * 256); if (ALPHABET_IS_UNDEFINED (sheet->alpha2)) memcpy (sheet->alpha2, ancestor->alpha2, sizeof (uchar) * 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, 1); /* 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; } /* * Release a sequence. */ void free_sequence (struct sequence * sequence) { free_rule (sequence->open); words_free (sequence->close); words_free (sequence->exceptions); free (sequence); } /* * Build the usual C's string and char with their escapes */ #define C_add_exception(_excep_) \ words_add_string (res, \ rule_new (xustrdup (_excep_), NULL, \ rhs_new_single (xustrdup (_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, 1); res->open = rule_new (xustrdup (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 (xustrdup (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 uchar * name) { NEW (struct style_sheet, res); res->name = name; res->author = UNULL; version_set_to_null (res->version); res->documentation = UNULL; 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 uchar * 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, ustrlen (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 ((uchar *) key); sheet->key = strdup (key); da_concat (sheet->ancestors, ancestors_array); da_erase (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 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); free (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) { int i, title_bar_len; if (!version_null_p (sheet->version)) { title_bar_len = (strlen (" (.ssh version )") + ustrlen (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)") + ustrlen (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); } da_free (entries, (da_map_func_t) free); } /************************************************************************/ /* 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, "
  • %s.

    \n", sheet->key, sheet->key, sheet->name); else { fprintf (stream, "
  • %s version ", sheet->key, sheet->key, sheet->name); version_self_print (sheet->version, stream); fputs (".

    \n", stream); } if (!IS_EMPTY(sheet->author) || !version_null_p(sheet->requirement) || (sheet->ancestors->len > 0)) { fputs ("

    ", 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%s.ssh", i ? ", " : "", (char *) sheet->ancestors->content [i], (char *) sheet->ancestors->content [i]); fputs (".\n", stream); } fputs ("

    ", stream); } documentation_print_html (sheet->documentation, "

    %s

    \n", stream); fputs ("
  • \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; version_t version_index, requirement; int rows; 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", "\n\ #{html.begin.hook}\n\ \n\ #{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); da_free (entries, (da_map_func_t) free); } /************************************************************************/ /* 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); } da_free (entries, (da_map_func_t) free); } /************************************************************************/ /* 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 (!ustrcmp (((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, 1); 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 (strequ (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 (strequ (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 looks like an 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.14/src/delegate.c0000644000175000017500000003021710735322006014333 0ustar mhattamhatta/* * delegate.c * * Handling the delegations * 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 "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 void delegate_name_fputs (struct delegation *delegation, FILE * stream) { fputs (delegation->name, stream); } static void delegate_free (struct delegation *delegation) { free (delegation->name); free (delegation->contract); free (delegation->command); free (delegation); } /* * Create the table handling the subcontracts */ struct hash_table_s * delegation_table_new (void) { NEW (struct hash_table_s, res); hash_init (res, 8, delegate_hash_1, delegate_hash_2, delegate_hash_cmp); return res; } /* * Free the whole table */ void delegation_table_free (struct hash_table_s *table) { hash_free (table, (hash_map_func_t) delegate_free); free (table); } /************************************************************************/ /* 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: " 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, int line, char *contract_line) { char *cp, *cp2; struct delegation *contract; contract = XMALLOC (struct delegation, 1); /* Structure of the line: : */ 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 = XMALLOC (char, strlen (cp) + strlen (cp2) + 2); 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, (const uchar *) "delegating command", (const uchar *) 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 = (uchar *) 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); free (cp); } /* * 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); free (ordered_contracts); } /* * 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); free (ordered_contracts); } a2ps-4.14/src/regex.c0000644000175000017500000055525310735322006013707 0ustar mhattamhatta/* 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. */ /* AIX requires this to be the first thing in the file. */ #if defined _AIX && !defined REGEX_MALLOC #pragma alloca #endif #undef _GNU_SOURCE #define _GNU_SOURCE #ifdef HAVE_CONFIG_H # include #endif #ifndef PARAMS # if defined __GNUC__ || (defined __STDC__ && __STDC__) # define PARAMS(args) args # else # define PARAMS(args) () # endif /* GCC. */ #endif /* Not PARAMS. */ #if defined STDC_HEADERS && !defined emacs # include #else /* We need this for `regex.h', and perhaps for the Emacs include files. */ # include #endif #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: must be included before . */ # include # include #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 #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 /* The `emacs' switch turns on certain matching commands that make sense only in Emacs. */ #ifdef emacs # include "lisp.h" # include "buffer.h" # include "syntax.h" #else /* not emacs */ /* 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 # if defined STDC_HEADERS || defined _LIBC # include # else char *malloc (); char *realloc (); # endif /* 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 # if defined HAVE_STRING_H || defined STDC_HEADERS || defined _LIBC # include # ifndef bzero # ifndef _LIBC # define bzero(s, n) (memset (s, '\0', n), (s)) # else # define bzero(s, n) __bzero (s, n) # endif # endif # else # include # ifndef memcmp # define memcmp(s1, s2, n) bcmp (s1, s2, n) # endif # ifndef memcpy # define memcpy(d, s, n) (bcopy (s, d, n), (d)) # 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] #endif /* not emacs */ /* Get the interface, including the syntax bits. */ #include /* isalpha etc. are used for the character classes. */ #include /* 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." Solaris defines some of these symbols so we must undefine them first. */ #undef ISASCII #if defined STDC_HEADERS || (!defined isascii && !defined HAVE_ISASCII) # define ISASCII(c) 1 #else # define ISASCII(c) isascii(c) #endif #ifdef isblank # define ISBLANK(c) (ISASCII (c) && isblank (c)) #else # define ISBLANK(c) ((c) == ' ' || (c) == '\t') #endif #ifdef isgraph # define ISGRAPH(c) (ISASCII (c) && isgraph (c)) #else # define ISGRAPH(c) (ISASCII (c) && isprint (c) && !isspace (c)) #endif #undef ISPRINT #define ISPRINT(c) (ISASCII (c) && isprint (c)) #define ISDIGIT(c) (ISASCII (c) && isdigit (c)) #define ISALNUM(c) (ISASCII (c) && isalnum (c)) #define ISALPHA(c) (ISASCII (c) && isalpha (c)) #define ISCNTRL(c) (ISASCII (c) && iscntrl (c)) #define ISLOWER(c) (ISASCII (c) && islower (c)) #define ISPUNCT(c) (ISASCII (c) && ispunct (c)) #define ISSPACE(c) (ISASCII (c) && isspace (c)) #define ISUPPER(c) (ISASCII (c) && isupper (c)) #define ISXDIGIT(c) (ISASCII (c) && isxdigit (c)) #ifdef _tolower # define TOLOWER(c) _tolower(c) #else # define TOLOWER(c) tolower(c) #endif #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 #if __STDC__ # define SIGN_EXTEND_CHAR(c) ((signed char) (c)) #else /* not __STDC__ */ /* As in Harbison and Steele. */ # define SIGN_EXTEND_CHAR(c) ((((unsigned char) (c)) ^ 128) - 128) #endif /* Should we use malloc or alloca? If REGEX_MALLOC is not defined, we use `alloca' instead of `malloc'. This is because using malloc in re_search* or re_match* could cause memory leaks when C-g is used in Emacs; also, malloc is slower and causes storage fragmentation. On the other hand, malloc is more portable, and easier to debug. Because we sometimes use alloca, some routines have to be macros, not functions -- `alloca'-allocated space disappears at the end of the function it is called in. */ #ifdef REGEX_MALLOC # define REGEX_ALLOCATE malloc # define REGEX_REALLOCATE(source, osize, nsize) realloc (source, nsize) # define REGEX_FREE free #else /* not REGEX_MALLOC */ /* Emacs already defines alloca, sometimes. */ # ifndef alloca /* Make alloca work the best possible way. */ # ifdef __GNUC__ # define alloca __builtin_alloca # else /* not __GNUC__ */ # if HAVE_ALLOCA_H # include # endif /* HAVE_ALLOCA_H */ # endif /* not __GNUC__ */ # endif /* not alloca */ # define REGEX_ALLOCATE alloca /* Assumes a `char *destination' variable. */ # define REGEX_REALLOCATE(source, osize, nsize) \ (destination = (char *) alloca (nsize), \ memcpy (destination, source, osize)) /* No need to do anything to free, after alloca. */ # define REGEX_FREE(arg) ((void)0) /* Do nothing! But inhibit gcc warning. */ #endif /* not REGEX_MALLOC */ /* Define how to allocate the failure stack. */ #if defined REL_ALLOC && defined REGEX_MALLOC # define REGEX_ALLOCATE_STACK(size) \ r_alloc (&failure_stack_ptr, (size)) # define REGEX_REALLOCATE_STACK(source, osize, nsize) \ r_re_alloc (&failure_stack_ptr, (nsize)) # define REGEX_FREE_STACK(ptr) \ r_alloc_free (&failure_stack_ptr) #else /* not using relocating allocator */ # ifdef REGEX_MALLOC # define REGEX_ALLOCATE_STACK malloc # define REGEX_REALLOCATE_STACK(source, osize, nsize) realloc (source, nsize) # define REGEX_FREE_STACK free # else /* not REGEX_MALLOC */ # define REGEX_ALLOCATE_STACK alloca # define REGEX_REALLOCATE_STACK(source, osize, nsize) \ REGEX_REALLOCATE (source, osize, nsize) /* No need to explicitly free anything. */ # define REGEX_FREE_STACK(arg) # endif /* not REGEX_MALLOC */ #endif /* not using relocating allocator */ /* 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 PARAMS ((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. */ #ifdef emacs ,before_dot, /* Succeeds if before point. */ at_dot, /* Succeeds if at point. */ after_dot, /* Succeeds if after point. */ /* Matches any character whose syntax is specified. Followed by a byte which contains a syntax code, e.g., Sword. */ syntaxspec, /* Matches any character whose syntax is not that specified. */ notsyntaxspec #endif /* emacs */ } 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 /* It is useful to test things that ``must'' be true when debugging. */ # include 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"); # ifdef emacs case before_dot: printf ("/before_dot"); break; case at_dot: printf ("/at_dot"); break; case after_dot: printf ("/after_dot"); break; case syntaxspec: printf ("/syntaxspec"); mcnt = *p++; printf ("/%d", mcnt); break; case notsyntaxspec: printf ("/notsyntaxspec"); mcnt = *p++; printf ("/%d", mcnt); break; # endif /* emacs */ 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 /* The match routines may not allocate if (1) they would do it with malloc and (2) it's not safe for them to use malloc. Note that if REL_ALLOC is defined, matching would not use malloc for the failure stack, but we would still use it for the register vectors; so REL_ALLOC should not affect this. */ #if (defined C_ALLOCA || defined REGEX_MALLOC) && defined emacs # undef MATCH_MAY_ALLOCATE #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 emacs && !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 set_number_at succeed_n jump_n (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; #ifdef emacs /* There is no way to specify the before_dot and after_dot operators. rms says this is ok. --karl */ case '=': BUF_PUSH (at_dot); break; case 's': laststart = b; PATFETCH (c); BUF_PUSH_2 (syntaxspec, syntax_spec_code[c]); break; case 'S': laststart = b; PATFETCH (c); BUF_PUSH_2 (notsyntaxspec, syntax_spec_code[c]); break; #endif /* emacs */ 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); # ifdef emacs if (! fail_stack.stack) fail_stack.stack = (fail_stack_elt_t *) xmalloc (fail_stack.size * sizeof (fail_stack_elt_t)); else fail_stack.stack = (fail_stack_elt_t *) xrealloc (fail_stack.stack, (fail_stack.size * sizeof (fail_stack_elt_t))); # else /* not emacs */ 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))); # endif /* not emacs */ } 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 #ifndef REGEX_MALLOC char *destination; #endif register char *fastmap = bufp->fastmap; unsigned char *pattern = bufp->buffer; unsigned char *p = pattern; register unsigned char *pend = pattern + bufp->used; #ifdef REL_ALLOC /* This holds the pointer to the failure stack, when it is allocated relocatably. */ fail_stack_elt_t *failure_stack_ptr; #endif /* 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; } #ifdef emacs case syntaxspec: k = *p++; for (j = 0; j < (1 << BYTEWIDTH); j++) if (SYNTAX (j) == (enum syntaxcode) k) fastmap[j] = 1; break; case notsyntaxspec: k = *p++; for (j = 0; j < (1 << BYTEWIDTH); j++) if (SYNTAX (j) != (enum syntaxcode) k) fastmap[j] = 1; break; /* All cases after this match the empty string. These end with `continue'. */ case before_dot: case at_dot: case after_dot: continue; #endif /* emacs */ 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; } #ifdef emacs /* In a forward search for something that starts with \=. don't keep searching past point. */ if (bufp->used > 0 && (re_opcode_t) bufp->buffer[0] == at_dot && range > 0) { range = PT - startpos; if (range <= 0) return -1; } #endif /* emacs */ /* 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); #ifndef REGEX_MALLOC # ifdef C_ALLOCA alloca (0); # endif #endif 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. */ #ifndef emacs /* Emacs never uses this. */ /* 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); # ifndef REGEX_MALLOC # ifdef C_ALLOCA alloca (0); # endif # endif return result; } # ifdef _LIBC weak_alias (__re_match, re_match) # endif #endif /* not emacs */ 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); #ifndef REGEX_MALLOC # ifdef C_ALLOCA alloca (0); # endif #endif 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 #ifdef REL_ALLOC /* This holds the pointer to the failure stack, when it is allocated relocatably. */ fail_stack_elt_t *failure_stack_ptr; #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; /* \ has been turned into a `duplicate' command which is followed by the numeric value of 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 0 if ((re_opcode_t) p1[3] == exactn && ! ((int) p2[1] * BYTEWIDTH > (int) p1[5] && (p2[2 + p1[5] / BYTEWIDTH] & (1 << (p1[5] % BYTEWIDTH))))) #else if ((re_opcode_t) p1[3] == exactn && ! ((int) p2[1] * BYTEWIDTH > (int) p1[4] && (p2[2 + p1[4] / BYTEWIDTH] & (1 << (p1[4] % BYTEWIDTH))))) #endif { 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; #ifdef emacs case before_dot: DEBUG_PRINT1 ("EXECUTING before_dot.\n"); if (PTR_CHAR_POS ((unsigned char *) d) >= point) goto fail; break; case at_dot: DEBUG_PRINT1 ("EXECUTING at_dot.\n"); if (PTR_CHAR_POS ((unsigned char *) d) != point) goto fail; break; case after_dot: DEBUG_PRINT1 ("EXECUTING after_dot.\n"); if (PTR_CHAR_POS ((unsigned char *) d) <= point) goto fail; break; case syntaxspec: DEBUG_PRINT2 ("EXECUTING syntaxspec %d.\n", mcnt); mcnt = *p++; goto matchsyntax; case wordchar: DEBUG_PRINT1 ("EXECUTING Emacs wordchar.\n"); mcnt = (int) Sword; matchsyntax: PREFETCH (); /* Can't use *d++ here; SYNTAX may be an unsafe macro. */ d++; if (SYNTAX (d[-1]) != (enum syntaxcode) mcnt) goto fail; SET_REGS_MATCHED (); break; case notsyntaxspec: DEBUG_PRINT2 ("EXECUTING notsyntaxspec %d.\n", mcnt); mcnt = *p++; goto matchnotsyntax; case notwordchar: DEBUG_PRINT1 ("EXECUTING Emacs notwordchar.\n"); mcnt = (int) Sword; matchnotsyntax: PREFETCH (); /* Can't use *d++ here; SYNTAX may be an unsafe macro. */ d++; if (SYNTAX (d[-1]) == (enum syntaxcode) mcnt) goto fail; SET_REGS_MATCHED (); break; #else /* not emacs */ 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; #endif /* not emacs */ 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: #ifdef emacs case before_dot: case at_dot: case after_dot: #endif 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 */ /* POSIX.2 functions. Don't define these for Emacs. */ #ifndef emacs /* regcomp takes a regular expression as a string and compiles it. PREG is a regex_t *. We do not expect any fields to be initialized, since POSIX says we shouldn't. Thus, we set `buffer' to the compiled pattern; `used' to the length of the compiled pattern; `syntax' to RE_SYNTAX_POSIX_EXTENDED if the REG_EXTENDED bit in CFLAGS is set; otherwise, to RE_SYNTAX_POSIX_BASIC; `newline_anchor' to REG_NEWLINE being set in CFLAGS; `fastmap' to an allocated space for the fastmap; `fastmap_accurate' to zero; `re_nsub' to the number of subexpressions in PATTERN. PATTERN is the address of the pattern string. CFLAGS is a series of bits which affect compilation. If REG_EXTENDED is set, we use POSIX extended syntax; otherwise, we use POSIX basic syntax. If REG_NEWLINE is set, then . and [^...] don't match newline. Also, regexec will try a match beginning after every newline. If REG_ICASE is set, then we considers upper- and lowercase versions of letters to be equivalent when matching. If REG_NOSUB is set, then when PREG is passed to regexec, that routine will report only success or failure, and nothing about the registers. It returns 0 if it succeeds, nonzero if it doesn't. (See regex.h for the return codes and their meanings.) */ int regcomp (preg, pattern, cflags) regex_t *preg; const char *pattern; int cflags; { reg_errcode_t ret; reg_syntax_t syntax = (cflags & REG_EXTENDED) ? RE_SYNTAX_POSIX_EXTENDED : RE_SYNTAX_POSIX_BASIC; /* regex_compile will allocate the space for the compiled pattern. */ preg->buffer = 0; preg->allocated = 0; preg->used = 0; /* Try to allocate space for the fastmap. */ preg->fastmap = (char *) malloc (1 << BYTEWIDTH); if (cflags & REG_ICASE) { unsigned i; preg->translate = (RE_TRANSLATE_TYPE) malloc (CHAR_SET_SIZE * sizeof (*(RE_TRANSLATE_TYPE)0)); if (preg->translate == NULL) return (int) REG_ESPACE; /* Map uppercase characters to corresponding lowercase ones. */ for (i = 0; i < CHAR_SET_SIZE; i++) preg->translate[i] = ISUPPER (i) ? TOLOWER (i) : i; } else preg->translate = NULL; /* If REG_NEWLINE is set, newlines are treated differently. */ if (cflags & REG_NEWLINE) { /* REG_NEWLINE implies neither . nor [^...] match newline. */ syntax &= ~RE_DOT_NEWLINE; syntax |= RE_HAT_LISTS_NOT_NEWLINE; /* It also changes the matching behavior. */ preg->newline_anchor = 1; } else preg->newline_anchor = 0; preg->no_sub = !!(cflags & REG_NOSUB); /* POSIX says a null character in the pattern terminates it, so we can use strlen here in compiling the pattern. */ ret = regex_compile (pattern, strlen (pattern), syntax, preg); /* POSIX doesn't distinguish between an unmatched open-group and an unmatched close-group: both are REG_EPAREN. */ if (ret == REG_ERPAREN) ret = REG_EPAREN; if (ret == REG_NOERROR && preg->fastmap) { /* Compute the fastmap now, since regexec cannot modify the pattern buffer. */ if (re_compile_fastmap (preg) == -2) { /* Some error occured while computing the fastmap, just forget about it. */ free (preg->fastmap); preg->fastmap = NULL; } } return (int) ret; } #ifdef _LIBC weak_alias (__regcomp, regcomp) #endif /* regexec searches for a given pattern, specified by PREG, in the string STRING. If NMATCH is zero or REG_NOSUB was set in the cflags argument to `regcomp', we ignore PMATCH. Otherwise, we assume PMATCH has at least NMATCH elements, and we set them to the offsets of the corresponding matched substrings. EFLAGS specifies `execution flags' which affect matching: if REG_NOTBOL is set, then ^ does not match at the beginning of the string; if REG_NOTEOL is set, then $ does not match at the end. We return 0 if we find a match and REG_NOMATCH if not. */ int regexec (preg, string, nmatch, pmatch, eflags) const regex_t *preg; const char *string; size_t nmatch; regmatch_t pmatch[]; int eflags; { int ret; struct re_registers regs; regex_t private_preg; int len = strlen (string); boolean want_reg_info = !preg->no_sub && nmatch > 0; private_preg = *preg; private_preg.not_bol = !!(eflags & REG_NOTBOL); private_preg.not_eol = !!(eflags & REG_NOTEOL); /* The user has told us exactly how many registers to return information about, via `nmatch'. We have to pass that on to the matching routines. */ private_preg.regs_allocated = REGS_FIXED; if (want_reg_info) { regs.num_regs = nmatch; regs.start = TALLOC (nmatch * 2, regoff_t); if (regs.start == NULL) return (int) REG_NOMATCH; regs.end = regs.start + nmatch; } /* Perform the searching operation. */ ret = re_search (&private_preg, string, len, /* start: */ 0, /* range: */ len, want_reg_info ? ®s : (struct re_registers *) 0); /* Copy the register information to the POSIX structure. */ if (want_reg_info) { if (ret >= 0) { unsigned r; for (r = 0; r < nmatch; r++) { pmatch[r].rm_so = regs.start[r]; pmatch[r].rm_eo = regs.end[r]; } } /* If we needed the temporary register info, free the space now. */ free (regs.start); } /* We want zero return to mean success, unlike `re_search'. */ return ret >= 0 ? (int) REG_NOERROR : (int) REG_NOMATCH; } #ifdef _LIBC weak_alias (__regexec, regexec) #endif /* Returns a message corresponding to an error code, ERRCODE, returned from either regcomp or regexec. We don't use PREG here. */ size_t regerror (errcode, preg, errbuf, errbuf_size) int errcode; const regex_t *preg; char *errbuf; size_t errbuf_size; { const char *msg; size_t msg_size; if (errcode < 0 || errcode >= (int) (sizeof (re_error_msgid) / sizeof (re_error_msgid[0]))) /* Only error codes returned by the rest of the code should be passed to this routine. If we are given anything else, or if other regex code generates an invalid error code, then the program has a bug. Dump core so we can fix it. */ abort (); msg = gettext (re_error_msgid[errcode]); msg_size = strlen (msg) + 1; /* Includes the null. */ if (errbuf_size != 0) { if (msg_size > errbuf_size) { #if defined HAVE_MEMPCPY || defined _LIBC *((char *) __mempcpy (errbuf, msg, errbuf_size - 1)) = '\0'; #else memcpy (errbuf, msg, errbuf_size - 1); errbuf[errbuf_size - 1] = 0; #endif } else memcpy (errbuf, msg, msg_size); } return msg_size; } #ifdef _LIBC weak_alias (__regerror, regerror) #endif /* Free dynamically allocated space used by PREG. */ void regfree (preg) regex_t *preg; { if (preg->buffer != NULL) free (preg->buffer); preg->buffer = NULL; preg->allocated = 0; preg->used = 0; if (preg->fastmap != NULL) free (preg->fastmap); preg->fastmap = NULL; preg->fastmap_accurate = 0; if (preg->translate != NULL) free (preg->translate); preg->translate = NULL; } #ifdef _LIBC weak_alias (__regfree, regfree) #endif #endif /* not emacs */ a2ps-4.14/src/long-options.h0000644000175000017500000000236010735322023015213 0ustar mhattamhatta/* long-options.h -- declaration for --help- and --version-handling function. Copyright (C) 1993, 1994, 1998, 1999 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Written by Jim Meyering. */ #ifndef PARAMS # if defined PROTOTYPES || (defined __STDC__ && __STDC__) # define PARAMS(Args) Args # else # define PARAMS(Args) () # endif #endif void parse_long_options PARAMS ((int _argc, char **_argv, const char *_command_name, const char *_package, const char *_version, const char *_authors, void (*_usage) (int))); a2ps-4.14/src/lexps.l0000644000175000017500000000303010735322035013720 0ustar mhattamhatta%{ /* -*- 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 "main.h" #include "lexps.h" int yylex PARAMS ((void)); void yyerror PARAMS ((const char *)); /* Initilizes the obstacks */ void pslex_initialize PARAMS ((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; { .* 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.14/src/buffer.c0000644000175000017500000003067310735324712014046 0ustar mhattamhatta/* * buffer.c - read line by line with conversion of EOL types * * 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: buffer.c,v 1.1.1.1.2.1 2007/12/29 01:58:34 mhatta Exp $ */ /* 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 "a2ps.h" #include "routines.h" #include "argmatch.h" #include "buffer.h" #include /****************************************************************/ /* 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_ASSERT (eol_args, eol_types); return XARGCASEMATCH (option, arg, eol_args, eol_types); } /****************************************************************/ /* buffer_t Service routines */ /****************************************************************/ static inline void buffer_internal_set (buffer_t * buffer, FILE * stream, const uchar * 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 uchar * string, enum eol_e eol) { buffer_internal_set (buffer, NULL, string, strlen (string), false, eol); } void buffer_buffer_set (buffer_t * buffer, const uchar * 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 %u\n", buffer->bufoffset); if (buffer->stream) fprintf (stream, "A stream buffer (%s).\n", buffer->pipe_p ? "pipe" : "file"); fprintf (stream, "Len = %d, Lower case = %d, Line = %d\n", buffer->len, buffer->lower_case, buffer->line); if (buffer->len) fprintf (stream, "Content = `%s'\n", buffer->content); } /* * It frees the content, not the pointer */ void buffer_release (buffer_t * buffer) { /* VALUE is malloc'd only if BUFFER->LOWER_CASE */ if (buffer->lower_case) free (buffer->value); /* I don't know how this one should be used */ /* obstack_free (&buffer->obstack, NULL); */ } 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) { register 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, 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, c); return true; default: stream_plain_char: obstack_1grow (&buffer->obstack, 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) { register 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, 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, c); return true; default: string_plain_char: obstack_1grow (&buffer->obstack, 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'); buffer->content = (uchar *) obstack_finish (&buffer->obstack); /* 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 = XREALLOC (buffer->value, uchar, buffer->allocsize); for (i = 0; i <= buffer->len; i++) buffer->value[i] = 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 = XMALLOC (char, SAMPLE_SIZE); for (; (cur < SAMPLE_SIZE) && ((c = sgetc (buffer)) != EOF); cur++) { sample_buffer[cur] = 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.14/src/parsessh.y0000644000175000017500000004541710735324713014456 0ustar mhattamhatta%{ /* -*- 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 "a2ps.h" #include "jobs.h" #include "ffaces.h" #include "ssheet.h" #include "message.h" #include "routines.h" #include "yy2ssh.h" #include "regex.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 PARAMS ((const char *msg)); static void yyprint (); /* Initilizes the obstacks */ void sshlex_initialize PARAMS ((void)); /* Comes from main.c */ extern int highlight_level; int yylex PARAMS ((void)); struct style_sheet * parse_style_sheet PARAMS ((const char * filename)); /* Defines the style sheet being loaded */ static struct style_sheet * parsed_style_sheet = NULL; %} %union { int integer; uchar * 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 tFACE %token tFFLAGS %token tSTRING tLATEXSYMBOL %token tREGEX %token tSENSITIVENESS %token tBACK_REF %type regex %type fface fface_sxp %type authors documentation version long_string requirement %type a_rhs %type rule keyword_regex operator_regex %type style_sheet definition_list %type keywords_def keywords_rule_list %type operators_def operators_rule_list %type sequence_list sequence_def %type exception_def_opt %type ancestors_def ancestors_list %type closers_opt %type case_def %type rhs rhs_list %type sequence %% /************************************************************************/ /* Top most */ /************************************************************************/ file : style_sheet { parsed_style_sheet = $1; } ; style_sheet : tSTYLE tSTRING tIS definition_list tEND tSTYLE { $4->name = $2; $4->key = ""; $$ = $4; } ; definition_list : /* empty */ { $$ = new_style_sheet ((const uchar *) ""); } | 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); } else words_free ($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); } else words_free ($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); da_erase ($3); } else da_free ($3, (da_map_func_t) free_sequence); $$ = $1; } | definition_list sequence_def { da_concat ($1->sequences, $2); da_erase ($2); $$ = $1; } | definition_list ancestors_def { da_concat ($1->ancestors, $2); da_erase ($2); $$ = $1; } | definition_list tALPHABETS tARE tSTRING { string_to_array ($1->alpha1, $4); string_to_array ($1->alpha2, $4); /* This is the syntax table used by regex */ free ($4); $4 = NULL; $$ = $1; } | definition_list tFIRST tALPHABET tIS tSTRING { string_to_array ($1->alpha1, $5); /* This is the syntax table used by regex */ free ($5); $5 = NULL; $$ = $1; } | definition_list tSECOND tALPHABET tIS tSTRING { string_to_array ($1->alpha2, $5); /* This is the syntax table used by regex */ free ($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 = ustrlen ($1); $1[len1] = '\n'; len2 = ustrlen ($2); $$ = XMALLOC (uchar, len1 + len2 + 2); ustpcpy (ustpncpy ($$, $1, len1 + 1), $2); free ($1); free ($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 = XREALLOC ($$->pattern, char, $1->len + $2->len + 1); strncpy ($$->pattern + $$->len, $2->pattern, $2->len); $$->len += $2->len; free ($2->pattern); } ; 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 (UNULL, $1, $2); } | tBACK_REF { $$ = faced_string_new (UNULL, $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 (UNULL, 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 (UNULL, $1, $2, sshfilename, sshlineno); } | regex { $$ = keyword_rule_new (UNULL, $1, rhs_new_single (UNULL, 0, No_fface), sshfilename, sshlineno); } | '(' regex rhs_list ')' { $$ = keyword_rule_new (UNULL, $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 (UNULL, $1, $2, sshfilename, sshlineno); } | regex { $$ = rule_new (UNULL, $1, rhs_new_single (UNULL, 0, No_fface), sshfilename, sshlineno); } | '(' regex rhs_list ')' { $$ = rule_new (UNULL, $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 * * . * * it doesn't know whether should be in $1, or in $2. * So we have to inline the rule at hand... */ sequence: /* Expansion of each possibility for * */ 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 (UNULL, 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 (UNULL, 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 (UNULL, $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 (UNULL, $1, rhs_new_single (UNULL, 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 (UNULL, $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 (UNULL, $1, rhs_new_single (UNULL, 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 (UNULL, $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 (xustrdup ("\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, 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.14/auxdir/0000755000175000017500000000000010735337377013140 5ustar mhattamhattaa2ps-4.14/auxdir/config.guess0000755000175000017500000012706110735337306015457 0ustar mhattamhatta#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, # Inc. timestamp='2007-07-22' # 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 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., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # 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 Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -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 (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 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 trap 'exit 1' 1 2 15 # 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. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { 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) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; 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 ; set_cc_for_build= ;' # 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) >/dev/null 2>&1 ; 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 # 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 tupples: *-*-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". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-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. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep __ELF__ >/dev/null 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 # 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/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) 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. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; 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. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; 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'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; 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) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # 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:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $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; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $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 echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[45]) 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 [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 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 [ -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 [ "${HP_ARCH}" = "" ]; then eval $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 [ ${HP_ARCH} = "hppa2.0w" ] then eval $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 __LP64__ >/dev/null then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $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; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; 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*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; 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:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; 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/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 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/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) case ${UNAME_MACHINE} in pc98) echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:[3456]*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; EM64T | authenticamd) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; arm*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo cris-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo crisv32-axis-linux-gnu exit ;; frv:Linux:*:*) echo frv-unknown-linux-gnu exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips64 #undef mips64el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mips64el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips64 #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^CPU/{ s: ::g p }'`" test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo or32-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` 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 ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit ;; xtensa:Linux:*:*) echo xtensa-unknown-linux-gnu exit ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) LIBC=gnu #else LIBC=gnuaout #endif #endif #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' /^LIBC/{ s: ::g p }'`" test x"${LIBC}" != x && { echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit } test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ;; 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. echo i386-sequent-sysv4 exit ;; 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. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; 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 echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; 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 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; 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 i386. echo i386-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; 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; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *: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 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #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 (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #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 printf ("vax-dec-ultrix\n"); exit (0); # 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; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp 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` /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 exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: a2ps-4.14/auxdir/ltmain.sh0000644000175000017500000060511410723105275014752 0ustar mhattamhatta# ltmain.sh - Provide generalized library-building support services. # NOTE: Changing this file will not affect anything until you rerun configure. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, # 2007 Free Software Foundation, Inc. # Originally by Gordon Matzigkeit , 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # 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. basename="s,^.*/,,g" # 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 $basename` modename="$progname" # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 PROGRAM=ltmain.sh PACKAGE=libtool VERSION="1.5.24 Debian 1.5.24-2" TIMESTAMP=" (1.1220.2.456 2007/06/24 02:25:32)" # Be Bourne compatible (taken from Autoconf:_AS_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 # Check that we have a working $echo. if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then # Yippee, $echo works! : else # Restart under the correct shell, and then maybe $echo will work. exec $SHELL "$progpath" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat <&2 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit $EXIT_FAILURE fi # Global variables. mode=$default_mode nonopt= prev= prevopt= run= show="$echo" show_help= execute_dlfiles= duplicate_deps=no preserve_args= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" extracted_archives= extracted_serial=0 ##################################### # Shell function definitions: # This seems to be the best place for them # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $mkdir "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || { $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2 exit $EXIT_FAILURE } fi $echo "X$my_tmpdir" | $Xsed } # 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. func_win32_libid () { 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 if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then win32_nmres=`eval $NM -f posix -A $1 | \ $SED -n -e '1,100{ / I /{ s,.*,import, p q } }'` 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_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 () { if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac CC_quoted="$CC_quoted $arg" done 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 "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;; # 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. case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac CC_quoted="$CC_quoted $arg" done case "$@ " in " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) # 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 $echo "$modename: unable to infer tagged configuration" $echo "$modename: specify a tag with \`--tag'" 1>&2 exit $EXIT_FAILURE # else # $echo "$modename: using $tagname tagged configuration" fi ;; esac fi } # func_extract_an_archive dir oldlib func_extract_an_archive () { f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)" $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $? if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2 exit $EXIT_FAILURE fi } # func_extract_archives gentop oldlib ... func_extract_archives () { my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" my_status="" $show "${rm}r $my_gentop" $run ${rm}r "$my_gentop" $show "$mkdir $my_gentop" $run $mkdir "$my_gentop" my_status=$? if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then exit $my_status fi 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 my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` my_xlib_u=$my_xlib while :; do case " $extracted_archives " in *" $my_xlib_u "*) extracted_serial=`expr $extracted_serial + 1` 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" $show "${rm}r $my_xdir" $run ${rm}r "$my_xdir" $show "$mkdir $my_xdir" $run $mkdir "$my_xdir" exit_status=$? if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then exit $exit_status fi case $host in *-darwin*) $show "Extracting $my_xabs" # Do not bother doing anything if just a dry run if test -z "$run"; then darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'` darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null` if test -n "$darwin_arches"; then darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= $show "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do 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 have a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` lipo -create -output "$darwin_file" $darwin_files done # $darwin_filelist ${rm}r unfat-$$ cd "$darwin_orig_dir" else cd "$darwin_orig_dir" func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches fi # $run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # End of Shell function definitions ##################################### # Darwin sucks eval std_shrext=\"$shrext_cmds\" disable_libs=no # Parse our command line options once, thoroughly. while test "$#" -gt 0 do arg="$1" shift case $arg in -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; *) optarg= ;; esac # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in execute_dlfiles) execute_dlfiles="$execute_dlfiles $arg" ;; tag) tagname="$arg" preserve_args="${preserve_args}=$arg" # Check whether tagname contains only valid characters case $tagname in *[!-_A-Za-z0-9,/]*) $echo "$progname: invalid tag name: $tagname" 1>&2 exit $EXIT_FAILURE ;; esac case $tagname in CC) # Don't test for the "default" C tag, as we know, it's there, but # not specially marked. ;; *) if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then taglist="$taglist $tagname" # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`" else $echo "$progname: ignoring unknown tag $tagname" 1>&2 fi ;; esac ;; *) eval "$prev=\$arg" ;; esac prev= prevopt= continue fi # Have we seen a non-optional argument yet? case $arg in --help) show_help=yes ;; --version) echo "\ $PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP Copyright (C) 2007 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." exit $? ;; --config) ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath # Now print the configurations for the tags. for tagname in $taglist; do ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath" done exit $? ;; --debug) $echo "$progname: enabling shell trace mode" set -x preserve_args="$preserve_args $arg" ;; --dry-run | -n) run=: ;; --features) $echo "host: $host" if test "$build_libtool_libs" = yes; then $echo "enable shared libraries" else $echo "disable shared libraries" fi if test "$build_old_libs" = yes; then $echo "enable static libraries" else $echo "disable static libraries" fi exit $? ;; --finish) mode="finish" ;; --mode) prevopt="--mode" prev=mode ;; --mode=*) mode="$optarg" ;; --preserve-dup-deps) duplicate_deps="yes" ;; --quiet | --silent) show=: preserve_args="$preserve_args $arg" ;; --tag) prevopt="--tag" prev=tag preserve_args="$preserve_args --tag" ;; --tag=*) set tag "$optarg" ${1+"$@"} shift prev=tag preserve_args="$preserve_args --tag" ;; -dlopen) prevopt="-dlopen" prev=execute_dlfiles ;; -*) $echo "$modename: unrecognized option \`$arg'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; *) nonopt="$arg" break ;; esac done if test -n "$prevopt"; then $echo "$modename: option \`$prevopt' requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi case $disable_libs in no) ;; shared) build_libtool_libs=no build_old_libs=yes ;; static) build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` ;; esac # 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= if test -z "$show_help"; then # Infer the operation mode. if test -z "$mode"; then $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2 case $nonopt in *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) mode=link for arg do case $arg in -c) mode=compile break ;; esac done ;; *db | *dbx | *strace | *truss) mode=execute ;; *install*|cp|mv) mode=install ;; *rm) mode=uninstall ;; *) # If we have no mode, but dlfiles were specified, then do execute mode. test -n "$execute_dlfiles" && mode=execute # Just use the default operation mode. if test -z "$mode"; then if test -n "$nonopt"; then $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 else $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 fi fi ;; esac fi # Only execute mode is allowed to have -dlopen flags. if test -n "$execute_dlfiles" && test "$mode" != execute; then $echo "$modename: unrecognized option \`-dlopen'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$modename --help --mode=$mode' for more information." # These modes are in order of execution frequency so that they run quickly. case $mode in # libtool compile mode compile) modename="$modename: compile" # 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= 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) if test -n "$libobj" ; then $echo "$modename: you cannot specify \`-o' more than once" 1>&2 exit $EXIT_FAILURE fi arg_mode=target continue ;; -static | -prefer-pic | -prefer-non-pic) later="$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,*) args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` lastarg= save_ifs="$IFS"; IFS=',' for arg in $args; do IFS="$save_ifs" # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac lastarg="$lastarg $arg" done IFS="$save_ifs" lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` # Add the arguments to base_compile. base_compile="$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. lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` case $lastarg in # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly # in scan sets, and some SunOS ksh mistreat backslash-escaping # in scan sets (worked around with variable expansion), # and furthermore cannot handle '|' '&' '(' ')' in scan sets # at all, so we specify them separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") lastarg="\"$lastarg\"" ;; esac base_compile="$base_compile $lastarg" done # for arg case $arg_mode in arg) $echo "$modename: you must specify an argument for -Xcompile" exit $EXIT_FAILURE ;; target) $echo "$modename: you must specify a target with \`-o'" 1>&2 exit $EXIT_FAILURE ;; *) # Get the name of the library object. [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo xform='[cCFSifmso]' case $libobj in *.ada) xform=ada ;; *.adb) xform=adb ;; *.ads) xform=ads ;; *.asm) xform=asm ;; *.c++) xform=c++ ;; *.cc) xform=cc ;; *.ii) xform=ii ;; *.class) xform=class ;; *.cpp) xform=cpp ;; *.cxx) xform=cxx ;; *.[fF][09]?) xform=[fF][09]. ;; *.for) xform=for ;; *.java) xform=java ;; *.obj) xform=obj ;; esac libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` case $libobj in *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; *) $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 exit $EXIT_FAILURE ;; esac func_infer_tag $base_compile for arg in $later; do case $arg in -static) build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; esac done qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"` case $qlibobj in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qlibobj="\"$qlibobj\"" ;; esac test "X$libobj" != "X$qlibobj" \ && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \ && $echo "$modename: libobj name \`$libobj' may not contain shell special characters." objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$obj"; then xdir= else xdir=$xdir/ fi lobj=${xdir}$objdir/$objname if test -z "$base_compile"; then $echo "$modename: you must specify a compilation command" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi $run $rm $removelist trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; 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 "$compiler_c_o" = no; then output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" removelist="$removelist $output_obj $lockfile" trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 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 "$need_locks" = yes; then until $run ln "$progpath" "$lockfile" 2>/dev/null; do $show "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; 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." $run $rm $removelist exit $EXIT_FAILURE fi $echo "$srcfile" > "$lockfile" fi if test -n "$fix_srcfile_path"; then eval srcfile=\"$fix_srcfile_path\" fi qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"` case $qsrcfile in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qsrcfile="\"$qsrcfile\"" ;; esac $run $rm "$libobj" "${libobj}T" # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. test -z "$run" && cat > ${libobj}T </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." $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 $show "$mv $output_obj $lobj" if $run $mv $output_obj $lobj; then : else error=$? $run $rm $removelist exit $error fi fi # Append the name of the PIC object to the libtool object file. test -z "$run" && cat >> ${libobj}T <> ${libobj}T </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." $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 $show "$mv $output_obj $obj" if $run $mv $output_obj $obj; then : else error=$? $run $rm $removelist exit $error fi fi # Append the name of the non-PIC object the libtool object file. # Only append if the libtool object file exists. test -z "$run" && cat >> ${libobj}T <> ${libobj}T <&2 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 case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test ;; *) qarg=$arg ;; esac libtool_args="$libtool_args $qarg" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) compile_command="$compile_command @OUTPUT@" finalize_command="$finalize_command @OUTPUT@" ;; esac case $prev in dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. compile_command="$compile_command @SYMFILE@" finalize_command="$finalize_command @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then dlfiles="$dlfiles $arg" else dlprefiles="$dlprefiles $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" if test ! -f "$arg"; then $echo "$modename: symbol file \`$arg' does not exist" exit $EXIT_FAILURE fi prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat $save_arg` do # moreargs="$moreargs $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then pic_object= non_pic_object= # Read the .lo file # If there is no directory component, then add one. case $arg in */* | *\\*) . $arg ;; *) . ./$arg ;; esac if test -z "$pic_object" || \ test -z "$non_pic_object" || test "$pic_object" = none && \ test "$non_pic_object" = none; then $echo "$modename: cannot find name of object for \`$arg'" 1>&2 exit $EXIT_FAILURE fi # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$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 "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. libobjs="$libobjs $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object non_pic_objects="$non_pic_objects $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; 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" non_pic_objects="$non_pic_objects $non_pic_object" fi else # Only an error if not doing a dry-run. if test -z "$run"; then $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 exit $EXIT_FAILURE else # Dry-run case. # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` libobjs="$libobjs $pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi fi done else $echo "$modename: link input file \`$save_arg' does not exist" exit $EXIT_FAILURE fi arg=$save_arg prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 exit $EXIT_FAILURE ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) rpath="$rpath $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) xrpath="$xrpath $arg" ;; esac fi prev= continue ;; xcompiler) compiler_flags="$compiler_flags $qarg" prev= compile_command="$compile_command $qarg" finalize_command="$finalize_command $qarg" continue ;; xlinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $wl$qarg" prev= compile_command="$compile_command $wl$qarg" finalize_command="$finalize_command $wl$qarg" continue ;; xcclinker) linker_flags="$linker_flags $qarg" compiler_flags="$compiler_flags $qarg" prev= compile_command="$compile_command $qarg" finalize_command="$finalize_command $qarg" continue ;; shrext) shrext_cmds="$arg" prev= continue ;; darwin_framework|darwin_framework_skip) test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" prev= 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 compile_command="$compile_command $link_static_flag" finalize_command="$finalize_command $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 continue ;; -avoid-version) avoid_version=yes 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 $echo "$modename: more than one -exported-symbols argument is not allowed" exit $EXIT_FAILURE fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework|-arch|-isysroot) case " $CC " in *" ${arg} ${1} "* | *" ${arg} ${1} "*) prev=darwin_framework_skip ;; *) compiler_flags="$compiler_flags $arg" prev=darwin_framework ;; esac compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" 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*) compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" ;; esac continue ;; -L*) dir=`$echo "X$arg" | $Xsed -e 's/^-L//'` # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 absdir="$dir" notinst_path="$notinst_path $dir" fi dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "*) ;; *) deplibs="$deplibs -L$dir" lib_search_path="$lib_search_path $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; *) dllsearchpath="$dllsearchpath:$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; *) dllsearchpath="$dllsearchpath:$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*) # 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$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework deplibs="$deplibs -framework System" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi deplibs="$deplibs $arg" continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. -model) compile_command="$compile_command $arg" compiler_flags="$compiler_flags $arg" finalize_command="$finalize_command $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) compiler_flags="$compiler_flags $arg" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" continue ;; -module) module=yes continue ;; # -64, -mips[0-9] enable 64-bit mode on the SGI compiler # -r[0-9][0-9]* specifies the processor on the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler # +DA*, +DD* enable 64-bit mode on the HP compiler # -q* pass through compiler args for the IBM compiler # -m* pass through architecture-specific compiler args for GCC # -m*, -t[45]*, -txscale* pass through architecture-specific # compiler args for GCC # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC # -F/path gives path to uninstalled frameworks, gcc on darwin # @file GCC response files -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" compiler_flags="$compiler_flags $arg" continue ;; -shrext) prev=shrext continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2 $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2 fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) dir=`$echo "X$arg" | $Xsed -e 's/^-R//'` # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 exit $EXIT_FAILURE ;; esac case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac 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 ;; -Wc,*) args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" case $flag in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") flag="\"$flag\"" ;; esac arg="$arg $wl$flag" compiler_flags="$compiler_flags $flag" done IFS="$save_ifs" arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ;; -Wl,*) args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'` arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" case $flag in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") flag="\"$flag\"" ;; esac arg="$arg $wl$flag" compiler_flags="$compiler_flags $wl$flag" linker_flags="$linker_flags $flag" done IFS="$save_ifs" arg=`$echo "X$arg" | $Xsed -e "s/^ //"` ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # Some other compiler flag. -* | +*) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac ;; *.$objext) # A standard object. objs="$objs $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then pic_object= non_pic_object= # Read the .lo file # If there is no directory component, then add one. case $arg in */* | *\\*) . $arg ;; *) . ./$arg ;; esac if test -z "$pic_object" || \ test -z "$non_pic_object" || test "$pic_object" = none && \ test "$non_pic_object" = none; then $echo "$modename: cannot find name of object for \`$arg'" 1>&2 exit $EXIT_FAILURE fi # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then dlfiles="$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 "$prev" = dlprefiles; then # Preload the old-style object. dlprefiles="$dlprefiles $pic_object" prev= fi # A PIC object. libobjs="$libobjs $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object non_pic_objects="$non_pic_objects $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; 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" non_pic_objects="$non_pic_objects $non_pic_object" fi else # Only an error if not doing a dry-run. if test -z "$run"; then $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 exit $EXIT_FAILURE else # Dry-run case. # Extract subdirectory from the argument. xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` if test "X$xdir" = "X$arg"; then xdir= else xdir="$xdir/" fi pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` libobjs="$libobjs $pic_object" non_pic_objects="$non_pic_objects $non_pic_object" fi fi ;; *.$libext) # An archive. deplibs="$deplibs $arg" old_deplibs="$old_deplibs $arg" continue ;; *.la) # A libtool-controlled library. if test "$prev" = dlfiles; then # This library was specified with -dlopen. dlfiles="$dlfiles $arg" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. dlprefiles="$dlprefiles $arg" prev= else deplibs="$deplibs $arg" 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. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" fi done # argument parsing loop if test -n "$prev"; then $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" fi oldlibs= # calculate the name of the file, without its directory outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'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\" output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` if test "X$output_objdir" = "X$output"; then output_objdir="$objdir" else output_objdir="$output_objdir/$objdir" fi # Create the object directory. if test ! -d "$output_objdir"; then $show "$mkdir $output_objdir" $run $mkdir $output_objdir exit_status=$? if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then exit $exit_status fi fi # Determine the type of output case $output in "") $echo "$modename: you must specify an output file" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac case $host in *cygwin* | *mingw* | *pw32*) # don't eliminate duplications in $postdeps and $predeps duplicate_compiler_generated_deps=yes ;; *) duplicate_compiler_generated_deps=$duplicate_deps ;; 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 test "X$duplicate_deps" = "Xyes" ; then case "$libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi libs="$libs $deplib" done if test "$linkmode" = lib; 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 test "X$duplicate_compiler_generated_deps" = "Xyes" ; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; esac pre_post_deps="$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 case $linkmode in lib) passes="conv link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 exit $EXIT_FAILURE ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; 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 "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else compiler_flags="$compiler_flags $deplib" fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 continue fi name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; 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 "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # 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 "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then library_names= old_library= case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` test "X$ladir" = "X$lib" && ladir="." lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ;; *) $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2 ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) xrpath="$xrpath $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) lib="$deplib" ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` if eval $echo \"$deplib\" 2>/dev/null \ | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then $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 used here." else $echo $echo "*** Warning: Linking the shared library $output against the" $echo "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. newdlprefiles="$newdlprefiles $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else newdlfiles="$newdlfiles $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2 exit $EXIT_FAILURE fi # Check to see that this really is a libtool archive. if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` test "X$ladir" = "X$lib" && ladir="." dlname= dlopen= dlpreopen= libdir= library_names= old_library= # 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 case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && dlfiles="$dlfiles $dlopen" test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 exit $EXIT_FAILURE fi # It is a libtool convenience library, so add in its objects. convenience="$convenience $ladir/$objdir/$old_library" old_convenience="$old_convenience $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done elif test "$linkmode" != prog && test "$linkmode" != lib; then $echo "$modename: \`$lib' is not a convenience library" 1>&2 exit $EXIT_FAILURE fi continue fi # $pass = conv # Get the name of the library we link against. linklib= for l in $old_library $library_names; do linklib="$l" done if test -z "$linklib"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 exit $EXIT_FAILURE fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 exit $EXIT_FAILURE fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; 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. dlprefiles="$dlprefiles $lib $dependency_libs" else newdlfiles="$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 $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2 $echo "$modename: passing it literally to the linker, although it might fail" 1>&2 abs_ladir="$ladir" fi ;; esac laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then $echo "$modename: warning: library \`$lib' was moved." 1>&2 dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$libdir" absdir="$libdir" fi test "X$hardcode_automatic" = Xyes && 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 notinst_path="$notinst_path $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later notinst_path="$notinst_path $abs_ladir" fi fi # $installed = yes name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 exit $EXIT_FAILURE fi # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then newdlprefiles="$newdlprefiles $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then newdlprefiles="$newdlprefiles $dir/$dlname" else newdlprefiles="$newdlprefiles $dir/$linklib" fi fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; 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 "$linkmode" = prog && test "$pass" != link; then newlib_search_path="$newlib_search_path $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { { test "$prefer_static_libs" = no || test "$prefer_static_libs,$installed" = "built,yes"; } || 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 *" $dir "*) ;; *" $absdir "*) ;; *) temp_rpath="$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 "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && 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 "$use_static_libs" = built && test "$installed" = yes ; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then if test "$installed" = no; then notinst_deplibs="$notinst_deplibs $lib" need_relink=yes fi # This is a shared library # Warn about portability, can't link against -module's on # some systems (darwin) if test "$shouldnotlink" = yes && test "$pass" = link ; then $echo if test "$linkmode" = prog; 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 "$linkmode" = lib && test "$hardcode_into_libs" = yes; 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 "*) ;; *) compile_rpath="$compile_rpath $absdir" esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names realname="$2" shift; 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*) major=`expr $current - $age` versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" soname=`$echo $soroot | ${SED} -e 's/^.*\///'` newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else $show "extracting exported symbol list from \`$soname'" save_ifs="$IFS"; IFS='~' cmds=$extract_expsyms_cmds for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else $show "generating import library for \`$soname'" save_ifs="$IFS"; IFS='~' cmds=$old_archive_from_expsyms_cmds for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" 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 "$linkmode" = prog || test "$mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; 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 module then we can not link against # it, someone is ignoring the new warnings I added if /usr/bin/file -L $add 2> /dev/null | $EGREP ": [^:]* bundle" >/dev/null ; 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 fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$dir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then $echo "$modename: configuration error: unsupported hardcode properties" exit $EXIT_FAILURE fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; 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 "$hardcode_direct" != yes && \ test "$hardcode_minus_L" != yes && \ test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; 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 [\\/]*) add_dir="$add_dir -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; 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 "$linkmode" = prog; 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 "$hardcode_direct" != unsupported; 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 "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; 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 can not 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 "$module" = yes; 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 "$build_old_libs" = no; 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 "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'` case " $xrpath " in *" $temp_xrpath "*) ;; *) xrpath="$xrpath $temp_xrpath";; esac;; *) temp_deplibs="$temp_deplibs $libdir";; esac done dependency_libs="$temp_deplibs" fi newlib_search_path="$newlib_search_path $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" if test "X$duplicate_deps" = "Xyes" ; then case "$tmp_libs " in *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;; esac fi tmp_libs="$tmp_libs $deplib" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do case $deplib in -L*) path="$deplib" ;; *.la) dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$deplib" && dir="." # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2 absdir="$dir" fi ;; esac if grep "^installed=no" $deplib > /dev/null; then path="$absdir/$objdir" else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi if test "$absdir" != "$libdir"; then $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 fi path="$absdir" fi depdepl= case $host in *-*-darwin*) # we do not want to link against static libs, # but need to link against shared 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 "$path/$depdepl" ; then depdepl="$path/$depdepl" fi # do not add paths which are already there case " $newlib_search_path " in *" $path "*) ;; *) newlib_search_path="$newlib_search_path $path";; esac fi path="" ;; *) path="-L$path" ;; esac ;; -l*) case $host in *-*-darwin*) # Again, we only want to link against shared libraries eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` for tmp in $newlib_search_path ; do if test -f "$tmp/lib$tmp_libs.dylib" ; then eval depdepl="$tmp/lib$tmp_libs.dylib" break fi done path="" ;; *) continue ;; esac ;; *) continue ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac case " $deplibs " in *" $depdepl "*) ;; *) deplibs="$depdepl $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # 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 "*) ;; *) lib_search_path="$lib_search_path $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_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 "*) ;; *) tmp_libs="$tmp_libs $deplib" ;; esac ;; *) tmp_libs="$tmp_libs $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # 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 tmp_libs="$tmp_libs $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$deplibs"; then $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 fi if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 fi if test -n "$rpath"; then $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 fi if test -n "$xrpath"; then $echo "$modename: warning: \`-R' is ignored for archives" 1>&2 fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 fi if test -n "$export_symbols" || test -n "$export_symbols_regex"; then $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 fi # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" objs="$objs$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) if test "$module" = no; then $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 exit $EXIT_FAILURE else $echo $echo "*** Warning: Linking the shared library $output against the non-libtool" $echo "*** objects $objs is not portable!" libobjs="$libobjs $objs" fi fi if test "$dlself" != no; then $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2 fi set dummy $rpath if test "$#" -gt 2; then $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 fi install_libdir="$2" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; 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 if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 fi else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 IFS="$save_ifs" if test -n "$8"; then $echo "$modename: too many parameters to \`-version-info'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # 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="$2" number_minor="$3" number_revision="$4" # # 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 # which has an extra 1 added just for fun # case $version_type in darwin|linux|osf|windows|none) current=`expr $number_major + $number_minor` age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) current=`expr $number_major + $number_minor` age="$number_minor" revision="$number_minor" lt_irix_increment=no ;; *) $echo "$modename: unknown library version type \`$version_type'" 1>&2 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit $EXIT_FAILURE ;; esac ;; no) current="$2" revision="$3" age="$4" ;; 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]) ;; *) $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; 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]) ;; *) $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; 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]) ;; *) $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE ;; esac if test "$age" -gt "$current"; then $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 exit $EXIT_FAILURE 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 major=.`expr $current - $age` versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... minor_current=`expr $current + 1` xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current"; ;; irix | nonstopux) if test "X$lt_irix_increment" = "Xno"; then major=`expr $current - $age` else major=`expr $current - $age + 1` fi 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 "$loop" -ne 0; do iface=`expr $revision - $loop` loop=`expr $loop - 1` verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) major=.`expr $current - $age` versuffix="$major.$age.$revision" ;; osf) major=.`expr $current - $age` versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do iface=`expr $current - $loop` loop=`expr $loop - 1` verstring="$verstring:${iface}.0" done # Make executables depend on our current version. verstring="$verstring:${current}.0" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. major=`expr $current - $age` versuffix="-$major" ;; *) $echo "$modename: unknown library version type \`$version_type'" 1>&2 $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 exit $EXIT_FAILURE ;; 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 "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi if test "$mode" != relink; 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) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi removelist="$removelist $p" ;; *) ;; esac done if test -n "$removelist"; then $show "${rm}r $removelist" $run ${rm}r $removelist fi fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then oldlibs="$oldlibs $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"` # deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"` # dependency_libs=`$echo "$dependency_libs " | ${SED} -e "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 temp_xrpath="$temp_xrpath -R$libdir" case "$finalize_rpath " in *" $libdir "*) ;; *) finalize_rpath="$finalize_rpath $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; 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 "*) ;; *) dlfiles="$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 "*) ;; *) dlprefiles="$dlprefiles $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework deplibs="$deplibs -framework System" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # 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 "$build_libtool_need_lc" = "yes"; then deplibs="$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. $rm conftest.c cat > conftest.c </dev/null` 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 "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ | ${SED} 10q \ | $EGREP "$file_magic_regex" > /dev/null; then newdeplibs="$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 else # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" fi done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` for a_deplib in $deplibs; do name=`expr $a_deplib : '-l\(.*\)'` # If $name is empty we are operating on a -L argument. if test -n "$name" && test "$name" != "0"; then if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) newdeplibs="$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 newdeplibs="$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 else # Add a -L argument. newdeplibs="$newdeplibs $a_deplib" fi done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ -e 's/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"` done fi if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \ | grep . >/dev/null; then $echo if test "X$deplibs_check_method" = "Xnone"; 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 fi ;; 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 is the System framework newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; 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 "$build_old_libs" = no; 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 "$allow_undefined" = no; 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 "$build_old_libs" = no; 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 # 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 "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$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 "$build_libtool_libs" = yes; then if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$mode" != relink && rpath="$compile_rpath$rpath" for libdir in $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"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" dep_rpath="$dep_rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$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" if test -n "$hardcode_libdir_flag_spec_ld"; then case $archive_cmds in *\$LD*) eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" ;; *) eval dep_rpath=\"$hardcode_libdir_flag_spec\" ;; esac else eval dep_rpath=\"$hardcode_libdir_flag_spec\" fi fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do rpath="$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 "$mode" != relink && 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 realname="$2" shift; 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 linknames="$linknames $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then $show "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $run $rm $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" if len=`expr "X$cmd" : ".*"` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then $show "$cmd" $run eval "$cmd" || exit $? skipped_export=false else # The command line is too long to execute in one step. $show "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"; then $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' $show "$mv \"${export_symbols}T\" \"$export_symbols\"" $run eval '$mv "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) tmp_deplibs="$tmp_deplibs $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" else gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $convenience libobjs="$libobjs $func_extract_archives_result" fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" linker_flags="$linker_flags $flag" fi # Make a backup of the uninstalled library when relinking if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && 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 "X$skipped_export" != "X:" && len=`expr "X$test_cmds" : ".*" 2>/dev/null` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise. $echo "creating reloadable object files..." # 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 output_la=`$echo "X$output" | $Xsed -e "$basename"` # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= delfiles= last_robj= k=1 output=$output_objdir/$output_la-${k}.$objext # Loop over the list of objects to be linked. for obj in $save_libobjs do eval test_cmds=\"$reload_cmds $objlist $last_robj\" if test "X$objlist" = X || { len=`expr "X$test_cmds" : ".*" 2>/dev/null` && test "$len" -le "$max_cmd_len"; }; then objlist="$objlist $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. eval concat_cmds=\"$reload_cmds $objlist $last_robj\" else # All subsequent reloadable object files will link in # the last one created. eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext k=`expr $k + 1` output=$output_objdir/$output_la-${k}.$objext objlist=$obj len=1 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~ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" if ${skipped_export-false}; then $show "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $run $rm $export_symbols libobjs=$output # Append the command to create the export file. eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\" fi # Set up a command to remove the reloadable object files # after they are used. i=0 while test "$i" -lt "$k" do i=`expr $i + 1` delfiles="$delfiles $output_objdir/$output_la-${i}.$objext" done $echo "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" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" 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\" fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && 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 # Append the command to remove the reloadable object files # to the just-reset $cmds. eval cmds=\"\$cmds~\$rm $delfiles\" fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(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 "$mode" = relink; then $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 $show "${rm}r $gentop" $run ${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 $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)" $run 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 "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$deplibs"; then $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 fi if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 fi if test -n "$rpath"; then $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 fi if test -n "$xrpath"; then $echo "$modename: warning: \`-R' is ignored for objects" 1>&2 fi if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 fi case $output in *.lo) if test -n "$objs$old_deplibs"; then $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 exit $EXIT_FAILURE fi libobj="$output" obj=`$echo "X$output" | $Xsed -e "$lo2o"` ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $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= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec and hope we can get by with # turning comma into space.. wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" reload_conv_objs=$reload_objs\ `$echo "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` else gentop="$output_objdir/${obj}x" generated="$generated $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # Create the old-style object. reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" cmds=$reload_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then $show "${rm}r $gentop" $run ${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" # $run eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" cmds=$reload_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi if test -n "$gentop"; then $show "${rm}r $gentop" $run ${rm}r $gentop fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; esac if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 fi if test -n "$release"; then $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 fi if test "$preload" = yes; then if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown && test "$dlopen_self_static" = unknown; then $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support." fi fi case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` ;; esac case $host in *darwin*) # Don't allow lazy linking, it breaks C++ global constructors if test "$tagname" = CXX ; then compile_command="$compile_command ${wl}-bind_at_load" finalize_command="$finalize_command ${wl}-bind_at_load" fi ;; 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 "*) new_libs="$new_libs -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$new_libs $deplib" ;; esac ;; *) new_libs="$new_libs $deplib" ;; esac done compile_deplibs="$new_libs" compile_command="$compile_command $compile_deplibs" finalize_command="$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 "*) ;; *) finalize_rpath="$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"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) perm_rpath="$perm_rpath $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; *) dllsearchpath="$dllsearchpath:$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; *) dllsearchpath="$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"*) ;; *) hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" rpath="$rpath $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) finalize_perm_rpath="$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 "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` fi dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then dlsyms="${outputname}S.c" else $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 fi fi if test -n "$dlsyms"; then case $dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${outputname}.nm" $show "$rm $nlist ${nlist}S ${nlist}T" $run $rm "$nlist" "${nlist}S" "${nlist}T" # Parse the name list into a source file. $show "creating $output_objdir/$dlsyms" test -z "$run" && $echo > "$output_objdir/$dlsyms" "\ /* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ /* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */ #ifdef __cplusplus extern \"C\" { #endif /* Prevent the only kind of declaration conflicts we can make. */ #define lt_preloaded_symbols some_other_symbol /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then $show "generating symbol list for \`$output'" test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` for arg in $progfiles; do $show "extracting global C symbols from \`$arg'" $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi if test -n "$export_symbols_regex"; then $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $run $rm $export_symbols $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* ) $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac else $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' $run eval 'mv "$nlist"T "$nlist"' case $host in *cygwin* | *mingw* ) $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac fi fi for arg in $dlprefiles; do $show "extracting global C symbols from \`$arg'" name=`$echo "$arg" | ${SED} -e 's%^.*/%%'` $run eval '$echo ": $name " >> "$nlist"' $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done if test -z "$run"; then # 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 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/$dlsyms"' else $echo '/* NONE */' >> "$output_objdir/$dlsyms" fi $echo >> "$output_objdir/$dlsyms" "\ #undef lt_preloaded_symbols #if defined (__STDC__) && __STDC__ # define lt_ptr void * #else # define lt_ptr char * # define const #endif /* The mapping between symbol names and symbols. */ " case $host in *cygwin* | *mingw* ) $echo >> "$output_objdir/$dlsyms" "\ /* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs */ struct { " ;; * ) $echo >> "$output_objdir/$dlsyms" "\ const struct { " ;; esac $echo >> "$output_objdir/$dlsyms" "\ const char *name; lt_ptr address; } lt_preloaded_symbols[] = {\ " eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms" $echo >> "$output_objdir/$dlsyms" "\ {0, (lt_ptr) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " fi pic_flag_for_symtable= 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*) case "$compile_command " in *" -static "*) ;; *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";; esac;; *-*-hpux*) case "$compile_command " in *" -static "*) ;; *) pic_flag_for_symtable=" $pic_flag";; esac esac # Now compile the dynamic symbol file. $show "(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" $run eval '(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? # Clean up the generated files. $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" # Transform the symbol file into the correct name. case $host in *cygwin* | *mingw* ) if test -f "$output_objdir/${outputname}.def" ; then compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP` finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP` else compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` fi ;; * ) compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` ;; esac ;; *) $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 exit $EXIT_FAILURE ;; 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 "X$compile_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP` finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP` fi if test "$need_relink" = no || test "$build_libtool_libs" != yes; then # Replace the output file specification. compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$output"'%g' | $NL2SP` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. $show "$link_command" $run eval "$link_command" exit_status=$? # Delete the generated files. if test -n "$dlsyms"; then $show "$rm $output_objdir/${outputname}S.${objext}" $run $rm "$output_objdir/${outputname}S.${objext}" fi exit $exit_status fi if test -n "$shlibpath_var"; then # We should set the shlibpath_var rpath= for dir in $temp_rpath; do case $dir in [\\/]* | [A-Za-z]:[\\/]*) # Absolute path. rpath="$rpath$dir:" ;; *) # Relative path: add a thisdir entry. rpath="$rpath\$thisdir/$dir:" ;; esac done temp_rpath="$rpath" fi 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 rpath="$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 rpath="$rpath$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; 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 "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $run $rm $output # Link the executable and exit $show "$link_command" $run eval "$link_command" || exit $? exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 $echo "$modename: \`$output' will be relinked during installation" 1>&2 else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $SP2NL | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g' | $NL2SP` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname $show "$link_command" $run eval "$link_command" || exit $? # Now create the wrapper script. $show "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}\" || 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 var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` relink_command="$var=\"$var_value\"; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP` fi # Quote $echo for shipping. if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then case $progpath in [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; esac qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` else qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` fi # Only actually do things if our run command is non-null. if test -z "$run"; then # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) output_name=`basename $output` output_path=`dirname $output` 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 cat > $cwrappersource <> $cwrappersource<<"EOF" #include #include #include #include #include #include #include #include #include #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #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 # 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 */ #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) /* -DDEBUG is fairly common in CFLAGS. */ #undef DEBUG #if defined DEBUGWRAPPER # define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__) #else # define DEBUG(format, ...) #endif const char *program_name = NULL; void * xmalloc (size_t num); char * xstrdup (const char *string); const char * base_name (const char *name); char * find_executable(const char *wrapper); int check_executable(const char *path); char * strendzap(char *str, const char *pat); void lt_fatal (const char *message, ...); int main (int argc, char *argv[]) { char **newargz; int i; program_name = (char *) xstrdup (base_name (argv[0])); DEBUG("(main) argv[0] : %s\n",argv[0]); DEBUG("(main) program_name : %s\n",program_name); newargz = XMALLOC(char *, argc+2); EOF cat >> $cwrappersource <> $cwrappersource <<"EOF" newargz[1] = find_executable(argv[0]); if (newargz[1] == NULL) lt_fatal("Couldn't find %s", argv[0]); DEBUG("(main) found exe at : %s\n",newargz[1]); /* we know the script has the same name, without the .exe */ /* so make sure newargz[1] doesn't end in .exe */ strendzap(newargz[1],".exe"); for (i = 1; i < argc; i++) newargz[i+1] = xstrdup(argv[i]); newargz[argc+1] = NULL; for (i=0; i> $cwrappersource <> $cwrappersource <> $cwrappersource <<"EOF" return 127; } void * xmalloc (size_t num) { void * p = (void *) malloc (num); if (!p) lt_fatal ("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; DEBUG("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!"); if ((!path) || (!*path)) return 0; if ((stat (path, &st) >= 0) && ( /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */ #if defined (S_IXOTH) ((st.st_mode & S_IXOTH) == S_IXOTH) || #endif #if defined (S_IXGRP) ((st.st_mode & S_IXGRP) == S_IXGRP) || #endif ((st.st_mode & S_IXUSR) == S_IXUSR)) ) return 1; else return 0; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise */ 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]; int tmp_len; char* concat_name; DEBUG("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"); 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 = 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 ("getcwd failed"); 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 ("getcwd failed"); 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 * 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 (strcmp(str, pat) == 0) *str = '\0'; } return str; } static void lt_error_core (int exit_status, const char * mode, const char * message, va_list ap) { fprintf (stderr, "%s: %s: ", program_name, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, "FATAL", message, ap); va_end (ap); } EOF # we should really use a build-platform specific compiler # here, but OTOH, the wrappers (shell script and this C one) # are only useful if you want to execute the "real" binary. # Since the "real" binary is built for $host, then this # wrapper might as well be built for $host, too. $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource ;; esac $rm $output trap "$rm $output; exit $EXIT_FAILURE" 1 2 15 $echo > $output "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP # # 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. Xsed='${SED} -e 1s/^X//' sed_quote_subst='$sed_quote_subst' # Be Bourne compatible (taken from Autoconf:_AS_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 variable: 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 echo=\"$qecho\" file=\"\$0\" # Make sure echo works. if test \"X\$1\" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then # Yippee, \$echo works! : else # Restart under the correct shell, and then maybe \$echo will work. exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} fi fi\ " $echo >> $output "\ # Find the directory that this script lives in. thisdir=\`\$echo \"X\$file\" | \$Xsed -e '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 \"X\$file\" | \$Xsed -e '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 \"X\$file\" | \$Xsed -e 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\` done # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $echo >> $output "\ 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 >> $output "\ # 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 $EXIT_FAILURE fi fi $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $rm \"\$progdir/\$program\"; $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; } $rm \"\$progdir/\$file\" fi" else $echo >> $output "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $echo >> $output "\ if test -f \"\$progdir/\$program\"; then" # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $echo >> $output "\ # 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 \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` export $shlibpath_var " fi # fixup the dll searchpath if we need to. if test -n "$dllsearchpath"; then $echo >> $output "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi $echo >> $output "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2*) $echo >> $output "\ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $echo >> $output "\ exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $echo >> $output "\ \$echo \"\$0: cannot exec \$program \$*\" exit $EXIT_FAILURE 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 $EXIT_FAILURE fi fi\ " chmod +x $output fi exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" func_extract_archives $gentop $addlibs oldobjs="$oldobjs $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # 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 $echo "X$obj" | $Xsed -e 's%^.*/%%' done | sort | sort -uc >/dev/null 2>&1); then : else $echo "copying selected object files to avoid basename conflicts..." if test -z "$gentop"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" $show "${rm}r $gentop" $run ${rm}r "$gentop" $show "$mkdir $gentop" $run $mkdir "$gentop" exit_status=$? if test "$exit_status" -ne 0 && test ! -d "$gentop"; then exit $exit_status fi fi save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase counter=`expr $counter + 1` case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" $run ln "$obj" "$gentop/$newobj" || $run cp "$obj" "$gentop/$newobj" oldobjs="$oldobjs $gentop/$newobj" ;; *) oldobjs="$oldobjs $obj" ;; esac done fi eval cmds=\"$old_archive_cmds\" if len=`expr "X$cmds" : ".*"` && test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts $echo "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_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 for obj in $save_oldobjs do oldobjs="$objlist $obj" objlist="$objlist $obj" eval test_cmds=\"$old_archive_cmds\" if len=`expr "X$test_cmds" : ".*" 2>/dev/null` && test "$len" -le "$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= fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do eval cmd=\"$cmd\" IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" done if test -n "$generated"; then $show "${rm}r$generated" $run ${rm}r$generated fi # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" $show "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}\" || 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 var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` relink_command="$var=\"$var_value\"; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. if test -z "$run"; then for installed in no yes; do if test "$installed" = yes; 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) name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdependency_libs="$newdependency_libs $libdir/$name" ;; *) newdependency_libs="$newdependency_libs $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdlfiles="$newdlfiles $libdir/$name" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'` eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 exit $EXIT_FAILURE fi newdlprefiles="$newdlprefiles $libdir/$name" done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlfiles="$newdlfiles $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac newdlprefiles="$newdlprefiles $abs" done dlprefiles="$newdlprefiles" fi $rm $output # place dlname in correct position for cygwin tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; esac $echo > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP # # 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' # Libraries that this one depends upon. dependency_libs='$dependency_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 "$installed" = no && test "$need_relink" = yes; then $echo >> $output "\ relink_command=\"$relink_command\"" fi done fi # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)" $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? ;; esac exit $EXIT_SUCCESS ;; # libtool install mode install) modename="$modename: install" # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. $echo "X$nonopt" | grep shtool > /dev/null; then # Aesthetically quote it. arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac install_prog="$arg " arg="$1" shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac install_prog="$install_prog$arg" # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= for arg do if test -n "$dest"; then files="$files $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) case " $install_prog " in *[\\\ /]cp\ *) ;; *) prev=$arg ;; esac ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac install_prog="$install_prog $arg" done if test -z "$install_prog"; then $echo "$modename: you must specify an install program" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test -n "$prev"; then $echo "$modename: the \`$prev' option requires an argument" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi if test -z "$files"; then if test -z "$dest"; then $echo "$modename: no file or destination specified" 1>&2 else $echo "$modename: you must specify a destination" 1>&2 fi $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Strip any trailing slash from the destination. dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` test "X$destdir" = "X$dest" && destdir=. destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` # Not a directory, so check to see that there is only one file specified. set dummy $files if test "$#" -gt 2; then $echo "$modename: \`$dest' is not a directory" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; 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. staticlibs="$staticlibs $file" ;; *.la) # Check to see that this really is a libtool archive. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi library_names= old_library= relink_command= # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) current_libdirs="$current_libdirs $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) future_libdirs="$future_libdirs $libdir" ;; esac fi dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/ test "X$dir" = "X$file/" && dir= dir="$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 "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. if test "$inst_prefix_dir" = "$destdir"; then $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 exit $EXIT_FAILURE fi if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%" | $NL2SP` else relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%%" | $NL2SP` fi $echo "$modename: warning: relinking \`$file'" 1>&2 $show "$relink_command" if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 exit $EXIT_FAILURE fi fi # See the names of the shared library. set dummy $library_names if test -n "$2"; then realname="$2" shift shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. $show "$install_prog $dir/$srcname $destdir/$realname" $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $? if test -n "$stripme" && test -n "$striplib"; then $show "$striplib $destdir/$realname" $run 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 if test "$linkname" != "$realname"; then $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" fi done fi # Do each command in the postinstall commands. lib="$destdir/$realname" cmds=$postinstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' fi exit $lt_exit } done IFS="$save_ifs" fi # Install the pseudo-library for information purposes. name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` instname="$dir/$name"i $show "$install_prog $instname $destdir/$name" $run eval "$install_prog $instname $destdir/$name" || exit $? # Maybe install the static library, too. test -n "$old_library" && staticlibs="$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 destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` ;; *.$objext) staticdest="$destfile" destfile= ;; *) $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac # Install the libtool object if requested. if test -n "$destfile"; then $show "$install_prog $file $destfile" $run eval "$install_prog $file $destfile" || exit $? fi # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` $show "$install_prog $staticobj $staticdest" $run 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 destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` 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 file=`$echo $file|${SED} 's,.exe$,,'` stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin*|*mingw*) wrapper=`$echo $file | ${SED} -e 's,.exe$,,'` ;; *) wrapper=$file ;; esac if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then notinst_deplibs= relink_command= # Note that it is not necessary on cygwin/mingw to append a dot to # foo even if both foo 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. # # If there is no directory component, then add one. case $wrapper in */* | *\\*) . ${wrapper} ;; *) . ./${wrapper} ;; esac # Check the variables that should have been set. if test -z "$notinst_deplibs"; then $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 exit $EXIT_FAILURE fi finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then # If there is no directory component, then add one. case $lib in */* | *\\*) . $lib ;; *) . ./$lib ;; esac fi libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 finalize=no fi done relink_command= # Note that it is not necessary on cygwin/mingw to append a dot to # foo even if both foo 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. # # If there is no directory component, then add one. case $wrapper in */* | *\\*) . ${wrapper} ;; *) . ./${wrapper} ;; esac outputname= if test "$fast_install" = no && test -n "$relink_command"; then if test "$finalize" = yes && test -z "$run"; then tmpdir=`func_mktempdir` file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g' | $NL2SP` $show "$relink_command" if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 ${rm}r "$tmpdir" continue fi file="$outputname" else $echo "$modename: warning: cannot relink \`$file'" 1>&2 fi else # Install the binary that we compiled earlier. file=`$echo "X$file$stripped_ext" | $Xsed -e "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) destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'` ;; esac ;; esac $show "$install_prog$stripme $file $destfile" $run eval "$install_prog\$stripme \$file \$destfile" || exit $? test -n "$outputname" && ${rm}r "$tmpdir" ;; esac done for file in $staticlibs; do name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` # Set up the ranlib parameters. oldlib="$destdir/$name" $show "$install_prog $file $oldlib" $run eval "$install_prog \$file \$oldlib" || exit $? if test -n "$stripme" && test -n "$old_striplib"; then $show "$old_striplib $oldlib" $run eval "$old_striplib $oldlib" || exit $? fi # Do each command in the postinstall commands. cmds=$old_postinstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" done if test -n "$future_libdirs"; then $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 fi if test -n "$current_libdirs"; then # Maybe just do a dry run. test -n "$run" && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi ;; # libtool finish mode finish) modename="$modename: finish" libdirs="$nonopt" admincmds= if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for dir do libdirs="$libdirs $dir" done for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. cmds=$finish_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || admincmds="$admincmds $cmd" done IFS="$save_ifs" fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $run eval "$cmds" || admincmds="$admincmds $cmds" fi done fi # Exit here if they wanted silent mode. test "$show" = : && exit $EXIT_SUCCESS $echo "X----------------------------------------------------------------------" | $Xsed $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" $echo "more information, such as the ld(1) and ld.so(8) manual pages." $echo "X----------------------------------------------------------------------" | $Xsed exit $EXIT_SUCCESS ;; # libtool execute mode execute) modename="$modename: execute" # The first argument is the command name. cmd="$nonopt" if test -z "$cmd"; then $echo "$modename: you must specify a COMMAND" 1>&2 $echo "$help" exit $EXIT_FAILURE fi # Handle -dlopen flags immediately. for file in $execute_dlfiles; do if test ! -f "$file"; then $echo "$modename: \`$file' is not a file" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi dir= case $file in *.la) # Check to see that this really is a libtool archive. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi # Read the libtool library. dlname= library_names= # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" continue fi dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. if test -f "$dir/$objdir/$dlname"; then dir="$dir/$objdir" else if test ! -f "$dir/$dlname"; then $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 exit $EXIT_FAILURE fi fi ;; *.lo) # Just add the directory containing the .lo file. dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` test "X$dir" = "X$file" && dir=. ;; *) $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 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 -*) ;; *) # Do a test to see if this is really a libtool program. if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *) . ./$file ;; esac # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` args="$args \"$file\"" done if test -z "$run"; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables for lt_var in LANG 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 fi" done # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # 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 fi ;; # libtool clean and uninstall mode clean | uninstall) modename="$modename: $mode" rm="$nonopt" files= rmforce= 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) rm="$rm $arg"; rmforce=yes ;; -*) rm="$rm $arg" ;; *) files="$files $arg" ;; esac done if test -z "$rm"; then $echo "$modename: you must specify an RM program" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE fi rmdirs= origobjdir="$objdir" for file in $files; do dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` if test "X$dir" = "X$file"; then dir=. objdir="$origobjdir" else objdir="$dir/$origobjdir" fi name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` test "$mode" = uninstall && objdir="$dir" # Remember objdir for removal later, being careful to avoid duplicates if test "$mode" = clean; then case " $rmdirs " in *" $objdir "*) ;; *) rmdirs="$rmdirs $objdir" ;; 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 test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then . $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do rmfiles="$rmfiles $objdir/$n" done test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" case "$mode" in clean) case " $library_names " in # " " in the beginning catches empty $dlname *" $dlname "*) ;; *) rmfiles="$rmfiles $objdir/$dlname" ;; esac test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. cmds=$postuninstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" if test "$?" -ne 0 && test "$rmforce" != yes; then exit_status=1 fi done IFS="$save_ifs" fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. cmds=$old_postuninstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" if test "$?" -ne 0 && test "$rmforce" != yes; then exit_status=1 fi done IFS="$save_ifs" fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then # Read the .lo file . $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" \ && test "$pic_object" != none; then rmfiles="$rmfiles $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" \ && test "$non_pic_object" != none; then rmfiles="$rmfiles $dir/$non_pic_object" fi fi ;; *) if test "$mode" = clean ; then noexename=$name case $file in *.exe) file=`$echo $file|${SED} 's,.exe$,,'` noexename=`$echo $name|${SED} 's,.exe$,,'` # $file with .exe has already been added to rmfiles, # add $file without .exe rmfiles="$rmfiles $file" ;; esac # Do a test to see if this is a libtool program. if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then relink_command= . $dir/$noexename # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then rmfiles="$rmfiles $objdir/lt-$name" fi if test "X$noexename" != "X$name" ; then rmfiles="$rmfiles $objdir/lt-${noexename}.c" fi fi fi ;; esac $show "$rm $rmfiles" $run $rm $rmfiles || exit_status=1 done objdir="$origobjdir" # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then $show "rmdir $dir" $run rmdir $dir >/dev/null 2>&1 fi done exit $exit_status ;; "") $echo "$modename: you must specify a MODE" 1>&2 $echo "$generic_help" 1>&2 exit $EXIT_FAILURE ;; esac if test -z "$exec_cmd"; then $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$generic_help" 1>&2 exit $EXIT_FAILURE fi fi # test -z "$show_help" if test -n "$exec_cmd"; then eval exec $exec_cmd exit $EXIT_FAILURE fi # We need to display help for each of the modes. case $mode in "") $echo \ "Usage: $modename [OPTION]... [MODE-ARG]... Provide generalized library-building support services. --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 --finish same as \`--mode=finish' --help display this help message and exit --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] --quiet same as \`--silent' --silent don't print informational messages --tag=TAG use configuration variables from tag TAG --version print version information 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. Try \`$modename --help --mode=MODE' for a more detailed description of MODE. Report bugs to ." exit $EXIT_SUCCESS ;; clean) $echo \ "Usage: $modename [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: $modename [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 -prefer-pic try to building PIC objects only -prefer-non-pic try to building non-PIC objects only -static always build a \`.o' file suitable for static linking 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: $modename [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: $modename [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: $modename [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 rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $echo \ "Usage: $modename [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 -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 -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 -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] 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: $modename [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." ;; *) $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$help" 1>&2 exit $EXIT_FAILURE ;; esac $echo $echo "Try \`$modename --help' for more information about other modes." exit $? # The TAGs below are defined such that we never get into a situation # in which 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 disable_libs=shared # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static disable_libs=static # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: a2ps-4.14/auxdir/config.rpath0000755000175000017500000003343410735337263015451 0ustar mhattamhatta#! /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-2002 Free Software Foundation, Inc. # Taken from GNU libtool, 2001 # Originally by Gordon Matzigkeit , 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 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. # # 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. # # 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. # All known linkers require a `.a' archive for static linking (except M$VC, # which needs '.lib'). libext=a shlibext= host="$1" host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` wl= if test "$GCC" = yes; then wl='-Wl,' else case "$host_os" in aix3* | aix4* | aix5*) wl='-Wl,' ;; hpux9* | hpux10* | hpux11*) wl='-Wl,' ;; irix5* | irix6*) wl='-Wl,' ;; linux*) echo '__INTEL_COMPILER' > conftest.$ac_ext if $CC -E conftest.$ac_ext >/dev/null | grep __INTEL_COMPILER >/dev/null then : else # Intel icc wl='-Qoption,ld,' fi ;; osf3* | osf4* | osf5*) wl='-Wl,' ;; solaris*) wl='-Wl,' ;; sunos4*) wl='-Qoption ld ' ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) if test "x$host_vendor" = xsni; then wl='-LD' else wl='-Wl,' fi ;; esac fi hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_direct=no hardcode_minus_L=no case "$host_os" in cygwin* | mingw* | pw32*) # 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 ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then case "$host_os" in aix3* | aix4* | aix5*) # On AIX, the GNU linker is very broken ld_shlibs=no ;; amigaos*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can use # them. ld_shlibs=no ;; beos*) if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; cygwin* | mingw* | pw32*) # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' ;; solaris* | sysv5*) if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then ld_shlibs=no elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; sunos4*) hardcode_direct=yes ;; *) if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = yes; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' 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 ;; aix4* | aix5*) 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].*|aix5*) 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 hardcode_direct=yes else # We have old collect2 hardcode_direct=unsupported hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi esac fi if test "$aix_use_runtimelinking" = yes; then hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib' else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' else hardcode_libdir_flag_spec='${wl}-bnolibpath ${wl}-blibpath:$libdir:/usr/lib:/lib' fi fi ;; amigaos*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # see comment about different semantics on the GNU ld section ld_shlibs=no ;; cygwin* | mingw* | pw32*) # 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=yes ;; freebsd1*) ld_shlibs=no ;; freebsd2.2*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; freebsd2*) hardcode_direct=yes hardcode_minus_L=yes ;; freebsd*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; hpux9* | hpux10* | hpux11*) hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_minus_L=yes # Not in the search PATH, but as the default # location of the library. ;; irix5* | irix6*) 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=: ;; openbsd*) 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 ;; 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=: ;; sco3.2v5*) ;; solaris*) hardcode_libdir_flag_spec='-R$libdir' ;; sunos4*) hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes ;; sysv4) if test "x$host_vendor" = xsno; then hardcode_direct=yes # is this really true??? else hardcode_direct=no # Motorola manual says yes, but my tests say they lie fi ;; sysv4.3*) ;; sysv5*) hardcode_libdir_flag_spec= ;; uts4*) hardcode_libdir_flag_spec='-L$libdir' ;; dgux*) hardcode_libdir_flag_spec='-L$libdir' ;; sysv4*MP*) if test -d /usr/nec; then ld_shlibs=yes fi ;; sysv4.2uw2*) hardcode_direct=yes hardcode_minus_L=no ;; sysv5uw7* | unixware7*) ;; *) ld_shlibs=no ;; esac fi # Check dynamic linker characteristics libname_spec='lib$name' sys_lib_dlsearch_path_spec="/lib /usr/lib" sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" case "$host_os" in aix3*) shlibext=so ;; aix4* | aix5*) shlibext=so ;; amigaos*) shlibext=ixlibrary ;; beos*) shlibext=so ;; bsdi4*) shlibext=so 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" ;; cygwin* | mingw* | pw32*) case $GCC,$host_os in yes,cygwin*) shlibext=dll.a ;; yes,mingw*) shlibext=dll sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | sed -e "s/^libraries://" -e "s/;/ /g"` ;; yes,pw32*) shlibext=dll ;; *) shlibext=dll ;; esac ;; darwin* | rhapsody*) shlibext=dylib ;; freebsd1*) ;; freebsd*) shlibext=so ;; gnu*) shlibext=so ;; hpux9* | hpux10* | hpux11*) shlibext=sl ;; irix5* | irix6*) shlibext=so case "$host_os" in irix5*) libsuff= shlibsuff= ;; *) case $LD in *-32|*"-32 ") libsuff= shlibsuff= ;; *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 ;; *-64|*"-64 ") libsuff=64 shlibsuff=64 ;; *) libsuff= shlibsuff= ;; esac ;; esac sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" ;; linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*) ;; linux-gnu*) shlibext=so ;; netbsd*) shlibext=so ;; newsos6) shlibext=so ;; openbsd*) shlibext=so ;; os2*) libname_spec='$name' shlibext=dll ;; osf3* | osf4* | osf5*) shlibext=so 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" ;; sco3.2v5*) shlibext=so ;; solaris*) shlibext=so ;; sunos4*) shlibext=so ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) shlibext=so case "$host_vendor" in motorola) sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; uts4*) shlibext=so ;; dgux*) shlibext=so ;; sysv4*MP*) if test -d /usr/nec; then shlibext=so fi ;; esac sed_quote_subst='s/\(["`$\\]\)/\\\1/g' escaped_wl=`echo "X$wl" | 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"` escaped_sys_lib_search_path_spec=`echo "X$sys_lib_search_path_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` escaped_sys_lib_dlsearch_path_spec=`echo "X$sys_lib_dlsearch_path_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <. 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 outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac 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" # 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 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. "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## 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). ## - 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 -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## 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. tr ' ' ' ' < "$tmpdepfile" | ## 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. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -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 -eq 0; then : else 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 ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> $depfile echo >> $depfile # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> $depfile else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; 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. stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` tmpdepfile="$stripped.u" if test "$libtool" = yes; then "$@" -Wc,-M else "$@" -M fi stat=$? if test -f "$tmpdepfile"; then : else stripped=`echo "$stripped" | sed 's,^.*/,,'` tmpdepfile="$stripped.u" fi if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi if test -f "$tmpdepfile"; then outname="$stripped.o" # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler understands `-MD -MF file'. However on # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want: # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using \ : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else 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" ;; 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. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mecanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in 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.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a tab and a space in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #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 $1 != '--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:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. 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 $1 != '--mode=compile'; do shift done shift fi # X makedepend shift cleared=no for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes ;; esac 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. -*|$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" cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. 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 $1 != '--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, regardless of -o, # because we must use -o when running libtool. "$@" || exit $? IFS=" " for arg do case "$arg" in "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: a2ps-4.14/auxdir/Makefile.am0000644000175000017500000000203010735324663015161 0ustar mhattamhatta## -*- Makefile -*- # a2ps auxdir directory ## Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana ## Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana ## $Id: Makefile.am,v 1.1.1.1.2.1 2007/12/29 01:58:11 mhatta Exp $ ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 3, or (at your option) ## any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 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. ## Process this file with automake to produce Makefile.in EXTRA_DIST = msdos.sh make-faq.sed update-ogonkify.sh a2ps-4.14/auxdir/Makefile.in0000644000175000017500000002652210735337310015177 0ustar mhattamhatta# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 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@ # a2ps auxdir directory srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = auxdir DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in config.guess \ config.rpath config.sub depcomp elisp-comp install-sh \ ltmain.sh mdate-sh missing mkinstalldirs texinfo.tex ylwrap ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/a2_psutils.m4 \ $(top_srcdir)/m4/atexit.m4 $(top_srcdir)/m4/file.m4 \ $(top_srcdir)/m4/fp_echo.m4 $(top_srcdir)/m4/fullpath.m4 \ $(top_srcdir)/m4/gccwarn.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gperf-check.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \ $(top_srcdir)/m4/lex.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/lpr.m4 \ $(top_srcdir)/m4/m4.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \ $(top_srcdir)/m4/perl.m4 $(top_srcdir)/m4/prereq.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/protos.m4 \ $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/rename.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/strcasecmp.m4 \ $(top_srcdir)/m4/strftim.m4 $(top_srcdir)/m4/termios.m4 \ $(top_srcdir)/m4/tterm.m4 $(top_srcdir)/m4/uintmax_t.m4 \ $(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/winsz.m4 \ $(top_srcdir)/m4/xstrtoumax.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/auxdir/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ COM_DISPLAY = @COM_DISPLAY@ COM_LATEX = @COM_LATEX@ COM_PS2PDF = @COM_PS2PDF@ COM_PSUTILS = @COM_PSUTILS@ COM_TEXI = @COM_TEXI@ COM_acroread = @COM_acroread@ COM_acroread4 = @COM_acroread4@ COM_bzip = @COM_bzip@ COM_bzip2 = @COM_bzip2@ COM_convert = @COM_convert@ COM_distill = @COM_distill@ 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_netscape = @COM_netscape@ COM_pdf2ps = @COM_pdf2ps@ COM_ps2pdf = @COM_ps2pdf@ COM_psnup = @COM_psnup@ COM_psselect = @COM_psselect@ COM_tex = @COM_tex@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ ENCODING = @ENCODING@ EXEEXT = @EXEEXT@ EXTENSIONS_FALSE = @EXTENSIONS_FALSE@ EXTENSIONS_TRUE = @EXTENSIONS_TRUE@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ F77 = @F77@ FFLAGS = @FFLAGS@ FILE_LINK = @FILE_LINK@ GMSGFMT = @GMSGFMT@ GNU_PACKAGE = @GNU_PACKAGE@ GPERF = @GPERF@ GREP = @GREP@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBVERSION = @LIBVERSION@ LN_S = @LN_S@ LPR = @LPR@ LPR_QUEUE_OPTION = @LPR_QUEUE_OPTION@ LTALLOCA = @LTALLOCA@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ M4 = @M4@ MAKEINFO = @MAKEINFO@ MEDIUM = @MEDIUM@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ POSUB = @POSUB@ PSFONT_PATH = @PSFONT_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ U = @U@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ YACC = @YACC@ YFLAGS = @YFLAGS@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ acroread = @acroread@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ 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@ bzip = @bzip@ bzip2 = @bzip2@ convert = @convert@ datadir = @datadir@ datarootdir = @datarootdir@ distill = @distill@ docdir = @docdir@ dvidir = @dvidir@ dvips = @dvips@ exec_prefix = @exec_prefix@ file_prog = @file_prog@ ghostview = @ghostview@ 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@ netscape = @netscape@ oldincludedir = @oldincludedir@ pdf2ps = @pdf2ps@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ ps2pdf = @ps2pdf@ psdir = @psdir@ psnup = @psnup@ psselect = @psselect@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ tex = @tex@ EXTRA_DIST = msdos.sh 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 \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu auxdir/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu auxdir/Makefile .PRECIOUS: 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__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ 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 mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile 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: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: 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 mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-exec install-exec-am \ install-info install-info-am install-man install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ uninstall-info-am # 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.14/auxdir/elisp-comp0000755000175000017500000000523010735337306015126 0ustar mhattamhatta#!/bin/sh # Copyright (C) 1995, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. scriptversion=2005-05-14.22 # Franc,ois Pinard , 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, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # 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 # . case $1 in '') echo "$0: No files. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: elisp-comp [--help] [--version] FILES... This script byte-compiles all `.el' files listed as FILES using GNU Emacs, and put the resulting `.elc' files into the current directory, so disregarding the original directories used in `.el' arguments. This script manages in such a way that all Emacs LISP files to be compiled are made visible between themselves, in the event they require or load-library one another. Report bugs to . EOF exit $? ;; -v | --v*) echo "elisp-comp $scriptversion" exit $? ;; esac if test -z "$EMACS" || test "$EMACS" = "t"; then # Value of "t" means we are running in a shell under Emacs. # Just assume Emacs is called "emacs". EMACS=emacs fi tempdir=elc.$$ # Cleanup the temporary directory on exit. trap 'ret=$?; rm -rf "$tempdir" && exit $ret' 0 trap '(exit $?); exit' 1 2 13 15 mkdir $tempdir cp "$@" $tempdir ( cd $tempdir echo "(setq load-path (cons nil load-path))" > script $EMACS -batch -q -l script -f batch-byte-compile *.el || exit $? mv *.elc .. ) || exit $? (exit 0); exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: a2ps-4.14/auxdir/mkinstalldirs0000755000175000017500000000662210735337310015737 0ustar mhattamhatta#! /bin/sh # mkinstalldirs --- make directory hierarchy scriptversion=2005-06-29.22 # Original author: Noah Friedman # Created: 1993-05-16 # Public domain. # # This file is maintained in Automake, please report # bugs to or send patches to # . errstatus=0 dirmode= usage="\ Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ... Create each directory DIR (with mode MODE, if specified), including all leading file name components. Report bugs to ." # process command line arguments while test $# -gt 0 ; do case $1 in -h | --help | --h*) # -h for help echo "$usage" exit $? ;; -m) # -m PERM arg shift test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } dirmode=$1 shift ;; --version) echo "$0 $scriptversion" exit $? ;; --) # stop option processing shift break ;; -*) # unknown option echo "$usage" 1>&2 exit 1 ;; *) # first non-opt arg break ;; esac done for file do if test -d "$file"; then shift else break fi done case $# in 0) exit 0 ;; esac # Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and # mkdir -p a/c at the same time, both will detect that a is missing, # one will create a, then the other will try to create a and die with # a "File exists" error. This is a problem when calling mkinstalldirs # from a parallel make. We use --version in the probe to restrict # ourselves to GNU mkdir, which is thread-safe. case $dirmode in '') if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then echo "mkdir -p -- $*" exec mkdir -p -- "$@" else # On NextStep and OpenStep, the `mkdir' command does not # recognize any option. It will interpret all options as # directories to create, and then abort because `.' already # exists. test -d ./-p && rmdir ./-p test -d ./--version && rmdir ./--version fi ;; *) if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 && test ! -d ./--version; then echo "mkdir -m $dirmode -p -- $*" exec mkdir -m "$dirmode" -p -- "$@" else # Clean up after NextStep and OpenStep mkdir. for d in ./-m ./-p ./--version "./$dirmode"; do test -d $d && rmdir $d done fi ;; esac for file do case $file in /*) pathcomp=/ ;; *) pathcomp= ;; esac oIFS=$IFS IFS=/ set fnord $file shift IFS=$oIFS for d do test "x$d" = x && continue pathcomp=$pathcomp$d case $pathcomp in -*) pathcomp=./$pathcomp ;; esac if test ! -d "$pathcomp"; then echo "mkdir $pathcomp" mkdir "$pathcomp" || lasterr=$? if test ! -d "$pathcomp"; then errstatus=$lasterr else if test ! -z "$dirmode"; then echo "chmod $dirmode $pathcomp" lasterr= chmod "$dirmode" "$pathcomp" || lasterr=$? if test ! -z "$lasterr"; then errstatus=$lasterr fi fi fi fi pathcomp=$pathcomp/ done done exit $errstatus # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: a2ps-4.14/auxdir/update-ogonkify.sh0000755000175000017500000000277507440740377016614 0ustar mhattamhatta#! /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.14/auxdir/config.sub0000755000175000017500000007772410735337306015134 0ustar mhattamhatta#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, # Inc. timestamp='2007-06-28' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # 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 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., 51 Franklin Street - Fifth Floor, Boston, MA # 02110-1301, USA. # # 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. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # 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. # 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. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -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 (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 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" 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 # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -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) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64vr | mips64vrel \ | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | mt \ | msp430 \ | nios | nios2 \ | ns16k | ns32k \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | score \ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu | strongarm \ | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64vr-* | mips64vrel-* \ | mips64orion-* | mips64orionel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ | xstormy16-* | xtensa-* \ | ymp-* \ | z8k-*) ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; c90) basic_machine=c90-cray os=-unicos ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tic55x | c55x*) basic_machine=tic55x-unknown os=-coff ;; tic6x | c6x*) basic_machine=tic6x-unknown os=-coff ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # 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) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -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 ;; -mvs* | -opened*) vendor=ibm ;; -os400*) 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 basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: a2ps-4.14/auxdir/ylwrap0000755000175000017500000001406110735337310014371 0ustar mhattamhatta#! /bin/sh # ylwrap - wrapper for lex/yacc invocations. scriptversion=2005-05-14.22 # Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005 # 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, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # 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 # . 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 . EOF exit $? ;; -v|--v*) echo "ylwrap $scriptversion" exit $? ;; esac # The input. input="$1" shift case "$input" in [\\/]* | ?:[\\/]*) # Absolute path; do nothing. ;; *) # Relative path. Make it absolute. input="`pwd`/$input" ;; esac pairlist= while test "$#" -ne 0; do if test "$1" = "--"; then shift break fi pairlist="$pairlist $1" shift done # The program to run. prog="$1" shift # Make any relative path in $prog absolute. case "$prog" in [\\/]* | ?:[\\/]*) ;; *[\\/]*) prog="`pwd`/$prog" ;; esac # FIXME: add hostname here for parallel makes that run commands on # other machines. But that might take us over the 14-char limit. dirname=ylwrap$$ trap "cd `pwd`; rm -rf $dirname > /dev/null 2>&1" 1 2 3 15 mkdir $dirname || exit 1 cd $dirname case $# in 0) $prog "$input" ;; *) $prog "$@" "$input" ;; esac ret=$? if test $ret -eq 0; then set X $pairlist shift first=yes # 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="no" if test -f y_tab.c || test -f y_tab.h; then y_tab_nodot="yes" fi # The directory holding the input. input_dir=`echo "$input" | sed -e 's,\([\\/]\)[^\\/]*$,\1,'` # Quote $INPUT_DIR so we can use it in a regexp. # FIXME: really we should care about more than `.' and `\'. input_rx=`echo "$input_dir" | sed 's,\\\\,\\\\\\\\,g;s,\\.,\\\\.,g'` while test "$#" -ne 0; do from="$1" # Handle y_tab.c and y_tab.h output by DOS if test $y_tab_nodot = "yes"; then if test $from = "y.tab.c"; then from="y_tab.c" else if test $from = "y.tab.h"; then from="y_tab.h" fi fi fi if test -f "$from"; then # If $2 is an absolute path name, then just use that, # otherwise prepend `../'. case "$2" in [\\/]* | ?:[\\/]*) target="$2";; *) target="../$2";; esac # We do not want to overwrite a header file if it hasn't # changed. This avoid useless recompilations. However the # parser itself (the first file) should always be updated, # because 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 $first = no; then realtarget="$target" target="tmp-`echo $target | sed s/.*[\\/]//g`" fi # Edit out `#line' or `#' directives. # # We don't want the resulting debug information to point at # an absolute srcdir; it is better for it to just mention the # .y file with no path. # # We want to use the real output file name, not yy.lex.c for # instance. # # We want the include guards to be adjusted too. FROM=`echo "$from" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'` TARGET=`echo "$2" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'` sed -e "/^#/!b" -e "s,$input_rx,," -e "s,$from,$2," \ -e "s,$FROM,$TARGET," "$from" >"$target" || ret=$? # Check whether header files must be updated. if test $first = no; then if test -f "$realtarget" && cmp -s "$realtarget" "$target"; then echo "$2" is unchanged rm -f "$target" else echo updating "$2" mv -f "$target" "$realtarget" fi fi else # A missing file is only an error for the first file. This # is a blatant hack to let us support using "yacc -d". If -d # is not specified, we don't want an error when the header # file is "missing". if test $first = yes; then ret=1 fi fi shift shift first=no done else ret=$? fi # Remove the directory. cd .. rm -rf $dirname exit $ret # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: a2ps-4.14/auxdir/msdos.sh0000755000175000017500000000210507440740377014617 0ustar mhattamhatta#! /bin/sh # # Take a configure'd package.tar.gz, and make it better for msdos. # test $# = 1 || exit 1 thisdir=`pwd` tarball=$thisdir/$1 package=`echo $1 | sed 's/\.tar\.gz//g;s#.*/##g'` msdos=`echo $package | sed -e 's/[-.]//g'` cd /tmp rm -rf $package gunzip -cd $tarball | tar xvf - || exit 1 cd /tmp/$package || exit 1 #################### We are in the package. Patch what we need to patch # 1. config.h.in is two dots long perl -pi -e 's/config\.h/config.h:config.hin/g' configure.in || exit 1 mv config.h.in config.hin # 2. po/Makefile.in.in has 2 dots sed -e 's/Makefile\.in\.in/Makefile.in2/g' \ -e 's|$(subdir)/$@.in|$(subdir)/$@.in:$(subdir)/$@.in2|g' \ po/Makefile.in.in > po/Makefile.in2 perl -pi -e 's#po/Makefile\.in#po/Makefile.in:po/Makefile.in2#' configure.in ################################################ Reconfigure the package automake || exit 1 autoconf || exit 1 # Rebuild the package cd /tmp mv $package $msdos tar cvf $thisdir/$msdos.tar $msdos || exit 1 gzip $thisdir/$msdos.tar || exit 1 mv $thisdir/$msdos.tar.gz $thisdir/$msdos.tgz || exit 1 a2ps-4.14/auxdir/texinfo.tex0000644000175000017500000070156310735337306015342 0ustar mhattamhatta% 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{2005-07-05.19} % % Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 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 2, 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 texinfo.tex file; see the file COPYING. If not, write % to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, % Boston, MA 02110-1301, USA. % % 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 has been our intent since Texinfo was invented.) % % Please try the latest version of texinfo.tex before submitting bug % reports; you can get the latest version from: % http://www.gnu.org/software/texinfo/ (the Texinfo home page), or % ftp://tug.org/tex/texinfo.tex % (and all CTAN mirrors, see http://www.ctan.org). % 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 including 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 http://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} \message{Basics,} \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\ptexrbrace=\} \let\ptexslash=\/ \let\ptexstar=\* \let\ptext=\t % 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\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 % In some macros, we cannot use the `\? notation---the left quote is % in some cases the escape char. \chardef\backChar = `\\ \chardef\colonChar = `\: \chardef\commaChar = `\, \chardef\dotChar = `\. \chardef\exclamChar= `\! \chardef\plusChar = `\+ \chardef\questChar = `\? \chardef\semiChar = `\; \chardef\underChar = `\_ \chardef\spaceChar = `\ % \chardef\spacecat = 10 \def\spaceisspace{\catcode\spaceChar=\spacecat} {% for help with debugging. % example usage: \expandafter\show\activebackslash \catcode`\! = 0 \catcode`\\ = \active !global!def!activebackslash{\} } % 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 } % Margin to add to right of even pages, to left of odd pages. \newdimen\bindingoffset \newdimen\normaloffset \newdimen\pagewidth \newdimen\pageheight % 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} % @| inserts a changebar to the left of the current line. It should % surround any changed text. This approach does *not* work if the % change spans more than two lines of output. To handle that, we would % have adopt a much more difficult approach (putting marks into the main % vertical list for the beginning and end of each change). % \def\|{% % \vadjust can only be used in horizontal mode. \leavevmode % % Append this vertical mode material after the current line in the output. \vadjust{% % We want to insert a rule with the height and depth of the current % leading; that is exactly what \strutbox is supposed to record. \vskip-\baselineskip % % \vadjust-items are inserted at the left edge of the type. So % the \llap here moves out into the left-hand margin. \llap{% % % For a thicker or thinner bar, change the `1pt'. \vrule height\baselineskip width1pt % % This is the space between the bar and the text. \hskip 12pt }% }% } % 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\undefined\else % etex gives us more logging \tracingscantokens1 \tracingifs1 \tracinggroups1 \tracingnesting2 \tracingassigns1 \fi \tracingcommands3 % 3 gives us more in etex \errorcontextlines16 }% % 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} % For @cropmarks command. % Do @cropmarks to get crop marks. % \newif\ifcropmarks \let\cropmarks = \cropmarkstrue % % Dimensions to add cropmarks at corners. % Added by P. A. MacKay, 12 Nov. 1986 % \newdimen\outerhsize \newdimen\outervsize % set by the paper size routines \newdimen\cornerlong \cornerlong=1pc \newdimen\cornerthick \cornerthick=.3pt \newdimen\topandbottommargin \topandbottommargin=.75in % Main output routine. \chardef\PAGE = 255 \output = {\onepageout{\pagecontents\PAGE}} \newbox\headlinebox \newbox\footlinebox % \onepageout takes a vbox as an argument. Note that \pagecontents % does insertions, but you have to call it yourself. \def\onepageout#1{% \ifcropmarks \hoffset=0pt \else \hoffset=\normaloffset \fi % \ifodd\pageno \advance\hoffset by \bindingoffset \else \advance\hoffset by -\bindingoffset\fi % % Do this outside of the \shipout so @code etc. will be expanded in % the headline as they should be, not taken literally (outputting ''code). \setbox\headlinebox = \vbox{\let\hsize=\pagewidth \makeheadline}% \setbox\footlinebox = \vbox{\let\hsize=\pagewidth \makefootline}% % {% % 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. % \indexdummies % don't expand commands in the output. \shipout\vbox{% % Do this early so pdf references go to the beginning of the page. \ifpdfmakepagedest \pdfdest name{\the\pageno} xyz\fi % \ifcropmarks \vbox to \outervsize\bgroup \hsize = \outerhsize \vskip-\topandbottommargin \vtop to0pt{% \line{\ewtop\hfil\ewtop}% \nointerlineskip \line{% \vbox{\moveleft\cornerthick\nstop}% \hfill \vbox{\moveright\cornerthick\nstop}% }% \vss}% \vskip\topandbottommargin \line\bgroup \hfil % center the page within the outer (page) hsize. \ifodd\pageno\hskip\bindingoffset\fi \vbox\bgroup \fi % \unvbox\headlinebox \pagebody{#1}% \ifdim\ht\footlinebox > 0pt % Only leave this space if the footline is nonempty. % (We lessened \vsize for it in \oddfootingxxx.) % The \baselineskip=24pt in plain's \makefootline has no effect. \vskip 2\baselineskip \unvbox\footlinebox \fi % \ifcropmarks \egroup % end of \vbox\bgroup \hfil\egroup % end of (centering) \line\bgroup \vskip\topandbottommargin plus1fill minus1fill \boxmaxdepth = \cornerthick \vbox to0pt{\vss \line{% \vbox{\moveleft\cornerthick\nsbot}% \hfill \vbox{\moveright\cornerthick\nsbot}% }% \nointerlineskip \line{\ewbot\hfil\ewbot}% }% \egroup % \vbox from first cropmarks clause \fi }% end of \shipout\vbox }% end of group with \indexdummies \advancepageno \ifnum\outputpenalty>-20000 \else\dosupereject\fi } \newinsert\margin \dimen\margin=\maxdimen \def\pagebody#1{\vbox to\pageheight{\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 \unvbox#1 \ifvoid\footins\else\vskip\skip\footins\footnoterule \unvbox\footins\fi \ifr@ggedbottom \kern-\dimen@ \vfil \fi} } % Here are the rules for the cropmarks. Note that they are % offset so that the space between them is truly \outerhsize or \outervsize % (P. A. MacKay, 12 November, 1986) % \def\ewtop{\vrule height\cornerthick depth0pt width\cornerlong} \def\nstop{\vbox {\hrule height\cornerthick depth\cornerlong width\cornerthick}} \def\ewbot{\vrule height0pt depth\cornerthick width\cornerlong} \def\nsbot{\vbox {\hrule height\cornerlong depth\cornerthick width\cornerthick}} % 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. % \def\parsearg{\parseargusing{}} \def\parseargusing#1#2{% \def\next{#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. \def\argremovecomment#1\comment#2\ArgTerm{\argremovec #1\c\ArgTerm} \def\argremovec#1\c#2\ArgTerm{\argcheckspaces#1\^^M\ArgTerm} % Each occurence of `\^^M' or `\^^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 % We cannot use \next here, as it holds the macro to run; % thus we 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 \next. % (Similarily, 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\next\expandafter{#1}} % \parseargdef\foo{...} % is roughly equivalent to % \def\foo{\parsearg\Xfoo} % \def\Xfoo#1{...} % % Actually, I use \csname\string\foo\endcsname, ie. \\foo, as it is my % favourite TeX trick. --kasal, 16nov03 \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 enviroments; they don't open a group. (The % implementation of @end takes care not to call \endgroup in this % special case.) % At runtime, 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 } % Evironment mismatch, #1 expected: \def\badenverr{% \errhelp = \EMsimple \errmessage{This command can appear only \inenvironment\temp, not \inenvironment\thisenv}% } \def\inenvironment#1{% \ifx#1\empty out of any environment% \else in environment \expandafter\string#1% \fi } % @end foo executes the definition of \Efoo. % But first, it executes a specialized version of \checkenv % \parseargdef\end{% \if 1\csname iscond.#1\endcsname \else % The general wording of \badenverr may not be ideal, but... --kasal, 06nov03 \expandafter\checkenv\csname#1\endcsname \csname E#1\endcsname \endgroup \fi } \newhelp\EMsimple{Press RETURN to continue.} %% Simple single-character @ commands % @@ prints an @ % Kludge this until the fonts are right (grr). \def\@{{\tt\char64}} % This is turned off because it was never documented % and you can use @w{...} around a quote to suppress ligatures. %% Define @` and @' to be the same as ` and ' %% but suppressing ligatures. %\def\`{{`}} %\def\'{{'}} % Used to generate quoted braces. \def\mylbrace {{\tt\char123}} \def\myrbrace {{\tt\char125}} \let\{=\mylbrace \let\}=\myrbrace \begingroup % Definitions to produce \{ and \} commands for indices, % and @{ and @} for the aux/toc files. \catcode`\{ = \other \catcode`\} = \other \catcode`\[ = 1 \catcode`\] = 2 \catcode`\! = 0 \catcode`\\ = \other !gdef!lbracecmd[\{]% !gdef!rbracecmd[\}]% !gdef!lbraceatcmd[@{]% !gdef!rbraceatcmd[@}]% !endgroup % @comma{} to avoid , parsing problems. \let\comma = , % Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent % Others are defined by plain TeX: @` @' @" @^ @~ @= @u @v @H. \let\, = \c \let\dotaccent = \. \def\ringaccent#1{{\accent23 #1}} \let\tieaccent = \t \let\ubaraccent = \b \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{\selectfonts\lllsize \underbar{a}}} \def\ordm{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \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 \ptexi \else\ifx\temp\jmacro \j \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{\selectfonts\lllsize A}\vss}}% \kern-.15em \TeX } % 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\*{\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. % \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 = \pageheight \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\pageheight \page \fi \fi \box\groupbox \prevdepth = \dimen1 \checkinserts } % % 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 % Old definition--didn't work. %\parseargdef\need{\par % %% This method tries to make TeX break the page naturally %% if the depth of the box does not fit. %{\baselineskip=0pt% %\vtop to #1\mil{\vfil}\kern -#1\mil\nobreak %\prevdepth=-1000pt %}} \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'. % \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 insert text of that file as input. % \def\include{\parseargusing\filenamecatcodes\includezzz} \def\includezzz#1{% \pushthisfilestack \def\thisfile{#1}% {% \makevalueexpandable \def\temp{\input #1 }% \expandafter }\temp \popthisfilestack } \def\filenamecatcodes{% \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\next\centerH \else \let\next\centerV \fi \next{\hfil \ignorespaces#1\unskip \hfil}% } \def\centerH#1{% {% \hfil\break \advance\hsize by -\leftskip \advance\hsize by -\rightskip \line{#1}% \break }% } \def\centerV#1{\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\comment{\begingroup \catcode`\^^M=\other% \catcode`\@=\other \catcode`\{=\other \catcode`\}=\other% \commentxxx} {\catcode`\^^M=\other \gdef\commentxxx#1^^M{\endgroup}} \let\c=\comment % @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 = {}% } % @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\underChar = \active \gdef\mathunderscore{% \catcode\underChar=\active \def_{\ifnum\fam=\slfam \_\else\sb\fi}% } } % Another complication: we want \\ (and @\) to output a \ character. % FYI, plain.tex uses \\ as a temporary control sequence (why?), but % this is not advertised and we don't care. Texinfo does not % otherwise define @\. % % The \mathchar is class=0=ordinary, family=7=ttfam, position=5C=\. \def\mathbackslash{\ifnum\fam=\ttfam \mathchar"075C \else\backslash \fi} % \def\math{% \tex \mathunderscore \let\\ = \mathbackslash \mathactive $\finishmath } \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 \gdef\mathactive{% \let^ = \ptexhat \let< = \ptexless \let> = \ptexgtr \let+ = \ptexplus } } % @bullet and @minus need the same treatment as @math, just above. \def\bullet{$\ptexbullet$} \def\minus{$-$} % @dots{} outputs an ellipsis using the current font. % We do .5em per period so that it has the same spacing in a typewriter % font as three actual period characters. % \def\dots{% \leavevmode \hbox to 1.5em{% \hskip 0pt plus 0.25fil .\hfil.\hfil.% \hskip 0pt plus 0.5fil }% } % @enddots{} is an end-of-sentence ellipsis. % \def\enddots{% \dots \spacefactor=\endofsentencespacefactor } % @comma{} is so commas can be inserted into text without messing up % Texinfo's parsing. % \let\comma = , % @refill is a no-op. \let\refill=\relax % 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 (before @setfilename). % \newif\iflinks \linkstrue % by default we want the aux files. \let\novalidate = \linksfalse % @setfilename is done at the beginning of every texinfo file. % So open here the files we need to have open while reading the input. % This makes it possible to make a .fmt file for texinfo. \def\setfilename{% \fixbackslash % Turn off hack to swallow `\input texinfo'. \iflinks \tryauxfile % Open the new aux file. TeX will close it automatically at exit. \immediate\openout\auxfile=\jobname.aux \fi % \openindices needs to do some work in any case. \openindices \let\setfilename=\comment % Ignore extra @setfilename cmds. % % If texinfo.cnf is present on the system, read it. % Useful for site-wide @afourpaper, etc. \openin 1 texinfo.cnf \ifeof 1 \else \input texinfo.cnf \fi \closein 1 % \comment % Ignore the actual filename. } % Called from \setfilename. % \def\openindices{% \newindex{cp}% \newcodeindex{fn}% \newcodeindex{vr}% \newcodeindex{tp}% \newcodeindex{ky}% \newcodeindex{pg}% } % @bye. \outer\def\bye{\pagealignmacro\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 \newcount\countA \newif\ifpdf \newif\ifpdfmakepagedest % 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 \undefined, % borrowed from ifpdf.sty. \ifx\pdfoutput\undefined \else \ifx\pdfoutput\relax \else \ifcase\pdfoutput \else \pdftrue \fi \fi \fi % PDF uses PostScript string constants for the names of xref targets, to % 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. % 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 we do). % double active backslashes. % {\catcode`\@=0 \catcode`\\=\active @gdef@activebackslash{@catcode`@\=@active @otherbackslash} @gdef@activebackslashdouble{% @catcode@backChar=@active @let\=@doublebackslash} } % To handle parens, we must adopt a different approach, since parens are % not active characters. hyperref.dtx (which has the same problem as % us) handles it with this amazing macro to replace tokens. I've % tinkered with it a little for texinfo, but it's definitely from there. % % #1 is the tokens to replace. % #2 is the replacement. % #3 is the control sequence with the string. % \def\HyPsdSubst#1#2#3{% \def\HyPsdReplace##1#1##2\END{% ##1% \ifx\\##2\\% \else #2% \HyReturnAfterFi{% \HyPsdReplace##2\END }% \fi }% \xdef#3{\expandafter\HyPsdReplace#3#1\END}% } \long\def\HyReturnAfterFi#1\fi{\fi#1} % #1 is a control sequence in which to do the replacements. \def\backslashparens#1{% \xdef#1{#1}% redefine it as its expansion; the definition is simply % \lastnode when called from \setref -> \pdfmkdest. \HyPsdSubst{(}{\backslashlparen}{#1}% \HyPsdSubst{)}{\backslashrparen}{#1}% } {\catcode\exclamChar = 0 \catcode\backChar = \other !gdef!backslashlparen{\(}% !gdef!backslashrparen{\)}% } \ifpdf \input pdfcolor \pdfcatalog{/PageMode /UseOutlines}% \def\dopdfimage#1#2#3{% \def\imagewidth{#2}% \def\imageheight{#3}% % without \immediate, 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 \ifx\empty\imagewidth\else width \imagewidth \fi \ifx\empty\imageheight\else height \imageheight \fi \ifnum\pdftexversion<13 #1.pdf% \else {#1.pdf}% \fi \ifnum\pdftexversion < 14 \else \pdfrefximage \pdflastximage \fi} \def\pdfmkdest#1{{% % We have to set dummies so commands such as @code, and characters % such as \, aren't expanded when present in a section title. \atdummies \activebackslashdouble \def\pdfdestname{#1}% \backslashparens\pdfdestname \pdfdest name{\pdfdestname} xyz% }}% % % used to mark target names; must be expandable. \def\pdfmkpgn#1{#1}% % \let\linkcolor = \Blue % was Cyan, but that seems light? \def\endlink{\Black\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. \def\pdfoutlinedest{#3}% \ifx\pdfoutlinedest\empty \def\pdfoutlinedest{#4}% \else % Doubled backslashes in the name. {\activebackslashdouble \xdef\pdfoutlinedest{#3}% \backslashparens\pdfoutlinedest}% \fi % % Also double the backslashes in the display string. {\activebackslashdouble \xdef\pdfoutlinetext{#1}% \backslashparens\pdfoutlinetext}% % \pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{\pdfoutlinetext}% } % \def\pdfmakeoutlines{% \begingroup % Thanh's hack / proper braces in bookmarks \edef\mylbrace{\iftrue \string{\else}\fi}\let\{=\mylbrace \edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace % % Read toc silently, to get counts of subentries for \pdfoutline. \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. \def\numchapentry##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. % % xx to do this right, we have to translate 8-bit characters to % their "best" equivalent, based on the @documentencoding. Right % now, I guess we'll just let the pdf reader have its way. \indexnofonts \setupdatafile \activebackslash \input \jobname.toc \endgroup } % \def\skipspaces#1{\def\PP{#1}\def\D{|}% \ifx\PP\D\let\nextsp\relax \else\let\nextsp\skipspaces \ifx\p\space\else\addtokens{\filename}{\PP}% \advance\filenamelength by 1 \fi \fi \nextsp} \def\getfilename#1{\filenamelength=0\expandafter\skipspaces#1|\relax} \ifnum\pdftexversion < 14 \let \startlink \pdfannotlink \else \let \startlink \pdfstartlink \fi \def\pdfurl#1{% \begingroup \normalturnoffactive\def\@{@}% \makevalueexpandable \leavevmode\Red \startlink attr{/Border [0 0 0]}% user{/Subtype /Link /A << /S /URI /URI (#1) >>}% \endgroup} \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}} \linkcolor #1\endlink} \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st} \else \let\pdfmkdest = \gobble \let\pdfurl = \gobble \let\endlink = \relax \let\linkcolor = \relax \let\pdfmakeoutlines = \relax \fi % \ifx\pdfoutput \message{fonts,} % 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 ten#1\endcsname % change the current font } % Select #1 fonts with the current style. % \def\selectfonts#1{\csname #1fonts\endcsname \csname\curfontstyle\endcsname} \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}} % 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}} \let\li = \sf % Sometimes we call it \li, not \sf. % We don't need math for this font style. \def\ttsl{\setfontstyle{ttsl}} % Default leading. \newdimen\textleading \textleading = 13.2pt % 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} % \def\setleading#1{% \normalbaselineskip = #1\relax \normallineskip = \lineskipfactor\normalbaselineskip \normalbaselines \setbox\strutbox =\hbox{% \vrule width0pt height\strutheightpercent\baselineskip depth \strutdepthpercent \baselineskip }% } % Set the font macro #1 to the font named #2, adding on the % specified font prefix (normally `cm'). % #3 is the font's design size, #4 is a scale factor \def\setfont#1#2#3#4{\font#1=\fontprefix#2#3 scaled #4} % Use cm as the default font prefix. % To specify the font prefix, you must define \fontprefix % before you read in texinfo.tex. \ifx\fontprefix\undefined \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} % Text fonts (11.2pt, magstep1). \def\textnominalsize{11pt} \edef\mainmagstep{\magstephalf} \setfont\textrm\rmshape{10}{\mainmagstep} \setfont\texttt\ttshape{10}{\mainmagstep} \setfont\textbf\bfshape{10}{\mainmagstep} \setfont\textit\itshape{10}{\mainmagstep} \setfont\textsl\slshape{10}{\mainmagstep} \setfont\textsf\sfshape{10}{\mainmagstep} \setfont\textsc\scshape{10}{\mainmagstep} \setfont\textttsl\ttslshape{10}{\mainmagstep} \font\texti=cmmi10 scaled \mainmagstep \font\textsy=cmsy10 scaled \mainmagstep % A few fonts for @defun names and args. \setfont\defbf\bfshape{10}{\magstep1} \setfont\deftt\ttshape{10}{\magstep1} \setfont\defttsl\ttslshape{10}{\magstep1} \def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf} % Fonts for indices, footnotes, small examples (9pt). \def\smallnominalsize{9pt} \setfont\smallrm\rmshape{9}{1000} \setfont\smalltt\ttshape{9}{1000} \setfont\smallbf\bfshape{10}{900} \setfont\smallit\itshape{9}{1000} \setfont\smallsl\slshape{9}{1000} \setfont\smallsf\sfshape{9}{1000} \setfont\smallsc\scshape{10}{900} \setfont\smallttsl\ttslshape{10}{900} \font\smalli=cmmi9 \font\smallsy=cmsy9 % Fonts for small examples (8pt). \def\smallernominalsize{8pt} \setfont\smallerrm\rmshape{8}{1000} \setfont\smallertt\ttshape{8}{1000} \setfont\smallerbf\bfshape{10}{800} \setfont\smallerit\itshape{8}{1000} \setfont\smallersl\slshape{8}{1000} \setfont\smallersf\sfshape{8}{1000} \setfont\smallersc\scshape{10}{800} \setfont\smallerttsl\ttslshape{10}{800} \font\smalleri=cmmi8 \font\smallersy=cmsy8 % Fonts for title page (20.4pt): \def\titlenominalsize{20pt} \setfont\titlerm\rmbshape{12}{\magstep3} \setfont\titleit\itbshape{10}{\magstep4} \setfont\titlesl\slbshape{10}{\magstep4} \setfont\titlett\ttbshape{12}{\magstep3} \setfont\titlettsl\ttslshape{10}{\magstep4} \setfont\titlesf\sfbshape{17}{\magstep1} \let\titlebf=\titlerm \setfont\titlesc\scbshape{10}{\magstep4} \font\titlei=cmmi12 scaled \magstep3 \font\titlesy=cmsy10 scaled \magstep4 \def\authorrm{\secrm} \def\authortt{\sectt} % Chapter (and unnumbered) fonts (17.28pt). \def\chapnominalsize{17pt} \setfont\chaprm\rmbshape{12}{\magstep2} \setfont\chapit\itbshape{10}{\magstep3} \setfont\chapsl\slbshape{10}{\magstep3} \setfont\chaptt\ttbshape{12}{\magstep2} \setfont\chapttsl\ttslshape{10}{\magstep3} \setfont\chapsf\sfbshape{17}{1000} \let\chapbf=\chaprm \setfont\chapsc\scbshape{10}{\magstep3} \font\chapi=cmmi12 scaled \magstep2 \font\chapsy=cmsy10 scaled \magstep3 % Section fonts (14.4pt). \def\secnominalsize{14pt} \setfont\secrm\rmbshape{12}{\magstep1} \setfont\secit\itbshape{10}{\magstep2} \setfont\secsl\slbshape{10}{\magstep2} \setfont\sectt\ttbshape{12}{\magstep1} \setfont\secttsl\ttslshape{10}{\magstep2} \setfont\secsf\sfbshape{12}{\magstep1} \let\secbf\secrm \setfont\secsc\scbshape{10}{\magstep2} \font\seci=cmmi12 scaled \magstep1 \font\secsy=cmsy10 scaled \magstep2 % Subsection fonts (13.15pt). \def\ssecnominalsize{13pt} \setfont\ssecrm\rmbshape{12}{\magstephalf} \setfont\ssecit\itbshape{10}{1315} \setfont\ssecsl\slbshape{10}{1315} \setfont\ssectt\ttbshape{12}{\magstephalf} \setfont\ssecttsl\ttslshape{10}{1315} \setfont\ssecsf\sfbshape{12}{\magstephalf} \let\ssecbf\ssecrm \setfont\ssecsc\scbshape{10}{1315} \font\sseci=cmmi12 scaled \magstephalf \font\ssecsy=cmsy10 scaled 1315 % Reduced fonts for @acro in text (10pt). \def\reducednominalsize{10pt} \setfont\reducedrm\rmshape{10}{1000} \setfont\reducedtt\ttshape{10}{1000} \setfont\reducedbf\bfshape{10}{1000} \setfont\reducedit\itshape{10}{1000} \setfont\reducedsl\slshape{10}{1000} \setfont\reducedsf\sfshape{10}{1000} \setfont\reducedsc\scshape{10}{1000} \setfont\reducedttsl\ttslshape{10}{1000} \font\reducedi=cmmi10 \font\reducedsy=cmsy10 % In order for the font changes to affect most math symbols and letters, % we have to define the \textfont of the standard families. Since % texinfo doesn't allow for producing subscripts and superscripts except % in the main text, we don't bother to reset \scriptfont and % \scriptscriptfont (which would also require loading a lot more fonts). % \def\resetmathfonts{% \textfont0=\tenrm \textfont1=\teni \textfont2=\tensy \textfont\itfam=\tenit \textfont\slfam=\tensl \textfont\bffam=\tenbf \textfont\ttfam=\tentt \textfont\sffam=\tensf } % The font-changing commands redefine the meanings of \tenSTYLE, 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 % \tenSTYLE to set the current font. % % Each font-changing command also sets the names \lsize (one size lower) % and \lllsize (three sizes lower). These relative commands are used in % the LaTeX logo and acronyms. % % This all needs generalizing, badly. % \def\textfonts{% \let\tenrm=\textrm \let\tenit=\textit \let\tensl=\textsl \let\tenbf=\textbf \let\tentt=\texttt \let\smallcaps=\textsc \let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy \let\tenttsl=\textttsl \def\curfontsize{text}% \def\lsize{reduced}\def\lllsize{smaller}% \resetmathfonts \setleading{\textleading}} \def\titlefonts{% \let\tenrm=\titlerm \let\tenit=\titleit \let\tensl=\titlesl \let\tenbf=\titlebf \let\tentt=\titlett \let\smallcaps=\titlesc \let\tensf=\titlesf \let\teni=\titlei \let\tensy=\titlesy \let\tenttsl=\titlettsl \def\curfontsize{title}% \def\lsize{chap}\def\lllsize{subsec}% \resetmathfonts \setleading{25pt}} \def\titlefont#1{{\titlefonts\rm #1}} \def\chapfonts{% \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl \let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc \let\tensf=\chapsf \let\teni=\chapi \let\tensy=\chapsy \let\tenttsl=\chapttsl \def\curfontsize{chap}% \def\lsize{sec}\def\lllsize{text}% \resetmathfonts \setleading{19pt}} \def\secfonts{% \let\tenrm=\secrm \let\tenit=\secit \let\tensl=\secsl \let\tenbf=\secbf \let\tentt=\sectt \let\smallcaps=\secsc \let\tensf=\secsf \let\teni=\seci \let\tensy=\secsy \let\tenttsl=\secttsl \def\curfontsize{sec}% \def\lsize{subsec}\def\lllsize{reduced}% \resetmathfonts \setleading{16pt}} \def\subsecfonts{% \let\tenrm=\ssecrm \let\tenit=\ssecit \let\tensl=\ssecsl \let\tenbf=\ssecbf \let\tentt=\ssectt \let\smallcaps=\ssecsc \let\tensf=\ssecsf \let\teni=\sseci \let\tensy=\ssecsy \let\tenttsl=\ssecttsl \def\curfontsize{ssec}% \def\lsize{text}\def\lllsize{small}% \resetmathfonts \setleading{15pt}} \let\subsubsecfonts = \subsecfonts \def\reducedfonts{% \let\tenrm=\reducedrm \let\tenit=\reducedit \let\tensl=\reducedsl \let\tenbf=\reducedbf \let\tentt=\reducedtt \let\reducedcaps=\reducedsc \let\tensf=\reducedsf \let\teni=\reducedi \let\tensy=\reducedsy \let\tenttsl=\reducedttsl \def\curfontsize{reduced}% \def\lsize{small}\def\lllsize{smaller}% \resetmathfonts \setleading{10.5pt}} \def\smallfonts{% \let\tenrm=\smallrm \let\tenit=\smallit \let\tensl=\smallsl \let\tenbf=\smallbf \let\tentt=\smalltt \let\smallcaps=\smallsc \let\tensf=\smallsf \let\teni=\smalli \let\tensy=\smallsy \let\tenttsl=\smallttsl \def\curfontsize{small}% \def\lsize{smaller}\def\lllsize{smaller}% \resetmathfonts \setleading{10.5pt}} \def\smallerfonts{% \let\tenrm=\smallerrm \let\tenit=\smallerit \let\tensl=\smallersl \let\tenbf=\smallerbf \let\tentt=\smallertt \let\smallcaps=\smallersc \let\tensf=\smallersf \let\teni=\smalleri \let\tensy=\smallersy \let\tenttsl=\smallerttsl \def\curfontsize{smaller}% \def\lsize{smaller}\def\lllsize{smaller}% \resetmathfonts \setleading{9.5pt}} % 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 % % I wish the USA used A4 paper. % --karl, 24jan03. % Set up the default fonts, so we can use them for creating boxes. % \textfonts \rm % Define these so they can be easily changed for other fonts. \def\angleleft{$\langle$} \def\angleright{$\rangle$} % Count depth in font-changes, for error checks \newcount\fontdepth \fontdepth=0 % Fonts for short table of contents. \setfont\shortcontrm\rmshape{12}{1000} \setfont\shortcontbf\bfshape{10}{\magstep1} % no cmb12 \setfont\shortcontsl\slshape{12}{1000} \setfont\shortconttt\ttshape{12}{1000} %% Add scribe-like font environments, plus @l for inline lisp (usually sans %% serif) and @ii for TeX italic % \smartitalic{ARG} outputs arg in italics, followed by an italic correction % unless the following character is such as not to need one. \def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else \ptexslash\fi\fi\fi} \def\smartslanted#1{{\ifusingtt\ttsl\sl #1}\futurelet\next\smartitalicx} \def\smartitalic#1{{\ifusingtt\ttsl\it #1}\futurelet\next\smartitalicx} % like \smartslanted except unconditionally uses \ttsl. % @var is set to this for defun arguments. \def\ttslanted#1{{\ttsl #1}\futurelet\next\smartitalicx} % like \smartslanted except unconditionally use \sl. We never want % ttsl for book titles, do we? \def\cite#1{{\sl #1}\futurelet\next\smartitalicx} \let\i=\smartitalic \let\slanted=\smartslanted \let\var=\smartslanted \let\dfn=\smartslanted \let\emph=\smartitalic % @b, explicit bold. \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\dotChar =\@m \sfcode\questChar=\@m \sfcode\exclamChar=\@m \sfcode\colonChar=\@m \sfcode\semiChar =\@m \sfcode\commaChar =\@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 \def\t#1{% {\tt \rawbackslash \plainfrenchspacing #1}% \null } \def\samp#1{`\tclose{#1}'\null} \setfont\keyrm\rmshape{8}{1000} \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}}}} % The old definition, with no lozenge: %\def\key #1{{\ttsl \nohyphenation \uppercase{#1}}\null} \def\ctrl #1{{\tt \rawbackslash \hat}#1} % @file, @option are the same as @samp. \let\file=\samp \let\option=\samp % @code is a modification of @t, % which makes spaces the same size as normal in the surrounding text. \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 % \rawbackslash \plainfrenchspacing #1% }% \null } % We *must* turn on hyphenation at `-' and `_' in @code. % 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 % \global\def\code{\begingroup \catcode`\-=\active \catcode`\_=\active \ifallowcodebreaks \let-\codedash \let_\codeunder \else \let-\realdash \let_\realunder \fi \codex } } \def\realdash{-} \def\codedash{-\discretionary{}{}{}} \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{}{}{}}% {\_}% } \def\codex #1{\tclose{#1}\endgroup} % An additional complication: the above will allow breaks after, e.g., % each of the four underscores in __typeof__. This is undesirable in % some manuals, especially if they don't have long identifiers in % general. @allowcodebreaks provides a way to control this. % \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'}% \fi\fi } % @kbd is like @code, except that if the argument is just one @key command, % then @kbd has no effect. % @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 option `\txiarg'}% \fi\fi\fi } \def\worddistinct{distinct} \def\wordexample{example} \def\wordcode{code} % Default is `distinct.' \kbdinputstyle distinct \def\xkey{\key} \def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}% \ifx\one\xkey\ifx\threex\three \key{#2}% \else{\tclose{\kbdfont\look}}\fi \else{\tclose{\kbdfont\look}}\fi} % For @indicateurl, @env, @command quotes seem unnecessary, so use \code. \let\indicateurl=\code \let\env=\code \let\command=\code % @uref (abbreviation for `urlref') 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. Perhaps eventually put in % a hypertex \special here. % \def\uref#1{\douref #1,,,\finish} \def\douref#1,#2,#3,#4\finish{\begingroup \unsepspaces \pdfurl{#1}% \setbox0 = \hbox{\ignorespaces #3}% \ifdim\wd0 > 0pt \unhbox0 % third arg given, show only that \else \setbox0 = \hbox{\ignorespaces #2}% \ifdim\wd0 > 0pt \ifpdf \unhbox0 % PDF: 2nd arg given, show only it \else \unhbox0\ (\code{#1})% DVI: 2nd arg given, show both it and url \fi \else \code{#1}% only url given, so show it \fi \fi \endlink \endgroup} % @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} \ifpdf \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 % 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 } % 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} \def\kbd#1{\def\look{#1}\expandafter\kbdfoo\look??\par} % @l was never documented to mean ``switch to the Lisp font'', % and it is not used as such in any manual I can find. We need it for % Polish suppressed-l. --karl, 22sep96. %\def\l#1{{\li #1}\null} % 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 % @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{% {\selectfonts\lsize #1}% \def\temp{#2}% \ifx\temp\empty \else \space ({\unsepspaces \ignorespaces \temp \unskip})% \fi } % @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 } % @pounds{} is a sterling sign, which Knuth put in the CM italic font. % \def\pounds{{\it\$}} % @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 } % @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{\selectfonts\lllsize R}% \hfil\crcr\Orb}}% }$% } % 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\undefined \def\Orb{\mathhexbox20D} \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 % Do an implicit @contents or @shortcontents after @end titlepage if the % user says @setcontentsaftertitlepage or @setshortcontentsaftertitlepage. % \newif\ifsetcontentsaftertitlepage \let\setcontentsaftertitlepage = \setcontentsaftertitlepagetrue \newif\ifsetshortcontentsaftertitlepage \let\setshortcontentsaftertitlepage = \setshortcontentsaftertitlepagetrue \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 % % If they want short, they certainly want long too. \ifsetshortcontentsaftertitlepage \shortcontents \contents \global\let\shortcontents = \relax \global\let\contents = \relax \fi % \ifsetcontentsaftertitlepage \contents \global\let\contents = \relax \global\let\shortcontents = \relax \fi } \def\finishtitlepage{% \vskip4pt \hrule height 2pt width \hsize \vskip\titlepagebottomglue \finishedtitlepagetrue } %%% Macros to be used within @titlepage: \let\subtitlerm=\tenrm \def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines} \def\authorfont{\authorrm \normalbaselineskip = 16pt \normalbaselines \let\tt=\authortt} \parseargdef\title{% \checkenv\titlepage \leftline{\titlefonts\rm #1} % 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 {\authorfont \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\evenfootline % footline on even pages \newtoks\oddfootline % footline on odd pages % Now make TeX use those variables \headline={{\textfonts\rm \ifodd\pageno \the\oddheadline \else \the\evenheadline \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}}} \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}}} \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\pageheight by -\baselineskip \global\advance\vsize by -\baselineskip } \parseargdef\everyfooting{\oddfootingxxx{#1}\evenfootingxxx{#1}} % @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. \def\headings #1 {\csname HEADINGS#1\endcsname} \def\HEADINGSoff{% \global\evenheadline={\hfil} \global\evenfootline={\hfil} \global\oddheadline={\hfil} \global\oddfootline={\hfil}} \HEADINGSoff % When we turn headings on, set the page number to 1. % 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{% \global\pageno=1 \global\evenfootline={\hfil} \global\oddfootline={\hfil} \global\evenheadline={\line{\folio\hfil\thistitle}} \global\oddheadline={\line{\thischapter\hfil\folio}} \global\let\contentsalignmacro = \chapoddpage } \let\contentsalignmacro = \chappager % For single-sided printing, chapter title goes across top left of page, % page number on top right. \def\HEADINGSsingle{% \global\pageno=1 \global\evenfootline={\hfil} \global\oddfootline={\hfil} \global\evenheadline={\line{\thischapter\hfil\folio}} \global\oddheadline={\line{\thischapter\hfil\folio}} \global\let\contentsalignmacro = \chappager } \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\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\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\undefined \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 \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 \def\itemcontents{#1}% % @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}% \vadjust{\penalty 1200}}% not good to break after first line of item. \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 . % \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 } % @alphaenumerate and @capsenumerate are abbreviations for giving an arg % to @enumerate. % \def\alphaenumerate{\enumerate{a}} \def\capsenumerate{\enumerate{A}} \def\Ealphaenumerate{\Eenumerate} \def\Ecapsenumerate{\Eenumerate} % @multitable macros % Amy Hendrickson, 8/18/94, 3/6/96 % % @multitable ... @end multitable will make as many columns as desired. % Contents of each column will wrap at width given in preamble. Width % can be specified either with sample text given in a template line, % or in percent of \hsize, the current width of text on page. % Table can continue over pages but will only break between lines. % To make preamble: % % Either define widths of columns in terms of percent of \hsize: % @multitable @columnfractions .25 .3 .45 % @item ... % % Numbers following @columnfractions are the percent of the total % current hsize to be used for each column. You may use as many % columns as desired. % Or use a template: % @multitable {Column 1 template} {Column 2 template} {Column 3 template} % @item ... % using the widest term desired in each column. % Each new table line starts with @item, each subsequent new column % starts with @tab. Empty columns may be produced by supplying @tab's % with nothing between them for as many times as empty columns are needed, % ie, @tab@tab@tab will produce two empty columns. % @item, @tab do not need to be on their own lines, but it will not hurt % if they are. % Sample multitable: % @multitable {Column 1 template} {Column 2 template} {Column 3 template} % @item first col stuff @tab second col stuff @tab third col % @item % first col stuff % @tab % second col stuff % @tab % third col % @item first col stuff @tab second col stuff % @tab Many paragraphs of text may be used in any column. % % They will wrap at the width determined by the template. % @item@tab@tab This will be in third column. % @end multitable % Default dimensions may be reset by user. % @multitableparskip is vertical space between paragraphs in table. % @multitableparindent is paragraph indent in table. % @multitablecolmargin is horizontal space to be left between columns. % @multitablelinespace is space to leave between table items, baseline % to baseline. % 0pt means it depends on current normal line spacing. % \newskip\multitableparskip \newskip\multitableparindent \newdimen\multitablecolspace \newskip\multitablelinespace \multitableparskip=0pt \multitableparindent=6pt \multitablecolspace=12pt \multitablelinespace=0pt % 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 } % multitable-only commands. % % @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. Note that \everycr resets \everytab. \def\headitem{\checkenv\multitable \crcr \global\everytab={\bf}\the\everytab}% % % A \tab used to include \hskip1sp. But then the space in a template % line is not enough. That is bad. So let's go back to just `&' until % we encounter the problem it was intended to solve again. % --karl, nathan@acm.org, 20apr99. \def\tab{\checkenv\multitable &\the\everytab}% % @multitable ... @end multitable definitions: % \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 \setmultitablespacing \parskip=\multitableparskip \parindent=\multitableparindent \overfullrule=0pt \global\colcount=0 % \everycr = {% \noalign{% \global\everytab={}% \global\colcount=0 % Reset the column counter. % Check for saved footnotes, etc. \checkinserts % Keeps underfull box messages off when table breaks over pages. %\filbreak % Maybe so, but it also creates really weird page breaks when the % table breaks over pages. Wouldn't \vfil be better? Wait until the % problem manifests itself, so it can be fixed for real --karl. }% }% % \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 \multistrut \vtop{% % Use the current \colcount to find the correct column width: \hsize=\expandafter\csname col\the\colcount\endcsname % % In order to keep entries from bumping into each other % we will add a \leftskip of \multitablecolspace to all columns after % the first one. % % If a template has been used, we will add \multitablecolspace % to the width of each template entry. % % If the user has set preamble in terms of percent of \hsize we will % use that dimension as the width of the column, and the \leftskip % will keep entries from bumping into each other. Table will start at % left margin and final column will justify at right margin. % % Make sure we don't inherit \rightskip from the outer environment. \rightskip=0pt \ifnum\colcount=1 % The first column will be indented with the surrounding text. \advance\hsize by\leftskip \else \ifsetpercent \else % If user has not set preamble in terms of percent of \hsize % we will advance \hsize by \multitablecolspace. \advance\hsize by \multitablecolspace \fi % In either case we will make \leftskip=\multitablecolspace: \leftskip=\multitablecolspace \fi % Ignoring space at the beginning and end avoids an occasional spurious % blank line, when TeX decides to break the line at the space before the % box from the multistrut, so the strut ends up on a line by itself. % For example: % @multitable @columnfractions .11 .89 % @item @code{#} % @tab Legal holiday which is valid in major parts of the whole country. % Is automatically provided with highlighting sequences respectively % marking characters. \noindent\ignorespaces##\unskip\multistrut }\cr } \def\Emultitable{% \crcr \egroup % end the \halign \global\setpercentfalse } \def\setmultitablespacing{% \def\multistrut{\strut}% just use the standard line spacing % % Compute \multitablelinespace (if not defined by user) for use in % \multitableparskip calculation. We used define \multistrut based on % this, but (ironically) that caused the spacing to be off. % See bug-texinfo report from Werner Lemberg, 31 Oct 2004 12:52:20 +0100. \ifdim\multitablelinespace=0pt \setbox0=\vbox{X}\global\multitablelinespace=\the\baselineskip \global\advance\multitablelinespace by-\ht0 \fi %% Test to see if parskip is larger than space between lines of %% table. If not, do nothing. %% If so, set to same dimension as multitablelinespace. \ifdim\multitableparskip>\multitablelinespace \global\multitableparskip=\multitablelinespace \global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller %% than skip between lines in the table. \fi% \ifdim\multitableparskip=0pt \global\multitableparskip=\multitablelinespace \global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller %% than skip between lines in the table. \fi} \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: \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', which must be on a line % by itself. \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. \obeylines % \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. \def\enddoignore{\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-\realdash \let_\normalunderscore } } % We have this subroutine so that we can handle at least some @value's % properly in indexes (we call \makevalueexpandable in \indexdummies). % The command has to be fully expandable (if the variable is set), since % the result winds up in the index file. This means that if the % variable's value contains other Texinfo commands, it's almost certain % it will fail (although perhaps we could fix that with sufficient work % to do a one-level expansion on the result, instead of complete). % \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 } % @ifset VAR ... @end ifset reads the `...' iff VAR has been defined % with @set. % % To get special treatment of `@end ifset,' call \makeond and the 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 ifclear reads 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}} % @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 foo. % It automatically defines \fooindex such that % \fooindex ...rest of line... puts an entry in the index foo. % It also defines \fooindfile to be the number of the output channel for % the file that accumulates this index. The file's extension is foo. % The name of an index should be no more than 2 characters long % for the sake of vms. % \def\newindex#1{% \iflinks \expandafter\newwrite \csname#1indfile\endcsname \openout \csname#1indfile\endcsname \jobname.#1 % Open the file \fi \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{% \iflinks \expandafter\newwrite \csname#1indfile\endcsname \openout \csname#1indfile\endcsname \jobname.#1 \fi \expandafter\xdef\csname#1index\endcsname{% \noexpand\docodeindex{#1}}% } % @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{% % Only do \closeout if we haven't already done it, else we'll end up % closing the target index. \expandafter \ifx\csname donesynindex#2\endcsname \undefined % The \closeout helps reduce unnecessary open files; the limit on the % Acorn RISC OS is a mere 16 files. \expandafter\closeout\csname#2indfile\endcsname \expandafter\let\csname\donesynindex#2\endcsname = 1 \fi % 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 \fooindex macros. % Argument #1 is generated by the calling \fooindex macro, % and it is "foo", the name of the index. % \doindex just uses \parsearg; it calls \doind for the actual work. % This is because \doind is more useful to call from other macros. % There is also \dosubind {index}{topic}{subtopic} % which makes an entry in a two-level index such as the operation index. \def\doindex#1{\edef\indexname{#1}\parsearg\singleindexer} \def\singleindexer #1{\doind{\indexname}{#1}} % like the previous two, but they put @code around the argument. \def\docodeindex#1{\edef\indexname{#1}\parsearg\singlecodeindexer} \def\singlecodeindexer #1{\doind{\indexname}{\code{#1}}} % Take care of Texinfo commands that can appear in an index entry. % Since there are some commands we want to expand, and others we don't, % we have to laboriously prevent expansion for those that we don't. % \def\indexdummies{% \escapechar = `\\ % use backslash in output files. \def\@{@}% change to @@ when we switch to @ as escape char in index files. \def\ {\realbackslash\space }% % Need these in case \tex is in effect and \{ is a \delimiter again. % But can't use \lbracecmd and \rbracecmd because texindex assumes % braces and backslashes are used only as delimiters. \let\{ = \mylbrace \let\} = \myrbrace % % Do the redefinitions. \commondummies } % For the aux and toc files, @ is the escape character. So we want to % redefine everything using @ as the escape character (instead of % \realbackslash, still used for index files). When everything uses @, % this will be simpler. % \def\atdummies{% \def\@{@@}% \def\ {@ }% \let\{ = \lbraceatcmd \let\} = \rbraceatcmd % % Do the redefinitions. \commondummies } % Called from \indexdummies and \atdummies. % \def\commondummies{% % % \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. % % For control letters, we have \definedummyletter, which omits the % space. % % 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). % \def\definedummyword ##1{\def##1{\string##1\space}}% \def\definedummyletter##1{\def##1{\string##1}}% \let\definedummyaccent\definedummyletter % \commondummiesnofonts % \definedummyletter\_% % % Non-English letters. \definedummyword\AA \definedummyword\AE \definedummyword\L \definedummyword\OE \definedummyword\O \definedummyword\aa \definedummyword\ae \definedummyword\l \definedummyword\oe \definedummyword\o \definedummyword\ss \definedummyword\exclamdown \definedummyword\questiondown \definedummyword\ordf \definedummyword\ordm % % 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\bullet \definedummyword\comma \definedummyword\copyright \definedummyword\registeredsymbol \definedummyword\dots \definedummyword\enddots \definedummyword\equiv \definedummyword\error \definedummyword\euro \definedummyword\expansion \definedummyword\minus \definedummyword\pounds \definedummyword\point \definedummyword\print \definedummyword\result % % We want to disable all macros so that they are not expanded by \write. \macrolist % \normalturnoffactive % % Handle some cases of @value -- where it does not contain any % (non-fully-expandable) commands. \makevalueexpandable } % \commondummiesnofonts: common to \commondummies and \indexnofonts. % % Better have this without active chars. { \catcode`\~=\other \gdef\commondummiesnofonts{% % Control letters and accents. \definedummyletter\!% \definedummyaccent\"% \definedummyaccent\'% \definedummyletter\*% \definedummyaccent\,% \definedummyletter\.% \definedummyletter\/% \definedummyletter\:% \definedummyaccent\=% \definedummyletter\?% \definedummyaccent\^% \definedummyaccent\`% \definedummyaccent\~% \definedummyword\u \definedummyword\v \definedummyword\H \definedummyword\dotaccent \definedummyword\ringaccent \definedummyword\tieaccent \definedummyword\ubaraccent \definedummyword\udotaccent \definedummyword\dotless % % Texinfo font commands. \definedummyword\b \definedummyword\i \definedummyword\r \definedummyword\sc \definedummyword\t % % Commands that take arguments. \definedummyword\acronym \definedummyword\cite \definedummyword\code \definedummyword\command \definedummyword\dfn \definedummyword\emph \definedummyword\env \definedummyword\file \definedummyword\kbd \definedummyword\key \definedummyword\math \definedummyword\option \definedummyword\samp \definedummyword\strong \definedummyword\tie \definedummyword\uref \definedummyword\url \definedummyword\var \definedummyword\verb \definedummyword\w } } % \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\definedummyaccent##1{\let##1\asis}% % We can just ignore other control letters. \def\definedummyletter##1{\let##1\empty}% % Hopefully, all control words can become @asis. \let\definedummyword\definedummyaccent % \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\@{@}% % how to handle braces? \def\_{\normalunderscore}% % % Non-English letters. \def\AA{AA}% \def\AE{AE}% \def\L{L}% \def\OE{OE}% \def\O{O}% \def\aa{aa}% \def\ae{ae}% \def\l{l}% \def\oe{oe}% \def\o{o}% \def\ss{ss}% \def\exclamdown{!}% \def\questiondown{?}% \def\ordf{a}% \def\ordm{o}% % \def\LaTeX{LaTeX}% \def\TeX{TeX}% % % Assorted special characters. % (The following {} will end up in the sort string, but that's ok.) \def\bullet{bullet}% \def\comma{,}% \def\copyright{copyright}% \def\registeredsymbol{R}% \def\dots{...}% \def\enddots{...}% \def\equiv{==}% \def\error{error}% \def\euro{euro}% \def\expansion{==>}% \def\minus{-}% \def\pounds{pounds}% \def\point{.}% \def\print{-|}% \def\result{=>}% % % 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\indexbackslash=0 %overridden during \printindex. \let\SETmarginindex=\relax % put index entries in margin (undocumented)? % Most index entries go through here, but \dosubind is the general case. % #1 is the index name, #2 is the entry text. \def\doind#1#2{\dosubind{#1}{#2}{}} % Workhorse for all \fooindexes. % #1 is name of index, #2 is stuff to put there, #3 is subentry -- % empty if called from \doind, as we usually are (the main exception % is with most defuns, which call us directly). % \def\dosubind#1#2#3{% \iflinks {% % Store the main index entry text (including the third arg). \toks0 = {#2}% % If third arg is present, precede it with a space. \def\thirdarg{#3}% \ifx\thirdarg\empty \else \toks0 = \expandafter{\the\toks0 \space #3}% \fi % \edef\writeto{\csname#1indfile\endcsname}% % \ifvmode \dosubindsanitize \else \dosubindwrite \fi }% \fi } % Write the entry in \toks0 to the index file: % \def\dosubindwrite{% % Put the index entry in the margin if desired. \ifx\SETmarginindex\relax\else \insert\margin{\hbox{\vrule height8pt depth3pt width0pt \the\toks0}}% \fi % % Remember, we are within a group. \indexdummies % Must do this here, since \bf, etc expand at this stage \def\backslashcurfont{\indexbackslash}% \indexbackslash isn't defined now % so it will be output as is; and it will print as backslash. % % Process the index entry with all font commands turned off, to % get the string to sort by. {\indexnofonts \edef\temp{\the\toks0}% need full expansion \xdef\indexsorttmp{\temp}% }% % % 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{\indexsorttmp}{\noexpand\folio}{\the\toks0}}% }% \temp } % Take care of unwanted page breaks: % % 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 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} % % ..., ready, GO: % \def\dosubindsanitize{% % \lastskip and \lastpenalty cannot both be nonzero simultaneously. \skip0 = \lastskip \edef\lastskipmacro{\the\lastskip}% \count255 = \lastpenalty % % If \lastskip is nonzero, that means the last item was a % skip. And since a skip is discardable, that means this % -\skip0 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-\skip0 \fi % \dosubindwrite % \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\count255>9999 \penalty\count255 \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\skip0 \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} % for the beginning of a topic that is used with subtopics % \secondary {subtopic}{pagelist} % for each 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} \def\cindexsub {\begingroup\obeylines\cindexsub} {\obeylines % \gdef\cindexsub "#1" #2^^M{\endgroup % \dosubind{cp}{#2}{#1}}} % 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 \everypar = {}% don't want the \kern\-parindent from indentation suppression. % % See if the index file exists and is nonempty. % Change catcode of @ here so that if the index file contains % \initial {@} % as its first line, TeX doesn't complain about mismatched braces % (because it thinks @} is a control sequence). \catcode`\@ = 11 \openin 1 \jobname.#1s \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 \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 \temp \ifeof 1 \putwordIndexIsEmpty \else % Index files are almost Texinfo source, but we use \ as the escape % character. It would be better to use @, but that's too big a change % to make right now. \def\indexbackslash{\backslashcurfont}% \catcode`\\ = 0 \escapechar = `\\ \begindoublecolumns \input \jobname.#1s \enddoublecolumns \fi \fi \closein 1 \endgroup} % These macros are used by the sorted index file itself. % Change them to control the appearance of the index. \def\initial#1{{% % Some minor font changes for the special characters. \let\tentt=\sectt \let\tt=\sectt \let\sf=\sectt % % Remove any glue we may have, we'll be inserting our own. \removelastskip % % We like breaks before the index initials, so insert a bonus. \nobreak \vskip 0pt plus 3\baselineskip \penalty 0 \vskip 0pt plus -3\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 .5\baselineskip \leftline{\secbf #1}% % Do our best not to break after the initial. \nobreak \vskip .33\baselineskip plus .1\baselineskip }} % \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. % % A straightforward implementation would start like this: % \def\entry#1#2{... % But this frozes the catcodes in the argument, and can cause problems to % @code, which sets - active. This problem was fixed by a kludge--- % ``-'' was active throughout whole index, but this isn't really right. % % The right solution is to prevent \entry from swallowing the whole text. % --kasal, 21nov03 \def\entry{% \begingroup % % Start a new paragraph if necessary, so our assignments below can't % affect previous text. \par % % Do not fill out the last line with white space. \parfillskip = 0in % % No extra space above this paragraph. \parskip = 0in % % Do not prefer a separate line ending with a hyphen to fewer lines. \finalhyphendemerits = 0 % % \hangindent is only relevant when the entry text and page number % don't both fit on one line. In that case, bob suggests starting the % dots pretty far over on the line. Unfortunately, a large % indentation looks wrong when the entry text itself is broken across % lines. So we use a small indentation and put up with long leaders. % % \hangafter is reset to 1 (which is the value we want) at the start % of each paragraph, so we need not do anything with that. \hangindent = 2em % % When the entry text needs to be broken, just fill out the first line % with blank space. \rightskip = 0pt plus1fil % % A bit of stretch before each entry for the benefit of balancing % columns. \vskip 0pt plus1pt % % Swallow the left brace of the text (first parameter): \afterassignment\doentry \let\temp = } \def\doentry{% \bgroup % Instead of the swallowed brace. \noindent \aftergroup\finishentry % And now comes the text of the entry. } \def\finishentry#1{% % #1 is the page number. % % The following is kludged to not output a line of dots in the index if % there are no page numbers. The next person who breaks this will be % cursed by a Unix daemon. \def\tempa{{\rm }}% \def\tempb{#1}% \edef\tempc{\tempa}% \edef\tempd{\tempb}% \ifx\tempc\tempd \ % \else % % If we must, put the page number on a line of its own, and fill out % this line with blank space. (The \hfil is overwhelmed with the % fill leaders glue in \indexdotfill if the page number does fit.) \hfil\penalty50 \null\nobreak\indexdotfill % Have leaders before the page number. % % The `\ ' here is removed by the implicit \unskip that TeX does as % part of (the primitive) \par. Without it, a spurious underfull % \hbox ensues. \ifpdf \pdfgettoks#1.% \ \the\toksA \else \ #1% \fi \fi \par \endgroup } % Like \dotfill except takes at least 1 em. \def\indexdotfill{\cleaders \hbox{$\mathsurround=0pt \mkern1.5mu ${\it .}$ \mkern1.5mu$}\hskip 1em plus 1fill} \def\primary #1{\line{#1\hfil}} \newskip\secondaryindent \secondaryindent=0.5cm \def\secondary#1#2{{% \parfillskip=0in \parskip=0in \hangindent=1in \hangafter=1 \noindent\hskip\secondaryindent\hbox{#1}\indexdotfill \ifpdf \pdfgettoks#2.\ \the\toksA % The page number ends the paragraph. \else #2 \fi \par }} % 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 \newbox\partialpage \newdimen\doublecolumnhsize \def\begindoublecolumns{\begingroup % ended by \enddoublecolumns % Grab any single-column material above us. \output = {% % % Here is a possibility not foreseen in manmac: if we accumulate a % whole lot of material, we might end up calling this \output % routine twice in a row (see the doublecol-lose test, which is % essentially a couple of indexes with @setchapternewpage off). In % that case we just ship out what is in \partialpage with the normal % output routine. Generally, \partialpage will be empty when this % runs and this will be a no-op. See the indexspread.tex test case. \ifvoid\partialpage \else \onepageout{\pagecontents\partialpage}% \fi % \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 % % Double the \vsize as well. (We don't need a separate register here, % since nobody clobbers \vsize.) \vsize = 2\vsize } % The double-column output routine for all double-column pages except % the last. % \def\doublecolumnout{% \splittopskip=\topskip \splitmaxdepth=\maxdepth % Get the available space for the double columns -- the normal % (undoubled) page height minus any material left over from the % previous page. \dimen@ = \vsize \divide\dimen@ by 2 \advance\dimen@ by -\ht\partialpage % % box0 will be the left-hand column, box2 the right. \setbox0=\vsplit255 to\dimen@ \setbox2=\vsplit255 to\dimen@ \onepageout\pagesofar \unvbox255 \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\pagewidth{\box0\hfil\box2}% } % % All done with double columns. \def\enddoublecolumns{% \output = {% % Split the last of the double-column material. Leave it on the % current page, no automatic page break. \balancecolumns % % If we end up splitting too much material for the current page, % though, there will be another page break right after this \output % invocation ends. Having called \balancecolumns once, we do not % want to call it again. Therefore, reset \output to its normal % definition right away. (We hope \balancecolumns will never be % called on to balance too much material, but if it is, this makes % the output somewhat more palatable.) \global\output = {\onepageout{\pagecontents\PAGE}}% }% \eject \endgroup % started in \begindoublecolumns % % \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 (after the % \endgroup where \vsize got restored). \pagegoal = \vsize } % % Called at the end of the double column material. \def\balancecolumns{% \setbox0 = \vbox{\unvbox255}% like \box255 but more efficient, see p.120. \dimen@ = \ht0 \advance\dimen@ by \topskip \advance\dimen@ by-\baselineskip \divide\dimen@ by 2 % target to split to %debug\message{final 2-column material height=\the\ht0, target=\the\dimen@.}% \splittopskip = \topskip % Loop until we get a decent breakpoint. {% \vbadness = 10000 \loop \global\setbox3 = \copy0 \global\setbox1 = \vsplit3 to \dimen@ \ifdim\ht3>\dimen@ \global\advance\dimen@ by 1pt \repeat }% %debug\message{split to \the\dimen@, column heights: \the\ht1, \the\ht3.}% \setbox0=\vbox to\dimen@{\unvbox1}% \setbox2=\vbox to\dimen@{\unvbox3}% % \pagesofar } \catcode`\@ = \other \message{sectioning,} % Chapters, sections, etc. % \unnumberedno is an oxymoron, of course. 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 this as the name of the chapter. % page headings and footings can use it. @section does likewise. % However, they are not reliable, because we don't use marks. \def\thischapter{} \def\thissection{} \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} \let\up=\raisesections % original BFox name % @lowersections: treat @chapter as section, @section as subsection, etc. \def\lowersections{\global\advance\secbase by 1} \let\down=\lowersections % original BFox name % we only have subsub. \chardef\maxseclevel = 3 % % A numbered section within an unnumbered changes to unnumbered too. % To achive this, remember the "biggest" unnum. sec. we are currently in: \chardef\unmlevel = \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 < \unmlevel \chardef\unmlevel = \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 > \unmlevel \def\headtype{U}% \else \chardef\unmlevel = 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 % \message{\putwordChapter\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 apphead0 calls appendixzzz \def\appendixzzz#1{% \global\secno=0 \global\subsecno=0 \global\subsubsecno=0 \global\advance\appendixno by 1 \gdef\chaplevelprefix{\appendixletter.}% \resetallfloatnos % \def\appendixnum{\putwordAppendix\space \appendixletter}% \message{\appendixnum}% % \chapmacro{#1}{Yappendix}{\appendixletter}% % \global\let\section = \appendixsec \global\let\subsection = \appendixsubsec \global\let\subsubsection = \appendixsubsubsec } \outer\parseargdef\unnumbered{\unnmhead0{#1}} % normally unnmhead0 calls unnumberedzzz \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 to achieve this: TeX expands \the only once, % simply yielding the contents of . (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{% % Well, we could do the following in a group, but that would break % an assumption that \chapmacro is called at the outermost level. % Thus we are safer this way: --kasal, 24feb04 \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}% } \outer\parseargdef\appendixsection{\apphead1{#1}} % normally calls appendixsectionzzz \def\appendixsectionzzz#1{% \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1 \sectionheading{#1}{sec}{Yappendix}{\appendixletter.\the\secno}% } \let\appendixsec\appendixsection \outer\parseargdef\unnumberedsec{\unnmhead1{#1}} % normally calls unnumberedseczzz \def\unnumberedseczzz#1{% \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1 \sectionheading{#1}{sec}{Ynothing}{\the\unnumberedno.\the\secno}% } % Subsections. \outer\parseargdef\numberedsubsec{\numhead2{#1}} % normally calls numberedsubseczzz \def\numberedsubseczzz#1{% \global\subsubsecno=0 \global\advance\subsecno by 1 \sectionheading{#1}{subsec}{Ynumbered}{\the\chapno.\the\secno.\the\subsecno}% } \outer\parseargdef\appendixsubsec{\apphead2{#1}} % normally calls appendixsubseczzz \def\appendixsubseczzz#1{% \global\subsubsecno=0 \global\advance\subsecno by 1 \sectionheading{#1}{subsec}{Yappendix}% {\appendixletter.\the\secno.\the\subsecno}% } \outer\parseargdef\unnumberedsubsec{\unnmhead2{#1}} %normally calls unnumberedsubseczzz \def\unnumberedsubseczzz#1{% \global\subsubsecno=0 \global\advance\subsecno by 1 \sectionheading{#1}{subsec}{Ynothing}% {\the\unnumberedno.\the\secno.\the\subsecno}% } % Subsubsections. \outer\parseargdef\numberedsubsubsec{\numhead3{#1}} % normally numberedsubsubseczzz \def\numberedsubsubseczzz#1{% \global\advance\subsubsecno by 1 \sectionheading{#1}{subsubsec}{Ynumbered}% {\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno}% } \outer\parseargdef\appendixsubsubsec{\apphead3{#1}} % normally appendixsubsubseczzz \def\appendixsubsubseczzz#1{% \global\advance\subsubsecno by 1 \sectionheading{#1}{subsubsec}{Yappendix}% {\appendixletter.\the\secno.\the\subsecno.\the\subsubsecno}% } \outer\parseargdef\unnumberedsubsubsec{\unnmhead3{#1}} %normally unnumberedsubsubseczzz \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 % NOTE on use of \vbox for chapter headings, section headings, and such: % 1) We use \vbox rather than the earlier \line to permit % overlong headings to fold. % 2) \hyphenpenalty is set to 10000 because hyphenation in a % heading is obnoxious; this forbids it. % 3) Likewise, headings look best if no \parindent is used, and % if justification is not attempted. Hence \raggedright. \def\majorheading{% {\advance\chapheadingskip by 10pt \chapbreak }% \parsearg\chapheadingzzz } \def\chapheading{\chapbreak \parsearg\chapheadingzzz} \def\chapheadingzzz#1{% {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 \parindent=0pt\raggedright \rm #1\hfill}}% \bigskip \par\penalty 200\relax \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} %%% Define plain chapter starts, and page on/off switching for it % Parameter controlling skip before chapter headings (if needed) \newskip\chapheadingskip \def\chapbreak{\dobreak \chapheadingskip {-4000}} \def\chappager{\par\vfill\supereject} \def\chapoddpage{\chappager \ifodd\pageno \else \hbox to 0pt{} \chappager\fi} \def\setchapternewpage #1 {\csname CHAPPAG#1\endcsname} \def\CHAPPAGoff{% \global\let\contentsalignmacro = \chappager \global\let\pchapsepmacro=\chapbreak \global\let\pagealignmacro=\chappager} \def\CHAPPAGon{% \global\let\contentsalignmacro = \chappager \global\let\pchapsepmacro=\chappager \global\let\pagealignmacro=\chappager \global\def\HEADINGSon{\HEADINGSsingle}} \def\CHAPPAGodd{% \global\let\contentsalignmacro = \chapoddpage \global\let\pchapsepmacro=\chapoddpage \global\let\pagealignmacro=\chapoddpage \global\def\HEADINGSon{\HEADINGSdouble}} \CHAPPAGon % Chapter opening. % % #1 is the text, #2 is the section type (Ynumbered, Ynothing, % Yappendix, Yomitfromtoc), #3 the chapter number. % % To test against our argument. \def\Ynothingkeyword{Ynothing} \def\Yomitfromtockeyword{Yomitfromtoc} \def\Yappendixkeyword{Yappendix} % \def\chapmacro#1#2#3{% \pchapsepmacro {% \chapfonts \rm % % Have to define \thissection 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\thissection{#1}% \gdef\thischaptername{#1}% % % Only insert the separating space if we have a chapter/appendix % number, and don't print the unnumbered ``number''. \def\temptype{#2}% \ifx\temptype\Ynothingkeyword \setbox0 = \hbox{}% \def\toctype{unnchap}% \gdef\thischapter{#1}% \else\ifx\temptype\Yomitfromtockeyword \setbox0 = \hbox{}% contents like unnumbered, but no toc entry \def\toctype{omit}% \gdef\thischapter{}% \else\ifx\temptype\Yappendixkeyword \setbox0 = \hbox{\putwordAppendix{} #3\enspace}% \def\toctype{app}% % We don't substitute the actual chapter name into \thischapter % because we don't want its macros evaluated now. And we don't % use \thissection because that changes with each section. % \xdef\thischapter{\putwordAppendix{} \appendixletter: \noexpand\thischaptername}% \else \setbox0 = \hbox{#3\enspace}% \def\toctype{numchap}% \xdef\thischapter{\putwordChapter{} \the\chapno: \noexpand\thischaptername}% \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. \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright \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 } % I don't think this chapter style is supported any more, so I'm not % updating it with the new noderef stuff. We'll see. --karl, 11aug03. % \def\setchapterstyle #1 {\csname CHAPF#1\endcsname} % \def\unnchfopen #1{% \chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 \parindent=0pt\raggedright \rm #1\hfill}}\bigskip \par\nobreak } \def\chfopen #1#2{\chapoddpage {\chapfonts \vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}% \par\penalty 5000 % } \def\centerchfopen #1{% \chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 \parindent=0pt \hfill {\rm #1}\hfill}}\bigskip \par\nobreak } \def\CHAPFopen{% \global\let\chapmacro=\chfopen \global\let\centerchapmacro=\centerchfopen} % 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, #2 is the section level (sec/subsec/subsubsec), #3 is % the section type for xrefs (Ynumbered, Ynothing, Yappendix), #4 is the % section number. % \def\sectionheading#1#2#3#4{% {% % Switch to the right set of fonts. \csname #2fonts\endcsname \rm % % Insert space above the heading. \csname #2headingbreak\endcsname % % Only insert the space after the number if we have a section number. \def\sectionlevel{#2}% \def\temptype{#3}% % \ifx\temptype\Ynothingkeyword \setbox0 = \hbox{}% \def\toctype{unn}% \gdef\thissection{#1}% \else\ifx\temptype\Yomitfromtockeyword % for @headings -- no section number, don't include in toc, % and don't redefine \thissection. \setbox0 = \hbox{}% \def\toctype{omit}% \let\sectionlevel=\empty \else\ifx\temptype\Yappendixkeyword \setbox0 = \hbox{#4\enspace}% \def\toctype{app}% \gdef\thissection{#1}% \else \setbox0 = \hbox{#4\enspace}% \def\toctype{num}% \gdef\thissection{#1}% \fi\fi\fi % % Write the toc entry (before \donoderef). See comments in \chfplain. \writetocentry{\toctype\sectionlevel}{#1}{#4}% % % Write the node reference (= pdf destination for pdftex). % Again, see comments in \chfplain. \donoderef{#3}% % % Output the actual section heading. \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright \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.) \vskip-\parskip % % This is purely so the last item on the list is a known \penalty > % 10000. This is so \startdefun can avoid allowing breakpoints after % section headings. Otherwise, it would insert a valid breakpoint between: % % @section sec-whatever % @deffn def-whatever \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'. \ifpdf \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 \jobname.toc } \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. Thus, we maintain % \contentsalignmacro in parallel with \pagealignmacro. % From: Torbjorn Granlund \contentsalignmacro \immediate\closeout\tocfile % % Don't need to put `Contents' or `Short Contents' in the headline. % It is abundantly clear what they are. \def\thischapter{}% \chapmacro{#1}{Yomitfromtoc}{}% % \savepageno = \pageno \begingroup % Set up to handle contents files properly. \raggedbottom % Worry more about breakpoints than the bottom. \advance\hsize by -\contentsrightmargin % Don't use the full line length. % % Roman numerals for page numbers. \ifnum \pageno>0 \global\pageno = \lastnegativepageno \fi } % Normal (long) toc. \def\contents{% \startcontents{\putwordTOC}% \openin 1 \jobname.toc \ifeof 1 \else \readtocfile \fi \vfill \eject \contentsalignmacro % in case @setchapternewpage odd is in effect \ifeof 1 \else \pdfmakeoutlines \fi \closein 1 \endgroup \lastnegativepageno = \pageno \global\pageno = \savepageno } % And just the chapters. \def\summarycontents{% \startcontents{\putwordShortTOC}% % \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 \jobname.toc \ifeof 1 \else \readtocfile \fi \closein 1 \vfill \eject \contentsalignmacro % in case @setchapternewpage odd is in effect \endgroup \lastnegativepageno = \pageno \global\pageno = \savepageno } \let\shortcontents = \summarycontents % 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, ... % 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}\labelspace#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 \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. % @point{}, @result{}, @expansion{}, @print{}, @equiv{}. % % Since these characters are used in examples, it should be an even number of % \tt widths. Each \tt character is 1en, so two makes it 1em. % \def\point{$\star$} \def\result{\leavevmode\raise.15ex\hbox to 1em{\hfil$\Rightarrow$\hfil}} \def\expansion{\leavevmode\raise.1ex\hbox to 1em{\hfil$\mapsto$\hfil}} \def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}} \def\equiv{\leavevmode\lower.1ex\hbox to 1em{\hfil$\ptexequiv$\hfil}} % The @error{} command. % Adapted from the TeXbook's \boxit. % \newbox\errorbox % {\tentt \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 \tensf error\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} % @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 tex @ character. \envdef\tex{% \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 \escapechar=`\\ % \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\*=\ptexstar \let\t=\ptext \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 % 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 }} \let\afterenvbreak = \aboveenvbreak % \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. \font\circle=lcircle10 \newdimen\circthick \newdimen\cartouter\newdimen\cartinner \newskip\normbskip\newskip\normpskip\newskip\normlskip \circthick=\fontdimen8\circle % \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 \envdef\cartouche{% \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 % Flag to tell @lisp, etc., not to narrow margin. \let\nonarrowing = t% \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 \checkinserts } % This macro is called at the beginning of all the @example variants, % inside a group. \def\nonfillstart{% \aboveenvbreak \hfuzz = 12pt % 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 \parindent = 0pt \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 } % 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 % \def\smallword{small} \def\nosmallword{nosmall} \let\SETdispenvsize\relax \def\setnormaldispenv{% \ifx\SETdispenvsize\smallword \smallexamplefonts \rm \fi } \def\setsmalldispenv{% \ifx\SETdispenvsize\nosmallword \else \smallexamplefonts \rm \fi } % We often define two environments, @foo and @smallfoo. % Let's do it by one command: \def\makedispenv #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 synonyms: \def\maketwodispenvs #1#2#3{ \makedispenv{#1}{#3} \makedispenv{#2}{#3} } % @lisp: indented, narrowed, typewriter font; @example: same as @lisp. % % @smallexample and @smalllisp: use smaller fonts. % Originally contributed by Pavel@xerox. % \maketwodispenvs {lisp}{example}{% \nonfillstart \tt \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special. \gobble % eat return } % @display/@smalldisplay: same as @lisp except keep current font. % \makedispenv {display}{% \nonfillstart \gobble } % @format/@smallformat: same as @display except don't narrow margins. % \makedispenv{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 \gobble } \let\Eflushright = \afterenvbreak % @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. % \envdef\quotation{% {\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 \advance\rightskip by \lispnarrowing \exdentamount = \lispnarrowing \else \let\nonarrowing = \relax \fi \parsearg\quotationlabel } % We have retained a nonzero parskip for the environment, since we're % doing normal filling. % \def\Equotation{% \par \ifx\quotationauthor\undefined\else % indent a bit. \leftline{\kern 2\leftskip \sl ---\quotationauthor}% \fi {\parskip=0pt \afterenvbreak}% } % 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 } % LaTeX-like @verbatim...@end verbatim and @verb{...} % If we want to allow any 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\"% } % % [Knuth] p. 380 \def\uncatcodespecials{% \def\do##1{\catcode`##1=\other}\dospecials} % % [Knuth] pp. 380,381,391 % Disable Spanish ligatures ?` and !` of \tt font \begingroup \catcode`\`=\active\gdef`{\relax\lq} \endgroup % % 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}% \catcode`\`=\active \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 % \def\starttabbox{\setbox0=\hbox\bgroup} \begingroup \catcode`\^^I=\active \gdef\tabexpand{% \catcode`\^^I=\active \def^^I{\leavevmode\egroup \dimen0=\wd0 % the width so far, or since the previous tab \divide\dimen0 by\tabw \multiply\dimen0 by\tabw % compute previous multiple of \tabw \advance\dimen0 by\tabw % advance to next multiple of \tabw \wd0=\dimen0 \box0 \starttabbox }% } \endgroup \def\setupverbatim{% \let\nonarrowing = t% \nonfillstart % Easiest (and conventionally used) font for verbatim \tt \def\par{\leavevmode\egroup\box0\endgraf}% \catcode`\`=\active \tabexpand % Respect line breaks, % print special symbols as themselves, and % make each space count % must do in this order: \obeylines \uncatcodespecials \sepspaces \everypar{\starttabbox}% } % 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'{'#1'}'{#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{#2\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. \endgroup % \envdef\verbatim{% \setupverbatim\doverbatim } \let\Everbatim = \afterenvbreak % @verbatiminclude FILE - insert text of file in verbatim environment. % \def\verbatiminclude{\parseargusing\filenamecatcodes\doverbatiminclude} % \def\doverbatiminclude#1{% {% \makevalueexpandable \setupverbatim \input #1 \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 very 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 % Start the processing of @deffn: \def\startdefun{% \ifnum\lastpenalty<10000 \medbreak \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 \defargscommonending, 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. % \ifnum\lastpenalty=10002 \penalty2000 \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 \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 \endgraf \nobreak\vskip -\parskip \penalty 10002 % 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 remainnig 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 % % Define \deffn and \deffnx, without parameters. % \deffnheader has to be defined explicitly. % \def\domakedefun#1#2#3{% \envdef#1{% \startdefun \parseargusing\activeparens{\printdefunline#3}% }% \def#2{\dodefunx#1}% \def#3% } %%% 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{% % Remember that \dosubind{fn}{foo}{} is equivalent to \doind{fn}{foo}. \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}% \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 {} } %%% Type: % @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{% % Get the values of \leftskip and \rightskip as they were outside the @def... \advance\leftskip by -\defbodyindent % % How we'll format the type 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. % 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 % The continuations: \dimen2=\hsize \advance\dimen2 by -\defargsindent % (plain.tex says that \dimen1 should be used only as global.) \parshape 2 0in \dimen0 \defargsindent \dimen2 % % Put the type name to 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}% return value type \ifx\temp\empty\else \tclose{\temp} \fi #3% output function name }% {\rm\enskip}% hskip 0.5 em of \tenrm % \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. Let's try @var for that. \let\var=\ttslanted #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} } \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 } \def\badparencount{% \errmessage{Unbalanced parentheses in @def}% \global\parencount=0 } \def\badbrackcount{% \errmessage{Unbalanced square braces 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\undefined \newwrite\macscribble \def\scantokens#1{% \toks0={#1}% \immediate\openout\macscribble=\jobname.tmp \immediate\write\macscribble{\the\toks0}% \immediate\closeout\macscribble \input \jobname.tmp } \fi \def\scanmacro#1{% \begingroup \newlinechar`\^^M \let\xeatspaces\eatspaces % Undo catcode changes of \startcontents and \doprintindex % When called from @insertcopying or (short)caption, we need active % backslash to get it printed correctly. Previously, we had % \catcode`\\=\other instead. We'll see whether a problem appears % with macro expansion. --kasal, 19aug04 \catcode`\@=0 \catcode`\\=\active \escapechar=`\@ % ... and \example \spaceisspace % % Append \endinput to make sure that TeX does not see the ending newline. % % I've verified that it is necessary both for e-TeX and for ordinary TeX % --kasal, 29nov03 \scantokens{#1\endinput}% \endgroup } \def\scanexp#1{% \edef\temp{\noexpand\scanmacro{#1}}% \temp } \newcount\paramno % Count of parameters \newtoks\macname % Macro name \newif\ifrecursive % Is it recursive? % List of all defined macros in the form % \definedummyword\macro1\definedummyword\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\definedummyword#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} } % 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 \. % 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{% \catcode`\"=\other \catcode`\+=\other \catcode`\<=\other \catcode`\>=\other \catcode`\@=\other \catcode`\^=\other \catcode`\_=\other \catcode`\|=\other \catcode`\~=\other } \def\scanargctxt{% \scanctxt \catcode`\\=\other \catcode`\^^M=\other } \def\macrobodyctxt{% \scanctxt \catcode`\{=\other \catcode`\}=\other \catcode`\^^M=\other \usembodybackslash } \def\macroargctxt{% \scanctxt \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\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% \else \expandafter\parsemargdef \argl;% \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\definedummyword\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\definedummyword \noexpand#1% \fi } % This makes use of the obscure feature that if the last token of a % is #, then the preceding argument is delimited by % an opening brace, and that opening brace is not consumed. \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}} % Parse the optional {params} list. Set up \paramno and \paramlist % so \defmacro knows what to do. Define \macarg.blah for each blah % in the params list, to be ##N where N is the position in that list. % That gets used by \mbodybackslash (above). % We need to get `macro parameter char #' into several definitions. % The technique used is stolen from LaTeX: let \hash be something % unexpandable, insert that wherever you need a #, and then redefine % it to # just before using the token list produced. % % The same technique is used to protect \eatspaces till just before % the macro is used. \def\parsemargdef#1;{\paramno=0\def\paramlist{}% \let\hash\relax\let\xeatspaces\relax\parsemargdefxxx#1,;,} \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}}% \edef\paramlist{\paramlist\hash\the\paramno,}% \fi\next} % These two commands read recursive and nonrecursive macro bodies. % (They're different since rec and nonrec macros end differently.) \long\def\parsemacbody#1@end macro% {\xdef\temp{\eatcr{#1}}\endgroup\defmacro}% \long\def\parsermacbody#1@end rmacro% {\xdef\temp{\eatcr{#1}}\endgroup\defmacro}% % This defines the macro itself. There are six cases: recursive and % nonrecursive macros of zero, one, and many arguments. % Much magic with \expandafter here. % \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 \ifrecursive \ifcase\paramno % 0 \expandafter\xdef\csname\the\macname\endcsname{% \noexpand\scanmacro{\temp}}% \or % 1 \expandafter\xdef\csname\the\macname\endcsname{% \bgroup\noexpand\macroargctxt \noexpand\braceorline \expandafter\noexpand\csname\the\macname xxx\endcsname}% \expandafter\xdef\csname\the\macname xxx\endcsname##1{% \egroup\noexpand\scanmacro{\temp}}% \else % many \expandafter\xdef\csname\the\macname\endcsname{% \bgroup\noexpand\macroargctxt \noexpand\csname\the\macname xx\endcsname}% \expandafter\xdef\csname\the\macname xx\endcsname##1{% \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}% \expandafter\expandafter \expandafter\xdef \expandafter\expandafter \csname\the\macname xxx\endcsname \paramlist{\egroup\noexpand\scanmacro{\temp}}% \fi \else \ifcase\paramno % 0 \expandafter\xdef\csname\the\macname\endcsname{% \noexpand\norecurse{\the\macname}% \noexpand\scanmacro{\temp}\egroup}% \or % 1 \expandafter\xdef\csname\the\macname\endcsname{% \bgroup\noexpand\macroargctxt \noexpand\braceorline \expandafter\noexpand\csname\the\macname xxx\endcsname}% \expandafter\xdef\csname\the\macname xxx\endcsname##1{% \egroup \noexpand\norecurse{\the\macname}% \noexpand\scanmacro{\temp}\egroup}% \else % many \expandafter\xdef\csname\the\macname\endcsname{% \bgroup\noexpand\macroargctxt \expandafter\noexpand\csname\the\macname xx\endcsname}% \expandafter\xdef\csname\the\macname xx\endcsname##1{% \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}% \expandafter\expandafter \expandafter\xdef \expandafter\expandafter \csname\the\macname xxx\endcsname \paramlist{% \egroup \noexpand\norecurse{\the\macname}% \noexpand\scanmacro{\temp}\egroup}% \fi \fi} \def\norecurse#1{\bgroup\cslet{#1}{macsave.#1}} % \braceorline decides whether the next nonwhitespace character is a % {. If so it reads up to the closing }, if not, it reads the whole % line. Whatever was read is then fed to the next control sequence % as an argument (by \parsebrace or \parsearg) \def\braceorline#1{\let\next=#1\futurelet\nchar\braceorlinexxx} \def\braceorlinexxx{% \ifx\nchar\bgroup\else \expandafter\parsearg \fi \next} % @alias. % We need some trickery to remove the optional spaces around the equal % sign. Just 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}} \let\nwnode=\node \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 \thissection, % 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 {% \atdummies % preserve commands, but don't expand them \edef\writexrdef##1##2{% \write\auxfile{@xrdef{#1-% #1 of \setref, expanded by the \edef ##1}{##2}}% these are parameters of \writexrdef }% \toks0 = \expandafter{\thissection}% \immediate \writexrdef{title}{\the\toks0 }% \immediate \writexrdef{snt}{\csname #2\endcsname}% \Ynumbered etc. \writexrdef{pg}{\folio}% will be written later, during \shipout }% \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#1{\putwordsee{} \xrefX[#1,,,,,,,]} \def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]} \def\ref#1{\xrefX[#1,,,,,,,]} \def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup \unsepspaces \def\printedmanual{\ignorespaces #5}% \def\printedrefname{\ignorespaces #3}% \setbox1=\hbox{\printedmanual\unskip}% \setbox0=\hbox{\printedrefname\unskip}% \ifdim \wd0 = 0pt % No printed node name was explicitly given. \expandafter\ifx\csname SETxref-automatic-section-title\endcsname\relax % Use the node name inside the square brackets. \def\printedrefname{\ignorespaces #1}% \else % Use the actual chapter/section title appear inside % the square brackets. Use the real section title if we have it. \ifdim \wd1 > 0pt % It is in another manual, so we don't have it. \def\printedrefname{\ignorespaces #1}% \else \ifhavexrefs % We 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 \leavevmode \getfilename{#4}% {\turnoffactive % See comments at \activebackslashdouble. {\activebackslashdouble \xdef\pdfxrefdest{#1}% \backslashparens\pdfxrefdest}% % \ifnum\filenamelength>0 \startlink attr{/Border [0 0 0]}% goto file{\the\filename.pdf} name{\pdfxrefdest}% \else \startlink attr{/Border [0 0 0]}% goto name{\pdfmkpgn{\pdfxrefdest}}% \fi }% \linkcolor \fi % % Float references are printed completely differently: "Figure 1.2" % instead of "[somenode], p.3". We distinguish them by the % LABEL-title being set to a magic string. {% % Have to otherify everything special to allow the \csname to % include an _ in the xref name, etc. \indexnofonts \turnoffactive \expandafter\global\expandafter\let\expandafter\Xthisreftitle \csname XR#1-title\endcsname }% \iffloat\Xthisreftitle % If the user specified the print name (third arg) to the ref, % print it instead of our usual "Figure 1.2". \ifdim\wd0 = 0pt \refx{#1-snt}% \else \printedrefname \fi % % if the user also gave the printed manual name (fifth arg), append % "in MANUALNAME". \ifdim \wd1 > 0pt \space \putwordin{} \cite{\printedmanual}% \fi \else % node/anchor (non-float) references. % % If we use \unhbox0 and \unhbox1 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 \wd1 > 0pt \putwordsection{} ``\printedrefname'' \putwordin{} \cite{\printedmanual}% \else % _ (for example) has to be the character _ for the purposes of the % control sequence corresponding to the node, but it has to expand % into the usual \leavevmode...\vrule stuff for purposes of % printing. So we \turnoffactive for the \refx-snt, back on for the % printing, back off for the \refx-pg. {\turnoffactive % Only output a following space if the -snt ref is nonempty; for % @unnumbered and @anchor, it won't be. \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}% \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi }% % output the `[mynode]' via a macro so it can be overridden. \xrefprintnodename\printedrefname % % But we always want a comma and a space: ,\space % % output the `page 3'. \turnoffactive \putwordpage\tie\refx{#1-pg}{}% \fi \fi \endlink \endgroup} % 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 } % Define \refx{NAME}{SUFFIX} to reference a cross-reference string named NAME. % If its value is nonempty, SUFFIX is output afterward. % \def\refx#1#2{% {% \indexnofonts \otherbackslash \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 \message{\linenumber Undefined cross reference `#1'.}% \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 #2% Output the suffix in any case. } % This is the macro invoked by entries in the aux file. Usually it's % just a \def (we prepend XR to the control sequence name to avoid % collisions). But if this is a float type, we have more work to do. % \def\xrdef#1#2{% \expandafter\gdef\csname XR#1\endcsname{#2}% remember this xref value. % % Was that xref control sequence that we just defined for a float? \expandafter\iffloat\csname XR#1\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{#1}}% \fi } % 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 % It was suggested to set the catcode of ^ to 7, which would allow ^^e4 etc. % in xref tags, i.e., node names. But since ^^e4 notation isn't % supported in the main text, it doesn't seem desirable. Furthermore, % that is not enough: for node names that actually contain a ^ % character, we would end up writing a line like this: 'xrdef {'hat % b-title}{'hat b} and \xrdef does a \csname...\endcsname on the first % argument, and \hat is not an expandable control sequence. It could % all be worked out, but why? Either we support ^^ or we don't. % % The other change necessary for this was to define \auxhat: % \def\auxhat{\def^{'hat }}% extra space so ok if followed by letter % and then to call \auxhat in \setq. % \catcode`\^=\other % % Special characters. Should be turned off anyway, but... \catcode`\~=\other \catcode`\[=\other \catcode`\]=\other \catcode`\"=\other \catcode`\_=\other \catcode`\|=\other \catcode`\<=\other \catcode`\>=\other \catcode`\$=\other \catcode`\#=\other \catcode`\&=\other \catcode`\%=\other \catcode`+=\other % avoid \+ for paranoia even though we've turned it off % % This is to support \ in node names and titles, since the \ % characters end up in a \csname. It's easier than % leaving it active and making its active definition an actual \ % character. What I don't understand is why it works in the *value* % of the xrdef. Seems like it should be a catcode12 \, and that % should not typeset properly. But it works, so I'm moving on for % now. --karl, 15jan04. \catcode`\\=\other % % Make the characters 128-255 be printing characters. {% \count1=128 \def\loop{% \catcode\count1=\other \advance\count1 by 1 \ifnum \count1<256 \loop \fi }% }% % % @ 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{% \let\indent=\ptexindent \let\noindent=\ptexnoindent \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 % 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=\pagewidth \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 \futurelet\next\fo@t } }%end \catcode `\@=11 % 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. % Similarily, 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 ftp://tug.org/tex/epsf.tex.} % \def\image#1{% \ifx\epsfbox\undefined \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 this 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 % If the image is by itself, center it. \ifvmode \imagevmodetrue \nobreak\bigskip % 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 \line\bgroup\hss \fi % % Output the image. \ifpdf \dopdfimage{#1}{#2}{#3}% \else % \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}% \fi % \ifimagevmode \hss \egroup \bigbreak \fi % space after the image \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 \thissection 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\thissection{\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. {% \atdummies % since we read the caption text in the macro world, where ^^M % is turned into a normal character, we have to scan it back, so % we don't write the literal three characters "^^M" into the aux file. \scanexp{% \xdef\noexpand\gtemp{% \ifx\thisshortcaption\empty \thiscaption \else \thisshortcaption \fi }% }% \immediate\write\auxfile{@xrdef{\floatlabel-lof}{\floatident \ifx\gtemp\empty \else : \gtemp \fi}}% }% \fi \egroup % end of \vtop % % place the captured inserts % % BEWARE: when the floats start float, we have to issue warning whenever an % insert appears inside a float which could possibly float. --kasal, 26may04 % \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 % \thissection 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,} % and i18n. % @documentlanguage is usually given very early, just after % @setfilename. If done too late, it may not override everything % properly. Single argument is the language abbreviation. % It would be nice if we could set up a hyphenation file here. % \parseargdef\documentlanguage{% \tex % read txi-??.tex file in plain TeX. % Read the file if it exists. \openin 1 txi-#1.tex \ifeof 1 \errhelp = \nolanghelp \errmessage{Cannot read language file txi-#1.tex}% \else \input txi-#1.tex \fi \closein 1 \endgroup } \newhelp\nolanghelp{The given language definition file cannot be found or is empty. Maybe you need to install it? In the current directory should work if nowhere else does.} % @documentencoding should change something in TeX eventually, most % likely, but for now just recognize it. \let\documentencoding = \comment % Page size parameters. % \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 so finicky about underfull hboxes, either. \hbadness = 2000 % Following George Bush, just 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 \pageheight = \vsize % \hsize = #2\relax \outerhsize = \hsize \advance\outerhsize by 0.5in \pagewidth = \hsize % \normaloffset = #4\relax \bindingoffset = #5\relax % \ifpdf \pdfpageheight #7\relax \pdfpagewidth #8\relax \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{46\baselineskip}{6in}% {\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}% {\voffset}{.25in}% {\bindingoffset}{16pt}% {9.25in}{7in}% % \lispnarrowing = 0.3in \tolerance = 700 \hfuzz = 1pt \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 \hfuzz = 1pt \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{51\baselineskip}{160mm} {\voffset}{\hoffset}% {\bindingoffset}{44pt}% {297mm}{210mm}% % \tolerance = 700 \hfuzz = 1pt \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 \hfuzz = 1.2pt \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 }} % @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 \advance\dimen0 by \voffset % \dimen2 = \hsize \advance\dimen2 by \normaloffset % \internalpagesizes{#1}{\hsize}% {\voffset}{\normaloffset}% {\bindingoffset}{44pt}% {\dimen0}{\dimen2}% }} % Set default to letter. % \letterpaper \message{and turning on texinfo input format.} % Define macros to output various characters with catcode for normal text. \catcode`\"=\other \catcode`\~=\other \catcode`\^=\other \catcode`\_=\other \catcode`\|=\other \catcode`\<=\other \catcode`\>=\other \catcode`\+=\other \catcode`\$=\other \def\normaldoublequote{"} \def\normaltilde{~} \def\normalcaret{^} \def\normalunderscore{_} \def\normalverticalbar{|} \def\normalless{<} \def\normalgreater{>} \def\normalplus{+} \def\normaldollar{$}%$ font-lock fix % 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} % Turn off all special characters except @ % (and those which the user can use as if they were ordinary). % 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~{{\tt\char126}} \chardef\hat=`\^ \catcode`\^=\active \def^{{\tt \hat}} \catcode`\_=\active \def_{\ifusingtt\normalunderscore\_} \let\realunder=_ % Subroutine for the previous macro. \def\_{\leavevmode \kern.07em \vbox{\hrule width.3em height.1ex}\kern .07em } \catcode`\|=\active \def|{{\tt\char124}} \chardef \less=`\< \catcode`\<=\active \def<{{\tt \less}} \chardef \gtr=`\> \catcode`\>=\active \def>{{\tt \gtr}} \catcode`\+=\active \def+{{\tt \char 43}} \catcode`\$=\active \def${\ifusingit{{\sl\$}}\normaldollar}%$ font-lock fix % 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 \everyjob (or @setfilename) turn them on. % \otherifyactive is called near the end of this file. \def\otherifyactive{\catcode`+=\other \catcode`\_=\other} \catcode`\@=0 % \backslashcurfont outputs one backslash character in current font, % as in \char`\\. \global\chardef\backslashcurfont=`\\ \global\let\rawbackslashxx=\backslashcurfont % let existing .??s files work % \rawbackslash defines an active \ to do \backslashcurfont. % \otherbackslash defines an active \ to be a literal `\' character with % catcode other. {\catcode`\\=\active @gdef@rawbackslash{@let\=@backslashcurfont} @gdef@otherbackslash{@let\=@realbackslash} } % \realbackslash is an actual character `\' with catcode other, and % \doublebackslash is two of them (for the pdf outlines). {\catcode`\\=\other @gdef@realbackslash{\} @gdef@doublebackslash{\\}} % \normalbackslash outputs one backslash in fixed width font. \def\normalbackslash{{\tt\backslashcurfont}} \catcode`\\=\active % Used sometimes to turn off (effectively) the active characters % even after parsing them. @def@turnoffactive{% @let"=@normaldoublequote @let\=@realbackslash @let~=@normaltilde @let^=@normalcaret @let_=@normalunderscore @let|=@normalverticalbar @let<=@normalless @let>=@normalgreater @let+=@normalplus @let$=@normaldollar %$ font-lock fix @unsepspaces } % Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of % the literal character `\'. (Thus, \ is not expandable when this is in % effect.) % @def@normalturnoffactive{@turnoffactive @let\=@normalbackslash} % Make _ and + \other characters, temporarily. % This is canceled by @fixbackslash. @otherifyactive % 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. % @gdef@eatinput input texinfo{@fixbackslash} @global@let\ = @eatinput % On the other hand, perhaps the file did not have a `\input texinfo'. Then % the first `\{ in the file would cause an error. This macro tries to fix % that, assuming it is called before the first `\' could plausibly occur. % Also turn back on active characters that might appear in the input % file name, in case not using a pre-dumped format. % @gdef@fixbackslash{% @ifx\@eatinput @let\ = @normalbackslash @fi @catcode`+=@active @catcode`@_=@active } % Say @foo, not \foo, in error messages. @escapechar = `@@ % These look ok in all fonts, so just make them not special. @catcode`@& = @other @catcode`@# = @other @catcode`@% = @other @c Local variables: @c eval: (add-hook 'write-file-hooks 'time-stamp) @c page-delimiter: "^\\\\message" @c time-stamp-start: "def\\\\texinfoversion{" @c time-stamp-format: "%:y-%02m-%02d.%02H" @c time-stamp-end: "}" @c End: @c vim:sw=2: @ignore arch-tag: e1b36e32-c96e-4135-a41a-0b2efa2ea115 @end ignore a2ps-4.14/auxdir/missing0000755000175000017500000002540610735337306014536 0ustar mhattamhatta#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2005-06-08.21 # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005 # Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 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, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. # 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 run=: # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case "$1" in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Send bug reports to ." 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 # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). case "$1" in lex|yacc) # Not GNU programs, they don't have --version. ;; tar) if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then exit 1 fi ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case "$1" in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case "$f" in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.h fi ;; esac fi if [ ! -f y.tab.h ]; then echo >y.tab.h fi if [ ! -f y.tab.c ]; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if [ ! -f lex.yy.c ]; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` fi if [ -f "$file" ]; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit 1 fi ;; makeinfo) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; tar) shift # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case "$firstarg" in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case "$firstarg" in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: a2ps-4.14/auxdir/make-faq.sed0000644000175000017500000000113507440740377015314 0ustar mhattamhatta1 { 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.14/auxdir/mdate-sh0000755000175000017500000001255310735337306014566 0ustar mhattamhatta#!/bin/sh # Get modification time of a file or directory and pretty-print it. scriptversion=2005-06-29.22 # Copyright (C) 1995, 1996, 1997, 2003, 2004, 2005 Free Software # Foundation, Inc. # written by Ulrich Drepper , 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, write to the Free Software Foundation, # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # 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 # . 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 time of FILE. Report bugs to . EOF exit $? ;; -v | --v*) echo "mdate-sh $scriptversion" exit $? ;; esac # Prevent date giving response in another language. LANG=C export LANG LC_ALL=C export LC_ALL LC_TIME=C export LC_TIME # 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 # 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 -l -d /` # Find which argument is the month. month= command= until test $month do 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 # 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 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: a2ps-4.14/auxdir/install-sh0000755000175000017500000002202110735337306015131 0ustar mhattamhatta#!/bin/sh # install - install a program, script, or datafile scriptversion=2005-05-14.22 # 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. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" chmodcmd="$chmodprog 0755" chowncmd= chgrpcmd= stripcmd= rmcmd="$rmprog -f" mvcmd="$mvprog" src= dst= dir_arg= dstarg= no_target_directory= 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: -c (ignored) -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. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. --help display this help and exit. --version display version info and exit. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test -n "$1"; do case $1 in -c) shift continue;; -d) dir_arg=true shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; --help) echo "$usage"; exit $?;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -s) stripcmd=$stripprog shift continue;; -t) dstarg=$2 shift shift continue;; -T) no_target_directory=true shift continue;; --version) echo "$0 $scriptversion"; exit $?;; *) # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. test -n "$dir_arg$dstarg" && break # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dstarg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dstarg" shift # fnord fi shift # arg dstarg=$arg done break;; esac done if test -z "$1"; 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 for src do # Protect names starting with `-'. case $src in -*) src=./$src ;; esac if test -n "$dir_arg"; then dst=$src src= if test -d "$dst"; then mkdircmd=: chmodcmd= else mkdircmd=$mkdirprog 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 "$dstarg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dstarg # Protect names starting with `-'. case $dst in -*) dst=./$dst ;; esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dstarg: Is a directory" >&2 exit 1 fi dst=$dst/`basename "$src"` fi fi # This sed command emulates the dirname command. dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'` # Make sure that the destination directory exists. # Skip lots of stat calls in the usual case. if test ! -d "$dstdir"; then defaultIFS=' ' IFS="${IFS-$defaultIFS}" oIFS=$IFS # Some sh's can't handle IFS=/ for some reason. IFS='%' set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` shift IFS=$oIFS pathcomp= while test $# -ne 0 ; do pathcomp=$pathcomp$1 shift if test ! -d "$pathcomp"; then $mkdirprog "$pathcomp" # mkdir can fail with a `File exist' error in case several # install-sh are creating the directory concurrently. This # is OK. test -d "$pathcomp" || exit fi pathcomp=$pathcomp/ done fi if test -n "$dir_arg"; then $doit $mkdircmd "$dst" \ && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \ && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \ && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; } else dstfile=`basename "$dst"` # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 trap '(exit $?); exit' 1 2 13 15 # Copy the file name to the temp name. $doit $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 "$dsttmp"; } && # Now rename the file to the real destination. { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 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. { if test -f "$dstdir/$dstfile"; then $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \ || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \ || { echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 (exit 1); exit 1 } else : fi } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" } } fi || { (exit 1); exit 1; } done # The final little trick to "correctly" pass the exit status to the exit trap. { (exit 0); exit 0 } # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: a2ps-4.14/ogonkify/0000755000175000017500000000000010735337377013471 5ustar mhattamhattaa2ps-4.14/ogonkify/pcrro-o.ps0000644000175000017500000000736110735337331015413 0ustar mhattamhatta%! % 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.14/ogonkify/ptmb-o.afm0000644000175000017500000003212510735337331015345 0ustar mhattamhattaStartFontMetrics 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.14/ogonkify/pcrr-c.afm0000644000175000017500000001525007440740402015331 0ustar mhattamhattaStartFontMetrics 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.14/ogonkify/configure.in0000644000175000017500000000255010735325521015770 0ustar mhattamhattaAC_PREREQ(2.53) AC_INIT(Ogonkify, 0.7.0) AC_CONFIG_AUX_DIR(../auxdir) AM_INIT_AUTOMAKE # 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_OUTPUT(Makefile ogonkify.in doc/Makefile m4/Makefile) a2ps-4.14/ogonkify/pcrbo-o.ps0000644000175000017500000000737110735337331015374 0ustar mhattamhatta%! % 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.14/ogonkify/ogonki.afm0000644000175000017500000001075507440740402015436 0ustar mhattamhattaStartFontMetrics 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.14/ogonkify/latin3.enc0000644000175000017500000000435007440740402015336 0ustar mhattamhatta%! % 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.14/ogonkify/latin1.enc0000644000175000017500000000430207440740402015331 0ustar mhattamhatta%! % 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.14/ogonkify/printenc.ps0000644000175000017500000000016510735326115015645 0ustar mhattamhatta%! /printenc { 0 1 255 { (C) = dup = (; N) = 1 index 1 index get = () = pop } for } def a2ps-4.14/ogonkify/phvro-c.afm0000644000175000017500000000535107440740402015522 0ustar mhattamhattaStartFontMetrics 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.14/ogonkify/pcrr-o.ps0000644000175000017500000000727610735337331015241 0ustar mhattamhatta%! % 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.14/ogonkify/ptmbi-o.afm0000644000175000017500000003231210735337331015514 0ustar mhattamhattaStartFontMetrics 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.14/ogonkify/ptmbi.afm0000644000175000017500000003641707440740402015266 0ustar mhattamhattaStartFontMetrics 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.14/ogonkify/latin5.afm0000644000175000017500000001054607440740402015342 0ustar mhattamhattaStartFontMetrics 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.14/ogonkify/pcrbo-o.afm0000644000175000017500000003507310735337331015515 0ustar mhattamhattaStartFontMetrics 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.14/ogonkify/hp.enc0000644000175000017500000000425507440740402014557 0ustar mhattamhatta%! % 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.14/ogonkify/ptmri.afm0000644000175000017500000004322407440740402015300 0ustar mhattamhattaStartFontMetrics 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.14/ogonkify/phvbo-c.afm0000644000175000017500000000536207440740402015504 0ustar mhattamhattaStartFontMetrics 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.14/ogonkify/ptmr-o.ps0000644000175000017500000000560010735337331015242 0ustar mhattamhatta%! % 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.14/ogonkify/latin6.afm0000644000175000017500000001041707440740402015340 0ustar mhattamhattaStartFontMetrics 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.14/ogonkify/latin7.enc0000644000175000017500000000427607440740402015351 0ustar mhattamhatta%! % 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.14/ogonkify/ptmb-c.afm0000644000175000017500000000565007440740402015330 0ustar mhattamhattaStartFontMetrics 3.0 Comment More composite characters for Times-Roman. Comment by J. Chroboczek 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.14/ogonkify/ptmbi-o.ps0000644000175000017500000000565310735337331015403 0ustar mhattamhatta%! % 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.14/ogonkify/m4/0000755000175000017500000000000010735337377014011 5ustar mhattamhattaa2ps-4.14/ogonkify/m4/Makefile.am0000644000175000017500000000053407440740402016031 0ustar mhattamhatta## -*- Makefile -*- ## Ogonkify auxdir directory ## Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana ## Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana ## $Id: Makefile.am,v 1.1.1.1 2002/03/04 18:46:26 akim Exp $ ## Process this file with automake to produce Makefile.in aclocal_macros = perl.m4 EXTRA_DIST = $(aclocal_macros) a2ps-4.14/ogonkify/m4/Makefile.in0000644000175000017500000001720410735337276016060 0ustar mhattamhatta# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 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@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = m4 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/../auxdir/mkinstalldirs CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EXEEXT = @EXEEXT@ EXTENSIONS_FALSE = @EXTENSIONS_FALSE@ EXTENSIONS_TRUE = @EXTENSIONS_TRUE@ IBMFONTS = @IBMFONTS@ 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@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ ac_ct_CC = @ac_ct_CC@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ 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@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ 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 \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu m4/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu m4/Makefile .PRECIOUS: 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__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ 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 uninstall-info-am: tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile 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: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: 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: uninstall-info-am .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am install-man \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \ uninstall-info-am # 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.14/ogonkify/m4/perl.m40000644000175000017500000000407610604771032015205 0ustar mhattamhatta#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.14/ogonkify/cp1250.enc0000644000175000017500000000432407440740402015057 0ustar mhattamhatta%! % 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.14/ogonkify/ptmb.afm0000644000175000017500000003654007440740402015112 0ustar mhattamhattaStartFontMetrics 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.14/ogonkify/allchars.ps0000644000175000017500000000145110735326115015613 0ustar mhattamhatta%! /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.14/ogonkify/VERSION0000644000175000017500000000012107440740402014515 0ustar mhattamhattaThis is the version of `ogonkify' distributed as of Fri May 21 14:56:35 BST 1999 a2ps-4.14/ogonkify/Makefile.am0000644000175000017500000000665410735325525015530 0ustar mhattamhatta# -*- Makefile -*- # ## Process this file with automake to produce Makefile.in ## This seems to make problems with some makes AUTOMAKE_OPTIONS = foreign SUBDIRS = doc m4 ACLOCAL_AMFLAGS = -I 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 $*.afm -c $*-c.afm \ -o $*-o.ps -n $$fontname-Ogonki \ -a $*-o.afm -e ${encoding}.afm \ -t ${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 $*.afm -c $*-c.afm \ -o $*-o.ps -n $$fontname-Ogonki \ -a $*-o.afm -e ${encoding}.afm \ -t ${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 # .afm.enc: composeglyphs.in @echo "Creating $* encoding vector..." $(PERL) ./composeglyphs -e $< -E $*.enc .ps.pfa: ogonki.enc adobe.enc compose.ps @cat $(srcdir)/${encoding}.enc \ $(srcdir)/${targetEncoding}.enc \ $(srcdir)/compose.ps \ $(srcdir)/$*.ps > $@.tmp \ && mv $@.tmp $@ a2ps-4.14/ogonkify/phvbo.afm0000644000175000017500000003622707440740402015270 0ustar mhattamhattaStartFontMetrics 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.14/ogonkify/adobe.enc0000644000175000017500000000425707440740402015224 0ustar mhattamhatta%! % 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.14/ogonkify/configure0000755000175000017500000043256010735337275015407 0ustar mhattamhatta#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.61 for Ogonkify 0.7.0. # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006 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 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 # PATH needs CR # 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 # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) as_nl=' ' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. 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 echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var fi done # Required to use basename. 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 # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH if test "x$CONFIG_SHELL" = x; then if (eval ":") 2>/dev/null; then as_have_required=yes else as_have_required=no fi if test $as_have_required = yes && (eval ": (as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=\$LINENO as_lineno_2=\$LINENO test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } ") 2> /dev/null; then : else as_candidate_shells= as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. case $as_dir in /*) for as_base in sh bash ksh sh5; do as_candidate_shells="$as_candidate_shells $as_dir/$as_base" done;; esac done IFS=$as_save_IFS for as_shell in $as_candidate_shells $SHELL; do # Try only shells that exist, to save several forks. if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { ("$as_shell") 2> /dev/null <<\_ASEOF 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 : _ASEOF }; then CONFIG_SHELL=$as_shell as_have_required=yes if { "$as_shell" 2> /dev/null <<\_ASEOF 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 : (as_func_return () { (exit $1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = "$1" ); then : else exitcode=1 echo positional parameters were not saved. fi test $exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } _ASEOF }; then break fi fi done if test "x$CONFIG_SHELL" != x; then for as_var in BASH_ENV ENV do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test $as_have_required = no; then echo This script requires a shell more modern than all the echo shells that I found on your system. Please install a echo modern shell, or manually run the script under such a echo shell if you do have one. { (exit 1); exit 1; } fi fi fi (eval "as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0") || { echo No shell found that supports shell functions. echo Please tell autoconf@gnu.org about your system, echo including any error possibly output before this echo message } as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. 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" || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # 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 } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi 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 fi echo >conf$$.file 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 -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' 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=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # 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 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, 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= SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='Ogonkify' PACKAGE_TARNAME='ogonkify' PACKAGE_VERSION='0.7.0' PACKAGE_STRING='Ogonkify 0.7.0' PACKAGE_BUGREPORT='' ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datarootdir datadir sysconfdir sharedstatedir localstatedir includedir oldincludedir docdir infodir htmldir dvidir pdfdir psdir libdir localedir mandir DEFS ECHO_C ECHO_N ECHO_T LIBS build_alias host_alias target_alias INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar EXTENSIONS_TRUE EXTENSIONS_FALSE PERL XMKMF CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP IBMFONTS LIBOBJS LTLIBOBJS' ac_subst_files='' ac_precious_vars='build_alias host_alias target_alias XMKMF CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP' # Initialize some variables set by options. ac_init_help= ac_init_version=false # 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' 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=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. 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_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` eval enable_$ac_feature=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_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` eval enable_$ac_feature=\$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 ;; -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_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/[-.]/_/g'` eval with_$ac_package=\$ac_optarg ;; -without-* | --without-*) ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/[-.]/_/g'` eval with_$ac_package=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 ;; -*) { echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && echo "$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'` { echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi # Be sure to have absolute directory names. 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 do eval ac_val=\$$ac_var case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; } 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 echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 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 .` || { echo "$as_me: error: Working directory cannot be determined" >&2 { (exit 1); exit 1; }; } test "X$ac_ls_di" = "X$ac_pwd_ls_di" || { echo "$as_me: error: pwd does not report name of working directory" >&2 { (exit 1); exit 1; }; } # 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 -- "$0" || $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$0" : 'X\(//\)[^/]' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X"$0" | 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 .." { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2 { (exit 1); exit 1; }; } 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] --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-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-extensions small footprint installation --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors 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: XMKMF Path to xmkmf, Makefile generator for X Window System CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if you have headers in a nonstandard directory 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. _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" || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`echo "$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 guested configure. 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 echo "$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.61 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 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 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.61. Invocation command line was $ $0 $@ _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 test -z "$as_dir" && as_dir=. echo "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=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; 2) ac_configure_args1="$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 ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac done done $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export 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=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX 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_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( *) $as_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 cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------------- ## ## File substitutions. ## ## ------------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo cat confdefs.h echo fi test "$ac_signal" != 0 && echo "$as_me: caught signal $ac_signal" echo "$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'; { (exit 1); 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 # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer explicitly selected file to automatically selected ones. if test -n "$CONFIG_SITE"; then set x "$CONFIG_SITE" elif test "x$prefix" != xNONE; then set x "$prefix/share/config.site" "$prefix/etc/config.site" else set x "$ac_default_prefix/share/config.site" \ "$ac_default_prefix/etc/config.site" fi shift for ac_site_file do if test -r "$ac_site_file"; then { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" 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. if test -f "$cache_file"; then { echo "$as_me:$LINENO: loading cache $cache_file" >&5 echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { echo "$as_me:$LINENO: creating cache $cache_file" >&5 echo "$as_me: creating cache $cache_file" >&6;} >$cache_file 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,) { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 echo "$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 { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ac_cache_corrupted=: fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`echo "$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. *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } 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_aux_dir= for ac_dir in ../auxdir "$srcdir"/../auxdir; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in ../auxdir \"$srcdir\"/../auxdir" >&5 echo "$as_me: error: cannot find install-sh or install.sh in ../auxdir \"$srcdir\"/../auxdir" >&2;} { (exit 1); exit 1; }; } 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. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. am__api_version="1.9" # 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. { echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. 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 { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$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 ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi done done ;; esac done IFS=$as_save_IFS fi if test "${ac_cv_path_install+set}" = set; 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 { echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$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' { echo "$as_me:$LINENO: checking whether build environment is sane" >&5 echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6; } # Just in case sleep 1 echo timestamp > conftest.file # 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 ( 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 rm -f conftest.file 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". { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&5 echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&2;} { (exit 1); exit 1; }; } fi test "$2" = conftest.file ) then # Ok. : else { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! Check your system clock" >&5 echo "$as_me: error: newly created file is older than distributed files! Check your system clock" >&2;} { (exit 1); exit 1; }; } fi { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } 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 $. echo might interpret backslashes. # By default was `s,x,x', remove it if useless. cat <<\_ACEOF >conftest.sed s/[\\$]/&&/g;s/;s,x,x,$// _ACEOF program_transform_name=`echo $program_transform_name | sed -f conftest.sed` rm -f conftest.sed # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then # We used to keeping the `.' as first argument, in order to # allow $(mkdir_p) to be used without argument. As in # $(mkdir_p) $(somedir) # where $(somedir) is conditionally defined. However this is wrong # for two reasons: # 1. if the package is installed by a user who cannot write `.' # make install will fail, # 2. the above comment should most certainly read # $(mkdir_p) $(DESTDIR)$(somedir) # so it does not work when $(somedir) is undefined and # $(DESTDIR) is not. # To support the latter case, we have to write # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), # so the `.' trick is pointless. mkdir_p='mkdir -p --' else # On NextStep and OpenStep, the `mkdir' command does not # recognize any option. It will interpret all options as # directories to create, and then abort because `.' already # exists. for d in ./-p ./--version; do test -d $d && rmdir $d done # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. if test -f "$ac_aux_dir/mkinstalldirs"; then mkdir_p='$(mkinstalldirs)' else mkdir_p='$(install_sh) -d' fi fi 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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_AWK+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $AWK" >&5 echo "${ECHO_T}$AWK" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$AWK" && break done { echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; } set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } SET_MAKE= else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 # test to see if srcdir already configured if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} { (exit 1); exit 1; }; } 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' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # 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"} install_sh=${install_sh-"$am_aux_dir/install-sh"} # 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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $STRIP" >&5 echo "${ECHO_T}$STRIP" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 echo "${ECHO_T}$ac_ct_STRIP" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' # What should get installed? # Check whether --enable-extensions was given. if test "${enable_extensions+set}" = set; then enableval=$enable_extensions; case "${enableval}" in yes|no) ;; *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for --disable-extensions" >&5 echo "$as_me: error: bad value ${enableval} for --disable-extensions" >&2;} { (exit 1); exit 1; }; } ;; esac else 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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_PERL+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $PERL" >&5 echo "${ECHO_T}$PERL" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_PERL+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $PERL" >&5 echo "${ECHO_T}$PERL" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi ;; esac # We need the IBM PFA files. DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo done .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # We grep out `Entering directory' and `Leaving directory' # messages which can occur if `w' ends up in MAKEFLAGS. # In particular we don't look at `^make:' because GNU make might # be invoked under some other name (usually "gmake"), in which # case it prints its new name instead of `make'. if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then am__include=include am__quote= _am_result=GNU fi # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then am__include=.include am__quote="\"" _am_result=BSD fi fi { echo "$as_me:$LINENO: result: $_am_result" >&5 echo "${ECHO_T}$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' 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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. echo "$as_me:$LINENO: checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out 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. { echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; } ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # # List of possible output files, starting from the most likely. # The algorithm is not robust to junk in `.', hence go to wildcards (a.*) # only as a last resort. b.out is created by i960 compilers. ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out' # # The IRIX 6 linker writes into existing files which may not be # executable, retaining their permissions. Remove them first so a # subsequent execution test works. ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link_default") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; 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 | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && 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 ac_file='' fi { echo "$as_me:$LINENO: result: $ac_file" >&5 echo "${ECHO_T}$ac_file" >&6; } if test -z "$ac_file"; then echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: C compiler cannot create executables See \`config.log' for more details." >&5 echo "$as_me: error: C compiler cannot create executables See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } fi ac_exeext=$ac_cv_exeext # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { echo "$as_me:$LINENO: checking whether the C compiler works" >&5 echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; } # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { echo "$as_me:$LINENO: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi fi fi { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } rm -f a.out a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; } { echo "$as_me:$LINENO: result: $cross_compiling" >&5 echo "${ECHO_T}$cross_compiling" >&6; } { echo "$as_me:$LINENO: checking for suffix of executables" >&5 echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; } if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; 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 | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest$ac_cv_exeext { echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 echo "${ECHO_T}$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT { echo "$as_me:$LINENO: checking for suffix of object files" >&5 echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; } if test "${ac_cv_objext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; 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 ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 echo "${ECHO_T}$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; } GCC=`test $ac_compiler_gnu = yes && echo yes` ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS="" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; 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 { echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*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 don't provoke an error unfortunately, instead are silently treated as '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's necessary to write '\x00'==0 to get something that's 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 **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _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" rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_c89=$ac_arg else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { echo "$as_me:$LINENO: result: none needed" >&5 echo "${ECHO_T}none needed" >&6; } ;; xno) { echo "$as_me:$LINENO: result: unsupported" >&5 echo "${ECHO_T}unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; 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 depcc="$CC" am_compiler_list= { echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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'. 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 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 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in 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 ;; none) break ;; esac # 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. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} 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 { echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 echo "${ECHO_T}$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 { echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&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+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-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. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # 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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f 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 { echo "$as_me:$LINENO: result: $CPP" >&5 echo "${ECHO_T}$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. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # 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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } 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 { echo "$as_me:$LINENO: checking for X" >&5 echo $ECHO_N "checking for X... $ECHO_C" >&6; } # Check whether --with-x was given. if test "${with_x+set}" = set; 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 #( *\'*) { { echo "$as_me:$LINENO: error: Cannot use X directory names containing '" >&5 echo "$as_me: error: Cannot use X directory names containing '" >&2;} { (exit 1); exit 1; }; };; #( *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # One or both of the vars are not set, and there is no cached value. ac_x_includes=no ac_x_libraries=no 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; 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 | /lib) ;; *) 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/X11R6/include /usr/X11R5/include /usr/X11R4/include /usr/include/X11 /usr/include/X11R6 /usr/include/X11R5 /usr/include/X11R4 /usr/local/X11/include /usr/local/X11R6/include /usr/local/X11R5/include /usr/local/X11R4/include /usr/local/include/X11 /usr/local/include/X11R6 /usr/local/include/X11R5 /usr/local/include/X11R4 /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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # We can compile using X headers with no special include directory. ac_x_includes= else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 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.$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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include int main () { XrmInitialize () ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then LIBS=$ac_save_LIBS # We can link X programs with no special library path. ac_x_libraries= else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 LIBS=$ac_save_LIBS for ac_dir in `echo "$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; 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_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi # $ac_x_libraries = no 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 { echo "$as_me:$LINENO: result: $have_x" >&5 echo "${ECHO_T}$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'" { echo "$as_me:$LINENO: result: libraries $x_libraries, headers $x_includes" >&5 echo "${ECHO_T}libraries $x_libraries, headers $x_includes" >&6; } fi { echo "$as_me:$LINENO: checking for IBM font files" >&5 echo $ECHO_N "checking for IBM font files... $ECHO_C" >&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 { echo "$as_me:$LINENO: result: $IBMFONTS" >&5 echo "${ECHO_T}$IBMFONTS" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( *) $as_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+set}" = set || &/ 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 test "x$cache_file" != "x/dev/null" && { echo "$as_me:$LINENO: updating cache $cache_file" >&5 echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 echo "$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=' 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= 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=`echo "$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. ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -z "${EXTENSIONS_TRUE}" && test -z "${EXTENSIONS_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"EXTENSIONS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"EXTENSIONS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF #! $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} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh 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 # PATH needs CR # 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 # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) as_nl=' ' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. 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 echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var fi done # Required to use basename. 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 # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. 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" || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # 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 } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi 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 fi echo >conf$$.file 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 -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' 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=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # 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 # 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.61. 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 cat >>$CONFIG_STATUS <<_ACEOF # Files that config.status was made for. config_files="$ac_config_files" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTIONS] [FILE]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit -q, --quiet 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 ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ Ogonkify config.status 0.7.0 configured by $0, generated by GNU Autoconf 2.61, with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2006 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' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If no file are specified by the user, then we need to provide default # value. By we need to know if files were specified by the user. 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=$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 ) echo "$ac_cs_version"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift CONFIG_FILES="$CONFIG_FILES $ac_optarg" ac_need_defaults=false;; --he | --h | --help | --hel | -h ) echo "$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. -*) { echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *) ac_config_targets="$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 if \$ac_cs_recheck; then echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 CONFIG_SHELL=$SHELL export CONFIG_SHELL exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # 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" ;; *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; 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+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_COMMANDS+set}" = set || 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= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || { echo "$me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } # # Set up the sed scripts for CONFIG_FILES section. # # No need to generate the scripts if there are no CONFIG_FILES. # This happens for instance when ./config.status config.h if test -n "$CONFIG_FILES"; then _ACEOF ac_delim='%!_!# ' for ac_last_try in false false false false false :; do cat >conf$$subs.sed <<_ACEOF SHELL!$SHELL$ac_delim PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim PACKAGE_NAME!$PACKAGE_NAME$ac_delim PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim PACKAGE_STRING!$PACKAGE_STRING$ac_delim PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim exec_prefix!$exec_prefix$ac_delim prefix!$prefix$ac_delim program_transform_name!$program_transform_name$ac_delim bindir!$bindir$ac_delim sbindir!$sbindir$ac_delim libexecdir!$libexecdir$ac_delim datarootdir!$datarootdir$ac_delim datadir!$datadir$ac_delim sysconfdir!$sysconfdir$ac_delim sharedstatedir!$sharedstatedir$ac_delim localstatedir!$localstatedir$ac_delim includedir!$includedir$ac_delim oldincludedir!$oldincludedir$ac_delim docdir!$docdir$ac_delim infodir!$infodir$ac_delim htmldir!$htmldir$ac_delim dvidir!$dvidir$ac_delim pdfdir!$pdfdir$ac_delim psdir!$psdir$ac_delim libdir!$libdir$ac_delim localedir!$localedir$ac_delim mandir!$mandir$ac_delim DEFS!$DEFS$ac_delim ECHO_C!$ECHO_C$ac_delim ECHO_N!$ECHO_N$ac_delim ECHO_T!$ECHO_T$ac_delim LIBS!$LIBS$ac_delim build_alias!$build_alias$ac_delim host_alias!$host_alias$ac_delim target_alias!$target_alias$ac_delim INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim INSTALL_DATA!$INSTALL_DATA$ac_delim CYGPATH_W!$CYGPATH_W$ac_delim PACKAGE!$PACKAGE$ac_delim VERSION!$VERSION$ac_delim ACLOCAL!$ACLOCAL$ac_delim AUTOCONF!$AUTOCONF$ac_delim AUTOMAKE!$AUTOMAKE$ac_delim AUTOHEADER!$AUTOHEADER$ac_delim MAKEINFO!$MAKEINFO$ac_delim install_sh!$install_sh$ac_delim STRIP!$STRIP$ac_delim INSTALL_STRIP_PROGRAM!$INSTALL_STRIP_PROGRAM$ac_delim mkdir_p!$mkdir_p$ac_delim AWK!$AWK$ac_delim SET_MAKE!$SET_MAKE$ac_delim am__leading_dot!$am__leading_dot$ac_delim AMTAR!$AMTAR$ac_delim am__tar!$am__tar$ac_delim am__untar!$am__untar$ac_delim EXTENSIONS_TRUE!$EXTENSIONS_TRUE$ac_delim EXTENSIONS_FALSE!$EXTENSIONS_FALSE$ac_delim PERL!$PERL$ac_delim XMKMF!$XMKMF$ac_delim CC!$CC$ac_delim CFLAGS!$CFLAGS$ac_delim LDFLAGS!$LDFLAGS$ac_delim CPPFLAGS!$CPPFLAGS$ac_delim ac_ct_CC!$ac_ct_CC$ac_delim EXEEXT!$EXEEXT$ac_delim OBJEXT!$OBJEXT$ac_delim DEPDIR!$DEPDIR$ac_delim am__include!$am__include$ac_delim am__quote!$am__quote$ac_delim AMDEP_TRUE!$AMDEP_TRUE$ac_delim AMDEP_FALSE!$AMDEP_FALSE$ac_delim AMDEPBACKSLASH!$AMDEPBACKSLASH$ac_delim CCDEPMODE!$CCDEPMODE$ac_delim am__fastdepCC_TRUE!$am__fastdepCC_TRUE$ac_delim am__fastdepCC_FALSE!$am__fastdepCC_FALSE$ac_delim CPP!$CPP$ac_delim IBMFONTS!$IBMFONTS$ac_delim LIBOBJS!$LIBOBJS$ac_delim LTLIBOBJS!$LTLIBOBJS$ac_delim _ACEOF if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 82; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` if test -n "$ac_eof"; then ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` ac_eof=`expr $ac_eof + 1` fi cat >>$CONFIG_STATUS <<_ACEOF cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof /@[a-zA-Z_][a-zA-Z_0-9]*@/!b end _ACEOF sed ' s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g s/^/s,@/; s/!/@,|#_!!_#|/ :n t n s/'"$ac_delim"'$/,g/; t s/$/\\/; p N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n ' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF :end s/|#_!!_#|//g CEOF$ac_eof _ACEOF # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ 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[ ]*=/{ s/:*\$(srcdir):*/:/ s/:*\${srcdir}:*/:/ s/:*@srcdir@:*/:/ s/^\([^=]*=[ ]*\):*/\1/ s/:*$// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF fi # test -n "$CONFIG_FILES" for ac_tag in :F $CONFIG_FILES :C $CONFIG_COMMANDS do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5 echo "$as_me: error: Invalid tag $ac_tag." >&2;} { (exit 1); exit 1; }; };; :[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="$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 || { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 echo "$as_me: error: cannot find input file: $ac_f" >&2;} { (exit 1); exit 1; }; };; esac ac_file_inputs="$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 "`IFS=: echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure." if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} fi case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin";; 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 || echo 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" case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`echo "$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 || echo 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" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`echo "$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 _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # 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= case `sed -n '/datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p ' $ac_file_inputs` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF 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 sed "$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s&@configure_input@&$configure_input&;t t s&@top_builddir@&$ac_top_builddir_sub&;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 $ac_datarootdir_hack " $ac_file_inputs | sed -f "$tmp/subs-1.sed" >$tmp/out test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&5 echo "$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 "$tmp/stdin" case $ac_file in -) cat "$tmp/out"; rm -f "$tmp/out";; *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;; esac ;; :C) { echo "$as_me:$LINENO: executing $ac_file commands" >&5 echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # So let's grep whole file. if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` { as_dir=$dirpart/$fdir case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`echo "$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 || echo 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" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ;; "composeglyphs":F) chmod +x composeglyphs ;; esac done # for ac_tag { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save # 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 || { (exit 1); exit 1; } fi a2ps-4.14/ogonkify/pcrb-c.afm0000644000175000017500000001523107440740402015310 0ustar mhattamhattaStartFontMetrics 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.14/ogonkify/Makefile.in0000644000175000017500000006145510735337276015547 0ustar mhattamhatta# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 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@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = . am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = . DIST_COMMON = README $(am__configure_deps) \ $(srcdir)/../auxdir/install-sh $(srcdir)/../auxdir/missing \ $(srcdir)/../auxdir/mkinstalldirs $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/composeglyphs.in \ $(srcdir)/ogonkify.in.in $(top_srcdir)/configure \ ../auxdir/config.rpath ../auxdir/install-sh ../auxdir/missing \ ../auxdir/mkinstalldirs ../auxdir/texinfo.tex ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno configure.status.lineno mkinstalldirs = $(SHELL) $(top_srcdir)/../auxdir/mkinstalldirs CONFIG_CLEAN_FILES = composeglyphs ogonkify.in am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(afmdir)" \ "$(DESTDIR)$(fontsdir)" "$(DESTDIR)$(ogonkifydir)" binSCRIPT_INSTALL = $(INSTALL_SCRIPT) SCRIPTS = $(bin_SCRIPTS) SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-exec-recursive install-info-recursive \ install-recursive installcheck-recursive installdirs-recursive \ pdf-recursive ps-recursive uninstall-info-recursive \ uninstall-recursive 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 = `echo $$p | sed -e 's|^.*/||'`; afmDATA_INSTALL = $(INSTALL_DATA) fontsDATA_INSTALL = $(INSTALL_DATA) ogonkifyDATA_INSTALL = $(INSTALL_DATA) DATA = $(afm_DATA) $(fonts_DATA) $(ogonkify_DATA) ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d $(distdir) \ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr $(distdir); }; } DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EXEEXT = @EXEEXT@ EXTENSIONS_FALSE = @EXTENSIONS_FALSE@ EXTENSIONS_TRUE = @EXTENSIONS_TRUE@ IBMFONTS = @IBMFONTS@ 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@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ ac_ct_CC = @ac_ct_CC@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ 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@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ # -*- Makefile -*- # AUTOMAKE_OPTIONS = foreign SUBDIRS = doc m4 ACLOCAL_AMFLAGS = -I 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: @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \ cd $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile .PRECIOUS: 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__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) cd $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) 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) test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)" @list='$(bin_SCRIPTS)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f $$d$$p; then \ f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \ echo " $(binSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(bindir)/$$f'"; \ $(binSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(bindir)/$$f"; \ else :; fi; \ done uninstall-binSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(bin_SCRIPTS)'; for p in $$list; do \ f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \ echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ rm -f "$(DESTDIR)$(bindir)/$$f"; \ done uninstall-info-am: install-afmDATA: $(afm_DATA) @$(NORMAL_INSTALL) test -z "$(afmdir)" || $(mkdir_p) "$(DESTDIR)$(afmdir)" @list='$(afm_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(afmDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(afmdir)/$$f'"; \ $(afmDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(afmdir)/$$f"; \ done uninstall-afmDATA: @$(NORMAL_UNINSTALL) @list='$(afm_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(afmdir)/$$f'"; \ rm -f "$(DESTDIR)$(afmdir)/$$f"; \ done install-fontsDATA: $(fonts_DATA) @$(NORMAL_INSTALL) test -z "$(fontsdir)" || $(mkdir_p) "$(DESTDIR)$(fontsdir)" @list='$(fonts_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(fontsDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(fontsdir)/$$f'"; \ $(fontsDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(fontsdir)/$$f"; \ done uninstall-fontsDATA: @$(NORMAL_UNINSTALL) @list='$(fonts_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(fontsdir)/$$f'"; \ rm -f "$(DESTDIR)$(fontsdir)/$$f"; \ done install-ogonkifyDATA: $(ogonkify_DATA) @$(NORMAL_INSTALL) test -z "$(ogonkifydir)" || $(mkdir_p) "$(DESTDIR)$(ogonkifydir)" @list='$(ogonkify_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(ogonkifyDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(ogonkifydir)/$$f'"; \ $(ogonkifyDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(ogonkifydir)/$$f"; \ done uninstall-ogonkifyDATA: @$(NORMAL_UNINSTALL) @list='$(ogonkify_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(ogonkifydir)/$$f'"; \ rm -f "$(DESTDIR)$(ogonkifydir)/$$f"; \ done # 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. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; 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; \ (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" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ 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 || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) mkdir $(distdir) $(mkdir_p) $(distdir)/. $(distdir)/../auxdir @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(mkdir_p) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ distdir) \ || exit 1; \ fi; \ done -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -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 $(SHELL) $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r $(distdir) dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__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*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && cd $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(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 $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}' distuninstallcheck: @cd $(distuninstallcheck_dir) \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { 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: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_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 info: info-recursive info-am: install-data-am: install-afmDATA install-fontsDATA \ install-ogonkifyDATA install-exec-am: install-binSCRIPTS install-info: install-info-recursive install-man: 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-info-am uninstall-ogonkifyDATA uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \ check-am clean clean-generic clean-recursive ctags \ ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-shar \ dist-tarZ dist-zip distcheck distclean distclean-generic \ distclean-recursive 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-exec install-exec-am \ install-fontsDATA install-info install-info-am install-man \ install-ogonkifyDATA install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic maintainer-clean-recursive \ mostlyclean mostlyclean-generic mostlyclean-recursive pdf \ pdf-am ps ps-am tags tags-recursive uninstall \ uninstall-afmDATA uninstall-am uninstall-binSCRIPTS \ uninstall-fontsDATA uninstall-info-am uninstall-ogonkifyDATA # # 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 $*.afm -c $*-c.afm \ -o $*-o.ps -n $$fontname-Ogonki \ -a $*-o.afm -e ${encoding}.afm \ -t ${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 $*.afm -c $*-c.afm \ -o $*-o.ps -n $$fontname-Ogonki \ -a $*-o.afm -e ${encoding}.afm \ -t ${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 # .afm.enc: composeglyphs.in @echo "Creating $* encoding vector..." $(PERL) ./composeglyphs -e $< -E $*.enc .ps.pfa: ogonki.enc adobe.enc compose.ps @cat $(srcdir)/${encoding}.enc \ $(srcdir)/${targetEncoding}.enc \ $(srcdir)/compose.ps \ $(srcdir)/$*.ps > $@.tmp \ && mv $@.tmp $@ # 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.14/ogonkify/fontname.dat0000644000175000017500000000036107440740402015754 0ustar mhattamhattapcrr 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.14/ogonkify/ptmr-c.afm0000644000175000017500000000561507440740402015351 0ustar mhattamhattaStartFontMetrics 3.0 Comment More composite characters for Times-Roman. Comment by J. Chroboczek 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.14/ogonkify/mac.enc0000644000175000017500000000433707440740402014711 0ustar mhattamhatta%! % 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.14/ogonkify/mac.afm0000644000175000017500000001054307440740402014703 0ustar mhattamhattaStartFontMetrics 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.14/ogonkify/compose.ps0000644000175000017500000001370010735326115015467 0ustar mhattamhatta%! % 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 a2ps-4.14/ogonkify/pcrbo.afm0000644000175000017500000003607607440740402015261 0ustar mhattamhattaStartFontMetrics 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.14/ogonkify/pcrr-o.afm0000644000175000017500000003476210735337331015362 0ustar mhattamhattaStartFontMetrics 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.14/ogonkify/ptmbi-c.afm0000644000175000017500000000565707440740402015510 0ustar mhattamhattaStartFontMetrics 3.0 Comment More composite characters for Times-Roman. Comment by J. Chroboczek 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.14/ogonkify/phvro.afm0000644000175000017500000003617607440740402015313 0ustar mhattamhattaStartFontMetrics 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.14/ogonkify/pcrr.afm0000644000175000017500000003575307440740402015123 0ustar mhattamhattaStartFontMetrics 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.14/ogonkify/phvr-c.afm0000644000175000017500000000604507440740402015344 0ustar mhattamhattaStartFontMetrics 3.0 Comment Composite characters for Croatian, Czech, Hungarian, Polish, Comment Romanian, Slovak and Slovenian glyphs. Comment Primoz Peterlin 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.14/ogonkify/composeglyphs.in0000644000175000017500000003326410735325521016711 0ustar mhattamhatta#!@PERL@ # Create a composite font program. # By J. Chroboczek # # 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 -E $PROGNAME -i -o -c -n -e -t -a -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); $_=; if (! (/^StartFontMetrics.*/)) { die "$afmname is not an Adobe Font Metrics file" ; } header: while () { 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; } $_=; } if ($where eq 'CharMetrics') { while() { 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() { if (/^EndKernData/) { next afmloop ; } } } if ($where eq 'Composites') { compositeloop: while() { 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() { # 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.14/ogonkify/README0000644000175000017500000000164707440740402014343 0ustar mhattamhatta 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.14/ogonkify/pcrb.afm0000644000175000017500000003577007440740402015102 0ustar mhattamhattaStartFontMetrics 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.14/ogonkify/latin1.afm0000644000175000017500000001052407440740402015332 0ustar mhattamhattaStartFontMetrics 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.14/ogonkify/pcrro-o.afm0000644000175000017500000003513710735337331015536 0ustar mhattamhattaStartFontMetrics 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.14/ogonkify/ascii.enc0000644000175000017500000000417007440740402015234 0ustar mhattamhatta%! % 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.14/ogonkify/phvr-o.afm0000644000175000017500000003210710735337331015362 0ustar mhattamhattaStartFontMetrics 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.14/ogonkify/phvb-o.afm0000644000175000017500000003210710735337331015342 0ustar mhattamhattaStartFontMetrics 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.14/ogonkify/phvbo-o.ps0000644000175000017500000000570010735337331015377 0ustar mhattamhatta%! % 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.14/ogonkify/phvro-o.ps0000644000175000017500000000565710735337331015432 0ustar mhattamhatta%! % 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.14/ogonkify/adobe.afm0000644000175000017500000000544507440740402015222 0ustar mhattamhattaStartFontMetrics 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.14/ogonkify/latin3.afm0000644000175000017500000001057207440740402015337 0ustar mhattamhattaStartFontMetrics 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.14/ogonkify/hp.afm0000644000175000017500000001046207440740402014552 0ustar mhattamhattaStartFontMetrics 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.14/ogonkify/phvbo-o.afm0000644000175000017500000003225310735337331015523 0ustar mhattamhattaStartFontMetrics 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.14/ogonkify/latin7.afm0000644000175000017500000001052107440740402015335 0ustar mhattamhattaStartFontMetrics 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.14/ogonkify/ascii.afm0000644000175000017500000000375507440740402015242 0ustar mhattamhattaStartFontMetrics 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.14/ogonkify/ptmri-o.afm0000644000175000017500000003226310735337331015541 0ustar mhattamhattaStartFontMetrics 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.14/ogonkify/cp1250.afm0000644000175000017500000001054207440740402015054 0ustar mhattamhattaStartFontMetrics 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.14/ogonkify/ibmpc.afm0000644000175000017500000001045007440740402015232 0ustar mhattamhattaStartFontMetrics 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.14/ogonkify/helper.ps0000644000175000017500000000133410735326115015301 0ustar mhattamhatta/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.14/ogonkify/latin2.enc0000644000175000017500000000423207440740402015334 0ustar mhattamhatta%! % 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.14/ogonkify/ptmb-o.ps0000644000175000017500000000563010735337331015225 0ustar mhattamhatta%! % 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.14/ogonkify/doc/0000755000175000017500000000000010735337377014236 5ustar mhattamhattaa2ps-4.14/ogonkify/doc/Makefile.am0000644000175000017500000000162010735326124016255 0ustar mhattamhatta## -*- Makefile -*- ## Makefile for the doc subdirectory of ogonkify ## ## ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 3, or (at your option) ## any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 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. ## Process this file with automake to produce Makefile.in man_MANS = ogonkify.1 info_TEXINFOS = ogonkify.texi EXTRA_DIST = $(man_MANS) a2ps-4.14/ogonkify/doc/Makefile.in0000644000175000017500000003623510735337276016312 0ustar mhattamhatta# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 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@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = doc DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/../auxdir/mkinstalldirs CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = INFO_DEPS = $(srcdir)/ogonkify.info TEXINFO_TEX = $(top_srcdir)/../auxdir/texinfo.tex am__TEXINFO_TEX_DIR = $(top_srcdir)/../auxdir 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__installdirs = "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)" man1dir = $(mandir)/man1 NROFF = nroff MANS = $(man_MANS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EXEEXT = @EXEEXT@ EXTENSIONS_FALSE = @EXTENSIONS_FALSE@ EXTENSIONS_TRUE = @EXTENSIONS_TRUE@ IBMFONTS = @IBMFONTS@ 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@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ XMKMF = @XMKMF@ ac_ct_CC = @ac_ct_CC@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ 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@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ 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 \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/Makefile .PRECIOUS: 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__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ 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 .texi.info: restore=: && backupdir="$(am__leading_dot)am$$$$" && \ am__cwd=`pwd` && 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; \ cd $(srcdir); \ else \ rc=$$?; \ cd $(srcdir) && \ $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \ fi; \ rm -rf $$backupdir; exit $$rc .texi.dvi: TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \ $(TEXI2DVI) $< .texi.pdf: TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \ $(TEXI2PDF) $< .texi.html: rm -rf $(@:.html=.htp) if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \ -o $(@:.html=.htp) $<; \ then \ rm -rf $@; \ if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \ mv $(@:.html=) $@; else mv $(@:.html=.htp) $@; fi; \ else \ if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \ rm -rf $(@:.html=); else rm -Rf $(@:.html=.htp) $@; fi; \ exit 1; \ fi $(srcdir)/ogonkify.info: ogonkify.texi ogonkify.dvi: ogonkify.texi ogonkify.pdf: ogonkify.texi ogonkify.html: ogonkify.texi .dvi.ps: TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ $(DVIPS) -o $@ $< uninstall-info-am: @$(PRE_UNINSTALL) @if (install-info --version && \ install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; 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'"; \ install-info --info-dir="$(DESTDIR)$(infodir)" --remove "$(DESTDIR)$(infodir)/$$relfile"; \ 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 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 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.aux ogonkify.cp ogonkify.cps ogonkify.fn ogonkify.fns \ ogonkify.ky ogonkify.kys ogonkify.log ogonkify.pg \ ogonkify.pgs ogonkify.tmp ogonkify.toc ogonkify.tp \ ogonkify.tps ogonkify.vr ogonkify.vrs 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: $(man1_MANS) $(man_MANS) @$(NORMAL_INSTALL) test -z "$(man1dir)" || $(mkdir_p) "$(DESTDIR)$(man1dir)" @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \ l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ for i in $$l2; do \ case "$$i" in \ *.1*) list="$$list $$i" ;; \ esac; \ done; \ for i in $$list; do \ if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \ else file=$$i; fi; \ ext=`echo $$i | sed -e 's/^.*\\.//'`; \ case "$$ext" in \ 1*) ;; \ *) ext='1' ;; \ esac; \ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ inst=`echo $$inst | sed -e 's/^.*\///'`; \ inst=`echo $$inst | sed '$(transform)'`.$$ext; \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \ done uninstall-man1: @$(NORMAL_UNINSTALL) @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \ l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ for i in $$l2; do \ case "$$i" in \ *.1*) list="$$list $$i" ;; \ esac; \ done; \ for i in $$list; do \ ext=`echo $$i | sed -e 's/^.*\\.//'`; \ case "$$ext" in \ 1*) ;; \ *) ext='1' ;; \ esac; \ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ inst=`echo $$inst | sed -e 's/^.*\///'`; \ inst=`echo $$inst | sed '$(transform)'`.$$ext; \ echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \ rm -f "$(DESTDIR)$(man1dir)/$$inst"; \ done tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done $(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: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-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-exec-am: install-info: install-info-am install-info-am: $(INFO_DEPS) @$(NORMAL_INSTALL) test -z "$(infodir)" || $(mkdir_p) "$(DESTDIR)$(infodir)" @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ list='$(INFO_DEPS)'; \ 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 \ relfile=`echo "$$ifile" | sed 's|^.*/||'`; \ echo " $(INSTALL_DATA) '$$ifile' '$(DESTDIR)$(infodir)/$$relfile'"; \ $(INSTALL_DATA) "$$ifile" "$(DESTDIR)$(infodir)/$$relfile"; \ else : ; fi; \ done; \ done @$(POST_INSTALL) @if (install-info --version && \ install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \ list='$(INFO_DEPS)'; \ 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 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-info-am uninstall-man uninstall-man: uninstall-man1 .PHONY: all all-am check check-am clean clean-generic dist-info \ distclean distclean-generic distdir dvi dvi-am html html-am \ info info-am install install-am install-data install-data-am \ install-exec install-exec-am install-info install-info-am \ install-man install-man1 install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-aminfo maintainer-clean-generic mostlyclean \ mostlyclean-aminfo mostlyclean-generic pdf pdf-am ps ps-am \ uninstall uninstall-am uninstall-info-am uninstall-man \ uninstall-man1 # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: a2ps-4.14/ogonkify/doc/ogonkify.texi0000644000175000017500000003665010735326142016754 0ustar mhattamhatta\input texinfo @c -*-texinfo-*- @c %**start of header @setfilename ogonkify.info @settitle Ogonkify @setchapternewpage off @c %**end of header @c Time-stamp: <99/05/14 04:30:20 jec> @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 @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, . 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.14/ogonkify/doc/ogonkify.info0000644000175000017500000003745510735326277016753 0ustar mhattamhattaThis is ogonkify.info, produced by makeinfo version 3.12i 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 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 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 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 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 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:  File: ogonkify.info, Node: genscript, Prev: a2ps, Up: Using Ogonkify 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 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 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 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 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 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 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 Reaching the author ******************* This manual and most of the Ogonkify package were written by Juliusz Chroboczek, . 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: Top276 Node: License866 Node: Using Ogonkify2161 Node: Ghostscript2602 Node: Standard Applications3086 Node: a2ps3571 Node: genscript4003 Node: Adding new characters5548 Node: Composite background6146 Node: AFM files9661 Node: Generated fonts10868 Node: Composite usage12867 Node: Composite example14413 Node: Reaching the author15327  End Tag Table a2ps-4.14/ogonkify/doc/ogonkify.10000644000175000017500000001376510564361717016154 0ustar mhattamhatta.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 , with help from loads of people. a2ps-4.14/ogonkify/pcrbo-c.afm0000644000175000017500000001533407440740402015473 0ustar mhattamhattaStartFontMetrics 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.14/ogonkify/ptmri-c.afm0000644000175000017500000000564607440740402015526 0ustar mhattamhattaStartFontMetrics 4.0 Comment More composite characters for Times-Roman. Comment by J. Chroboczek 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.14/ogonkify/phvb-c.afm0000644000175000017500000000535307440740402015325 0ustar mhattamhattaStartFontMetrics 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.14/ogonkify/pcrro-c.afm0000644000175000017500000001536507440740402015517 0ustar mhattamhattaStartFontMetrics 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.14/ogonkify/latin9.afm0000644000175000017500000001047307440740402015345 0ustar mhattamhattaStartFontMetrics 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.14/ogonkify/latin4.afm0000644000175000017500000001042507440740402015335 0ustar mhattamhattaStartFontMetrics 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.14/ogonkify/phvr.afm0000644000175000017500000003621307440740402015124 0ustar mhattamhattaStartFontMetrics 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.14/ogonkify/pcrb-o.ps0000644000175000017500000000730610735337331015213 0ustar mhattamhatta%! % 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.14/ogonkify/ogonkify.in.in0000644000175000017500000002212310735325521016237 0ustar mhattamhatta#!@PERL@ # Convert the PostScript output of Netscape to use an arbitrary encoding. # Do font remapping if asked for. # By J. Chroboczek # # 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($_=) { print; } else { die "File $ps not found; stopped"; } while() { print; } } sub downloadFont { local($ps)=@_; # print("%%BeginResource: font $ps\n"); # this is not DSC conforming open(PROCSET,$ps); if($_=) { print; } else { die "File $ps not found; stopped"; } while() { 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 -e -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.14/ogonkify/phvro-o.afm0000644000175000017500000003225410735337331015544 0ustar mhattamhattaStartFontMetrics 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.14/ogonkify/latin5.enc0000644000175000017500000000432407440740402015341 0ustar mhattamhatta%! % 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.14/ogonkify/latin6.enc0000644000175000017500000000417407440740402015345 0ustar mhattamhatta%! % 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.14/ogonkify/latin4.enc0000644000175000017500000000420307440740402015334 0ustar mhattamhatta%! % 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.14/ogonkify/ptmr.afm0000644000175000017500000004302607440740402015127 0ustar mhattamhattaStartFontMetrics 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.14/ogonkify/phvr-o.ps0000644000175000017500000000562110735337331015242 0ustar mhattamhatta%! % 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.14/ogonkify/pcrb-o.afm0000644000175000017500000003476610735337331015346 0ustar mhattamhattaStartFontMetrics 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.14/ogonkify/phvb.afm0000644000175000017500000003612307440740402015104 0ustar mhattamhattaStartFontMetrics 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.14/ogonkify/ibmpc.enc0000644000175000017500000000424107440740402015235 0ustar mhattamhatta%! % 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.14/ogonkify/pcrro.afm0000644000175000017500000003612307440740402015272 0ustar mhattamhattaStartFontMetrics 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.14/ogonkify/ptmri-o.ps0000644000175000017500000000562710735337331015424 0ustar mhattamhatta%! % 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.14/ogonkify/ogonki.enc0000644000175000017500000000431307440740402015431 0ustar mhattamhatta%! % 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.14/ogonkify/latin9.enc0000644000175000017500000000425007440740402015343 0ustar mhattamhatta%! % 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.14/ogonkify/latin2.afm0000644000175000017500000001045407440740402015335 0ustar mhattamhattaStartFontMetrics 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.14/ogonkify/phvb-o.ps0000644000175000017500000000565410735337331015230 0ustar mhattamhatta%! % 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.14/ogonkify/aclocal.m40000644000175000017500000007462010735337274015336 0ustar mhattamhatta# generated automatically by aclocal 1.9.6 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005 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. # Copyright (C) 2002, 2003, 2005 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. AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"]) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION so it can be traced. # This function is AC_REQUIREd by AC_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.9.6])]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001, 2003, 2005 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], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005 # 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 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE]) AC_SUBST([$1_FALSE]) 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, 2000, 2001, 2002, 2003, 2004, 2005 # 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 8 # 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", "GCJ", or "OBJC". # 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 ifelse([$1], CC, [depcc="$CC" am_compiler_list=], [$1], CXX, [depcc="$CXX" am_compiler_list=], [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$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'. 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 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 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in 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 ;; none) break ;; esac # 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. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} 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, [ --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH]) ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 # 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 3 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [for mf in $CONFIG_FILES; do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # So let's grep whole file. if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ])# _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. FIXME. This creates each `.P' file that we will # 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" ac_aux_dir="$ac_aux_dir"]) ]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 # 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 12 # 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. # 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.58])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 # test to see if srcdir already configured if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) 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], [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])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) AM_PROG_INSTALL_SH AM_PROG_INSTALL_STRIP AC_REQUIRE([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. 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)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl ]) ]) # 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_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $1 | $1:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001, 2003, 2005 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 install_sh=${install_sh-"$am_aux_dir/install-sh"} AC_SUBST(install_sh)]) # Copyright (C) 2003, 2005 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 2 # 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, 2002, 2003, 2005 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 3 # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo done .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # We grep out `Entering directory' and `Leaving directory' # messages which can occur if `w' ends up in MAKEFLAGS. # In particular we don't look at `^make:' because GNU make might # be invoked under some other name (usually "gmake"), in which # case it prints its new name instead of `make'. if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then am__include=include am__quote= _am_result=GNU fi # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then am__include=.include am__quote="\"" _am_result=BSD fi fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005 # 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 4 # 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 supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # Copyright (C) 2003, 2004, 2005 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_MKDIR_P # --------------- # Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise. # # Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories # created by `make install' are always world readable, even if the # installer happens to have an overly restrictive umask (e.g. 077). # This was a mistake. There are at least two reasons why we must not # use `-m 0755': # - it causes special bits like SGID to be ignored, # - it may be too restrictive (some setups expect 775 directories). # # Do not use -m 0755 and let people choose whatever they expect by # setting umask. # # We cannot accept any implementation of `mkdir' that recognizes `-p'. # Some implementations (such as Solaris 8's) are not thread-safe: if a # parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c' # concurrently, both version can detect that a/ is missing, but only # one can create it and the other will error out. Consequently we # restrict ourselves to GNU make (using the --version option ensures # this.) AC_DEFUN([AM_PROG_MKDIR_P], [if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then # We used to keeping the `.' as first argument, in order to # allow $(mkdir_p) to be used without argument. As in # $(mkdir_p) $(somedir) # where $(somedir) is conditionally defined. However this is wrong # for two reasons: # 1. if the package is installed by a user who cannot write `.' # make install will fail, # 2. the above comment should most certainly read # $(mkdir_p) $(DESTDIR)$(somedir) # so it does not work when $(somedir) is undefined and # $(DESTDIR) is not. # To support the latter case, we have to write # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), # so the `.' trick is pointless. mkdir_p='mkdir -p --' else # On NextStep and OpenStep, the `mkdir' command does not # recognize any option. It will interpret all options as # directories to create, and then abort because `.' already # exists. for d in ./-p ./--version; do test -d $d && rmdir $d done # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. if test -f "$ac_aux_dir/mkinstalldirs"; then mkdir_p='$(mkinstalldirs)' else mkdir_p='$(install_sh) -d' fi fi AC_SUBST([mkdir_p])]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005 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 3 # _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], [AC_FOREACH([_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])]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 # 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 4 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # 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 ( 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 rm -f conftest.file 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 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)]) # Copyright (C) 2001, 2003, 2005 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="\${SHELL} \$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 2005 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 2 # _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. AM_MISSING_PROG([AMTAR], [tar]) m4_if([$1], [v7], [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of `-'. 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 a2ps-4.14/ogonkify/ptmr-o.afm0000644000175000017500000003206110735337331015364 0ustar mhattamhattaStartFontMetrics 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.14/Makefile.am0000644000175000017500000000413010735323024013656 0ustar mhattamhatta## Top level Makefile for a2ps. ## Copyright (C) 1995-2007 Akim Demaille, Miguel Santana and 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 3, or (at your option) ## any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 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. ## Process this file with automake to produce Makefile.in AUTOMAKE_OPTIONS = check-news 1.6.3 dist-bzip2 readme-alpha ## Make sure to drop doc at the end: it causes may problems, so ## let's do the maximum before it SUBDIRS = auxdir m4 etc ps ogonkify \ lib src po tests sheets encoding afm fonts ppd contrib doc man ACLOCAL_AMFLAGS = -I m4 EXTRA_DIST = TODO ANNOUNCE FAQ a2ps.prj arch MAKE_AUTHORS = make-authors.pl ## I shouldn't need this, it looks like a bug in Automake AMTAR = @AMTAR@ AMTARFLAGS = @AMTARFLAGS@ PERL = @PERL@ all-local: FAQ AUTHORS 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_srcdir)/doc a2ps.texi | \ sed -n -f $(top_srcdir)/auxdir/make-faq.sed > FAQ-tmp mv FAQ-tmp FAQ AUTHORS: $(top_srcdir)/doc/translators.txt $(top_srcdir)/doc/$(MAKE_AUTHORS) $(top_srcdir)/sheets/sheets.map cd doc \ && $(PERL) $(MAKE_AUTHORS) > $@-t \ && chmod 644 $@-t mv doc/$@-t $@ a2ps-4.14/configure0000755000175000017500000404377710735337303013566 0ustar mhattamhatta#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.61 for GNU a2ps 4.14. # # Report bugs to . # # Copyright (C) 2007- Akim Demaille, Miguel Santana, Masayuki Hatta # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006 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 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 # PATH needs CR # 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 # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) as_nl=' ' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. 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 echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var fi done # Required to use basename. 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 # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH if test "x$CONFIG_SHELL" = x; then if (eval ":") 2>/dev/null; then as_have_required=yes else as_have_required=no fi if test $as_have_required = yes && (eval ": (as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=\$LINENO as_lineno_2=\$LINENO test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } ") 2> /dev/null; then : else as_candidate_shells= as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. case $as_dir in /*) for as_base in sh bash ksh sh5; do as_candidate_shells="$as_candidate_shells $as_dir/$as_base" done;; esac done IFS=$as_save_IFS for as_shell in $as_candidate_shells $SHELL; do # Try only shells that exist, to save several forks. if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { ("$as_shell") 2> /dev/null <<\_ASEOF 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 : _ASEOF }; then CONFIG_SHELL=$as_shell as_have_required=yes if { "$as_shell" 2> /dev/null <<\_ASEOF 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 : (as_func_return () { (exit $1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = "$1" ); then : else exitcode=1 echo positional parameters were not saved. fi test $exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } _ASEOF }; then break fi fi done if test "x$CONFIG_SHELL" != x; then for as_var in BASH_ENV ENV do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test $as_have_required = no; then echo This script requires a shell more modern than all the echo shells that I found on your system. Please install a echo modern shell, or manually run the script under such a echo shell if you do have one. { (exit 1); exit 1; } fi fi fi (eval "as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0") || { echo No shell found that supports shell functions. echo Please tell autoconf@gnu.org about your system, echo including any error possibly output before this echo message } as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. 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" || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # 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 } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi 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 fi echo >conf$$.file 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 -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' 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=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # 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'" # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','` ;; esac echo=${ECHO-echo} if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then # Yippee, $echo works! : else # Restart under the correct shell. exec $SHELL "$0" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then # used as fallback echo shift cat </dev/null 2>&1 && unset CDPATH if test -z "$ECHO"; then if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... if (echo_test_string=`eval $cmd`) 2>/dev/null && echo_test_string=`eval $cmd` && (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null then break fi done fi if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$dir/echo" break fi done IFS="$lt_save_ifs" if test "X$echo" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. echo='print -r' elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} else # Try using printf. echo='printf %s\n' if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL echo="$CONFIG_SHELL $0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$CONFIG_SHELL $0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "$0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} else # Oops. We lost completely, so just stick with echo. echo=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. ECHO=$echo if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" fi tagnames=${tagnames+${tagnames},}CXX tagnames=${tagnames+${tagnames},}F77 exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, 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= SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME='GNU a2ps' PACKAGE_TARNAME='a2ps' PACKAGE_VERSION='4.14' PACKAGE_STRING='GNU a2ps 4.14' PACKAGE_BUGREPORT='bug-a2ps@gnu.org' # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_header_list= ac_func_list= ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datarootdir datadir sysconfdir sharedstatedir localstatedir includedir oldincludedir docdir infodir htmldir dvidir pdfdir psdir libdir localedir mandir DEFS ECHO_C ECHO_N ECHO_T LIBS build_alias host_alias target_alias INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar LIBVERSION GNU_PACKAGE M4 LN_S PERL CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP GREP EGREP U ANSI2KNR YACC YFLAGS GPERF LEX LEX_OUTPUT_ROOT LEXLIB build build_cpu build_vendor build_os host host_cpu host_vendor host_os SED ECHO AR RANLIB CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL LIBOBJS ALLOCA MKINSTALLDIRS MSGFMT GMSGFMT XGETTEXT MSGMERGE USE_NLS LIBICONV LTLIBICONV INTLLIBS LIBINTL LTLIBINTL POSUB EXTRA_CFLAGS EMACS EMACSLOADPATH lispdir EXTENSIONS_TRUE EXTENSIONS_FALSE PSFONT_PATH file_prog FILE_LINK LPR LPR_QUEUE_OPTION MEDIUM ENCODING COM_gv gv COM_ghostview ghostview COM_DISPLAY COM_gzip gzip COM_bzip bzip COM_bzip2 bzip2 COM_dvips dvips COM_convert convert COM_netscape netscape COM_html2ps html2ps COM_acroread acroread COM_pdf2ps pdf2ps COM_acroread4 COM_distill distill COM_ps2pdf ps2pdf COM_PS2PDF COM_psselect psselect COM_psnup psnup COM_PSUTILS COM_grog grog COM_makeinfo makeinfo COM_tex tex COM_latex latex COM_TEXI COM_LATEX LTLIBOBJS LTALLOCA subdirs' ac_subst_files='' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP YACC YFLAGS CXX CXXFLAGS CCC CXXCPP F77 FFLAGS EMACS EMACSLOADPATH' ac_subdirs_all='ogonkify' # Initialize some variables set by options. ac_init_help= ac_init_version=false # 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' 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=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. 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_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` eval enable_$ac_feature=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_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'` eval enable_$ac_feature=\$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 ;; -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_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/[-.]/_/g'` eval with_$ac_package=\$ac_optarg ;; -without-* | --without-*) ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/[-.]/_/g'` eval with_$ac_package=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 ;; -*) { echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && echo "$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'` { echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi # Be sure to have absolute directory names. 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 do eval ac_val=\$$ac_var case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; } 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 echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 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 .` || { echo "$as_me: error: Working directory cannot be determined" >&2 { (exit 1); exit 1; }; } test "X$ac_ls_di" = "X$ac_pwd_ls_di" || { echo "$as_me: error: pwd does not report name of working directory" >&2 { (exit 1); exit 1; }; } # 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 -- "$0" || $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$0" : 'X\(//\)[^/]' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X"$0" | 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 .." { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2 { (exit 1); exit 1; }; } 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.14 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] --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.14:";; esac cat <<\_ACEOF Optional Features: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --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) --disable-rpath do not hardcode runtime library paths --disable-nls do not use Native Language Support --enable-warnings enable compiler warnings --enable-paths hard code the path of the tools --disable-extensions small foot print installation Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-pic try to use only PIC/non-PIC objects [default=use both] --with-tags[=TAGS] include additional configurations [automatic] --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-medium=medium specify the default medium (A4, Letter, Legal, etc.) default=A4 --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 if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor YACC The `Yet Another C 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. CXX C++ compiler command CXXFLAGS C++ compiler flags CXXCPP C++ preprocessor F77 Fortran 77 compiler command FFLAGS Fortran 77 compiler flags 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 . _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" || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`echo "$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 guested configure. 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 echo "$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.14 generated by GNU Autoconf 2.61 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. Copyright (C) 2007- Akim Demaille, Miguel Santana, Masayuki Hatta _ACEOF exit fi 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.14, which was generated by GNU Autoconf 2.61. Invocation command line was $ $0 $@ _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 test -z "$as_dir" && as_dir=. echo "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=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; 2) ac_configure_args1="$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 ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac done done $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export 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=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX 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_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( *) $as_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 cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------------- ## ## File substitutions. ## ## ------------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo cat confdefs.h echo fi test "$ac_signal" != 0 && echo "$as_me: caught signal $ac_signal" echo "$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'; { (exit 1); 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 # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer explicitly selected file to automatically selected ones. if test -n "$CONFIG_SITE"; then set x "$CONFIG_SITE" elif test "x$prefix" != xNONE; then set x "$prefix/share/config.site" "$prefix/etc/config.site" else set x "$ac_default_prefix/share/config.site" \ "$ac_default_prefix/etc/config.site" fi shift for ac_site_file do if test -r "$ac_site_file"; then { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" 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. if test -f "$cache_file"; then { echo "$as_me:$LINENO: loading cache $cache_file" >&5 echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { echo "$as_me:$LINENO: creating cache $cache_file" >&5 echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi ac_header_list="$ac_header_list sys/time.h" ac_header_list="$ac_header_list unistd.h" ac_func_list="$ac_func_list alarm" # 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,) { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 echo "$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 { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ac_cache_corrupted=: fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`echo "$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. *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } 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_aux_dir= for ac_dir in auxdir "$srcdir"/auxdir; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in auxdir \"$srcdir\"/auxdir" >&5 echo "$as_me: error: cannot find install-sh or install.sh in auxdir \"$srcdir\"/auxdir" >&2;} { (exit 1); exit 1; }; } 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. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Initialize automake am__api_version="1.9" # 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. { echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. 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 { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$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 ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi done done ;; esac done IFS=$as_save_IFS fi if test "${ac_cv_path_install+set}" = set; 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 { echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$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' { echo "$as_me:$LINENO: checking whether build environment is sane" >&5 echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6; } # Just in case sleep 1 echo timestamp > conftest.file # 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 ( 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 rm -f conftest.file 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". { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&5 echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&2;} { (exit 1); exit 1; }; } fi test "$2" = conftest.file ) then # Ok. : else { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! Check your system clock" >&5 echo "$as_me: error: newly created file is older than distributed files! Check your system clock" >&2;} { (exit 1); exit 1; }; } fi { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } 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 $. echo might interpret backslashes. # By default was `s,x,x', remove it if useless. cat <<\_ACEOF >conftest.sed s/[\\$]/&&/g;s/;s,x,x,$// _ACEOF program_transform_name=`echo $program_transform_name | sed -f conftest.sed` rm -f conftest.sed # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then # We used to keeping the `.' as first argument, in order to # allow $(mkdir_p) to be used without argument. As in # $(mkdir_p) $(somedir) # where $(somedir) is conditionally defined. However this is wrong # for two reasons: # 1. if the package is installed by a user who cannot write `.' # make install will fail, # 2. the above comment should most certainly read # $(mkdir_p) $(DESTDIR)$(somedir) # so it does not work when $(somedir) is undefined and # $(DESTDIR) is not. # To support the latter case, we have to write # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), # so the `.' trick is pointless. mkdir_p='mkdir -p --' else # On NextStep and OpenStep, the `mkdir' command does not # recognize any option. It will interpret all options as # directories to create, and then abort because `.' already # exists. for d in ./-p ./--version; do test -d $d && rmdir $d done # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. if test -f "$ac_aux_dir/mkinstalldirs"; then mkdir_p='$(mkinstalldirs)' else mkdir_p='$(install_sh) -d' fi fi 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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_AWK+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $AWK" >&5 echo "${ECHO_T}$AWK" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$AWK" && break done { echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; } set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } SET_MAKE= else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 # test to see if srcdir already configured if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} { (exit 1); exit 1; }; } 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.14' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # 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"} install_sh=${install_sh-"$am_aux_dir/install-sh"} # 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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $STRIP" >&5 echo "${ECHO_T}$STRIP" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 echo "${ECHO_T}$ac_ct_STRIP" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. AMTAR=${AMTAR-"${am_missing_run}tar"} am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' ac_config_headers="$ac_config_headers config.h" # Specify the liba2ps version number LIBVERSION=1:0:0 GNU_PACKAGE="GNU $PACKAGE" cat >>confdefs.h <<_ACEOF #define GNU_PACKAGE "$GNU_PACKAGE" _ACEOF # Available translations ALL_LINGUAS="ca cs da de es fr it ja ko nl no pl pt ru sl sv tr" ## --------------------- ## ## 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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_AWK+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $AWK" >&5 echo "${ECHO_T}$AWK" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$AWK" && break done for ac_prog in gm4 gnum4 m4 do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_M4+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $M4 in [\\/]* | ?:[\\/]*) ac_cv_path_M4="$M4" # 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_M4="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi M4=$ac_cv_path_M4 if test -n "$M4"; then { echo "$as_me:$LINENO: result: $M4" >&5 echo "${ECHO_T}$M4" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$M4" && break done test -n "$M4" || M4="m4" { echo "$as_me:$LINENO: checking whether m4 supports frozen files" >&5 echo $ECHO_N "checking whether m4 supports frozen files... $ECHO_C" >&6; } if test "${ac_cv_prog_gnu_m4+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_prog_gnu_m4=no if test x"$M4" != x; then case `$M4 --help < /dev/null 2>&1` in *reload-state*) ac_cv_prog_gnu_m4=yes ;; esac fi fi { echo "$as_me:$LINENO: result: $ac_cv_prog_gnu_m4" >&5 echo "${ECHO_T}$ac_cv_prog_gnu_m4" >&6; } # 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. { echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. 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 { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$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 ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi done done ;; esac done IFS=$as_save_IFS fi if test "${ac_cv_path_install+set}" = set; 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 { echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$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' { echo "$as_me:$LINENO: checking whether ln -s works" >&5 echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } else { echo "$as_me:$LINENO: result: no, using $LN_S" >&5 echo "${ECHO_T}no, using $LN_S" >&6; } fi { echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; } set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } SET_MAKE= else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi 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. # Extract the first word of "$perl_name", so it can be a program name with args. set dummy $perl_name; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_PERL+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $PERL" >&5 echo "${ECHO_T}$PERL" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "$PERL" != "no" \ && ( $PERL -e 'require 5.003' ) > /dev/null 2>&1; then found=yes break fi done if test $found = no; then PERL="$missing_dir/missing perl" { echo "$as_me:$LINENO: WARNING: *** 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. " >&5 echo "$as_me: WARNING: *** 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. " >&2;} 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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. echo "$as_me:$LINENO: checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out 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. { echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; } ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # # List of possible output files, starting from the most likely. # The algorithm is not robust to junk in `.', hence go to wildcards (a.*) # only as a last resort. b.out is created by i960 compilers. ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out' # # The IRIX 6 linker writes into existing files which may not be # executable, retaining their permissions. Remove them first so a # subsequent execution test works. ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link_default") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; 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 | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && 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 ac_file='' fi { echo "$as_me:$LINENO: result: $ac_file" >&5 echo "${ECHO_T}$ac_file" >&6; } if test -z "$ac_file"; then echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: C compiler cannot create executables See \`config.log' for more details." >&5 echo "$as_me: error: C compiler cannot create executables See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } fi ac_exeext=$ac_cv_exeext # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { echo "$as_me:$LINENO: checking whether the C compiler works" >&5 echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; } # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { echo "$as_me:$LINENO: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi fi fi { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } rm -f a.out a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; } { echo "$as_me:$LINENO: result: $cross_compiling" >&5 echo "${ECHO_T}$cross_compiling" >&6; } { echo "$as_me:$LINENO: checking for suffix of executables" >&5 echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; } if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; 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 | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest$ac_cv_exeext { echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 echo "${ECHO_T}$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT { echo "$as_me:$LINENO: checking for suffix of object files" >&5 echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; } if test "${ac_cv_objext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; 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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; 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 ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 echo "${ECHO_T}$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; } GCC=`test $ac_compiler_gnu = yes && echo yes` ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS="" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; 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 { echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*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 don't provoke an error unfortunately, instead are silently treated as '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's necessary to write '\x00'==0 to get something that's 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 **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _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" rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_c89=$ac_arg else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { echo "$as_me:$LINENO: result: none needed" >&5 echo "${ECHO_T}none needed" >&6; } ;; xno) { echo "$as_me:$LINENO: result: unsupported" >&5 echo "${ECHO_T}unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; 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 DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo done .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # We grep out `Entering directory' and `Leaving directory' # messages which can occur if `w' ends up in MAKEFLAGS. # In particular we don't look at `^make:' because GNU make might # be invoked under some other name (usually "gmake"), in which # case it prints its new name instead of `make'. if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then am__include=include am__quote= _am_result=GNU fi # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then am__include=.include am__quote="\"" _am_result=BSD fi fi { echo "$as_me:$LINENO: result: $_am_result" >&5 echo "${ECHO_T}$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi depcc="$CC" am_compiler_list= { echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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'. 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 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 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in 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 ;; none) break ;; esac # 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. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} 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 { echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 echo "${ECHO_T}$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 { echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&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+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-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. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # 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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f 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 { echo "$as_me:$LINENO: result: $CPP" >&5 echo "${ECHO_T}$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. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # 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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } 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 { echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; } if test "${ac_cv_path_GREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Extract the first word of "grep ggrep" to use in msg output if test -z "$GREP"; then set dummy grep ggrep; ac_prog_name=$2 if test "${ac_cv_path_GREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. 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" { test -f "$ac_path_GREP" && $as_test_x "$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 echo $ECHO_N "0123456789$ECHO_C" >"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" "$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 ac_count=`expr $ac_count + 1` 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 fi GREP="$ac_cv_path_GREP" if test -z "$GREP"; then { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_GREP=$GREP fi fi { echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 echo "${ECHO_T}$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { echo "$as_me:$LINENO: checking for egrep" >&5 echo $ECHO_N "checking for egrep... $ECHO_C" >&6; } if test "${ac_cv_path_EGREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else # Extract the first word of "egrep" to use in msg output if test -z "$EGREP"; then set dummy egrep; ac_prog_name=$2 if test "${ac_cv_path_EGREP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. 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" { test -f "$ac_path_EGREP" && $as_test_x "$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 echo $ECHO_N "0123456789$ECHO_C" >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" echo '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 ac_count=`expr $ac_count + 1` 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 fi EGREP="$ac_cv_path_EGREP" if test -z "$EGREP"; then { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_EGREP=$EGREP fi fi fi { echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 echo "${ECHO_T}$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { echo "$as_me:$LINENO: checking for AIX" >&5 echo $ECHO_N "checking for AIX... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef _AIX yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1; then { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } cat >>confdefs.h <<\_ACEOF #define _ALL_SOURCE 1 _ACEOF else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi rm -f conftest* { echo "$as_me:$LINENO: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi { echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 echo "${ECHO_T}$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done if test "${ac_cv_header_minix_config_h+set}" = set; then { echo "$as_me:$LINENO: checking for minix/config.h" >&5 echo $ECHO_N "checking for minix/config.h... $ECHO_C" >&6; } if test "${ac_cv_header_minix_config_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi { echo "$as_me:$LINENO: result: $ac_cv_header_minix_config_h" >&5 echo "${ECHO_T}$ac_cv_header_minix_config_h" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking minix/config.h usability" >&5 echo $ECHO_N "checking minix/config.h usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking minix/config.h presence" >&5 echo $ECHO_N "checking minix/config.h presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: minix/config.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: minix/config.h: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: minix/config.h: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: minix/config.h: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: minix/config.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: minix/config.h: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: minix/config.h: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: minix/config.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: minix/config.h: see the Autoconf documentation" >&5 echo "$as_me: WARNING: minix/config.h: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: minix/config.h: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: minix/config.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: minix/config.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: minix/config.h: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: minix/config.h: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: minix/config.h: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------- ## ## Report this to bug-a2ps@gnu.org ## ## ------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { echo "$as_me:$LINENO: checking for minix/config.h" >&5 echo $ECHO_N "checking for minix/config.h... $ECHO_C" >&6; } if test "${ac_cv_header_minix_config_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_header_minix_config_h=$ac_header_preproc fi { echo "$as_me:$LINENO: result: $ac_cv_header_minix_config_h" >&5 echo "${ECHO_T}$ac_cv_header_minix_config_h" >&6; } fi if test $ac_cv_header_minix_config_h = yes; then MINIX=yes else MINIX= fi if test "$MINIX" = yes; then cat >>confdefs.h <<\_ACEOF #define _POSIX_SOURCE 1 _ACEOF cat >>confdefs.h <<\_ACEOF #define _POSIX_1_SOURCE 2 _ACEOF cat >>confdefs.h <<\_ACEOF #define _MINIX 1 _ACEOF fi { echo "$as_me:$LINENO: checking for strerror in -lcposix" >&5 echo $ECHO_N "checking for strerror in -lcposix... $ECHO_C" >&6; } if test "${ac_cv_lib_cposix_strerror+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lcposix $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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. */ #ifdef __cplusplus extern "C" #endif char strerror (); int main () { return strerror (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_cposix_strerror=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_cposix_strerror=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_cposix_strerror" >&5 echo "${ECHO_T}$ac_cv_lib_cposix_strerror" >&6; } if test $ac_cv_lib_cposix_strerror = yes; then LIBS="$LIBS -lcposix" 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 { echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&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+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-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. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # 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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f 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 { echo "$as_me:$LINENO: result: $CPP" >&5 echo "${ECHO_T}$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. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # 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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } 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 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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. echo "$as_me:$LINENO: checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; } GCC=`test $ac_compiler_gnu = yes && echo yes` ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS="" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; 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 { echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*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 don't provoke an error unfortunately, instead are silently treated as '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's necessary to write '\x00'==0 to get something that's 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 **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _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" rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_c89=$ac_arg else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { echo "$as_me:$LINENO: result: none needed" >&5 echo "${ECHO_T}none needed" >&6; } ;; xno) { echo "$as_me:$LINENO: result: unsupported" >&5 echo "${ECHO_T}unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;; 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 depcc="$CC" am_compiler_list= { echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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'. 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 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 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in 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 ;; none) break ;; esac # 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. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} 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 { echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 echo "${ECHO_T}$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 am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc { echo "$as_me:$LINENO: checking for function prototypes" >&5 echo $ECHO_N "checking for function prototypes... $ECHO_C" >&6; } if test "$am_cv_prog_cc_stdc" != no; then { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } cat >>confdefs.h <<\_ACEOF #define PROTOTYPES 1 _ACEOF U= ANSI2KNR= else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } U=_ ANSI2KNR=./ansi2knr # Ensure some checks needed by ansi2knr itself. { echo "$as_me:$LINENO: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi { echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 echo "${ECHO_T}$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi for ac_header in string.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------- ## ## Report this to bug-a2ps@gnu.org ## ## ------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done 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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_YACC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_YACC="$ac_prog" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $YACC" >&5 echo "${ECHO_T}$YACC" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$YACC" && break done test -n "$YACC" || YACC="yacc" { echo "$as_me:$LINENO: checking how to suppress newlines using echo" >&5 echo $ECHO_N "checking how to suppress newlines using echo... $ECHO_C" >&6; } if test "${fp_cv_prog_echo_nonl+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then fp_cv_prog_echo_nonl=no else fp_cv_prog_echo_nonl=option fi else fp_cv_prog_echo_nonl=escape fi fi { echo "$as_me:$LINENO: result: $fp_cv_prog_echo_nonl" >&5 echo "${ECHO_T}$fp_cv_prog_echo_nonl" >&6; } test $fp_cv_prog_echo_nonl = no \ && echo 2>&1 "WARNING: \`echo' not powerful enough for \`make check'" case $fp_cv_prog_echo_nonl in no) ECHO_N= ECHO_C= ;; option) ECHO_N=-n ECHO_C= ;; escape) ECHO_N= ECHO_C='\c' ;; esac # Extract the first word of "gperf", so it can be a program name with args. set dummy gperf; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_GPERF+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $GPERF in [\\/]* | ?:[\\/]*) ac_cv_path_GPERF="$GPERF" # 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_GPERF="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GPERF" && ac_cv_path_GPERF="no" ;; esac fi GPERF=$ac_cv_path_GPERF if test -n "$GPERF"; then { echo "$as_me:$LINENO: result: $GPERF" >&5 echo "${ECHO_T}$GPERF" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "$GPERF" = no; then { { echo "$as_me:$LINENO: error: Could not find gperf" >&5 echo "$as_me: error: Could not find gperf" >&2;} { (exit 1); exit 1; }; } fi min_gperf_version=2.7 { echo "$as_me:$LINENO: checking for gperf - version >= $min_gperf_version" >&5 echo $ECHO_N "checking for gperf - version >= $min_gperf_version... $ECHO_C" >&6; } gperf_major_version=`$GPERF --version | \ sed 's/GNU gperf \([0-9]*\).\([0-9]*\)/\1/'` gperf_minor_version=`$GPERF --version | \ sed 's/GNU gperf \([0-9]*\).\([0-9]*\)/\2/'` no_gperf="" if test "$cross_compiling" = yes; then /bin/true else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include static char* my_strdup (char *str) { char *new_str; if (str) { new_str = malloc ((strlen (str) + 1) * sizeof(char)); strcpy (new_str, str); } else new_str = NULL; return new_str; } int main () { char *tmp_version; int major; int minor; /* HP/UX 9 (%@#!) writes to sscanf strings */ tmp_version = my_strdup("$min_gperf_version"); if (sscanf(tmp_version, "%d.%d", &major, &minor) != 2) { printf ("%s, bad version string\n", "$min_gperf_version"); exit (1); } if (($gperf_major_version > major) || (($gperf_major_version == major) && ($gperf_minor_version >= minor))) { return 0; } else { printf ("\n"); printf ("*** An old version of gperf ($gperf_major_version.$gperf_minor_version) was found.\n"); printf ("*** You need a version of gperf newer than %d.%d.%d. The latest version of\n", major, minor); printf ("*** gperf is always available from ftp://ftp.gnu.org.\n"); printf ("***\n"); return 1; } } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) no_gperf=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi if test "x$no_gperf" = x ; then { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi missing_dir=`cd $ac_aux_dir && pwd` GPERF=${GPERF-"${am_missing_run}gperf"} # 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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_LEX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_LEX="$ac_prog" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $LEX" >&5 echo "${ECHO_T}$LEX" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$LEX" && break done test -n "$LEX" || LEX="${am_missing_run}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_LEX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_LEX="$ac_prog" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $LEX" >&5 echo "${ECHO_T}$LEX" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$LEX" && break done test -n "$LEX" || LEX=":" if test "x$LEX" != "x:"; then cat >conftest.l <<_ACEOF %% a { ECHO; } b { REJECT; } c { yymore (); } d { yyless (1); } e { yyless (input () != 0); } f { unput (yytext[0]); } . { BEGIN INITIAL; } %% #ifdef YYTEXT_POINTER extern char *yytext; #endif int main (void) { return ! yylex () + ! yywrap (); } _ACEOF { (ac_try="$LEX conftest.l" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$LEX conftest.l") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { echo "$as_me:$LINENO: checking lex output file root" >&5 echo $ECHO_N "checking lex output file root... $ECHO_C" >&6; } if test "${ac_cv_prog_lex_root+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 else { { echo "$as_me:$LINENO: error: cannot find output from $LEX; giving up" >&5 echo "$as_me: error: cannot find output from $LEX; giving up" >&2;} { (exit 1); exit 1; }; } fi fi { echo "$as_me:$LINENO: result: $ac_cv_prog_lex_root" >&5 echo "${ECHO_T}$ac_cv_prog_lex_root" >&6; } LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root if test -z "${LEXLIB+set}"; then { echo "$as_me:$LINENO: checking lex library" >&5 echo $ECHO_N "checking lex library... $ECHO_C" >&6; } if test "${ac_cv_lib_lex+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_save_LIBS=$LIBS ac_cv_lib_lex='none needed' for ac_lib in '' -lfl -ll; do LIBS="$ac_lib $ac_save_LIBS" cat >conftest.$ac_ext <<_ACEOF `cat $LEX_OUTPUT_ROOT.c` _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_lex=$ac_lib else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext test "$ac_cv_lib_lex" != 'none needed' && break done LIBS=$ac_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_lex" >&5 echo "${ECHO_T}$ac_cv_lib_lex" >&6; } test "$ac_cv_lib_lex" != 'none needed' && LEXLIB=$ac_cv_lib_lex fi { echo "$as_me:$LINENO: checking whether yytext is a pointer" >&5 echo $ECHO_N "checking whether yytext is a pointer... $ECHO_C" >&6; } if test "${ac_cv_prog_lex_yytext_pointer+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # 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 ac_save_LIBS=$LIBS LIBS="$LEXLIB $ac_save_LIBS" cat >conftest.$ac_ext <<_ACEOF #define YYTEXT_POINTER 1 `cat $LEX_OUTPUT_ROOT.c` _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_prog_lex_yytext_pointer=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_prog_lex_yytext_pointer" >&5 echo "${ECHO_T}$ac_cv_prog_lex_yytext_pointer" >&6; } if test $ac_cv_prog_lex_yytext_pointer = yes; then cat >>confdefs.h <<\_ACEOF #define YYTEXT_POINTER 1 _ACEOF fi rm -f conftest.l $LEX_OUTPUT_ROOT.c fi if test "$LEX" = lex; then LEX="$missing_dir/missing flex" LEX_OUTPUT_ROOT=lex.yy fi # Libtool. By default, don't do shared libs, liba2ps is not widely used. # Check whether --enable-shared was given. if test "${enable_shared+set}" = set; 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 enable_shared=no fi # Check whether --enable-static was given. if test "${enable_static+set}" = set; 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 enable_static=yes fi # Check whether --enable-fast-install was given. if test "${enable_fast_install+set}" = set; 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 enable_fast_install=yes fi # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} { (exit 1); exit 1; }; } { echo "$as_me:$LINENO: checking build system type" >&5 echo $ECHO_N "checking build system type... $ECHO_C" >&6; } if test "${ac_cv_build+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 && { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 echo "$as_me: error: cannot guess build type; you must specify one" >&2;} { (exit 1); exit 1; }; } ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} { (exit 1); exit 1; }; } fi { echo "$as_me:$LINENO: result: $ac_cv_build" >&5 echo "${ECHO_T}$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 echo "$as_me: error: invalid value of canonical build" >&2;} { (exit 1); exit 1; }; };; 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 { echo "$as_me:$LINENO: checking host system type" >&5 echo $ECHO_N "checking host system type... $ECHO_C" >&6; } if test "${ac_cv_host+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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` || { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} { (exit 1); exit 1; }; } fi fi { echo "$as_me:$LINENO: result: $ac_cv_host" >&5 echo "${ECHO_T}$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 echo "$as_me: error: invalid value of canonical host" >&2;} { (exit 1); exit 1; }; };; 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 { echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6; } if test "${lt_cv_path_SED+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # 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 { test -f "$as_dir/$lt_ac_prog$ac_exec_ext" && $as_test_x "$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 $lt_ac_count -gt 10 && 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 fi SED=$lt_cv_path_SED { echo "$as_me:$LINENO: result: $SED" >&5 echo "${ECHO_T}$SED" >&6; } # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { echo "$as_me:$LINENO: checking for ld used by $CC" >&5 echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&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 "$with_gnu_ld" = yes; then { echo "$as_me:$LINENO: checking for GNU ld" >&5 echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; } else { echo "$as_me:$LINENO: checking for non-GNU ld" >&5 echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; } fi if test "${lt_cv_path_LD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 &5 echo "${ECHO_T}$LD" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} { (exit 1); exit 1; }; } { echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; } if test "${lt_cv_prog_gnu_ld+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld { echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6; } if test "${lt_cv_ld_reload_flag+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_ld_reload_flag='-r' fi { echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 echo "${ECHO_T}$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 darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac { echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5 echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6; } if test "${lt_cv_path_NM+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) 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 test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm fi fi { echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 echo "${ECHO_T}$lt_cv_path_NM" >&6; } NM="$lt_cv_path_NM" { echo "$as_me:$LINENO: checking how to recognize dependent libraries" >&5 echo $ECHO_N "checking how to recognize dependent libraries... $ECHO_C" >&6; } if test "${lt_cv_deplibs_check_method+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 # which 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 aix4* | aix5*) 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='/usr/bin/file -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 lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) 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=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file 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]) 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 Linux ELF. linux* | k*bsd*-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=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; nto-qnx*) lt_cv_deplibs_check_method=unknown ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; 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 ;; 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 ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; esac fi { echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6; } 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 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 whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then enableval=$enable_libtool_lock; fi test "x$enable_libtool_lock" != xno && 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 which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '#line 7300 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file 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* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|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" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*) 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" { echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6; } if test "${lt_cv_cc_needs_belf+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then lt_cv_cc_needs_belf=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 lt_cv_cc_needs_belf=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ 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 { echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6; } if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) LD="${LD-ld} -64" ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" for ac_header in dlfcn.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------- ## ## Report this to bug-a2ps@gnu.org ## ## ------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -z "$CXX"; then if test -n "$CCC"; then CXX=$CCC else if test -n "$ac_tool_prefix"; then for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC 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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then { echo "$as_me:$LINENO: result: $CXX" >&5 echo "${ECHO_T}$CXX" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CXX="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then { echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 echo "${ECHO_T}$ac_ct_CXX" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$ac_ct_CXX" && break done if test "x$ac_ct_CXX" = x; then CXX="g++" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX fi fi fi fi # Provide some information about the compiler. echo "$as_me:$LINENO: checking for C++ compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6; } if test "${ac_cv_cxx_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi { echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6; } GXX=`test $ac_compiler_gnu = yes && echo yes` ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS { echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6; } if test "${ac_cv_prog_cxx_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cxx_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CXXFLAGS="" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cxx_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi { echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6; } if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu depcc="$CXX" am_compiler_list= { echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; } if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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'. 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_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi 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 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in 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 ;; none) break ;; esac # 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. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} 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_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi { echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5 echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6; } CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu { echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5 echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6; } if test -z "$CXXCPP"; then if test "${ac_cv_prog_CXXCPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CXXCPP needs to be expanded for CXXCPP in "$CXX -E" "/lib/cpp" do ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # 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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CXXCPP=$CXXCPP fi CXXCPP=$ac_cv_prog_CXXCPP else ac_cv_prog_CXXCPP=$CXXCPP fi { echo "$as_me:$LINENO: result: $CXXCPP" >&5 echo "${ECHO_T}$CXXCPP" >&6; } ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # 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 >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu fi ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn 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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$F77"; then ac_cv_prog_F77="$F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_F77="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi F77=$ac_cv_prog_F77 if test -n "$F77"; then { echo "$as_me:$LINENO: result: $F77" >&5 echo "${ECHO_T}$F77" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$F77" && break done fi if test -z "$F77"; then ac_ct_F77=$F77 for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_F77"; then ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_F77="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_F77=$ac_cv_prog_ac_ct_F77 if test -n "$ac_ct_F77"; then { echo "$as_me:$LINENO: result: $ac_ct_F77" >&5 echo "${ECHO_T}$ac_ct_F77" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$ac_ct_F77" && break done if test "x$ac_ct_F77" = x; then F77="" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac F77=$ac_ct_F77 fi fi # Provide some information about the compiler. echo "$as_me:$LINENO: checking for Fortran 77 compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } rm -f a.out # If we don't use `.F' as extension, the preprocessor is not run on the # input file. (Note that this only needs to work for GNU compilers.) ac_save_ext=$ac_ext ac_ext=F { echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5 echo $ECHO_N "checking whether we are using the GNU Fortran 77 compiler... $ECHO_C" >&6; } if test "${ac_cv_f77_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF program main #ifndef __GNUC__ choke me #endif end _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_f77_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_f77_compiler_gnu=$ac_compiler_gnu fi { echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6; } ac_ext=$ac_save_ext ac_test_FFLAGS=${FFLAGS+set} ac_save_FFLAGS=$FFLAGS FFLAGS= { echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5 echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6; } if test "${ac_cv_prog_f77_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else FFLAGS=-g cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_f77_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_f77_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_f77_g=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5 echo "${ECHO_T}$ac_cv_prog_f77_g" >&6; } if test "$ac_test_FFLAGS" = set; then FFLAGS=$ac_save_FFLAGS elif test $ac_cv_prog_f77_g = yes; then if test "x$ac_cv_f77_compiler_gnu" = xyes; then FFLAGS="-g -O2" else FFLAGS="-g" fi else if test "x$ac_cv_f77_compiler_gnu" = xyes; then FFLAGS="-O2" else FFLAGS= fi fi G77=`test $ac_compiler_gnu = yes && echo yes` 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 # Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! # find the maximum length of command line arguments { echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6; } if test "${lt_cv_sys_max_cmd_len+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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*) # 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; ;; 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; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # 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 ;; 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"; 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 SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \ = "XX$teststring") >/dev/null 2>&1 && new_result=`expr "X$teststring" : ".*" 2>&1` && lt_cv_sys_max_cmd_len=$new_result && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done 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 { echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6; } else { echo "$as_me:$LINENO: result: none" >&5 echo "${ECHO_T}none" >&6; } fi # Check for command to grab the raw symbol name followed by C symbol from nm. { echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5 echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6; } if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # 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]*\)' # Transform an extracted symbol line into a proper C declaration lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32*) symcode='[ABCDGISTW]' ;; hpux*) # Its linker distinguishes data from code symbols if test "$host_cpu" = ia64; then symcode='[ABCDEGRST]' fi lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ;; linux* | k*bsd*-gnu) if test "$host_cpu" = ia64; then symcode='[ABCDGIRSTW]' lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" 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 # 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 # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac # Try without a prefix undercore, 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. lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Now try to grab the symbols. nlist=conftest.nm if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5 (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && 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 < conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' cat <> conftest.$ac_ext #if defined (__STDC__) && __STDC__ # define lt_ptr_t void * #else # define lt_ptr_t char * # define const #endif /* The mapping between symbol names and symbols. */ const struct { const char *name; lt_ptr_t address; } lt_preloaded_symbols[] = { EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext cat <<\EOF >> conftest.$ac_ext {0, (lt_ptr_t) 0} }; #ifdef __cplusplus } #endif EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS="$lt_save_LIBS" CFLAGS="$lt_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 -f conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; 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 { echo "$as_me:$LINENO: result: failed" >&5 echo "${ECHO_T}failed" >&6; } else { echo "$as_me:$LINENO: result: ok" >&5 echo "${ECHO_T}ok" >&6; } fi { echo "$as_me:$LINENO: checking for objdir" >&5 echo $ECHO_N "checking for objdir... $ECHO_C" >&6; } if test "${lt_cv_objdir+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 { echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 echo "${ECHO_T}$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir 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 "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='sed -e 1s/^X//' 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 avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Constants: rm="rm -f" # Global variables: default_ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a ltmain="$ac_aux_dir/ltmain.sh" ofile="$default_ofile" with_gnu_ld="$lt_cv_prog_gnu_ld" 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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_AR+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AR="${ac_tool_prefix}ar" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $AR" >&5 echo "${ECHO_T}$AR" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_AR+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_AR="ar" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 echo "${ECHO_T}$ac_ct_AR" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi else AR="$ac_cv_prog_AR" fi 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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $RANLIB" >&5 echo "${ECHO_T}$RANLIB" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_RANLIB="ranlib" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 echo "${ECHO_T}$ac_ct_RANLIB" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" 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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $STRIP" >&5 echo "${ECHO_T}$STRIP" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 echo "${ECHO_T}$ac_ct_STRIP" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&5 echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools whose name does not start with the host triplet. If you think this configuration is useful to you, please write to autoconf@gnu.org." >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru test -z "$AS" && AS=as test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$DLLTOOL" && DLLTOOL=dlltool test -z "$LD" && LD=ld test -z "$LN_S" && LN_S="ln -s" test -z "$MAGIC_CMD" && MAGIC_CMD=file test -z "$NM" && NM=nm test -z "$SED" && SED=sed test -z "$OBJDUMP" && OBJDUMP=objdump test -z "$RANLIB" && RANLIB=: test -z "$STRIP" && STRIP=: test -z "$ac_objext" && ac_objext=o # 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 openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # Only perform the check for file, if the check method requires it case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then { echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6; } if test "${lt_cv_path_MAGIC_CMD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 <&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 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 { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 echo "${ECHO_T}$MAGIC_CMD" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then { echo "$as_me:$LINENO: checking for file" >&5 echo $ECHO_N "checking for file... $ECHO_C" >&6; } if test "${lt_cv_path_MAGIC_CMD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 <&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 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 { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 echo "${ECHO_T}$MAGIC_CMD" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi else MAGIC_CMD=: fi fi fi ;; esac enable_dlopen=no enable_win32_dll=no # Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then enableval=$enable_libtool_lock; fi test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Check whether --with-pic was given. if test "${with_pic+set}" = set; then withval=$with_pic; pic_mode="$withval" else pic_mode=default fi test -z "$pic_mode" && pic_mode=default # Use C for the default configuration in the libtool script tagname= 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 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 conftest* lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag=' -fno-builtin' { echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6; } if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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" # 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:9569: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:9573: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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 { echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; 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= { echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; } if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi ;; amigaos*) # 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' ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2*) # 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' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; 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 ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; hpux*) # 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='-fPIC' ;; esac ;; *) lt_prog_compiler_pic='-fPIC' ;; 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 "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic='-qnocommon' lt_prog_compiler_wl='-Wl,' ;; esac ;; mingw* | cygwin* | pw32* | os2*) # 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' ;; 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' ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; linux* | k*bsd*-gnu) case $cc_basename in icc* | ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # 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' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; *Sun\ F*) # 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='' ;; esac ;; esac ;; 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*) 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 { echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 echo "${ECHO_T}$lt_prog_compiler_pic" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then { echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6; } if test "${lt_prog_compiler_pic_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_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" # 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:9859: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:9863: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works=yes fi fi $rm conftest* fi { echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6; } if test x"$lt_prog_compiler_pic_works" = xyes; 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 case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" { echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; } if test "${lt_prog_compiler_static_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_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 "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works=yes fi else lt_prog_compiler_static_works=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi { echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works" >&6; } if test x"$lt_prog_compiler_static_works" = xyes; then : else lt_prog_compiler_static= fi { echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } if test "${lt_cv_prog_compiler_c_o+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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:9963: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:9967: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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 .. rmdir conftest $rm conftest* fi { echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&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 { echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6; } if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$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 { echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } runpath_var= allow_undefined_flag= enable_shared_with_static_runtimes=no archive_cmds= archive_expsym_cmds= old_archive_From_new_cmds= old_archive_from_expsyms_cmds= export_dynamic_flag_spec= whole_archive_flag_spec= thread_safe_flag_spec= hardcode_libdir_flag_spec= hardcode_libdir_flag_spec_ld= hardcode_libdir_separator= hardcode_direct=no hardcode_minus_L=no hardcode_shlibpath_var=unsupported link_all_deplibs=unknown hardcode_automatic=no module_cmds= module_expsym_cmds= always_export_symbols=no export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # 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_" # 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. extract_expsyms_cmds= # Just being paranoid about ensuring that cc_basename is set. for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` case $host_os in cygwin* | mingw* | pw32*) # 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 # 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 2>/dev/null` in *\ [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 aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, 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 modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) 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 # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. ld_shlibs=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach 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*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' 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/'\'' -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' 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 (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; 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 ;; 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* | k*bsd*-gnu) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= 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; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # 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; $echo \"$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' ;; 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; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; *) tmp_sharedflag='-shared' ;; esac archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test $supports_anon_versioning = yes; 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 link_all_deplibs=no 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 $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' fi ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <&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. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then 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 ;; 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 can not *** 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 ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$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 $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 if test "$ld_shlibs" = no; 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 "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix4* | aix5*) 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 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 AIX nm, but means don't demangle with GNU 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")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | 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 # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) 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 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_libdir_separator=':' link_all_deplibs=yes if test "$GCC" = yes; 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 "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; 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 "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # 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_use_runtimelinking" = yes; 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. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' 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 "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; 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 "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; 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. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' 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 "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; 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' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) 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 # see comment about different semantics on the GNU ld section ld_shlibs=no ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32*) # 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=' ' 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 `echo "$deplibs" | $SED -e '\''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' fix_srcfile_path='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes=yes ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported whole_archive_flag_spec='' link_all_deplibs=yes if test "$GCC" = yes ; then output_verbose_link_cmd='echo' archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs=no ;; esac fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; freebsd1*) ld_shlibs=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*) archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $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 $output_objdir/$soname = $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 "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds='$CC -shared -fPIC ${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 "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=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 "$GCC" = yes -a "$with_gnu_ld" = no; 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 ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared -fPIC ${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' ;; *) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi 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_libdir_flag_spec_ld='+b $libdir' hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=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 "$GCC" = yes; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld='-rpath $libdir' fi hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: link_all_deplibs=yes ;; 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 ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes hardcode_shlibpath_var=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; 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 case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-R$libdir' ;; *) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' 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 allow_undefined_flag=unsupported archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; 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" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${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='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -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; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_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 hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z text' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds='$CC -shared ${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 ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else 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' 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 "$GCC" = yes; 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 "x$host_vendor" = xsequent; 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 "$GCC" = yes; 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 can NOT 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='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$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 fi { echo "$as_me:$LINENO: result: $ld_shlibs" >&5 echo "${ECHO_T}$ld_shlibs" >&6; } test "$ld_shlibs" = no && can_build_shared=no # # 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 "$enable_shared" = yes && test "$GCC" = yes; 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. { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; } $rm conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 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:$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=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc=no else archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* { echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5 echo "${ECHO_T}$archive_cmds_need_lc" >&6; } ;; esac fi ;; esac { echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } 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" if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$lt_search_path_spec" | grep ';' >/dev/null ; then # 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 -e 's/;/ /g'` else lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # 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` 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" else 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; } }'` sys_lib_search_path_spec=`echo $lt_search_path_spec` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi 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 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' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; 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 # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.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}' else # 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' fi shlibpath_var=LIBPATH fi ;; amigaos*) 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=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $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' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux 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*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) 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' 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="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. 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 ;; 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 ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # 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}${versuffix}$shared_ext ${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 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 ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # 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[123]*) 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} $libname${shared_ext}' 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 ;; 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 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 "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; 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' ;; interix[3-9]*) 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' 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 "$lt_cv_prog_gnu_ld" = yes; then version_type=linux 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 ;; # This must be Linux ELF. linux* | k*bsd*-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' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # 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 # Append ld.so.conf contents 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;/^$/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 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=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=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac 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 if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; 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 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 "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux 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 export_dynamic_flag_spec='${wl}-Blargedynsym' 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 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=freebsd-elf 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 hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes 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' ;; uts4*) version_type=linux 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 { echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi { echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || \ test -n "$runpath_var" || \ test "X$hardcode_automatic" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct" != no && # 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 "$_LT_AC_TAGVAR(hardcode_shlibpath_var, )" != no && test "$hardcode_minus_L" != no; 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 { echo "$as_me:$LINENO: result: $hardcode_action" >&5 echo "${ECHO_T}$hardcode_action" >&6; } if test "$hardcode_action" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi striplib= old_striplib= { echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi ;; *) { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } ;; esac fi if test "x$enable_dlopen" != xyes; 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*) 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 { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; } if test $ac_cv_lib_dl_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; *) { echo "$as_me:$LINENO: checking for shl_load" >&5 echo $ECHO_N "checking for shl_load... $ECHO_C" >&6; } if test "${ac_cv_func_shl_load+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define shl_load to an innocuous variant, in case declares shl_load. For example, HP-UX 11i declares gettimeofday. */ #define shl_load innocuous_shl_load /* System header to define __stub macros and hopefully few prototypes, which can conflict with char shl_load (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef shl_load /* 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 shl_load (); /* 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_shl_load || defined __stub___shl_load choke me #endif int main () { return shl_load (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_func_shl_load=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_shl_load=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 echo "${ECHO_T}$ac_cv_func_shl_load" >&6; } if test $ac_cv_func_shl_load = yes; then lt_cv_dlopen="shl_load" else { echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6; } if test "${ac_cv_lib_dld_shl_load+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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. */ #ifdef __cplusplus extern "C" #endif char shl_load (); int main () { return shl_load (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_dld_shl_load=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_shl_load=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6; } if test $ac_cv_lib_dld_shl_load = yes; then lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" else { echo "$as_me:$LINENO: checking for dlopen" >&5 echo $ECHO_N "checking for dlopen... $ECHO_C" >&6; } if test "${ac_cv_func_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define dlopen to an innocuous variant, in case declares dlopen. For example, HP-UX 11i declares gettimeofday. */ #define dlopen innocuous_dlopen /* System header to define __stub macros and hopefully few prototypes, which can conflict with char dlopen (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef dlopen /* 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 dlopen (); /* 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_dlopen || defined __stub___dlopen choke me #endif int main () { return dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_func_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_dlopen=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 echo "${ECHO_T}$ac_cv_func_dlopen" >&6; } if test $ac_cv_func_dlopen = yes; then lt_cv_dlopen="dlopen" else { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; } if test "${ac_cv_lib_dl_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_dl_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; } if test $ac_cv_lib_dl_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else { echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6; } if test "${ac_cv_lib_svld_dlopen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_svld_dlopen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_svld_dlopen=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6; } if test $ac_cv_lib_svld_dlopen = yes; then lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else { echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6; } if test "${ac_cv_lib_dld_dld_link+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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. */ #ifdef __cplusplus extern "C" #endif char dld_link (); int main () { return dld_link (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_dld_dld_link=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_dld_dld_link=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6; } if test $ac_cv_lib_dld_dld_link = yes; then lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" fi fi fi fi fi fi ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && 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" { echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6; } if test "${lt_cv_dlopen_self+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; 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 < #endif #include #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 #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=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; /* dlclose (self); */ } else puts (dlerror ()); exit (status); } EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && 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 { echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 echo "${ECHO_T}$lt_cv_dlopen_self" >&6; } if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" { echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6; } if test "${lt_cv_dlopen_self_static+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; 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 < #endif #include #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 #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=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; /* dlclose (self); */ } else puts (dlerror ()); exit (status); } EOF if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && 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 { echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 echo "${ECHO_T}$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 # Report which library types will actually be built { echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6; } { echo "$as_me:$LINENO: result: $can_build_shared" >&5 echo "${ECHO_T}$can_build_shared" >&6; } { echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6; } test "$can_build_shared" = "no" && 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 "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix4* | aix5*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac { echo "$as_me:$LINENO: result: $enable_shared" >&5 echo "${ECHO_T}$enable_shared" >&6; } { echo "$as_me:$LINENO: checking whether to build static libraries" >&5 echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6; } # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes { echo "$as_me:$LINENO: result: $enable_static" >&5 echo "${ECHO_T}$enable_static" >&6; } # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler \ CC \ LD \ lt_prog_compiler_wl \ lt_prog_compiler_pic \ lt_prog_compiler_static \ lt_prog_compiler_no_builtin_flag \ export_dynamic_flag_spec \ thread_safe_flag_spec \ whole_archive_flag_spec \ enable_shared_with_static_runtimes \ old_archive_cmds \ old_archive_from_new_cmds \ predep_objects \ postdep_objects \ predeps \ postdeps \ compiler_lib_search_path \ archive_cmds \ archive_expsym_cmds \ postinstall_cmds \ postuninstall_cmds \ old_archive_from_expsyms_cmds \ allow_undefined_flag \ no_undefined_flag \ export_symbols_cmds \ hardcode_libdir_flag_spec \ hardcode_libdir_flag_spec_ld \ hardcode_libdir_separator \ hardcode_automatic \ module_cmds \ module_expsym_cmds \ lt_cv_prog_compiler_c_o \ fix_srcfile_path \ exclude_expsyms \ include_expsyms; do case $var in old_archive_cmds | \ old_archive_from_new_cmds | \ archive_cmds | \ archive_expsym_cmds | \ module_cmds | \ module_expsym_cmds | \ old_archive_from_expsyms_cmds | \ export_symbols_cmds | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="${ofile}T" trap "$rm \"$cfgfile\"; exit 1" 1 2 15 $rm -f "$cfgfile" { echo "$as_me:$LINENO: creating $ofile" >&5 echo "$as_me: creating $ofile" >&6;} cat <<__EOF__ >> "$cfgfile" #! $SHELL # `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 # Free Software Foundation, Inc. # # This file is part of GNU Libtool: # Originally by Gordon Matzigkeit , 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # 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. # 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//" # 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 # The names of the tagged configurations supported by this script. available_tags= # ### BEGIN LIBTOOL CONFIG # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # 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 # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # 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 # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler # Is the compiler the GNU C compiler? with_gcc=$GCC # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Must we lock files when doing compilation? need_locks=$lt_need_locks # 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 # 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 # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # 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 # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec # Library versioning type. version_type=$version_type # 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 # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # 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 and install a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path # 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 # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # 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 in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # 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 # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld # 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 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 # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path=$lt_fix_srcfile_path # 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 # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_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 # ### END LIBTOOL CONFIG __EOF__ case $host_os in aix3*) cat <<\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 "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi EOF ;; esac # 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" else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" 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 CC="$lt_save_CC" # Check whether --with-tags was given. if test "${with_tags+set}" = set; then withval=$with_tags; tagnames="$withval" fi if test -f "$ltmain" && test -n "$tagnames"; then if test ! -f "${ofile}"; then { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5 echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;} fi if test -z "$LTCC"; then eval "`$SHELL ${ofile} --config | grep '^LTCC='`" if test -z "$LTCC"; then { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5 echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;} else { echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5 echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;} fi fi if test -z "$LTCFLAGS"; then eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`" fi # Extract list of available tagged configurations in $ofile. # Note that this assumes the entire list is on one line. available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for tagname in $tagnames; do IFS="$lt_save_ifs" # Check whether tagname contains only valid characters case `$echo "X$tagname" | $Xsed -e 's:[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]::g'` in "") ;; *) { { echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5 echo "$as_me: error: invalid tag name: $tagname" >&2;} { (exit 1); exit 1; }; } ;; esac if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null then { { echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5 echo "$as_me: error: tag name \"$tagname\" already exists" >&2;} { (exit 1); exit 1; }; } fi # Update the list of available tags. if test -n "$tagname"; then echo appending configuration tag \"$tagname\" to $ofile case $tagname in CXX) if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu archive_cmds_need_lc_CXX=no allow_undefined_flag_CXX= always_export_symbols_CXX=no archive_expsym_cmds_CXX= export_dynamic_flag_spec_CXX= hardcode_direct_CXX=no hardcode_libdir_flag_spec_CXX= hardcode_libdir_flag_spec_ld_CXX= hardcode_libdir_separator_CXX= hardcode_minus_L_CXX=no hardcode_shlibpath_var_CXX=unsupported hardcode_automatic_CXX=no module_cmds_CXX= module_expsym_cmds_CXX= link_all_deplibs_CXX=unknown old_archive_cmds_CXX=$old_archive_cmds no_undefined_flag_CXX= whole_archive_flag_spec_CXX= enable_shared_with_static_runtimes_CXX=no # Dependencies to place before and after the object being linked: predep_objects_CXX= postdep_objects_CXX= predeps_CXX= postdeps_CXX= compiler_lib_search_path_CXX= # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o objext_CXX=$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(int, char *[]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # 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 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 conftest* # Allow CC to be a program name with arguments. lt_save_CC=$CC 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++"} compiler=$CC compiler_CXX=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # We don't want -fno-exception wen compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' else lt_prog_compiler_no_builtin_flag_CXX= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { echo "$as_me:$LINENO: checking for ld used by $CC" >&5 echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&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 "$with_gnu_ld" = yes; then { echo "$as_me:$LINENO: checking for GNU ld" >&5 echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; } else { echo "$as_me:$LINENO: checking for non-GNU ld" >&5 echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; } fi if test "${lt_cv_path_LD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 &5 echo "${ECHO_T}$LD" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} { (exit 1); exit 1; }; } { echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; } if test "${lt_cv_prog_gnu_ld+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_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 "$with_gnu_ld" = yes; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${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 whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_CXX= 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. archive_cmds_CXX='$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 "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics { echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } ld_shlibs_CXX=yes case $host_os in aix3*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aix4* | aix5*) 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 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 # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; 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_CXX='' hardcode_direct_CXX=yes hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes if test "$GXX" = yes; 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_CXX=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_CXX=yes hardcode_libdir_flag_spec_CXX='-L$libdir' hardcode_libdir_separator_CXX= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; 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 "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # 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_CXX=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_CXX='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' 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 "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_CXX="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_CXX="-z nodefs" archive_expsym_cmds_CXX="\$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. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' 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 "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_CXX='${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_CXX=' ${wl}-bernotok' allow_undefined_flag_CXX=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_CXX='$convenience' archive_cmds_need_lc_CXX=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_CXX=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_CXX=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_CXX='-L$libdir' allow_undefined_flag_CXX=unsupported always_export_symbols_CXX=no enable_shared_with_static_runtimes_CXX=yes if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_CXX='$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 (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; 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 ld_shlibs_CXX=no fi ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag_CXX='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag_CXX='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc_CXX=no hardcode_direct_CXX=no hardcode_automatic_CXX=yes hardcode_shlibpath_var_CXX=unsupported whole_archive_flag_spec_CXX='' link_all_deplibs_CXX=yes if test "$GXX" = yes ; then lt_int_apple_cc_single_mod=no output_verbose_link_cmd='echo' if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then lt_int_apple_cc_single_mod=yes fi if test "X$lt_int_apple_cc_single_mod" = Xyes ; then archive_cmds_CXX='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' else archive_cmds_CXX='$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' fi module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds if test "X$lt_int_apple_cc_single_mod" = Xyes ; then archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "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~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' fi module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds_CXX='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs_CXX=no ;; esac fi ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; freebsd[12]*) # C++ shared libraries reported to be fairly broken before switch to ELF ld_shlibs_CXX=no ;; freebsd-elf*) archive_cmds_need_lc_CXX=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions ld_shlibs_CXX=yes ;; gnu*) ;; hpux9*) hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: export_dynamic_flag_spec_CXX='${wl}-E' hardcode_direct_CXX=yes hardcode_minus_L_CXX=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 ld_shlibs_CXX=no ;; aCC*) archive_cmds_CXX='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $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) | grep "[-]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes; then archive_cmds_CXX='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: case $host_cpu in hppa*64*|ia64*) ;; *) export_dynamic_flag_spec_CXX='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no ;; *) hardcode_direct_CXX=yes hardcode_minus_L_CXX=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 ld_shlibs_CXX=no ;; aCC*) case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$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; echo $list' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${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 ld_shlibs_CXX=no fi ;; esac ;; interix[3-9]*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${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_CXX='$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_CXX='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++ archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -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. old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' fi fi link_all_deplibs_CXX=yes ;; esac hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: ;; linux* | k*bsd*-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. archive_cmds_CXX='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' archive_expsym_cmds_CXX='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; echo $list' hardcode_libdir_flag_spec_CXX='${wl}--rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc*) # 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."*) archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$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 archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac archive_cmds_need_lc_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC*) # Portland Group C++ compiler archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='$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' hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$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 hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # 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=`echo $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; echo $list' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' hardcode_libdir_flag_spec_CXX='-R$libdir' whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='echo' # 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. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; m88k*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=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::"' ;; openbsd2*) # C++ shared libraries are fairly broken ld_shlibs_CXX=no ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' export_dynamic_flag_spec_CXX='${wl}-E' whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd='echo' else ld_shlibs_CXX=no fi ;; osf3*) 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. archive_cmds_CXX='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' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx*) allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # 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=`echo $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; echo $list' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # 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 "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; 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. archive_cmds_CXX='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' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # the KAI C++ compiler. old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx*) allow_undefined_flag_CXX=' -expect_unresolved \*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_CXX='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' hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # 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=`echo $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; echo $list' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # 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 "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ archive_cmds_need_lc_CXX=yes no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='$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' hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_shlibpath_var_CXX=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?) whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract' ;; esac link_all_deplibs_CXX=yes output_verbose_link_cmd='echo' # 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. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler archive_cmds_CXX='$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. old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then no_undefined_flag_CXX=' ${wl}-z ${wl}defs' if $CC --version | grep -v '^2\.7' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -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 \"\-L\"" else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='$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 -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 \"\-L\"" fi hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag_CXX='${wl}-z,text' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT 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. # 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. # So that behaviour is only enabled if SCOABSPATH is set to a # non-empty value in the environment. Most likely only useful for # creating official distributions of packages. # This is a hack until libtool officially supports absolute path # names for shared libraries. no_undefined_flag_CXX='${wl}-z,text' allow_undefined_flag_CXX='${wl}-z,nodefs' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes export_dynamic_flag_spec_CXX='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$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 ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac { echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 echo "${ECHO_T}$ld_shlibs_CXX" >&6; } test "$ld_shlibs_CXX" = no && can_build_shared=no GCC_CXX="$GXX" LD_CXX="$LD" cat > conftest.$ac_ext <&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; 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 # The `*' in the case matches for architectures that use `case' in # $output_verbose_cmd can trigger glob expansion during the loop # eval without this substitution. output_verbose_link_cmd=`$echo "X$output_verbose_link_cmd" | $Xsed -e "$no_glob_subst"` for p in `eval $output_verbose_link_cmd`; do case $p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" \ || test $p = "-R"; then prev=$p continue else prev= fi if test "$pre_test_object_deps_done" = no; then case $p 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 "$compiler_lib_search_path_CXX"; then compiler_lib_search_path_CXX="${prev}${p}" else compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${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 "$postdeps_CXX"; then postdeps_CXX="${prev}${p}" else postdeps_CXX="${postdeps_CXX} ${prev}${p}" fi fi ;; *.$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 "$pre_test_object_deps_done" = no; then if test -z "$predep_objects_CXX"; then predep_objects_CXX="$p" else predep_objects_CXX="$predep_objects_CXX $p" fi else if test -z "$postdep_objects_CXX"; then postdep_objects_CXX="$p" else postdep_objects_CXX="$postdep_objects_CXX $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling CXX test program" fi $rm -f confest.$objext # PORTME: override above test on systems where it is broken 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. predep_objects_CXX= postdep_objects_CXX= postdeps_CXX= ;; linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 # # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac if test "$solaris_use_stlport4" != yes; then postdeps_CXX='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. if test "$solaris_use_stlport4" != yes; then postdeps_CXX='-library=Cstd -library=Crun' fi ;; esac ;; esac case " $postdeps_CXX " in *" -lc "*) archive_cmds_need_lc_CXX=no ;; esac lt_prog_compiler_wl_CXX= lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX= { echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; } # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' fi ;; amigaos*) # 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_CXX='-m68020 -resident32 -malways-restore-a4' ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32*) # 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_CXX='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_CXX='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all lt_prog_compiler_pic_CXX= ;; 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_prog_compiler_pic_CXX=-Kconform_pic fi ;; hpux*) # 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*) ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac else case $host_os in aix4* | aix5*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' else lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_AC_TAGVAR(lt_prog_compiler_static, CXX)="--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 ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic_CXX='-qnocommon' lt_prog_compiler_wl_CXX='-Wl,' ;; esac ;; dgux*) case $cc_basename in ec++*) lt_prog_compiler_pic_CXX='-KPIC' ;; ghcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then lt_prog_compiler_pic_CXX='+Z' fi ;; aCC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_CXX='+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_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu) case $cc_basename in KCC*) # KAI C++ Compiler lt_prog_compiler_wl_CXX='--backend -Wl,' lt_prog_compiler_pic_CXX='-fPIC' ;; icpc* | ecpc*) # Intel C++ lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-static' ;; pgCC*) # Portland Group C++ compiler. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fpic' lt_prog_compiler_static_CXX='-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_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) lt_prog_compiler_pic_CXX='-W c,exportall' ;; *) ;; esac ;; netbsd* | netbsdelf*-gnu) ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) lt_prog_compiler_wl_CXX='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 lt_prog_compiler_pic_CXX='-pic' ;; cxx*) # Digital/Compaq C++ lt_prog_compiler_wl_CXX='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x lt_prog_compiler_pic_CXX='-pic' lt_prog_compiler_static_CXX='-Bstatic' ;; lcc*) # Lucid lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 lt_prog_compiler_pic_CXX='-KPIC' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' ;; esac ;; vxworks*) ;; *) lt_prog_compiler_can_build_shared_CXX=no ;; esac fi { echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_CXX" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_CXX"; then { echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6; } if test "${lt_prog_compiler_pic_works_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_CXX=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" # 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:14845: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:14849: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works_CXX=yes fi fi $rm conftest* fi { echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_CXX" >&6; } if test x"$lt_prog_compiler_pic_works_CXX" = xyes; then case $lt_prog_compiler_pic_CXX in "" | " "*) ;; *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; esac else lt_prog_compiler_pic_CXX= lt_prog_compiler_can_build_shared_CXX=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_CXX= ;; *) lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" { echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; } if test "${lt_prog_compiler_static_works_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works_CXX=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 "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works_CXX=yes fi else lt_prog_compiler_static_works_CXX=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi { echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_CXX" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works_CXX" >&6; } if test x"$lt_prog_compiler_static_works_CXX" = xyes; then : else lt_prog_compiler_static_CXX= fi { echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_CXX=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:14949: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:14953: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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_CXX=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 .. rmdir conftest $rm conftest* fi { echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_CXX" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&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 { echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6; } if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$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 { echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix4* | aix5*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) export_symbols_cmds_CXX="$ltdll_cmds" ;; cygwin* | mingw*) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' ;; linux* | k*bsd*-gnu) link_all_deplibs_CXX=no ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac { echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 echo "${ECHO_T}$ld_shlibs_CXX" >&6; } test "$ld_shlibs_CXX" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_CXX" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_CXX=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_CXX 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. { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; } $rm conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_CXX pic_flag=$lt_prog_compiler_pic_CXX compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_CXX allow_undefined_flag_CXX= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_CXX=no else archive_cmds_need_lc_CXX=yes fi allow_undefined_flag_CXX=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5 echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6; } ;; esac fi ;; esac { echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } 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 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' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; 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 # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.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}' else # 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' fi shlibpath_var=LIBPATH fi ;; amigaos*) 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=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $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' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux 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*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) 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' 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="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. 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 ;; 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 ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # 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}${versuffix}$shared_ext ${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_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) 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 ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # 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[123]*) 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} $libname${shared_ext}' 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 ;; 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 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 "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; 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' ;; interix[3-9]*) 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' 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 "$lt_cv_prog_gnu_ld" = yes; then version_type=linux 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 ;; # This must be Linux ELF. linux* | k*bsd*-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' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # 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 # Append ld.so.conf contents 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;/^$/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 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=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=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac 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 if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; 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 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 "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux 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 export_dynamic_flag_spec='${wl}-Blargedynsym' 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 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=freebsd-elf 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 hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes 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' ;; uts4*) version_type=linux 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 { echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi { echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; } hardcode_action_CXX= if test -n "$hardcode_libdir_flag_spec_CXX" || \ test -n "$runpath_var_CXX" || \ test "X$hardcode_automatic_CXX" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_CXX" != no && # 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 "$_LT_AC_TAGVAR(hardcode_shlibpath_var, CXX)" != no && test "$hardcode_minus_L_CXX" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_CXX=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_CXX=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_CXX=unsupported fi { echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5 echo "${ECHO_T}$hardcode_action_CXX" >&6; } if test "$hardcode_action_CXX" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_CXX \ CC_CXX \ LD_CXX \ lt_prog_compiler_wl_CXX \ lt_prog_compiler_pic_CXX \ lt_prog_compiler_static_CXX \ lt_prog_compiler_no_builtin_flag_CXX \ export_dynamic_flag_spec_CXX \ thread_safe_flag_spec_CXX \ whole_archive_flag_spec_CXX \ enable_shared_with_static_runtimes_CXX \ old_archive_cmds_CXX \ old_archive_from_new_cmds_CXX \ predep_objects_CXX \ postdep_objects_CXX \ predeps_CXX \ postdeps_CXX \ compiler_lib_search_path_CXX \ archive_cmds_CXX \ archive_expsym_cmds_CXX \ postinstall_cmds_CXX \ postuninstall_cmds_CXX \ old_archive_from_expsyms_cmds_CXX \ allow_undefined_flag_CXX \ no_undefined_flag_CXX \ export_symbols_cmds_CXX \ hardcode_libdir_flag_spec_CXX \ hardcode_libdir_flag_spec_ld_CXX \ hardcode_libdir_separator_CXX \ hardcode_automatic_CXX \ module_cmds_CXX \ module_expsym_cmds_CXX \ lt_cv_prog_compiler_c_o_CXX \ fix_srcfile_path_CXX \ exclude_expsyms_CXX \ include_expsyms_CXX; do case $var in old_archive_cmds_CXX | \ old_archive_from_new_cmds_CXX | \ archive_cmds_CXX | \ archive_expsym_cmds_CXX | \ module_cmds_CXX | \ module_expsym_cmds_CXX | \ old_archive_from_expsyms_cmds_CXX | \ export_symbols_cmds_CXX | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_CXX # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # 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 # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_CXX # Is the compiler the GNU C compiler? with_gcc=$GCC_CXX # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_CXX # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_CXX # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_CXX pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX # Must we lock files when doing compilation? need_locks=$lt_need_locks # 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 # 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 # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_CXX # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_CXX # Library versioning type. version_type=$version_type # 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 # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_CXX old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_CXX archive_expsym_cmds=$lt_archive_expsym_cmds_CXX postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_CXX module_expsym_cmds=$lt_module_expsym_cmds_CXX # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_CXX # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_CXX # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_CXX # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_CXX # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_CXX # 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 # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_CXX # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_CXX # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # 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 in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_CXX # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # 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_CXX # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_CXX # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_CXX # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX # 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_CXX # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_CXX # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path=$lt_fix_srcfile_path # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_CXX # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_CXX # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_CXX # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_CXX # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" 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 CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ldcxx=$with_gnu_ld 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 else tagname="" fi ;; F77) if test -n "$F77" && test "X$F77" != "Xno"; then ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu archive_cmds_need_lc_F77=no allow_undefined_flag_F77= always_export_symbols_F77=no archive_expsym_cmds_F77= export_dynamic_flag_spec_F77= hardcode_direct_F77=no hardcode_libdir_flag_spec_F77= hardcode_libdir_flag_spec_ld_F77= hardcode_libdir_separator_F77= hardcode_minus_L_F77=no hardcode_automatic_F77=no module_cmds_F77= module_expsym_cmds_F77= link_all_deplibs_F77=unknown old_archive_cmds_F77=$old_archive_cmds no_undefined_flag_F77= whole_archive_flag_spec_F77= enable_shared_with_static_runtimes_F77=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o objext_F77=$objext # 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. # 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 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 conftest* # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${F77-"f77"} compiler=$CC compiler_F77=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` { echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6; } { echo "$as_me:$LINENO: result: $can_build_shared" >&5 echo "${ECHO_T}$can_build_shared" >&6; } { echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6; } test "$can_build_shared" = "no" && 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 "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix4* | aix5*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac { echo "$as_me:$LINENO: result: $enable_shared" >&5 echo "${ECHO_T}$enable_shared" >&6; } { echo "$as_me:$LINENO: checking whether to build static libraries" >&5 echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6; } # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes { echo "$as_me:$LINENO: result: $enable_static" >&5 echo "${ECHO_T}$enable_static" >&6; } GCC_F77="$G77" LD_F77="$LD" lt_prog_compiler_wl_F77= lt_prog_compiler_pic_F77= lt_prog_compiler_static_F77= { echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; } if test "$GCC" = yes; then lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_static_F77='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_F77='-Bstatic' fi ;; amigaos*) # 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_F77='-m68020 -resident32 -malways-restore-a4' ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2*) # 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_F77='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_F77='-fno-common' ;; 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_F77=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_F77=-Kconform_pic fi ;; hpux*) # 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_F77='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_F77='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl_F77='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_F77='-Bstatic' else lt_prog_compiler_static_F77='-bnso -bI:/lib/syscalls.exp' fi ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic_F77='-qnocommon' lt_prog_compiler_wl_F77='-Wl,' ;; esac ;; mingw* | cygwin* | pw32* | os2*) # 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_F77='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl_F77='-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_F77='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static_F77='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl_F77='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static_F77='-non_shared' ;; newsos6) lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; linux* | k*bsd*-gnu) case $cc_basename in icc* | ecc*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-fpic' lt_prog_compiler_static_F77='-Bstatic' ;; ccc*) lt_prog_compiler_wl_F77='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static_F77='-non_shared' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' lt_prog_compiler_wl_F77='-Wl,' ;; *Sun\ F*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' lt_prog_compiler_wl_F77='' ;; esac ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl_F77='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static_F77='-non_shared' ;; rdos*) lt_prog_compiler_static_F77='-non_shared' ;; solaris*) lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl_F77='-Qoption ld ';; *) lt_prog_compiler_wl_F77='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl_F77='-Qoption ld ' lt_prog_compiler_pic_F77='-PIC' lt_prog_compiler_static_F77='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic_F77='-Kconform_pic' lt_prog_compiler_static_F77='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; unicos*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_can_build_shared_F77=no ;; uts4*) lt_prog_compiler_pic_F77='-pic' lt_prog_compiler_static_F77='-Bstatic' ;; *) lt_prog_compiler_can_build_shared_F77=no ;; esac fi { echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_F77" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_F77"; then { echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... $ECHO_C" >&6; } if test "${lt_prog_compiler_pic_works_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_F77=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_F77" # 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:16526: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:16530: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works_F77=yes fi fi $rm conftest* fi { echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_F77" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_F77" >&6; } if test x"$lt_prog_compiler_pic_works_F77" = xyes; then case $lt_prog_compiler_pic_F77 in "" | " "*) ;; *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;; esac else lt_prog_compiler_pic_F77= lt_prog_compiler_can_build_shared_F77=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_F77= ;; *) lt_prog_compiler_pic_F77="$lt_prog_compiler_pic_F77" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_F77 eval lt_tmp_static_flag=\"$lt_prog_compiler_static_F77\" { echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; } if test "${lt_prog_compiler_static_works_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works_F77=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 "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works_F77=yes fi else lt_prog_compiler_static_works_F77=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi { echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_F77" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works_F77" >&6; } if test x"$lt_prog_compiler_static_works_F77" = xyes; then : else lt_prog_compiler_static_F77= fi { echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_F77=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:16630: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:16634: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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_F77=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 .. rmdir conftest $rm conftest* fi { echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_F77" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_F77" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&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 { echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6; } if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$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 { echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } runpath_var= allow_undefined_flag_F77= enable_shared_with_static_runtimes_F77=no archive_cmds_F77= archive_expsym_cmds_F77= old_archive_From_new_cmds_F77= old_archive_from_expsyms_cmds_F77= export_dynamic_flag_spec_F77= whole_archive_flag_spec_F77= thread_safe_flag_spec_F77= hardcode_libdir_flag_spec_F77= hardcode_libdir_flag_spec_ld_F77= hardcode_libdir_separator_F77= hardcode_direct_F77=no hardcode_minus_L_F77=no hardcode_shlibpath_var_F77=unsupported link_all_deplibs_F77=unknown hardcode_automatic_F77=no module_cmds_F77= module_expsym_cmds_F77= always_export_symbols_F77=no export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms_F77= # 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_F77="_GLOBAL_OFFSET_TABLE_" # 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. extract_expsyms_cmds= # Just being paranoid about ensuring that cc_basename is set. for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` case $host_os in cygwin* | mingw* | pw32*) # 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_F77=yes if test "$with_gnu_ld" = yes; 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_F77='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_F77='${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_F77="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_F77= fi supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [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 aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs_F77=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, 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 modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) archive_cmds_F77='$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_F77='-L$libdir' hardcode_minus_L_F77=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. ld_shlibs_F77=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_F77=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_F77='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_F77=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, F77) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_F77='-L$libdir' allow_undefined_flag_F77=unsupported always_export_symbols_F77=no enable_shared_with_static_runtimes_F77=yes export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_F77='$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 (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; 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_F77=no fi ;; interix[3-9]*) hardcode_direct_F77=no hardcode_shlibpath_var_F77=no hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' export_dynamic_flag_spec_F77='${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_F77='$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_F77='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* | k*bsd*-gnu) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$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' ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec_F77='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; *) tmp_sharedflag='-shared' ;; esac archive_cmds_F77='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test $supports_anon_versioning = yes; then archive_expsym_cmds_F77='$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 link_all_deplibs_F77=no else ld_shlibs_F77=no fi ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $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_F77=no cat <&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. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs_F77=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** 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 ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; esac ;; sunos4*) archive_cmds_F77='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; esac if test "$ld_shlibs_F77" = no; then runpath_var= hardcode_libdir_flag_spec_F77= export_dynamic_flag_spec_F77= whole_archive_flag_spec_F77= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag_F77=unsupported always_export_symbols_F77=yes archive_expsym_cmds_F77='$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_F77=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct_F77=unsupported fi ;; aix4* | aix5*) 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 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 AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_F77='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_F77='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | 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 # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) 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 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_F77='' hardcode_direct_F77=yes hardcode_libdir_separator_F77=':' link_all_deplibs_F77=yes if test "$GCC" = yes; 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_F77=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_F77=yes hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_libdir_separator_F77= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; 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 "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # 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_F77=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_F77='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_f77_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' 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 "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_F77="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_F77='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_F77="-z nodefs" archive_expsym_cmds_F77="\$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. cat >conftest.$ac_ext <<_ACEOF program main end _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_f77_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' 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 "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_F77='${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_F77=' ${wl}-bernotok' allow_undefined_flag_F77=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_F77='$convenience' archive_cmds_need_lc_F77=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) archive_cmds_F77='$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_F77='-L$libdir' hardcode_minus_L_F77=yes # see comment about different semantics on the GNU ld section ld_shlibs_F77=no ;; bsdi[45]*) export_dynamic_flag_spec_F77=-rdynamic ;; cygwin* | mingw* | pw32*) # 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_F77=' ' allow_undefined_flag_F77=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_F77='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_From_new_cmds_F77='true' # FIXME: Should let the user specify the lib program. old_archive_cmds_F77='lib -OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path_F77='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes_F77=yes ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag_F77='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag_F77='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc_F77=no hardcode_direct_F77=no hardcode_automatic_F77=yes hardcode_shlibpath_var_F77=unsupported whole_archive_flag_spec_F77='' link_all_deplibs_F77=yes if test "$GCC" = yes ; then output_verbose_link_cmd='echo' archive_cmds_F77='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds_F77='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs_F77=no ;; esac fi ;; dgux*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_shlibpath_var_F77=no ;; freebsd1*) ld_shlibs_F77=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_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes hardcode_minus_L_F77=yes hardcode_shlibpath_var_F77=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds_F77='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds_F77='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_direct_F77=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes export_dynamic_flag_spec_F77='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_direct_F77=yes export_dynamic_flag_spec_F77='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_F77='$CC -shared -fPIC ${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_F77='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' hardcode_libdir_separator_F77=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld_F77='+b $libdir' hardcode_direct_F77=no hardcode_shlibpath_var_F77=no ;; *) hardcode_direct_F77=yes export_dynamic_flag_spec_F77='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_F77='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld_F77='-rpath $libdir' fi hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: link_all_deplibs_F77=yes ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds_F77='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; newsos6) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: hardcode_shlibpath_var_F77=no ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' export_dynamic_flag_spec_F77='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-R$libdir' ;; *) archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs_F77=no fi ;; os2*) hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes allow_undefined_flag_F77=unsupported archive_cmds_F77='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_From_new_cmds_F77='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag_F77=' -expect_unresolved \*' archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_F77=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_F77='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir' else allow_undefined_flag_F77=' -expect_unresolved \*' archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_F77='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_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_F77='-rpath $libdir' fi hardcode_libdir_separator_F77=: ;; solaris*) no_undefined_flag_F77=' -z text' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else wlarc='' archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds_F77='$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' fi hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_shlibpath_var_F77=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 "$GCC" = yes; then whole_archive_flag_spec_F77='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs_F77=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds_F77='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_direct_F77=yes hardcode_minus_L_F77=yes hardcode_shlibpath_var_F77=no ;; sysv4) case $host_vendor in sni) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds_F77='$CC -r -o $output$reload_objs' hardcode_direct_F77=no ;; motorola) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var_F77=no ;; sysv4.3*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_F77=no export_dynamic_flag_spec_F77='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_F77=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs_F77=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag_F77='${wl}-z,text' archive_cmds_need_lc_F77=no hardcode_shlibpath_var_F77=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_F77='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT 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_F77='${wl}-z,text' allow_undefined_flag_F77='${wl}-z,nodefs' archive_cmds_need_lc_F77=no hardcode_shlibpath_var_F77=no hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator_F77=':' link_all_deplibs_F77=yes export_dynamic_flag_spec_F77='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_F77='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_shlibpath_var_F77=no ;; *) ld_shlibs_F77=no ;; esac fi { echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5 echo "${ECHO_T}$ld_shlibs_F77" >&6; } test "$ld_shlibs_F77" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_F77" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_F77=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_F77 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. { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; } $rm conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_F77 pic_flag=$lt_prog_compiler_pic_F77 compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_F77 allow_undefined_flag_F77= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_F77=no else archive_cmds_need_lc_F77=yes fi allow_undefined_flag_F77=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5 echo "${ECHO_T}$archive_cmds_need_lc_F77" >&6; } ;; esac fi ;; esac { echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } 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 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' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; 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 # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.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}' else # 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' fi shlibpath_var=LIBPATH fi ;; amigaos*) 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=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $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' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux 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*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) 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' 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="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. 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 ;; 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 ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # 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}${versuffix}$shared_ext ${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_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) 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 ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # 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[123]*) 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} $libname${shared_ext}' 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 ;; 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 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 "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; 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' ;; interix[3-9]*) 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' 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 "$lt_cv_prog_gnu_ld" = yes; then version_type=linux 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 ;; # This must be Linux ELF. linux* | k*bsd*-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' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # 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 # Append ld.so.conf contents 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;/^$/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 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=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=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac 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 if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; 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 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 "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux 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 export_dynamic_flag_spec='${wl}-Blargedynsym' 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 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=freebsd-elf 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 hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes 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' ;; uts4*) version_type=linux 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 { echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi { echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; } hardcode_action_F77= if test -n "$hardcode_libdir_flag_spec_F77" || \ test -n "$runpath_var_F77" || \ test "X$hardcode_automatic_F77" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_F77" != no && # 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 "$_LT_AC_TAGVAR(hardcode_shlibpath_var, F77)" != no && test "$hardcode_minus_L_F77" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_F77=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_F77=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_F77=unsupported fi { echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5 echo "${ECHO_T}$hardcode_action_F77" >&6; } if test "$hardcode_action_F77" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_F77 \ CC_F77 \ LD_F77 \ lt_prog_compiler_wl_F77 \ lt_prog_compiler_pic_F77 \ lt_prog_compiler_static_F77 \ lt_prog_compiler_no_builtin_flag_F77 \ export_dynamic_flag_spec_F77 \ thread_safe_flag_spec_F77 \ whole_archive_flag_spec_F77 \ enable_shared_with_static_runtimes_F77 \ old_archive_cmds_F77 \ old_archive_from_new_cmds_F77 \ predep_objects_F77 \ postdep_objects_F77 \ predeps_F77 \ postdeps_F77 \ compiler_lib_search_path_F77 \ archive_cmds_F77 \ archive_expsym_cmds_F77 \ postinstall_cmds_F77 \ postuninstall_cmds_F77 \ old_archive_from_expsyms_cmds_F77 \ allow_undefined_flag_F77 \ no_undefined_flag_F77 \ export_symbols_cmds_F77 \ hardcode_libdir_flag_spec_F77 \ hardcode_libdir_flag_spec_ld_F77 \ hardcode_libdir_separator_F77 \ hardcode_automatic_F77 \ module_cmds_F77 \ module_expsym_cmds_F77 \ lt_cv_prog_compiler_c_o_F77 \ fix_srcfile_path_F77 \ exclude_expsyms_F77 \ include_expsyms_F77; do case $var in old_archive_cmds_F77 | \ old_archive_from_new_cmds_F77 | \ archive_cmds_F77 | \ archive_expsym_cmds_F77 | \ module_cmds_F77 | \ module_expsym_cmds_F77 | \ old_archive_from_expsyms_cmds_F77 | \ export_symbols_cmds_F77 | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_F77 # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_F77 # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # 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 # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_F77 # Is the compiler the GNU C compiler? with_gcc=$GCC_F77 # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_F77 # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_F77 # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_F77 pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_F77 # Must we lock files when doing compilation? need_locks=$lt_need_locks # 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 # 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 # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_F77 # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_F77 # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_F77 # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_F77 # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_F77 # Library versioning type. version_type=$version_type # 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 # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_F77 old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_F77 # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_F77 # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_F77 archive_expsym_cmds=$lt_archive_expsym_cmds_F77 postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_F77 module_expsym_cmds=$lt_module_expsym_cmds_F77 # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_F77 # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_F77 # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_F77 # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_F77 # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_F77 # 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 # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_F77 # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_F77 # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # 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 in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_F77 # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # 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_F77 # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_F77 # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_F77 # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_F77 # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_F77 # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_F77 # 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_F77 # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_F77 # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path=$lt_fix_srcfile_path # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_F77 # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_F77 # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_F77 # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_F77 # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" 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 CC="$lt_save_CC" else tagname="" fi ;; GCJ) if test -n "$GCJ" && test "X$GCJ" != "Xno"; then # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o objext_GCJ=$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. # 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 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 conftest* # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${GCJ-"gcj"} compiler=$CC compiler_GCJ=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` # GCJ did not exist at the time GCC didn't implicitly link libc in. archive_cmds_need_lc_GCJ=no old_archive_cmds_GCJ=$old_archive_cmds lt_prog_compiler_no_builtin_flag_GCJ= if test "$GCC" = yes; then lt_prog_compiler_no_builtin_flag_GCJ=' -fno-builtin' { echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6; } if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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" # 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:18830: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:18834: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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 { echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag_GCJ="$lt_prog_compiler_no_builtin_flag_GCJ -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl_GCJ= lt_prog_compiler_pic_GCJ= lt_prog_compiler_static_GCJ= { echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; } if test "$GCC" = yes; then lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_static_GCJ='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_GCJ='-Bstatic' fi ;; amigaos*) # 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_GCJ='-m68020 -resident32 -malways-restore-a4' ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2*) # 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_GCJ='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_GCJ='-fno-common' ;; 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_GCJ=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_GCJ=-Kconform_pic fi ;; hpux*) # 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_GCJ='-fPIC' ;; esac ;; *) lt_prog_compiler_pic_GCJ='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl_GCJ='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_GCJ='-Bstatic' else lt_prog_compiler_static_GCJ='-bnso -bI:/lib/syscalls.exp' fi ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) lt_prog_compiler_pic_GCJ='-qnocommon' lt_prog_compiler_wl_GCJ='-Wl,' ;; esac ;; mingw* | cygwin* | pw32* | os2*) # 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_GCJ='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl_GCJ='-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_GCJ='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static_GCJ='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl_GCJ='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static_GCJ='-non_shared' ;; newsos6) lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; linux* | k*bsd*-gnu) case $cc_basename in icc* | ecc*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-fpic' lt_prog_compiler_static_GCJ='-Bstatic' ;; ccc*) lt_prog_compiler_wl_GCJ='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static_GCJ='-non_shared' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' lt_prog_compiler_wl_GCJ='-Wl,' ;; *Sun\ F*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' lt_prog_compiler_wl_GCJ='' ;; esac ;; esac ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl_GCJ='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static_GCJ='-non_shared' ;; rdos*) lt_prog_compiler_static_GCJ='-non_shared' ;; solaris*) lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' case $cc_basename in f77* | f90* | f95*) lt_prog_compiler_wl_GCJ='-Qoption ld ';; *) lt_prog_compiler_wl_GCJ='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl_GCJ='-Qoption ld ' lt_prog_compiler_pic_GCJ='-PIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic_GCJ='-Kconform_pic' lt_prog_compiler_static_GCJ='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; unicos*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_can_build_shared_GCJ=no ;; uts4*) lt_prog_compiler_pic_GCJ='-pic' lt_prog_compiler_static_GCJ='-Bstatic' ;; *) lt_prog_compiler_can_build_shared_GCJ=no ;; esac fi { echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_GCJ" >&6; } # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_GCJ"; then { echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5 echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6; } if test "${lt_prog_compiler_pic_works_GCJ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_pic_works_GCJ=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_GCJ" # 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:19120: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:19124: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_pic_works_GCJ=yes fi fi $rm conftest* fi { echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5 echo "${ECHO_T}$lt_prog_compiler_pic_works_GCJ" >&6; } if test x"$lt_prog_compiler_pic_works_GCJ" = xyes; then case $lt_prog_compiler_pic_GCJ in "" | " "*) ;; *) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;; esac else lt_prog_compiler_pic_GCJ= lt_prog_compiler_can_build_shared_GCJ=no fi fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_GCJ= ;; *) lt_prog_compiler_pic_GCJ="$lt_prog_compiler_pic_GCJ" ;; esac # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_GCJ eval lt_tmp_static_flag=\"$lt_prog_compiler_static_GCJ\" { echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; } if test "${lt_prog_compiler_static_works_GCJ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_prog_compiler_static_works_GCJ=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 "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_prog_compiler_static_works_GCJ=yes fi else lt_prog_compiler_static_works_GCJ=yes fi fi $rm conftest* LDFLAGS="$save_LDFLAGS" fi { echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_GCJ" >&5 echo "${ECHO_T}$lt_prog_compiler_static_works_GCJ" >&6; } if test x"$lt_prog_compiler_static_works_GCJ" = xyes; then : else lt_prog_compiler_static_GCJ= fi { echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; } if test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else lt_cv_prog_compiler_c_o_GCJ=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:19224: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:19228: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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_GCJ=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 .. rmdir conftest $rm conftest* fi { echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5 echo "${ECHO_T}$lt_cv_prog_compiler_c_o_GCJ" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_GCJ" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&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 { echo "$as_me:$LINENO: result: $hard_links" >&5 echo "${ECHO_T}$hard_links" >&6; } if test "$hard_links" = no; then { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 echo "$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 { echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; } runpath_var= allow_undefined_flag_GCJ= enable_shared_with_static_runtimes_GCJ=no archive_cmds_GCJ= archive_expsym_cmds_GCJ= old_archive_From_new_cmds_GCJ= old_archive_from_expsyms_cmds_GCJ= export_dynamic_flag_spec_GCJ= whole_archive_flag_spec_GCJ= thread_safe_flag_spec_GCJ= hardcode_libdir_flag_spec_GCJ= hardcode_libdir_flag_spec_ld_GCJ= hardcode_libdir_separator_GCJ= hardcode_direct_GCJ=no hardcode_minus_L_GCJ=no hardcode_shlibpath_var_GCJ=unsupported link_all_deplibs_GCJ=unknown hardcode_automatic_GCJ=no module_cmds_GCJ= module_expsym_cmds_GCJ= always_export_symbols_GCJ=no export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms_GCJ= # 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_GCJ="_GLOBAL_OFFSET_TABLE_" # 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. extract_expsyms_cmds= # Just being paranoid about ensuring that cc_basename is set. for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` case $host_os in cygwin* | mingw* | pw32*) # 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_GCJ=yes if test "$with_gnu_ld" = yes; 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_GCJ='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_GCJ='${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_GCJ="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_GCJ= fi supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [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 aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs_GCJ=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, 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 modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) archive_cmds_GCJ='$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_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. ld_shlibs_GCJ=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_GCJ=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_GCJ='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_GCJ=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, GCJ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_GCJ='-L$libdir' allow_undefined_flag_GCJ=unsupported always_export_symbols_GCJ=no enable_shared_with_static_runtimes_GCJ=yes export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then archive_cmds_GCJ='$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 (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; 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_GCJ=no fi ;; interix[3-9]*) hardcode_direct_GCJ=no hardcode_shlibpath_var_GCJ=no hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' export_dynamic_flag_spec_GCJ='${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_GCJ='$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_GCJ='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* | k*bsd*-gnu) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$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' ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec_GCJ='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; *) tmp_sharedflag='-shared' ;; esac archive_cmds_GCJ='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test $supports_anon_versioning = yes; then archive_expsym_cmds_GCJ='$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 link_all_deplibs_GCJ=no else ld_shlibs_GCJ=no fi ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_GCJ='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $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_GCJ=no cat <&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. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs_GCJ=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** 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 ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; esac ;; sunos4*) archive_cmds_GCJ='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; esac if test "$ld_shlibs_GCJ" = no; then runpath_var= hardcode_libdir_flag_spec_GCJ= export_dynamic_flag_spec_GCJ= whole_archive_flag_spec_GCJ= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag_GCJ=unsupported always_export_symbols_GCJ=yes archive_expsym_cmds_GCJ='$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_GCJ=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct_GCJ=unsupported fi ;; aix4* | aix5*) 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 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 AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then export_symbols_cmds_GCJ='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_GCJ='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | 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 # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) 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 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_GCJ='' hardcode_direct_GCJ=yes hardcode_libdir_separator_GCJ=':' link_all_deplibs_GCJ=yes if test "$GCC" = yes; 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_GCJ=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_GCJ=yes hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_libdir_separator_GCJ= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; 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 "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # 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_GCJ=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_GCJ='-berok' # Determine the default libpath from the value encoded in an empty executable. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' 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 "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_GCJ="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_GCJ='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_GCJ="-z nodefs" archive_expsym_cmds_GCJ="\$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. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' 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 "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi hardcode_libdir_flag_spec_GCJ='${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_GCJ=' ${wl}-bernotok' allow_undefined_flag_GCJ=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_GCJ='$convenience' archive_cmds_need_lc_GCJ=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) archive_cmds_GCJ='$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_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes # see comment about different semantics on the GNU ld section ld_shlibs_GCJ=no ;; bsdi[45]*) export_dynamic_flag_spec_GCJ=-rdynamic ;; cygwin* | mingw* | pw32*) # 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_GCJ=' ' allow_undefined_flag_GCJ=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_GCJ='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_From_new_cmds_GCJ='true' # FIXME: Should let the user specify the lib program. old_archive_cmds_GCJ='lib -OUT:$oldlib$oldobjs$old_deplibs' fix_srcfile_path_GCJ='`cygpath -w "$srcfile"`' enable_shared_with_static_runtimes_GCJ=yes ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[012]) allow_undefined_flag_GCJ='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[012]) allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) allow_undefined_flag_GCJ='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac archive_cmds_need_lc_GCJ=no hardcode_direct_GCJ=no hardcode_automatic_GCJ=yes hardcode_shlibpath_var_GCJ=unsupported whole_archive_flag_spec_GCJ='' link_all_deplibs_GCJ=yes if test "$GCC" = yes ; then output_verbose_link_cmd='echo' archive_cmds_GCJ='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' archive_cmds_GCJ='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) ld_shlibs_GCJ=no ;; esac fi ;; dgux*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_shlibpath_var_GCJ=no ;; freebsd1*) ld_shlibs_GCJ=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_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes hardcode_minus_L_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds_GCJ='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds_GCJ='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds_GCJ='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_direct_GCJ=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_direct_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_GCJ='$CC -shared -fPIC ${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_GCJ='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: case $host_cpu in hppa*64*|ia64*) hardcode_libdir_flag_spec_ld_GCJ='+b $libdir' hardcode_direct_GCJ=no hardcode_shlibpath_var_GCJ=no ;; *) hardcode_direct_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_GCJ='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_ld_GCJ='-rpath $libdir' fi hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: link_all_deplibs_GCJ=yes ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds_GCJ='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; newsos6) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_shlibpath_var_GCJ=no ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' export_dynamic_flag_spec_GCJ='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-R$libdir' ;; *) archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs_GCJ=no fi ;; os2*) hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes allow_undefined_flag_GCJ=unsupported archive_cmds_GCJ='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_From_new_cmds_GCJ='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag_GCJ=' -expect_unresolved \*' archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' else allow_undefined_flag_GCJ=' -expect_unresolved \*' archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_GCJ='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_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_GCJ='-rpath $libdir' fi hardcode_libdir_separator_GCJ=: ;; solaris*) no_undefined_flag_GCJ=' -z text' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else wlarc='' archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds_GCJ='$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' fi hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_shlibpath_var_GCJ=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 "$GCC" = yes; then whole_archive_flag_spec_GCJ='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs_GCJ=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds_GCJ='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_direct_GCJ=yes hardcode_minus_L_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; sysv4) case $host_vendor in sni) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds_GCJ='$CC -r -o $output$reload_objs' hardcode_direct_GCJ=no ;; motorola) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var_GCJ=no ;; sysv4.3*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_GCJ=no export_dynamic_flag_spec_GCJ='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_GCJ=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs_GCJ=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag_GCJ='${wl}-z,text' archive_cmds_need_lc_GCJ=no hardcode_shlibpath_var_GCJ=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT 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_GCJ='${wl}-z,text' allow_undefined_flag_GCJ='${wl}-z,nodefs' archive_cmds_need_lc_GCJ=no hardcode_shlibpath_var_GCJ=no hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator_GCJ=':' link_all_deplibs_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_shlibpath_var_GCJ=no ;; *) ld_shlibs_GCJ=no ;; esac fi { echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5 echo "${ECHO_T}$ld_shlibs_GCJ" >&6; } test "$ld_shlibs_GCJ" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_GCJ" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_GCJ=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_GCJ 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. { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; } $rm conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_GCJ pic_flag=$lt_prog_compiler_pic_GCJ compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_GCJ allow_undefined_flag_GCJ= if { (eval echo "$as_me:$LINENO: \"$archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 (eval $archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } then archive_cmds_need_lc_GCJ=no else archive_cmds_need_lc_GCJ=yes fi allow_undefined_flag_GCJ=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5 echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6; } ;; esac fi ;; esac { echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; } 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 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' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; 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 # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.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}' else # 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' fi shlibpath_var=LIBPATH fi ;; amigaos*) 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=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $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' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux 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*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) 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' 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="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. 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 ;; 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 ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # 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}${versuffix}$shared_ext ${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_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) 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 ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # 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[123]*) 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} $libname${shared_ext}' 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 ;; 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 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 "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; 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' ;; interix[3-9]*) 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' 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 "$lt_cv_prog_gnu_ld" = yes; then version_type=linux 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 ;; # This must be Linux ELF. linux* | k*bsd*-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' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # 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 # Append ld.so.conf contents 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;/^$/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 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=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=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac 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 if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; 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 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 "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux 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 export_dynamic_flag_spec='${wl}-Blargedynsym' 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 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=freebsd-elf 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 hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes 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' ;; uts4*) version_type=linux 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 { echo "$as_me:$LINENO: result: $dynamic_linker" >&5 echo "${ECHO_T}$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi { echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; } hardcode_action_GCJ= if test -n "$hardcode_libdir_flag_spec_GCJ" || \ test -n "$runpath_var_GCJ" || \ test "X$hardcode_automatic_GCJ" = "Xyes" ; then # We can hardcode non-existant directories. if test "$hardcode_direct_GCJ" != no && # 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 "$_LT_AC_TAGVAR(hardcode_shlibpath_var, GCJ)" != no && test "$hardcode_minus_L_GCJ" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_GCJ=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_GCJ=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_GCJ=unsupported fi { echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5 echo "${ECHO_T}$hardcode_action_GCJ" >&6; } if test "$hardcode_action_GCJ" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_GCJ \ CC_GCJ \ LD_GCJ \ lt_prog_compiler_wl_GCJ \ lt_prog_compiler_pic_GCJ \ lt_prog_compiler_static_GCJ \ lt_prog_compiler_no_builtin_flag_GCJ \ export_dynamic_flag_spec_GCJ \ thread_safe_flag_spec_GCJ \ whole_archive_flag_spec_GCJ \ enable_shared_with_static_runtimes_GCJ \ old_archive_cmds_GCJ \ old_archive_from_new_cmds_GCJ \ predep_objects_GCJ \ postdep_objects_GCJ \ predeps_GCJ \ postdeps_GCJ \ compiler_lib_search_path_GCJ \ archive_cmds_GCJ \ archive_expsym_cmds_GCJ \ postinstall_cmds_GCJ \ postuninstall_cmds_GCJ \ old_archive_from_expsyms_cmds_GCJ \ allow_undefined_flag_GCJ \ no_undefined_flag_GCJ \ export_symbols_cmds_GCJ \ hardcode_libdir_flag_spec_GCJ \ hardcode_libdir_flag_spec_ld_GCJ \ hardcode_libdir_separator_GCJ \ hardcode_automatic_GCJ \ module_cmds_GCJ \ module_expsym_cmds_GCJ \ lt_cv_prog_compiler_c_o_GCJ \ fix_srcfile_path_GCJ \ exclude_expsyms_GCJ \ include_expsyms_GCJ; do case $var in old_archive_cmds_GCJ | \ old_archive_from_new_cmds_GCJ | \ archive_cmds_GCJ | \ archive_expsym_cmds_GCJ | \ module_cmds_GCJ | \ module_expsym_cmds_GCJ | \ old_archive_from_expsyms_cmds_GCJ | \ export_symbols_cmds_GCJ | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_GCJ # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_GCJ # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # 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 # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_GCJ # Is the compiler the GNU C compiler? with_gcc=$GCC_GCJ # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_GCJ # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_GCJ # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_GCJ pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_GCJ # Must we lock files when doing compilation? need_locks=$lt_need_locks # 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 # 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 # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_GCJ # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_GCJ # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_GCJ # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_GCJ # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_GCJ # Library versioning type. version_type=$version_type # 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 # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_GCJ old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_GCJ # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_GCJ # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_GCJ archive_expsym_cmds=$lt_archive_expsym_cmds_GCJ postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_GCJ module_expsym_cmds=$lt_module_expsym_cmds_GCJ # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_GCJ # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_GCJ # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_GCJ # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_GCJ # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ # 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 # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_GCJ # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_GCJ # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # 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 in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_GCJ # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # 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_GCJ # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_GCJ # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_GCJ # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_GCJ # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_GCJ # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_GCJ # 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_GCJ # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_GCJ # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path=$lt_fix_srcfile_path # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_GCJ # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_GCJ # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_GCJ # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_GCJ # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" 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 CC="$lt_save_CC" else tagname="" fi ;; RC) # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o objext_RC=$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. # 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 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 conftest* # Allow CC to be a program name with arguments. lt_save_CC="$CC" CC=${RC-"windres"} compiler=$CC compiler_RC=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` lt_cv_prog_compiler_c_o_RC=yes # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ compiler_RC \ CC_RC \ LD_RC \ lt_prog_compiler_wl_RC \ lt_prog_compiler_pic_RC \ lt_prog_compiler_static_RC \ lt_prog_compiler_no_builtin_flag_RC \ export_dynamic_flag_spec_RC \ thread_safe_flag_spec_RC \ whole_archive_flag_spec_RC \ enable_shared_with_static_runtimes_RC \ old_archive_cmds_RC \ old_archive_from_new_cmds_RC \ predep_objects_RC \ postdep_objects_RC \ predeps_RC \ postdeps_RC \ compiler_lib_search_path_RC \ archive_cmds_RC \ archive_expsym_cmds_RC \ postinstall_cmds_RC \ postuninstall_cmds_RC \ old_archive_from_expsyms_cmds_RC \ allow_undefined_flag_RC \ no_undefined_flag_RC \ export_symbols_cmds_RC \ hardcode_libdir_flag_spec_RC \ hardcode_libdir_flag_spec_ld_RC \ hardcode_libdir_separator_RC \ hardcode_automatic_RC \ module_cmds_RC \ module_expsym_cmds_RC \ lt_cv_prog_compiler_c_o_RC \ fix_srcfile_path_RC \ exclude_expsyms_RC \ include_expsyms_RC; do case $var in old_archive_cmds_RC | \ old_archive_from_new_cmds_RC | \ archive_cmds_RC | \ archive_expsym_cmds_RC | \ module_cmds_RC | \ module_expsym_cmds_RC | \ old_archive_from_expsyms_cmds_RC | \ export_symbols_cmds_RC | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\$0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ;; esac cfgfile="$ofile" cat <<__EOF__ >> "$cfgfile" # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_RC # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_RC # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # 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 # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_compiler_RC # Is the compiler the GNU C compiler? with_gcc=$GCC_RC # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_LD_RC # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_RC # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_RC pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC # Must we lock files when doing compilation? need_locks=$lt_need_locks # 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 # 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 # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_RC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_thread_safe_flag_spec_RC # Library versioning type. version_type=$version_type # 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 # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_old_archive_cmds_RC old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC # Commands used to build and install a shared archive. archive_cmds=$lt_archive_cmds_RC archive_expsym_cmds=$lt_archive_expsym_cmds_RC postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_module_cmds_RC module_expsym_cmds=$lt_module_expsym_cmds_RC # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_predep_objects_RC # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_postdep_objects_RC # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_predeps_RC # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_postdeps_RC # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_RC # 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 # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_RC # Flag that forces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_RC # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # 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 in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_RC # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # 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_RC # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_RC # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$hardcode_direct_RC # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$hardcode_minus_L_RC # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_RC # 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_RC # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_RC # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path=$lt_fix_srcfile_path # Set to yes if exported symbols are required. always_export_symbols=$always_export_symbols_RC # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_RC # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_RC # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_RC # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" 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 CC="$lt_save_CC" ;; *) { { echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5 echo "$as_me: error: Unsupported tag name: $tagname" >&2;} { (exit 1); exit 1; }; } ;; esac # Append the new tag name to the list of available tags. if test -n "$tagname" ; then available_tags="$available_tags $tagname" fi fi done IFS="$lt_save_ifs" # Now substitute the updated list of available tags. if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then mv "${ofile}T" "$ofile" chmod +x "$ofile" else rm -f "${ofile}T" { { echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5 echo "$as_me: error: unable to update list of available tagged configurations." >&2;} { (exit 1); exit 1; }; } fi fi # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' # Prevent multiple expansion ## ------------------------- ## ## Checks for header files. ## ## ------------------------- ## { echo "$as_me:$LINENO: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi { echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 echo "${ECHO_T}$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi { echo "$as_me:$LINENO: checking whether stat file-mode macros are broken" >&5 echo $ECHO_N "checking whether stat file-mode macros are broken... $ECHO_C" >&6; } if test "${ac_cv_header_stat_broken+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #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 rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_stat_broken=no else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stat_broken=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_header_stat_broken" >&5 echo "${ECHO_T}$ac_cv_header_stat_broken" >&6; } if test $ac_cv_header_stat_broken = yes; then cat >>confdefs.h <<\_ACEOF #define STAT_MACROS_BROKEN 1 _ACEOF fi { echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5 echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6; } if test "${ac_cv_header_time+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include int main () { if ((struct tm *) 0) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_time=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_time=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5 echo "${ECHO_T}$ac_cv_header_time" >&6; } if test $ac_cv_header_time = yes; then cat >>confdefs.h <<\_ACEOF #define TIME_WITH_SYS_TIME 1 _ACEOF fi { echo "$as_me:$LINENO: checking for sys/wait.h that is POSIX.1 compatible" >&5 echo $ECHO_N "checking for sys/wait.h that is POSIX.1 compatible... $ECHO_C" >&6; } if test "${ac_cv_header_sys_wait_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #ifndef WEXITSTATUS # define WEXITSTATUS(stat_val) ((unsigned int) (stat_val) >> 8) #endif #ifndef WIFEXITED # define WIFEXITED(stat_val) (((stat_val) & 255) == 0) #endif int main () { int s; wait (&s); s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_sys_wait_h=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_sys_wait_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_header_sys_wait_h" >&5 echo "${ECHO_T}$ac_cv_header_sys_wait_h" >&6; } if test $ac_cv_header_sys_wait_h = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_SYS_WAIT_H 1 _ACEOF fi ac_header_dirent=no for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_hdr that defines DIR" >&5 echo $ECHO_N "checking for $ac_hdr that defines DIR... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include <$ac_hdr> int main () { if ((DIR *) 0) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_hdr" | $as_tr_cpp` 1 _ACEOF ac_header_dirent=$ac_hdr; break fi done # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. if test $ac_header_dirent = dirent.h; then { echo "$as_me:$LINENO: checking for library containing opendir" >&5 echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6; } if test "${ac_cv_search_opendir+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_func_search_save_LIBS=$LIBS cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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. */ #ifdef __cplusplus extern "C" #endif char opendir (); int main () { return opendir (); ; return 0; } _ACEOF for ac_lib in '' dir; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_search_opendir=$ac_res else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext if test "${ac_cv_search_opendir+set}" = set; then break fi done if test "${ac_cv_search_opendir+set}" = set; then : else ac_cv_search_opendir=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5 echo "${ECHO_T}$ac_cv_search_opendir" >&6; } ac_res=$ac_cv_search_opendir if test "$ac_res" != no; then test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi else { echo "$as_me:$LINENO: checking for library containing opendir" >&5 echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6; } if test "${ac_cv_search_opendir+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_func_search_save_LIBS=$LIBS cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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. */ #ifdef __cplusplus extern "C" #endif char opendir (); int main () { return opendir (); ; return 0; } _ACEOF for ac_lib in '' x; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_search_opendir=$ac_res else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext if test "${ac_cv_search_opendir+set}" = set; then break fi done if test "${ac_cv_search_opendir+set}" = set; then : else ac_cv_search_opendir=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5 echo "${ECHO_T}$ac_cv_search_opendir" >&6; } ac_res=$ac_cv_search_opendir if test "$ac_res" != no; then test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi fi for ac_header in sys/time.h sys/stat.h sys/types.h sys/ioctl.h \ math.h string.h strings.h stdlib.h unistd.h stdarg.h pwd.h malloc.h \ memory.h errno.h fcntl.h stdbool.h fnmatch.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------- ## ## Report this to bug-a2ps@gnu.org ## ## ------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done ## --------------------- ## ## Checks for typedefs. ## ## --------------------- ## # # Checks for typedefs, structures, and compiler characteristics. # { echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5 echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6; } if test "${ac_cv_c_const+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { /* FIXME: Include the comments suggested by Paul. */ #ifndef __cplusplus /* Ultrix mips cc rejects this. */ typedef int charset[2]; const charset cs; /* SunOS 4.1.1 cc rejects this. */ char const *const *pcpcc; char **ppc; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; /* AIX XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ const char *g = "string"; pcpcc = &g + (g ? g-g : 0); /* HPUX 7.0 cc rejects these. */ ++pcpcc; ppc = (char**) pcpcc; pcpcc = (char const *const *) ppc; { /* SCO 3.2v4 cc rejects this. */ char *t; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; if (s) return 0; } { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ int x[] = {25, 17}; const int *foo = &x[0]; ++foo; } { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ typedef const int *iptr; iptr p = 0; ++p; } { /* AIX XL C 1.02.0.0 rejects this saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; }; struct s *b; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; if (!foo) return 0; } return !cs[0] && !zero.x; #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_c_const=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_c_const=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5 echo "${ECHO_T}$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then cat >>confdefs.h <<\_ACEOF #define const _ACEOF fi { echo "$as_me:$LINENO: checking for inline" >&5 echo $ECHO_N "checking for inline... $ECHO_C" >&6; } if test "${ac_cv_c_inline+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifndef __cplusplus typedef int foo_t; static $ac_kw foo_t static_foo () {return 0; } $ac_kw foo_t foo () {return 0; } #endif _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_c_inline=$ac_kw else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test "$ac_cv_c_inline" != no && break done fi { echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5 echo "${ECHO_T}$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 { echo "$as_me:$LINENO: checking for uchar" >&5 echo $ECHO_N "checking for uchar... $ECHO_C" >&6; } if test "${ac_cv_type_uchar+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef uchar ac__type_new_; int main () { if ((ac__type_new_ *) 0) return 0; if (sizeof (ac__type_new_)) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_type_uchar=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_uchar=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_type_uchar" >&5 echo "${ECHO_T}$ac_cv_type_uchar" >&6; } if test $ac_cv_type_uchar = yes; then : else cat >>confdefs.h <<_ACEOF #define uchar unsigned char _ACEOF fi { echo "$as_me:$LINENO: checking for size_t" >&5 echo $ECHO_N "checking for size_t... $ECHO_C" >&6; } if test "${ac_cv_type_size_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef size_t ac__type_new_; int main () { if ((ac__type_new_ *) 0) return 0; if (sizeof (ac__type_new_)) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_type_size_t=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_size_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5 echo "${ECHO_T}$ac_cv_type_size_t" >&6; } if test $ac_cv_type_size_t = yes; then : else cat >>confdefs.h <<_ACEOF #define size_t unsigned int _ACEOF fi { echo "$as_me:$LINENO: checking for pid_t" >&5 echo $ECHO_N "checking for pid_t... $ECHO_C" >&6; } if test "${ac_cv_type_pid_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default typedef pid_t ac__type_new_; int main () { if ((ac__type_new_ *) 0) return 0; if (sizeof (ac__type_new_)) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_type_pid_t=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_pid_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_type_pid_t" >&5 echo "${ECHO_T}$ac_cv_type_pid_t" >&6; } if test $ac_cv_type_pid_t = yes; then : else cat >>confdefs.h <<_ACEOF #define pid_t int _ACEOF fi { echo "$as_me:$LINENO: checking return type of signal handlers" >&5 echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6; } if test "${ac_cv_type_signal+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include int main () { return *(signal (0, 0)) (0) == 1; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_type_signal=int else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_signal=void fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_type_signal" >&5 echo "${ECHO_T}$ac_cv_type_signal" >&6; } cat >>confdefs.h <<_ACEOF #define RETSIGTYPE $ac_cv_type_signal _ACEOF { echo "$as_me:$LINENO: checking whether struct tm is in sys/time.h or time.h" >&5 echo $ECHO_N "checking whether struct tm is in sys/time.h or time.h... $ECHO_C" >&6; } if test "${ac_cv_struct_tm+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include int main () { struct tm tm; int *p = &tm.tm_sec; return !p; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_struct_tm=time.h else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_struct_tm=sys/time.h fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_struct_tm" >&5 echo "${ECHO_T}$ac_cv_struct_tm" >&6; } if test $ac_cv_struct_tm = sys/time.h; then cat >>confdefs.h <<\_ACEOF #define TM_IN_SYS_TIME 1 _ACEOF fi { echo "$as_me:$LINENO: checking for struct passwd.pw_gecos" >&5 echo $ECHO_N "checking for struct passwd.pw_gecos... $ECHO_C" >&6; } if test "${ac_cv_member_struct_passwd_pw_gecos+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #if HAVE_PWD_H # include #endif int main () { static struct passwd ac_aggr; if (ac_aggr.pw_gecos) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_member_struct_passwd_pw_gecos=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #if HAVE_PWD_H # include #endif int main () { static struct passwd ac_aggr; if (sizeof ac_aggr.pw_gecos) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_member_struct_passwd_pw_gecos=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_member_struct_passwd_pw_gecos=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_member_struct_passwd_pw_gecos" >&5 echo "${ECHO_T}$ac_cv_member_struct_passwd_pw_gecos" >&6; } if test $ac_cv_member_struct_passwd_pw_gecos = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_PASSWD_PW_GECOS 1 _ACEOF fi { echo "$as_me:$LINENO: checking for inttypes.h" >&5 echo $ECHO_N "checking for inttypes.h... $ECHO_C" >&6; } if test "${jm_ac_cv_header_inttypes_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include int main () { uintmax_t i = (uintmax_t) -1; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then jm_ac_cv_header_inttypes_h=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 jm_ac_cv_header_inttypes_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $jm_ac_cv_header_inttypes_h" >&5 echo "${ECHO_T}$jm_ac_cv_header_inttypes_h" >&6; } if test $jm_ac_cv_header_inttypes_h = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_INTTYPES_H_WITH_UINTMAX 1 _ACEOF fi { echo "$as_me:$LINENO: checking for unsigned long long" >&5 echo $ECHO_N "checking for unsigned long long... $ECHO_C" >&6; } if test "${ac_cv_type_unsigned_long_long+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ unsigned long long ull = 1; int i = 63; int main () { unsigned long long ullmax = (unsigned long long) -1; return ull << i | ull >> i | ullmax / ull | ullmax % ull; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_type_unsigned_long_long=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_unsigned_long_long=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_type_unsigned_long_long" >&5 echo "${ECHO_T}$ac_cv_type_unsigned_long_long" >&6; } if test $ac_cv_type_unsigned_long_long = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_UNSIGNED_LONG_LONG 1 _ACEOF fi for ac_header in stdlib.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------- ## ## Report this to bug-a2ps@gnu.org ## ## ------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_func in strtoumax do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* 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 $ac_func (); /* 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_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_var'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF else case " $LIBOBJS " in *" $ac_func.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS $ac_func.$ac_objext" ;; esac fi done case "$ac_cv_type_unsigned_long_long,$ac_cv_func_strtoumax" in yes,no) for ac_func in strtoull do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* 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 $ac_func (); /* 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_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_var'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF else case " $LIBOBJS " in *" $ac_func.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS $ac_func.$ac_objext" ;; esac fi done ;; esac { echo "$as_me:$LINENO: checking for stdint.h" >&5 echo $ECHO_N "checking for stdint.h... $ECHO_C" >&6; } if test "${jm_ac_cv_header_stdint_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include int main () { uintmax_t i = (uintmax_t) -1; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then jm_ac_cv_header_stdint_h=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 jm_ac_cv_header_stdint_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $jm_ac_cv_header_stdint_h" >&5 echo "${ECHO_T}$jm_ac_cv_header_stdint_h" >&6; } if test $jm_ac_cv_header_stdint_h = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_STDINT_H_WITH_UINTMAX 1 _ACEOF fi if test $jm_ac_cv_header_inttypes_h = no && test $jm_ac_cv_header_stdint_h = no; then test $ac_cv_type_unsigned_long_long = yes \ && ac_type='unsigned long long' \ || ac_type='unsigned long' cat >>confdefs.h <<_ACEOF #define uintmax_t $ac_type _ACEOF fi # # Portability non-Unix # # Checking for sys_siglist. Stolen from gmake-3.77 { echo "$as_me:$LINENO: checking whether sys_siglist is declared" >&5 echo $ECHO_N "checking whether sys_siglist is declared... $ECHO_C" >&6; } if test "${ac_cv_have_decl_sys_siglist+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include /* NetBSD declares sys_siglist in unistd.h. */ #if HAVE_UNISTD_H # include #endif int main () { #ifndef sys_siglist (void) sys_siglist; #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_sys_siglist=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_sys_siglist=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_have_decl_sys_siglist" >&5 echo "${ECHO_T}$ac_cv_have_decl_sys_siglist" >&6; } if test $ac_cv_have_decl_sys_siglist = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_SYS_SIGLIST 1 _ACEOF else cat >>confdefs.h <<_ACEOF #define HAVE_DECL_SYS_SIGLIST 0 _ACEOF fi { echo "$as_me:$LINENO: checking for sys_siglist" >&5 echo $ECHO_N "checking for sys_siglist... $ECHO_C" >&6; } if test "${ac_cv_check_symbol_sys_siglist+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { extern char *sys_siglist[]; puts(*sys_siglist); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_check_symbol_sys_siglist=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_check_symbol_sys_siglist=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi if test "$ac_cv_check_symbol_sys_siglist" = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_SYS_SIGLIST 1 _ACEOF fi { echo "$as_me:$LINENO: result: $ac_cv_check_symbol_sys_siglist" >&5 echo "${ECHO_T}$ac_cv_check_symbol_sys_siglist" >&6; } ## ---------------------- ## ## Checks for Libraries. ## ## ---------------------- ## # -lsun is sometimes needed on IRIX to use passwd { echo "$as_me:$LINENO: checking for library containing getpwuid" >&5 echo $ECHO_N "checking for library containing getpwuid... $ECHO_C" >&6; } if test "${ac_cv_search_getpwuid+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_func_search_save_LIBS=$LIBS cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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. */ #ifdef __cplusplus extern "C" #endif char getpwuid (); int main () { return getpwuid (); ; return 0; } _ACEOF for ac_lib in '' sun; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_search_getpwuid=$ac_res else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext if test "${ac_cv_search_getpwuid+set}" = set; then break fi done if test "${ac_cv_search_getpwuid+set}" = set; then : else ac_cv_search_getpwuid=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_search_getpwuid" >&5 echo "${ECHO_T}$ac_cv_search_getpwuid" >&6; } ac_res=$ac_cv_search_getpwuid if test "$ac_res" != no; then test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" cat >>confdefs.h <<\_ACEOF #define HAVE_GETPWUID 1 _ACEOF fi ## ------------------------------ ## ## checks for library functions. ## ## ------------------------------ ## for ac_func in stpcpy stpncpy strtoul memcpy memset gethostname getuid do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* 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 $ac_func (); /* 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_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_var'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF else case " $LIBOBJS " in *" $ac_func.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS $ac_func.$ac_objext" ;; esac fi done for ac_func in strcasecmp do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* 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 $ac_func (); /* 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_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_var'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done if test $ac_cv_func_strcasecmp = no; then for ac_func in stricmp do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* 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 $ac_func (); /* 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_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_var'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done if test $ac_cv_func_stricmp = no; then case " $LIBOBJS " in *" strcasecmp.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS strcasecmp.$ac_objext" ;; esac else cat >>confdefs.h <<_ACEOF #define strcasecmp stricmp _ACEOF fi fi for ac_func in strncasecmp do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* 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 $ac_func (); /* 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_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_var'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done if test $ac_cv_func_strncasecmp = no; then for ac_func in strnicmp do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* 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 $ac_func (); /* 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_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_var'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done if test $ac_cv_func_strnicmp = no; then case " $LIBOBJS " in *" strncasecmp.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS strncasecmp.$ac_objext" ;; esac else cat >>confdefs.h <<_ACEOF #define strncasecmp strnicmp _ACEOF fi fi for ac_func in rename do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* 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 $ac_func (); /* 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_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_var'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done if test $ac_cv_func_rename = yes; then { echo "$as_me:$LINENO: checking whether rename works" >&5 echo $ECHO_N "checking whether rename works... $ECHO_C" >&6; } if test "${ac_cv_func_rename_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_func_rename_works=no : >conftest.1 : >conftest.2 if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include int main () { exit (rename ("conftest.1", "conftest.2")); } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then test -f conftest.1 || ac_cv_func_rename_works=yes else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi { echo "$as_me:$LINENO: result: $ac_cv_func_rename_works" >&5 echo "${ECHO_T}$ac_cv_func_rename_works" >&6; } fi if test "$ac_cv_func_rename" = no || test "$ac_cv_func_rename_works" = no; then for ac_func in link do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* 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 $ac_func (); /* 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_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_var'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done # FIXME: Define MVDIR case " $LIBOBJS " in *" rename.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS rename.$ac_objext" ;; esac cat >>confdefs.h <<_ACEOF #define rename rpl_rename _ACEOF fi for ac_func in uname strchr strerror strerror_r getcwd bcopy bzero tempnam strsignal psignal setlocale do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* 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 $ac_func (); /* 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_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_var'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done { echo "$as_me:$LINENO: checking for systempapername in -lpaper" >&5 echo $ECHO_N "checking for systempapername in -lpaper... $ECHO_C" >&6; } if test "${ac_cv_lib_paper_systempapername+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lpaper $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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. */ #ifdef __cplusplus extern "C" #endif char systempapername (); int main () { return systempapername (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_paper_systempapername=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_paper_systempapername=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_paper_systempapername" >&5 echo "${ECHO_T}$ac_cv_lib_paper_systempapername" >&6; } if test $ac_cv_lib_paper_systempapername = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_SYSTEMPAPERNAME 1 _ACEOF LIBS="$LIBS -lpaper" for ac_header in paper.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------- ## ## Report this to bug-a2ps@gnu.org ## ## ------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done fi for ac_func in atexit do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* 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 $ac_func (); /* 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_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_var'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done if test $ac_cv_func_atexit = no; then for ac_func in on_exit do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* 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 $ac_func (); /* 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_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_var'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done case " $LIBOBJS " in *" atexit.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS atexit.$ac_objext" ;; esac if test $ac_cv_func_on_exit = no; then cat >>confdefs.h <<_ACEOF #define exit rpl_exit _ACEOF fi fi for ac_header in $ac_header_list do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------- ## ## Report this to bug-a2ps@gnu.org ## ## ------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_func in $ac_func_list do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* 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 $ac_func (); /* 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_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_var'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done for ac_func in strftime do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* 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 $ac_func (); /* 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_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_var'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF else # strftime is in -lintl on SCO UNIX. { echo "$as_me:$LINENO: checking for strftime in -lintl" >&5 echo $ECHO_N "checking for strftime in -lintl... $ECHO_C" >&6; } if test "${ac_cv_lib_intl_strftime+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* 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. */ #ifdef __cplusplus extern "C" #endif char strftime (); int main () { return strftime (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_intl_strftime=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_intl_strftime=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { echo "$as_me:$LINENO: result: $ac_cv_lib_intl_strftime" >&5 echo "${ECHO_T}$ac_cv_lib_intl_strftime" >&6; } if test $ac_cv_lib_intl_strftime = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_STRFTIME 1 _ACEOF LIBS="-lintl $LIBS" fi fi done { echo "$as_me:$LINENO: checking for struct tm.tm_zone" >&5 echo $ECHO_N "checking for struct tm.tm_zone... $ECHO_C" >&6; } if test "${ac_cv_member_struct_tm_tm_zone+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include <$ac_cv_struct_tm> int main () { static struct tm ac_aggr; if (ac_aggr.tm_zone) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_member_struct_tm_tm_zone=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include <$ac_cv_struct_tm> int main () { static struct tm ac_aggr; if (sizeof ac_aggr.tm_zone) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_member_struct_tm_tm_zone=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_member_struct_tm_tm_zone=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_member_struct_tm_tm_zone" >&5 echo "${ECHO_T}$ac_cv_member_struct_tm_tm_zone" >&6; } if test $ac_cv_member_struct_tm_tm_zone = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_STRUCT_TM_TM_ZONE 1 _ACEOF fi if test "$ac_cv_member_struct_tm_tm_zone" = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_TM_ZONE 1 _ACEOF else { echo "$as_me:$LINENO: checking whether tzname is declared" >&5 echo $ECHO_N "checking whether tzname is declared... $ECHO_C" >&6; } if test "${ac_cv_have_decl_tzname+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include int main () { #ifndef tzname (void) tzname; #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_tzname=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_tzname=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_have_decl_tzname" >&5 echo "${ECHO_T}$ac_cv_have_decl_tzname" >&6; } if test $ac_cv_have_decl_tzname = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_TZNAME 1 _ACEOF else cat >>confdefs.h <<_ACEOF #define HAVE_DECL_TZNAME 0 _ACEOF fi { echo "$as_me:$LINENO: checking for tzname" >&5 echo $ECHO_N "checking for tzname... $ECHO_C" >&6; } if test "${ac_cv_var_tzname+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #if !HAVE_DECL_TZNAME extern char *tzname[]; #endif int main () { return tzname[0][0]; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_var_tzname=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_var_tzname=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_var_tzname" >&5 echo "${ECHO_T}$ac_cv_var_tzname" >&6; } if test $ac_cv_var_tzname = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_TZNAME 1 _ACEOF fi fi for ac_func in tzset mblen mbrlen do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* 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 $ac_func (); /* 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_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_var'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in limits.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------- ## ## Report this to bug-a2ps@gnu.org ## ## ------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done { echo "$as_me:$LINENO: checking for working mktime" >&5 echo $ECHO_N "checking for working mktime... $ECHO_C" >&6; } if test "${ac_cv_func_working_mktime+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then ac_cv_func_working_mktime=no else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Test program from Paul Eggert and Tony Leneis. */ #ifdef TIME_WITH_SYS_TIME # include # include #else # ifdef HAVE_SYS_TIME_H # include # else # include # endif #endif #include #ifdef HAVE_UNISTD_H # include #endif #ifndef HAVE_ALARM # define alarm(X) /* empty */ #endif /* Work around redefinition to rpl_putenv by other config tests. */ #undef putenv static time_t time_t_max; static time_t time_t_min; /* Values we'll use to set the TZ environment variable. */ static char *tz_strings[] = { (char *) 0, "TZ=GMT0", "TZ=JST-9", "TZ=EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00" }; #define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0])) /* Return 0 if mktime fails to convert a date in the spring-forward gap. Based on a problem report from Andreas Jaeger. */ static int spring_forward_gap () { /* glibc (up to about 1998-10-07) failed this test. */ struct tm tm; /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0" instead of "TZ=America/Vancouver" in order to detect the bug even on systems that don't support the Olson extension, or don't have the full zoneinfo tables installed. */ putenv ("TZ=PST8PDT,M4.1.0,M10.5.0"); tm.tm_year = 98; tm.tm_mon = 3; tm.tm_mday = 5; tm.tm_hour = 2; tm.tm_min = 0; tm.tm_sec = 0; tm.tm_isdst = -1; return mktime (&tm) != (time_t) -1; } static int mktime_test1 (now) time_t now; { struct tm *lt; return ! (lt = localtime (&now)) || mktime (lt) == now; } static int mktime_test (now) time_t now; { return (mktime_test1 (now) && mktime_test1 ((time_t) (time_t_max - now)) && mktime_test1 ((time_t) (time_t_min + now))); } static int irix_6_4_bug () { /* Based on code from Ariel Faigon. */ struct tm tm; tm.tm_year = 96; tm.tm_mon = 3; tm.tm_mday = 0; tm.tm_hour = 0; tm.tm_min = 0; tm.tm_sec = 0; tm.tm_isdst = -1; mktime (&tm); return tm.tm_mon == 2 && tm.tm_mday == 31; } static int bigtime_test (j) int j; { struct tm tm; time_t now; tm.tm_year = tm.tm_mon = tm.tm_mday = tm.tm_hour = tm.tm_min = tm.tm_sec = j; now = mktime (&tm); if (now != (time_t) -1) { struct tm *lt = localtime (&now); if (! (lt && lt->tm_year == tm.tm_year && lt->tm_mon == tm.tm_mon && lt->tm_mday == tm.tm_mday && lt->tm_hour == tm.tm_hour && lt->tm_min == tm.tm_min && lt->tm_sec == tm.tm_sec && lt->tm_yday == tm.tm_yday && lt->tm_wday == tm.tm_wday && ((lt->tm_isdst < 0 ? -1 : 0 < lt->tm_isdst) == (tm.tm_isdst < 0 ? -1 : 0 < tm.tm_isdst)))) return 0; } return 1; } static int year_2050_test () { /* The correct answer for 2050-02-01 00:00:00 in Pacific time, ignoring leap seconds. */ unsigned long int answer = 2527315200UL; struct tm tm; time_t t; tm.tm_year = 2050 - 1900; tm.tm_mon = 2 - 1; tm.tm_mday = 1; tm.tm_hour = tm.tm_min = tm.tm_sec = 0; tm.tm_isdst = -1; /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0" instead of "TZ=America/Vancouver" in order to detect the bug even on systems that don't support the Olson extension, or don't have the full zoneinfo tables installed. */ putenv ("TZ=PST8PDT,M4.1.0,M10.5.0"); t = mktime (&tm); /* Check that the result is either a failure, or close enough to the correct answer that we can assume the discrepancy is due to leap seconds. */ return (t == (time_t) -1 || (0 < t && answer - 120 <= t && t <= answer + 120)); } int main () { time_t t, delta; int i, j; /* This test makes some buggy mktime implementations loop. Give up after 60 seconds; a mktime slower than that isn't worth using anyway. */ alarm (60); for (time_t_max = 1; 0 < time_t_max; time_t_max *= 2) continue; time_t_max--; if ((time_t) -1 < 0) for (time_t_min = -1; (time_t) (time_t_min * 2) < 0; time_t_min *= 2) continue; delta = time_t_max / 997; /* a suitable prime number */ for (i = 0; i < N_STRINGS; i++) { if (tz_strings[i]) putenv (tz_strings[i]); for (t = 0; t <= time_t_max - delta; t += delta) if (! mktime_test (t)) return 1; if (! (mktime_test ((time_t) 1) && mktime_test ((time_t) (60 * 60)) && mktime_test ((time_t) (60 * 60 * 24)))) return 1; for (j = 1; 0 < j; j *= 2) if (! bigtime_test (j)) return 1; if (! bigtime_test (j - 1)) return 1; } return ! (irix_6_4_bug () && spring_forward_gap () && year_2050_test ()); } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_working_mktime=yes else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_func_working_mktime=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi { echo "$as_me:$LINENO: result: $ac_cv_func_working_mktime" >&5 echo "${ECHO_T}$ac_cv_func_working_mktime" >&6; } if test $ac_cv_func_working_mktime = no; then case " $LIBOBJS " in *" mktime.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS mktime.$ac_objext" ;; esac fi if test $ac_cv_func_strftime = no; then case " $LIBOBJS " in *" strftime.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS strftime.$ac_objext" ;; esac if test $ac_cv_func_working_mktime = no; then cat >>confdefs.h <<_ACEOF #define mktime rpl_mktime _ACEOF fi fi { echo "$as_me:$LINENO: checking whether closedir returns void" >&5 echo $ECHO_N "checking whether closedir returns void... $ECHO_C" >&6; } if test "${ac_cv_func_closedir_void+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then ac_cv_func_closedir_void=yes else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header_dirent> #ifndef __cplusplus int closedir (); #endif int main () { return closedir (opendir (".")) != 0; ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_closedir_void=no else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_func_closedir_void=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi { echo "$as_me:$LINENO: result: $ac_cv_func_closedir_void" >&5 echo "${ECHO_T}$ac_cv_func_closedir_void" >&6; } if test $ac_cv_func_closedir_void = yes; then cat >>confdefs.h <<\_ACEOF #define CLOSEDIR_VOID 1 _ACEOF fi for ac_func in vprintf do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* 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 $ac_func (); /* 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_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_var'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF { echo "$as_me:$LINENO: checking for _doprnt" >&5 echo $ECHO_N "checking for _doprnt... $ECHO_C" >&6; } if test "${ac_cv_func__doprnt+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define _doprnt to an innocuous variant, in case declares _doprnt. For example, HP-UX 11i declares gettimeofday. */ #define _doprnt innocuous__doprnt /* System header to define __stub macros and hopefully few prototypes, which can conflict with char _doprnt (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef _doprnt /* 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 _doprnt (); /* 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__doprnt || defined __stub____doprnt choke me #endif int main () { return _doprnt (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_func__doprnt=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func__doprnt=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_func__doprnt" >&5 echo "${ECHO_T}$ac_cv_func__doprnt" >&6; } if test $ac_cv_func__doprnt = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_DOPRNT 1 _ACEOF fi fi done { echo "$as_me:$LINENO: checking for obstacks" >&5 echo $ECHO_N "checking for obstacks... $ECHO_C" >&6; } if test "${ac_cv_func_obstack+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include "obstack.h" int main () { struct obstack mem; #define obstack_chunk_alloc malloc #define obstack_chunk_free free obstack_init (&mem); obstack_free (&mem, 0); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_func_obstack=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_obstack=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_func_obstack" >&5 echo "${ECHO_T}$ac_cv_func_obstack" >&6; } if test $ac_cv_func_obstack = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_OBSTACK 1 _ACEOF else case " $LIBOBJS " in *" obstack.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS obstack.$ac_objext" ;; esac fi # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! { echo "$as_me:$LINENO: checking for working alloca.h" >&5 echo $ECHO_N "checking for working alloca.h... $ECHO_C" >&6; } if test "${ac_cv_working_alloca_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include int main () { char *p = (char *) alloca (2 * sizeof (int)); if (p) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_working_alloca_h=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_working_alloca_h=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_working_alloca_h" >&5 echo "${ECHO_T}$ac_cv_working_alloca_h" >&6; } if test $ac_cv_working_alloca_h = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_ALLOCA_H 1 _ACEOF fi { echo "$as_me:$LINENO: checking for alloca" >&5 echo $ECHO_N "checking for alloca... $ECHO_C" >&6; } if test "${ac_cv_func_alloca_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __GNUC__ # define alloca __builtin_alloca #else # ifdef _MSC_VER # include # define alloca _alloca # else # ifdef HAVE_ALLOCA_H # include # else # ifdef _AIX #pragma alloca # else # ifndef alloca /* predefined by HP cc +Olibcalls */ char *alloca (); # endif # endif # endif # endif #endif int main () { char *p = (char *) alloca (1); if (p) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_func_alloca_works=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_alloca_works=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_func_alloca_works" >&5 echo "${ECHO_T}$ac_cv_func_alloca_works" >&6; } if test $ac_cv_func_alloca_works = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_ALLOCA 1 _ACEOF 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 cat >>confdefs.h <<\_ACEOF #define C_ALLOCA 1 _ACEOF { echo "$as_me:$LINENO: checking whether \`alloca.c' needs Cray hooks" >&5 echo $ECHO_N "checking whether \`alloca.c' needs Cray hooks... $ECHO_C" >&6; } if test "${ac_cv_os_cray+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #if defined CRAY && ! defined CRAY2 webecray #else wenotbecray #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "webecray" >/dev/null 2>&1; then ac_cv_os_cray=yes else ac_cv_os_cray=no fi rm -f conftest* fi { echo "$as_me:$LINENO: result: $ac_cv_os_cray" >&5 echo "${ECHO_T}$ac_cv_os_cray" >&6; } if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* 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 $ac_func (); /* 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_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_var'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define CRAY_STACKSEG_END $ac_func _ACEOF break fi done fi { echo "$as_me:$LINENO: checking stack direction for C alloca" >&5 echo $ECHO_N "checking stack direction for C alloca... $ECHO_C" >&6; } if test "${ac_cv_c_stack_direction+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then ac_cv_c_stack_direction=0 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int find_stack_direction () { static char *addr = 0; auto char dummy; if (addr == 0) { addr = &dummy; return find_stack_direction (); } else return (&dummy > addr) ? 1 : -1; } int main () { return find_stack_direction () < 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_c_stack_direction=1 else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_c_stack_direction=-1 fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi { echo "$as_me:$LINENO: result: $ac_cv_c_stack_direction" >&5 echo "${ECHO_T}$ac_cv_c_stack_direction" >&6; } cat >>confdefs.h <<_ACEOF #define STACK_DIRECTION $ac_cv_c_stack_direction _ACEOF fi { echo "$as_me:$LINENO: checking for error_at_line" >&5 echo $ECHO_N "checking for error_at_line... $ECHO_C" >&6; } if test "${ac_cv_lib_error_at_line+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include int main () { error_at_line (0, 0, "", 0, "an error occurred"); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then ac_cv_lib_error_at_line=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_error_at_line=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_lib_error_at_line" >&5 echo "${ECHO_T}$ac_cv_lib_error_at_line" >&6; } if test $ac_cv_lib_error_at_line = no; then case " $LIBOBJS " in *" error.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS error.$ac_objext" ;; esac fi cat >>confdefs.h <<_ACEOF #define HAVE_DONE_WORKING_MALLOC_CHECK 1 _ACEOF { echo "$as_me:$LINENO: checking for working malloc" >&5 echo $ECHO_N "checking for working malloc... $ECHO_C" >&6; } if test "${jm_cv_func_working_malloc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then jm_cv_func_working_malloc=no else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ char *malloc (); int main () { exit (malloc (0) ? 0 : 1); } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then jm_cv_func_working_malloc=yes else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) jm_cv_func_working_malloc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi { echo "$as_me:$LINENO: result: $jm_cv_func_working_malloc" >&5 echo "${ECHO_T}$jm_cv_func_working_malloc" >&6; } if test $jm_cv_func_working_malloc = no; then case " $LIBOBJS " in *" malloc.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS malloc.$ac_objext" ;; esac cat >>confdefs.h <<_ACEOF #define malloc rpl_malloc _ACEOF fi cat >>confdefs.h <<_ACEOF #define HAVE_DONE_WORKING_REALLOC_CHECK 1 _ACEOF { echo "$as_me:$LINENO: checking for working realloc" >&5 echo $ECHO_N "checking for working realloc... $ECHO_C" >&6; } if test "${jm_cv_func_working_realloc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test "$cross_compiling" = yes; then jm_cv_func_working_realloc=no else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ char *realloc (); int main () { exit (realloc (0, 0) ? 0 : 1); } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then jm_cv_func_working_realloc=yes else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) jm_cv_func_working_realloc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi { echo "$as_me:$LINENO: result: $jm_cv_func_working_realloc" >&5 echo "${ECHO_T}$jm_cv_func_working_realloc" >&6; } if test $jm_cv_func_working_realloc = no; then case " $LIBOBJS " in *" realloc.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS realloc.$ac_objext" ;; esac cat >>confdefs.h <<_ACEOF #define realloc rpl_realloc _ACEOF fi for ac_func in isascii iswprint mbsinit do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` { echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* 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 $ac_func (); /* 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_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval echo '${'$as_ac_var'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done { echo "$as_me:$LINENO: checking whether mbrtowc and mbstate_t are properly declared" >&5 echo $ECHO_N "checking whether mbrtowc and mbstate_t are properly declared... $ECHO_C" >&6; } if test "${jm_cv_func_mbrtowc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include int main () { mbstate_t state; return ! (sizeof state && mbrtowc); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then jm_cv_func_mbrtowc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 jm_cv_func_mbrtowc=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $jm_cv_func_mbrtowc" >&5 echo "${ECHO_T}$jm_cv_func_mbrtowc" >&6; } if test $jm_cv_func_mbrtowc = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_MBRTOWC 1 _ACEOF fi for ac_header in limits.h stddef.h stdlib.h string.h wchar.h wctype.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------- ## ## Report this to bug-a2ps@gnu.org ## ## ------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done { echo "$as_me:$LINENO: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi { echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 echo "${ECHO_T}$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi { echo "$as_me:$LINENO: checking whether backslash-a works in strings" >&5 echo $ECHO_N "checking whether backslash-a works in strings... $ECHO_C" >&6; } if test "${ac_cv_c_backslash_a+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #if '\a' == 'a' syntax error; #endif char buf['\a' == 'a' ? -1 : 1]; buf[0] = '\a'; return buf[0] != "\a"[0]; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_c_backslash_a=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_c_backslash_a=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_c_backslash_a" >&5 echo "${ECHO_T}$ac_cv_c_backslash_a" >&6; } if test $ac_cv_c_backslash_a = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_C_BACKSLASH_A 1 _ACEOF fi { echo "$as_me:$LINENO: checking for mbstate_t" >&5 echo $ECHO_N "checking for mbstate_t... $ECHO_C" >&6; } if test "${ac_cv_type_mbstate_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default # include int main () { mbstate_t x; return sizeof x; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_type_mbstate_t=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_mbstate_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_type_mbstate_t" >&5 echo "${ECHO_T}$ac_cv_type_mbstate_t" >&6; } if test $ac_cv_type_mbstate_t = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_MBSTATE_T 1 _ACEOF else cat >>confdefs.h <<\_ACEOF #define mbstate_t int _ACEOF fi { echo "$as_me:$LINENO: checking for function prototypes" >&5 echo $ECHO_N "checking for function prototypes... $ECHO_C" >&6; } if test "$am_cv_prog_cc_stdc" != no; then { echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6; } cat >>confdefs.h <<\_ACEOF #define PROTOTYPES 1 _ACEOF U= ANSI2KNR= else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } U=_ ANSI2KNR=./ansi2knr # Ensure some checks needed by ansi2knr itself. { echo "$as_me:$LINENO: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; } if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi { echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 echo "${ECHO_T}$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi for ac_header in string.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------- ## ## Report this to bug-a2ps@gnu.org ## ## ------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done fi # Check and replace broken or missing "fnmatch" { echo "$as_me:$LINENO: checking for working POSIX fnmatch" >&5 echo $ECHO_N "checking for working POSIX fnmatch... $ECHO_C" >&6; } if test "${ac_cv_func_fnmatch_works+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Some versions of Solaris, SCO, and the GNU C Library # have a broken or incompatible fnmatch. # So we run a test program. If we are cross-compiling, take no chance. # Thanks to John Oleynick, Franc,ois Pinard, and Paul Eggert for this test. if test "$cross_compiling" = yes; then ac_cv_func_fnmatch_works=cross else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include # define y(a, b, c) (fnmatch (a, b, c) == 0) # define n(a, b, c) (fnmatch (a, b, c) == FNM_NOMATCH) int main () { return (!(y ("a*", "abc", 0) && n ("d*/*1", "d/s/1", FNM_PATHNAME) && y ("a\\\\bc", "abc", 0) && n ("a\\\\bc", "abc", FNM_NOESCAPE) && y ("*x", ".x", 0) && n ("*x", ".x", FNM_PERIOD) && 1)); ; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_try") 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_fnmatch_works=yes else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_func_fnmatch_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi { echo "$as_me:$LINENO: result: $ac_cv_func_fnmatch_works" >&5 echo "${ECHO_T}$ac_cv_func_fnmatch_works" >&6; } if test $ac_cv_func_fnmatch_works = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_FNMATCH 1 _ACEOF fi if test $ac_cv_func_fnmatch_works = no; then case " $LIBOBJS " in *" fnmatch.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS fnmatch.$ac_objext" ;; esac cat >>confdefs.h <<_ACEOF #define fnmatch rpl_fnmatch _ACEOF fi # Needed checks for tinyterm.[ch] { echo "$as_me:$LINENO: checking POSIX termios" >&5 echo $ECHO_N "checking POSIX termios... $ECHO_C" >&6; } if test "${am_cv_sys_posix_termios+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include int main () { /* SunOS 4.0.3 has termios.h but not the library calls. */ tcgetattr(0, 0); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then am_cv_sys_posix_termios=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 am_cv_sys_posix_termios=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $am_cv_sys_posix_termios" >&5 echo "${ECHO_T}$am_cv_sys_posix_termios" >&6; } { echo "$as_me:$LINENO: checking whether use of TIOCGWINSZ requires sys/ioctl.h" >&5 echo $ECHO_N "checking whether use of TIOCGWINSZ requires sys/ioctl.h... $ECHO_C" >&6; } if test "${am_cv_sys_tiocgwinsz_needs_sys_ioctl_h+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else am_cv_sys_tiocgwinsz_needs_sys_ioctl_h=no gwinsz_in_termios_h=no if test $am_cv_sys_posix_termios = yes; then cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include # include # ifdef TIOCGWINSZ yes # endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1; then gwinsz_in_termios_h=yes fi rm -f conftest* fi if test $gwinsz_in_termios_h = no; then cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include # include # ifdef TIOCGWINSZ yes # endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1; then am_cv_sys_tiocgwinsz_needs_sys_ioctl_h=yes fi rm -f conftest* fi fi { echo "$as_me:$LINENO: result: $am_cv_sys_tiocgwinsz_needs_sys_ioctl_h" >&5 echo "${ECHO_T}$am_cv_sys_tiocgwinsz_needs_sys_ioctl_h" >&6; } if test $am_cv_sys_tiocgwinsz_needs_sys_ioctl_h = yes; then cat >>confdefs.h <<\_ACEOF #define GWINSZ_IN_SYS_IOCTL 1 _ACEOF fi for ac_header in termios.h sys/types.h unistd.h limits.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } else # Is the header compilable? { echo "$as_me:$LINENO: checking $ac_header usability" >&5 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6; } # Is the header present? { echo "$as_me:$LINENO: checking $ac_header presence" >&5 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ac_header> _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext { echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------- ## ## Report this to bug-a2ps@gnu.org ## ## ------------------------------- ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi ac_res=`eval echo '${'$as_ac_Header'}'` { echo "$as_me:$LINENO: result: $ac_res" >&5 echo "${ECHO_T}$ac_res" >&6; } fi if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done { echo "$as_me:$LINENO: checking whether fputs is declared" >&5 echo $ECHO_N "checking whether fputs is declared... $ECHO_C" >&6; } if test "${ac_cv_have_decl_fputs+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { #ifndef fputs (void) fputs; #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_fputs=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_fputs=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_have_decl_fputs" >&5 echo "${ECHO_T}$ac_cv_have_decl_fputs" >&6; } if test $ac_cv_have_decl_fputs = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_FPUTS 1 _ACEOF else cat >>confdefs.h <<_ACEOF #define HAVE_DECL_FPUTS 0 _ACEOF fi { echo "$as_me:$LINENO: checking whether strlen is declared" >&5 echo $ECHO_N "checking whether strlen is declared... $ECHO_C" >&6; } if test "${ac_cv_have_decl_strlen+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { #ifndef strlen (void) strlen; #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_have_decl_strlen=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_have_decl_strlen=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $ac_cv_have_decl_strlen" >&5 echo "${ECHO_T}$ac_cv_have_decl_strlen" >&6; } if test $ac_cv_have_decl_strlen = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_DECL_STRLEN 1 _ACEOF else cat >>confdefs.h <<_ACEOF #define HAVE_DECL_STRLEN 0 _ACEOF fi # Internationalization. MKINSTALLDIRS= if test -n "$ac_aux_dir"; then MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_MSGFMT+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case "$MSGFMT" in /*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if $ac_dir/$ac_word --statistics /dev/null >/dev/null 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" break fi fi 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 { echo "$as_me:$LINENO: result: $MSGFMT" >&5 echo "${ECHO_T}$MSGFMT" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_GMSGFMT+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $GMSGFMT" >&5 echo "${ECHO_T}$GMSGFMT" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_XGETTEXT+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case "$XGETTEXT" in /*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if $ac_dir/$ac_word --omit-header --copyright-holder= /dev/null >/dev/null 2>&1 && (if $ac_dir/$ac_word --omit-header --copyright-holder= /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" break fi fi 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 { echo "$as_me:$LINENO: result: $XGETTEXT" >&5 echo "${ECHO_T}$XGETTEXT" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi rm -f messages.po # Extract the first word of "msgmerge", so it can be a program name with args. set dummy msgmerge; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_MSGMERGE+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case "$MSGMERGE" in /*) ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. ;; *) IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then if $ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1; then ac_cv_path_MSGMERGE="$ac_dir/$ac_word" break fi fi 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 { echo "$as_me:$LINENO: result: $MSGMERGE" >&5 echo "${ECHO_T}$MSGMERGE" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "$GMSGFMT" != ":"; then if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 && (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then : ; else GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'` { echo "$as_me:$LINENO: result: found $GMSGFMT program is not GNU msgfmt; ignore it" >&5 echo "${ECHO_T}found $GMSGFMT program is not GNU msgfmt; ignore it" >&6; } GMSGFMT=":" fi fi if test "$XGETTEXT" != ":"; then if $XGETTEXT --omit-header --copyright-holder= /dev/null >/dev/null 2>&1 && (if $XGETTEXT --omit-header --copyright-holder= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then : ; else { echo "$as_me:$LINENO: result: found xgettext program is not GNU xgettext; ignore it" >&5 echo "${ECHO_T}found xgettext program is not GNU xgettext; ignore it" >&6; } XGETTEXT=":" fi rm -f messages.po fi ac_config_commands="$ac_config_commands default-1" 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+set}" = set; then withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { echo "$as_me:$LINENO: checking for ld used by GCC" >&5 echo $ECHO_N "checking for ld used by GCC... $ECHO_C" >&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. [\\/]* | [A-Za-z]:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the path 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 "$with_gnu_ld" = yes; then { echo "$as_me:$LINENO: checking for GNU ld" >&5 echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; } else { echo "$as_me:$LINENO: checking for non-GNU ld" >&5 echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; } fi if test "${acl_cv_path_LD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$LD"; then IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" for ac_dir in $PATH; do 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 GNU ld's only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. if "$acl_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then test "$with_gnu_ld" != no && break else test "$with_gnu_ld" != yes && break fi fi done IFS="$ac_save_ifs" else acl_cv_path_LD="$LD" # Let the user override the test with a path. fi fi LD="$acl_cv_path_LD" if test -n "$LD"; then { echo "$as_me:$LINENO: result: $LD" >&5 echo "${ECHO_T}$LD" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} { (exit 1); exit 1; }; } { echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; } if test "${acl_cv_prog_gnu_ld+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # I'd rather use --version here, but apparently some GNU ld's only accept -v. if $LD -v 2>&1 &5; then acl_cv_prog_gnu_ld=yes else acl_cv_prog_gnu_ld=no fi fi { echo "$as_me:$LINENO: result: $acl_cv_prog_gnu_ld" >&5 echo "${ECHO_T}$acl_cv_prog_gnu_ld" >&6; } with_gnu_ld=$acl_cv_prog_gnu_ld { echo "$as_me:$LINENO: checking for shared library run path origin" >&5 echo $ECHO_N "checking for shared library run path origin... $ECHO_C" >&6; } if test "${acl_cv_rpath+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 { echo "$as_me:$LINENO: result: $acl_cv_rpath" >&5 echo "${ECHO_T}$acl_cv_rpath" >&6; } wl="$acl_cv_wl" libext="$acl_cv_libext" shlibext="$acl_cv_shlibext" hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" hardcode_direct="$acl_cv_hardcode_direct" hardcode_minus_L="$acl_cv_hardcode_minus_L" sys_lib_search_path_spec="$acl_cv_sys_lib_search_path_spec" sys_lib_dlsearch_path_spec="$acl_cv_sys_lib_dlsearch_path_spec" # Check whether --enable-rpath was given. if test "${enable_rpath+set}" = set; then enableval=$enable_rpath; : else enable_rpath=yes 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\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" # Check whether --with-libiconv-prefix was given. if test "${with_libiconv_prefix+set}" = set; 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\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" else additional_includedir="$withval/include" additional_libdir="$withval/lib" fi fi fi LIBICONV= LTLIBICONV= INCICONV= 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= if test $use_additional = yes; then if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then found_dir="$additional_libdir" found_so="$additional_libdir/lib$name.$shlibext" if test -f "$additional_libdir/lib$name.la"; then found_la="$additional_libdir/lib$name.la" fi else if test -f "$additional_libdir/lib$name.$libext"; then found_dir="$additional_libdir" found_a="$additional_libdir/lib$name.$libext" if test -f "$additional_libdir/lib$name.la"; then found_la="$additional_libdir/lib$name.la" fi fi fi 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 "$shlibext" && test -f "$dir/lib$name.$shlibext"; then found_dir="$dir" found_so="$dir/lib$name.$shlibext" if test -f "$dir/lib$name.la"; then found_la="$dir/lib$name.la" fi else if test -f "$dir/lib$name.$libext"; then found_dir="$dir" found_a="$dir/lib$name.$libext" if test -f "$dir/lib$name.la"; then found_la="$dir/lib$name.la" fi 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/lib"; 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 "$hardcode_direct" = yes; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else if test -n "$hardcode_libdir_flag_spec" && test "$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 "$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 */lib | */lib/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'` 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*) 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*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` if test "X$additional_libdir" != "X/usr/lib"; then haveit= if test "X$additional_libdir" = "X/usr/local/lib"; then if test -n "$GCC"; then case $host_os in linux*) 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$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_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$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_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*) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.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 "$hardcode_libdir_separator"; then alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$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=\"$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 { echo "$as_me:$LINENO: checking whether NLS is requested" >&5 echo $ECHO_N "checking whether NLS is requested... $ECHO_C" >&6; } # Check whether --enable-nls was given. if test "${enable_nls+set}" = set; then enableval=$enable_nls; USE_NLS=$enableval else USE_NLS=yes fi { echo "$as_me:$LINENO: result: $USE_NLS" >&5 echo "${ECHO_T}$USE_NLS" >&6; } LIBINTL= LTLIBINTL= POSUB= if test "$USE_NLS" = "yes"; then gt_use_preinstalled_gnugettext=no { echo "$as_me:$LINENO: checking for GNU gettext in libc" >&5 echo $ECHO_N "checking for GNU gettext in libc... $ECHO_C" >&6; } if test "${gt_cv_func_gnugettext2_libc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include extern int _nl_msg_cat_cntr; extern int *_nl_domain_bindings; int main () { bindtextdomain ("", ""); return (int) gettext ("") + (int) ngettext ("", "", 0) + _nl_msg_cat_cntr + *_nl_domain_bindings ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then gt_cv_func_gnugettext2_libc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 gt_cv_func_gnugettext2_libc=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi { echo "$as_me:$LINENO: result: $gt_cv_func_gnugettext2_libc" >&5 echo "${ECHO_T}$gt_cv_func_gnugettext2_libc" >&6; } if test "$gt_cv_func_gnugettext2_libc" != "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 { echo "$as_me:$LINENO: checking for iconv" >&5 echo $ECHO_N "checking for iconv... $ECHO_C" >&6; } if test "${am_cv_func_iconv+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then am_cv_func_iconv=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" LIBS="$LIBS $LIBICONV" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then am_cv_lib_iconv=yes am_cv_func_iconv=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext LIBS="$am_save_LIBS" fi fi { echo "$as_me:$LINENO: result: $am_cv_func_iconv" >&5 echo "${ECHO_T}$am_cv_func_iconv" >&6; } if test "$am_cv_func_iconv" = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_ICONV 1 _ACEOF fi if test "$am_cv_lib_iconv" = yes; then { echo "$as_me:$LINENO: checking how to link with libiconv" >&5 echo $ECHO_N "checking how to link with libiconv... $ECHO_C" >&6; } { echo "$as_me:$LINENO: result: $LIBICONV" >&5 echo "${ECHO_T}$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\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" # Check whether --with-libintl-prefix was given. if test "${with_libintl_prefix+set}" = set; 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\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" else additional_includedir="$withval/include" additional_libdir="$withval/lib" fi fi fi LIBINTL= LTLIBINTL= INCINTL= 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= if test $use_additional = yes; then if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then found_dir="$additional_libdir" found_so="$additional_libdir/lib$name.$shlibext" if test -f "$additional_libdir/lib$name.la"; then found_la="$additional_libdir/lib$name.la" fi else if test -f "$additional_libdir/lib$name.$libext"; then found_dir="$additional_libdir" found_a="$additional_libdir/lib$name.$libext" if test -f "$additional_libdir/lib$name.la"; then found_la="$additional_libdir/lib$name.la" fi fi fi 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 "$shlibext" && test -f "$dir/lib$name.$shlibext"; then found_dir="$dir" found_so="$dir/lib$name.$shlibext" if test -f "$dir/lib$name.la"; then found_la="$dir/lib$name.la" fi else if test -f "$dir/lib$name.$libext"; then found_dir="$dir" found_a="$dir/lib$name.$libext" if test -f "$dir/lib$name.la"; then found_la="$dir/lib$name.la" fi 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/lib"; 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 "$hardcode_direct" = yes; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else if test -n "$hardcode_libdir_flag_spec" && test "$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 "$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 */lib | */lib/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'` 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*) 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*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` if test "X$additional_libdir" != "X/usr/lib"; then haveit= if test "X$additional_libdir" = "X/usr/local/lib"; then if test -n "$GCC"; then case $host_os in linux*) 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$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_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$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_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*) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.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 "$hardcode_libdir_separator"; then alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$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=\"$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 { echo "$as_me:$LINENO: checking for GNU gettext in libintl" >&5 echo $ECHO_N "checking for GNU gettext in libintl... $ECHO_C" >&6; } if test "${gt_cv_func_gnugettext2_libintl+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else gt_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $INCINTL" gt_save_LIBS="$LIBS" LIBS="$LIBS $LIBINTL" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (); int main () { bindtextdomain ("", ""); return (int) gettext ("") + (int) ngettext ("", "", 0) + _nl_msg_cat_cntr + *_nl_expand_alias (0) ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then gt_cv_func_gnugettext2_libintl=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 gt_cv_func_gnugettext2_libintl=no fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext if test "$gt_cv_func_gnugettext2_libintl" != yes && test -n "$LIBICONV"; then LIBS="$LIBS $LIBICONV" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (); int main () { bindtextdomain ("", ""); return (int) gettext ("") + (int) ngettext ("", "", 0) + _nl_msg_cat_cntr + *_nl_expand_alias (0) ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && $as_test_x conftest$ac_exeext; then LIBINTL="$LIBINTL $LIBICONV" LTLIBINTL="$LTLIBINTL $LTLIBICONV" gt_cv_func_gnugettext2_libintl=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi CPPFLAGS="$gt_save_CPPFLAGS" LIBS="$gt_save_LIBS" fi { echo "$as_me:$LINENO: result: $gt_cv_func_gnugettext2_libintl" >&5 echo "${ECHO_T}$gt_cv_func_gnugettext2_libintl" >&6; } fi if test "$gt_cv_func_gnugettext2_libc" = "yes" \ || { test "$gt_cv_func_gnugettext2_libintl" = "yes" \ && test "$PACKAGE" != gettext; }; then gt_use_preinstalled_gnugettext=yes else LIBINTL= LTLIBINTL= INCINTL= fi if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then cat >>confdefs.h <<\_ACEOF #define ENABLE_NLS 1 _ACEOF else USE_NLS=no fi fi if test "$USE_NLS" = "yes"; then if test "$gt_use_preinstalled_gnugettext" = "yes"; then if test "$gt_cv_func_gnugettext2_libintl" = "yes"; then { echo "$as_me:$LINENO: checking how to link with libintl" >&5 echo $ECHO_N "checking how to link with libintl... $ECHO_C" >&6; } { echo "$as_me:$LINENO: result: $LIBINTL" >&5 echo "${ECHO_T}$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 cat >>confdefs.h <<\_ACEOF #define HAVE_GETTEXT 1 _ACEOF cat >>confdefs.h <<\_ACEOF #define HAVE_DCGETTEXT 1 _ACEOF fi POSUB=po fi INTLLIBS="$LIBINTL" # Save the cache 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_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( *) $as_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+set}" = set || &/ 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 test "x$cache_file" != "x/dev/null" && { echo "$as_me:$LINENO: updating cache $cache_file" >&5 echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache # In path separator character. cat >>confdefs.h <<_ACEOF #define DIRECTORY_SEPARATOR '/' _ACEOF # Between paths separator character. cat >>confdefs.h <<_ACEOF #define PATH_SEPARATOR ':' _ACEOF # We define SYNTAX_TABLE so that regex uses syntax tables cat >>confdefs.h <<\_ACEOF #define SYNTAX_TABLE 1 _ACEOF ## ---------------------------- ## ## Various extentions/options. ## ## ---------------------------- ## # Some extra warnings # Check whether --enable-warnings was given. if test "${enable_warnings+set}" = set; then enableval=$enable_warnings; fi if test "$enable_warnings" = "yes"; then if test -n "$GCC"; then { echo "$as_me:$LINENO: checking for gcc warning options" >&5 echo $ECHO_N "checking for gcc warning options... $ECHO_C" >&6; } if test "${ac_cv_prog_gcc_warn_flags+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat > conftest.$ac_ext <&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then test -n "$verbose" && { echo "$as_me:$LINENO: result: ... -$cf_opt" >&5 echo "${ECHO_T}... -$cf_opt" >&6; } ac_cv_prog_gcc_warn_flags="$ac_cv_prog_gcc_warn_flags -$cf_opt" test "$cf_opt" = Wcast-qual && ac_cv_prog_gcc_warn_flags="$ac_cv_prog_gcc_warn_flags -DXTSTRINGDEFINES" fi done rm -f conftest* CFLAGS="$cf_save_CFLAGS" fi { echo "$as_me:$LINENO: result: $ac_cv_prog_gcc_warn_flags" >&5 echo "${ECHO_T}$ac_cv_prog_gcc_warn_flags" >&6; } fi EXTRA_CFLAGS="${ac_cv_prog_gcc_warn_flags}" fi CFLAGS="$CFLAGS $EXTRA_CFLAGS" # 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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_EMACS+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_EMACS="$ac_prog" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $EMACS" >&5 echo "${ECHO_T}$EMACS" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$EMACS" && break done test -n "$EMACS" || EMACS="no" # Check whether --with-lispdir was given. if test "${with_lispdir+set}" = set; then withval=$with_lispdir; lispdir="$withval" { echo "$as_me:$LINENO: checking where .elc files should go" >&5 echo $ECHO_N "checking where .elc files should go... $ECHO_C" >&6; } { echo "$as_me:$LINENO: result: $lispdir" >&5 echo "${ECHO_T}$lispdir" >&6; } else { echo "$as_me:$LINENO: checking where .elc files should go" >&5 echo $ECHO_N "checking where .elc files should go... $ECHO_C" >&6; } if test "${am_cv_lispdir+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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. { (echo "$as_me:$LINENO: \$EMACS -batch -q -eval '(while load-path (princ (concat (car load-path) \"\\n\")) (setq load-path (cdr load-path)))' conftest.out") >&5 ($EMACS -batch -q -eval '(while load-path (princ (concat (car load-path) "\n")) (setq load-path (cdr load-path)))' conftest.out) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } 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\),${datadir}/\1,;p;q;}' \ conftest.out` rm conftest.out fi fi test -z "$am_cv_lispdir" && am_cv_lispdir='${datadir}/emacs/site-lisp' fi { echo "$as_me:$LINENO: result: $am_cv_lispdir" >&5 echo "${ECHO_T}$am_cv_lispdir" >&6; } lispdir="$am_cv_lispdir" fi # Shall the path to the tools be hardcoded? { echo "$as_me:$LINENO: checking whether paths should be hardcoded" >&5 echo $ECHO_N "checking whether paths should be hardcoded... $ECHO_C" >&6; } # Check whether --enable-paths was given. if test "${enable_paths+set}" = set; then enableval=$enable_paths; fi test "$enable_paths" = "yes" || enable_paths=no { echo "$as_me:$LINENO: result: $enable_paths" >&5 echo "${ECHO_T}$enable_paths" >&6; } # What should get installed? # Check whether --enable-extensions was given. if test "${enable_extensions+set}" = set; then enableval=$enable_extensions; case "${enableval}" in yes|no) ;; *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for --disable-extensions" >&5 echo "$as_me: error: bad value ${enableval} for --disable-extensions" >&2;} { (exit 1); exit 1; }; } ;; esac else enable_extensions=yes fi if test x$enable_extensions = xyes; then EXTENSIONS_TRUE= EXTENSIONS_FALSE='#' else EXTENSIONS_TRUE='#' EXTENSIONS_FALSE= fi { echo "$as_me:$LINENO: checking for PostScript fonts path" >&5 echo $ECHO_N "checking for PostScript fonts path... $ECHO_C" >&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 { echo "$as_me:$LINENO: result: $ac_psfont_path" >&5 echo "${ECHO_T}$ac_psfont_path" >&6; } ## ---------------------------------------------------------- ## ## Write a first sketch of a2ps.cfg. The user should check. ## ## ---------------------------------------------------------- ## # # Check for the file program with follows the links # # Extract the first word of "file", so it can be a program name with args. set dummy file; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_file_prog+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_file_prog="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $file_prog" >&5 echo "${ECHO_T}$file_prog" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi { echo "$as_me:$LINENO: checking for the option for file to follow the links" >&5 echo $ECHO_N "checking for the option for file to follow the links... $ECHO_C" >&6; } if test "${ac_cv_prog_file_link_option+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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) { echo "$as_me:$LINENO: result: none required" >&5 echo "${ECHO_T}none required" >&6; } ; FILE_LINK=${file_prog} ;; Xno) { echo "$as_me:$LINENO: result: no way" >&5 echo "${ECHO_T}no way" >&6; }; FILE_LINK=${file_prog} ;; *) { echo "$as_me:$LINENO: result: $ac_cv_prog_file_link_option" >&5 echo "${ECHO_T}$ac_cv_prog_file_link_option" >&6; }; FILE_LINK=${file_prog}${ac_cv_prog_file_link_option} ;; esac # How to send things in the printer queue for ac_prog in lp lpr do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_LPR+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$LPR"; then ac_cv_prog_LPR="$LPR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_LPR="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LPR=$ac_cv_prog_LPR if test -n "$LPR"; then { echo "$as_me:$LINENO: result: $LPR" >&5 echo "${ECHO_T}$LPR" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi test -n "$LPR" && break done test -n "$LPR" || LPR="no" { echo "$as_me:$LINENO: checking for printer queue selection" >&5 echo $ECHO_N "checking for printer queue selection... $ECHO_C" >&6; } case "x$LPR" in xlp) LPR_QUEUE_OPTION=-d ;; xlpr) LPR_QUEUE_OPTION=-P ;; xno) LPR="cat" LPR_QUEUE_OPTION=">" ;; *) # This user has specified per $LPR and $LPR_QUEUE_OPTION ;; esac { echo "$as_me:$LINENO: result: $LPR $LPR_QUEUE_OPTION PRINTER" >&5 echo "${ECHO_T}$LPR $LPR_QUEUE_OPTION PRINTER" >&6; } # # default medium to use (defaulted to A4) # # Check whether --with-medium was given. if test "${with_medium+set}" = set; then withval=$with_medium; MEDIUM=$with_medium else if test x"$ac_cv_lib_paper_systempapername" = xyes; then MEDIUM=libpaper else MEDIUM=A4 fi fi # # default encoding to use (defaulted to latin1) # # Check whether --with-encoding was given. if test "${with_encoding+set}" = set; then withval=$with_encoding; ENCODING=$with_encoding else 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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_COM_gv+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_COM_gv="yes" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $COM_gv" >&5 echo "${ECHO_T}$COM_gv" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_gv+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_gv="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $gv" >&5 echo "${ECHO_T}$gv" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_COM_ghostview+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_COM_ghostview="yes" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $COM_ghostview" >&5 echo "${ECHO_T}$COM_ghostview" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_ghostview+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_ghostview="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $ghostview" >&5 echo "${ECHO_T}$ghostview" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_COM_gzip+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_COM_gzip="yes" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $COM_gzip" >&5 echo "${ECHO_T}$COM_gzip" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_gzip+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_gzip="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $gzip" >&5 echo "${ECHO_T}$gzip" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: WARNING: ============================================================ a2ps works better with gzip. Consider fetching gzip at any ftp site proposing GNU programs" >&5 echo "$as_me: WARNING: ============================================================ a2ps works better with gzip. Consider fetching gzip at any ftp site proposing GNU programs" >&2;} { echo "$as_me:$LINENO: WARNING: ============================================================" >&5 echo "$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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_COM_bzip+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_COM_bzip="yes" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $COM_bzip" >&5 echo "${ECHO_T}$COM_bzip" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_bzip+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_bzip="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $bzip" >&5 echo "${ECHO_T}$bzip" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_COM_bzip2+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_COM_bzip2="yes" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $COM_bzip2" >&5 echo "${ECHO_T}$COM_bzip2" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_bzip2+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_bzip2="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $bzip2" >&5 echo "${ECHO_T}$bzip2" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_COM_dvips+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_COM_dvips="yes" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $COM_dvips" >&5 echo "${ECHO_T}$COM_dvips" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_dvips+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_dvips="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $dvips" >&5 echo "${ECHO_T}$dvips" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_COM_convert+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_COM_convert="yes" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $COM_convert" >&5 echo "${ECHO_T}$COM_convert" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_convert+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_convert="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $convert" >&5 echo "${ECHO_T}$convert" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 "netscape", so it can be a program name with args. set dummy netscape; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_COM_netscape+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$COM_netscape"; then ac_cv_prog_COM_netscape="$COM_netscape" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_COM_netscape="yes" echo "$as_me:$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_netscape" && ac_cv_prog_COM_netscape="no" fi fi COM_netscape=$ac_cv_prog_COM_netscape if test -n "$COM_netscape"; then { echo "$as_me:$LINENO: result: $COM_netscape" >&5 echo "${ECHO_T}$COM_netscape" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi netscape="netscape"; if test "$COM_netscape" = "yes"; then COM_netscape=""; else COM_netscape="#"; fi else # Extract the first word of "netscape", so it can be a program name with args. set dummy netscape; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_netscape+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $netscape in [\\/]* | ?:[\\/]*) ac_cv_path_netscape="$netscape" # 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_netscape="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_netscape" && ac_cv_path_netscape="#" ;; esac fi netscape=$ac_cv_path_netscape if test -n "$netscape"; then { echo "$as_me:$LINENO: result: $netscape" >&5 echo "${ECHO_T}$netscape" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "netscape" = "#"; then # not found netscape="netscape" # let the name of the program as path COM_netscape="#" else COM_netscape="" fi fi 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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_COM_html2ps+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_COM_html2ps="yes" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $COM_html2ps" >&5 echo "${ECHO_T}$COM_html2ps" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_html2ps+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_html2ps="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $html2ps" >&5 echo "${ECHO_T}$html2ps" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 if test "x$COM_netscape" = x; then { echo "$as_me:$LINENO: checking whether netscape support remote-command" >&5 echo $ECHO_N "checking whether netscape support remote-command... $ECHO_C" >&6; } if test "${remote_com_netscape+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else $netscape --help >conftest.help 2>&1 if fgrep -e -remote conftest.help >/dev/null && fgrep -e -noraise conftest.help >/dev/null; then remote_com_netscape=yes else remote_com_netscape=no fi rm -f conftest.help fi { echo "$as_me:$LINENO: result: $remote_com_netscape" >&5 echo "${ECHO_T}$remote_com_netscape" >&6; } test "$remote_com_netscape" = no && COM_netscape='#' fi # PDF delegation if test "$enable_paths" = "no"; then # Extract the first word of "acroread", so it can be a program name with args. set dummy acroread; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_COM_acroread+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$COM_acroread"; then ac_cv_prog_COM_acroread="$COM_acroread" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_COM_acroread="yes" echo "$as_me:$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_acroread" && ac_cv_prog_COM_acroread="no" fi fi COM_acroread=$ac_cv_prog_COM_acroread if test -n "$COM_acroread"; then { echo "$as_me:$LINENO: result: $COM_acroread" >&5 echo "${ECHO_T}$COM_acroread" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi acroread="acroread"; if test "$COM_acroread" = "yes"; then COM_acroread=""; else COM_acroread="#"; fi else # Extract the first word of "acroread", so it can be a program name with args. set dummy acroread; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_acroread+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $acroread in [\\/]* | ?:[\\/]*) ac_cv_path_acroread="$acroread" # 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_acroread="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_acroread" && ac_cv_path_acroread="#" ;; esac fi acroread=$ac_cv_path_acroread if test -n "$acroread"; then { echo "$as_me:$LINENO: result: $acroread" >&5 echo "${ECHO_T}$acroread" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "acroread" = "#"; then # not found acroread="acroread" # let the name of the program as path COM_acroread="#" else COM_acroread="" fi fi 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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_COM_pdf2ps+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_COM_pdf2ps="yes" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $COM_pdf2ps" >&5 echo "${ECHO_T}$COM_pdf2ps" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_pdf2ps+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_pdf2ps="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $pdf2ps" >&5 echo "${ECHO_T}$pdf2ps" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 COM_acroread4='#' # If we have acroread, is it a version which supports -shrink etc.? if test "x$COM_acroread" = x; then { echo "$as_me:$LINENO: checking whether acroread is acroread 4" >&5 echo $ECHO_N "checking whether acroread is acroread 4... $ECHO_C" >&6; } if test "${a2_cv_com_acroread4+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else $acroread -helpall >conftest.help if fgrep -e -size conftest.help >/dev/null && fgrep -e -shrink conftest.help >/dev/null; then a2_cv_com_acroread4=yes else a2_cv_com_acroread4=no fi rm -f conftest.help fi { echo "$as_me:$LINENO: result: $a2_cv_com_acroread4" >&5 echo "${ECHO_T}$a2_cv_com_acroread4" >&6; } test "$a2_cv_com_acroread4" = yes && COM_acroread4='' fi # Outputting PDF if test "$enable_paths" = "no"; then # Extract the first word of "distill", so it can be a program name with args. set dummy distill; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_COM_distill+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$COM_distill"; then ac_cv_prog_COM_distill="$COM_distill" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_COM_distill="yes" echo "$as_me:$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_distill" && ac_cv_prog_COM_distill="no" fi fi COM_distill=$ac_cv_prog_COM_distill if test -n "$COM_distill"; then { echo "$as_me:$LINENO: result: $COM_distill" >&5 echo "${ECHO_T}$COM_distill" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi distill="distill"; if test "$COM_distill" = "yes"; then COM_distill=""; else COM_distill="#"; fi else # Extract the first word of "distill", so it can be a program name with args. set dummy distill; ac_word=$2 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_distill+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $distill in [\\/]* | ?:[\\/]*) ac_cv_path_distill="$distill" # 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_distill="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_distill" && ac_cv_path_distill="#" ;; esac fi distill=$ac_cv_path_distill if test -n "$distill"; then { echo "$as_me:$LINENO: result: $distill" >&5 echo "${ECHO_T}$distill" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6; } fi if test "distill" = "#"; then # not found distill="distill" # let the name of the program as path COM_distill="#" else COM_distill="" fi fi 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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_COM_ps2pdf+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_COM_ps2pdf="yes" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $COM_ps2pdf" >&5 echo "${ECHO_T}$COM_ps2pdf" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_ps2pdf+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_ps2pdf="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $ps2pdf" >&5 echo "${ECHO_T}$ps2pdf" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 test "$COM_distill$COM_ps2pdf" = "##" && COM_PS2PDF="#" # 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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_COM_psselect+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_COM_psselect="yes" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $COM_psselect" >&5 echo "${ECHO_T}$COM_psselect" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_psselect+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_psselect="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $psselect" >&5 echo "${ECHO_T}$psselect" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_COM_psnup+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_COM_psnup="yes" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $COM_psnup" >&5 echo "${ECHO_T}$COM_psnup" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_psnup+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_psnup="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $psnup" >&5 echo "${ECHO_T}$psnup" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 # There is one. Check version > MAJOR.MINOR ac_prog_psselect_banner=`psselect -v 2>&1 | sed 1q` ac_prog_psselect_release=`set -- $ac_prog_psselect_banner && echo $3` ac_prog_psselect_patch=`set -- $ac_prog_psselect_banner && echo $5` test ${ac_prog_psselect_release}0 -lt 10 && COM_PSUTILS="#" test ${ac_prog_psselect_patch}0 -lt 170 && COM_PSUTILS="#" fi if test "$COM_PSUTILS" = "#"; then { echo "$as_me:$LINENO: WARNING: ===========================================================" >&5 echo "$as_me: WARNING: ===========================================================" >&2;} { echo "$as_me:$LINENO: WARNING: a2ps works much better with the psutils. Available at" >&5 echo "$as_me: WARNING: a2ps works much better with the psutils. Available at" >&2;} { echo "$as_me:$LINENO: WARNING: http://www.dcs.ed.ac.uk/home/ajcd/psutils/" >&5 echo "$as_me: WARNING: http://www.dcs.ed.ac.uk/home/ajcd/psutils/" >&2;} { echo "$as_me:$LINENO: WARNING: You *really* should install them *before* installing a2ps." >&5 echo "$as_me: WARNING: You *really* should install them *before* installing a2ps." >&2;} { echo "$as_me:$LINENO: WARNING: ===========================================================" >&5 echo "$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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_COM_grog+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_COM_grog="yes" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $COM_grog" >&5 echo "${ECHO_T}$COM_grog" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_grog+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_grog="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $grog" >&5 echo "${ECHO_T}$grog" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: WARNING: ============================================================ a2ps works better with groff. Consider fetching groff at any ftp site proposing GNU programs" >&5 echo "$as_me: WARNING: ============================================================ a2ps works better with groff. Consider fetching groff at any ftp site proposing GNU programs" >&2;} { echo "$as_me:$LINENO: WARNING: ============================================================" >&5 echo "$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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_COM_makeinfo+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_COM_makeinfo="yes" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $COM_makeinfo" >&5 echo "${ECHO_T}$COM_makeinfo" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_makeinfo+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_makeinfo="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $makeinfo" >&5 echo "${ECHO_T}$makeinfo" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_COM_tex+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_COM_tex="yes" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $COM_tex" >&5 echo "${ECHO_T}$COM_tex" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_tex+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_tex="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $tex" >&5 echo "${ECHO_T}$tex" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_prog_COM_latex+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_COM_latex="yes" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $COM_latex" >&5 echo "${ECHO_T}$COM_latex" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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 { echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } if test "${ac_cv_path_latex+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else 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 test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_latex="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$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 { echo "$as_me:$LINENO: result: $latex" >&5 echo "${ECHO_T}$latex" >&6; } else { echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}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. ## ## ---------- ## # This is necessary so that .o files in LIBOBJS are also built via # the ANSI2KNR-filtering rules. LIBOBJS=`echo "$LIBOBJS" | sed 's/\.o /\$U.o /g;s/\.o$/\$U.o/'` # Autoconf 2.14a is not ready for libtool LTLIBOBJS=`echo "$LIBOBJS" | sed 's/\.o/\.lo/g'` LTALLOCA=`echo "$ALLOCA" | sed 's/\.o/\.lo/g'` 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/psmandup" ac_config_files="$ac_config_files contrib/psset" ac_config_files="$ac_config_files Makefile src/Makefile doc/Makefile man/Makefile tests/Makefile tests/defs lib/Makefile auxdir/Makefile m4/Makefile etc/Makefile etc/a2ps_cfg etc/a2ps-site.cfg po/Makefile.in sheets/Makefile encoding/Makefile ps/Makefile afm/Makefile contrib/Makefile contrib/sample/Makefile contrib/emacs/Makefile fonts/Makefile ppd/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_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( *) $as_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+set}" = set || &/ 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 test "x$cache_file" != "x/dev/null" && { echo "$as_me:$LINENO: updating cache $cache_file" >&5 echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 echo "$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= 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=`echo "$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. ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi if test -z "${EXTENSIONS_TRUE}" && test -z "${EXTENSIONS_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"EXTENSIONS\" was never defined. Usually this means the macro was only invoked conditionally." >&5 echo "$as_me: error: conditional \"EXTENSIONS\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF #! $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} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh 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 # PATH needs CR # 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 # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) as_nl=' ' IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. 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 echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var fi done # Required to use basename. 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 # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. 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" || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # 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 } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi 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 fi echo >conf$$.file 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 -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' 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=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # 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 # 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.14, which was generated by GNU Autoconf 2.61. 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 cat >>$CONFIG_STATUS <<_ACEOF # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTIONS] [FILE]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit -q, --quiet 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 commands: $config_commands Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ GNU a2ps config.status 4.14 configured by $0, generated by GNU Autoconf 2.61, with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2006 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' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If no file are specified by the user, then we need to provide default # value. By we need to know if files were specified by the user. 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=$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 ) echo "$ac_cs_version"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift CONFIG_FILES="$CONFIG_FILES $ac_optarg" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header { echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; };; --help | --hel | -h ) echo "$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. -*) { echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *) ac_config_targets="$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 if \$ac_cs_recheck; then echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 CONFIG_SHELL=$SHELL export CONFIG_SHELL exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" # Capture the value of obsolete ALL_LINGUAS because we need it to compute # POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS. But hide it # from automake. eval 'ALL_LINGUAS''="$ALL_LINGUAS"' # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # 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" ;; "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; "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/psmandup") CONFIG_FILES="$CONFIG_FILES contrib/psmandup" ;; "contrib/psset") CONFIG_FILES="$CONFIG_FILES contrib/psset" ;; "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" ;; "auxdir/Makefile") CONFIG_FILES="$CONFIG_FILES auxdir/Makefile" ;; "m4/Makefile") CONFIG_FILES="$CONFIG_FILES m4/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" ;; "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/sample/Makefile") CONFIG_FILES="$CONFIG_FILES contrib/sample/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" ;; *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; 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+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || 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= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || { echo "$me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } # # Set up the sed scripts for CONFIG_FILES section. # # No need to generate the scripts if there are no CONFIG_FILES. # This happens for instance when ./config.status config.h if test -n "$CONFIG_FILES"; then _ACEOF ac_delim='%!_!# ' for ac_last_try in false false false false false :; do cat >conf$$subs.sed <<_ACEOF SHELL!$SHELL$ac_delim PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim PACKAGE_NAME!$PACKAGE_NAME$ac_delim PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim PACKAGE_STRING!$PACKAGE_STRING$ac_delim PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim exec_prefix!$exec_prefix$ac_delim prefix!$prefix$ac_delim program_transform_name!$program_transform_name$ac_delim bindir!$bindir$ac_delim sbindir!$sbindir$ac_delim libexecdir!$libexecdir$ac_delim datarootdir!$datarootdir$ac_delim datadir!$datadir$ac_delim sysconfdir!$sysconfdir$ac_delim sharedstatedir!$sharedstatedir$ac_delim localstatedir!$localstatedir$ac_delim includedir!$includedir$ac_delim oldincludedir!$oldincludedir$ac_delim docdir!$docdir$ac_delim infodir!$infodir$ac_delim htmldir!$htmldir$ac_delim dvidir!$dvidir$ac_delim pdfdir!$pdfdir$ac_delim psdir!$psdir$ac_delim libdir!$libdir$ac_delim localedir!$localedir$ac_delim mandir!$mandir$ac_delim DEFS!$DEFS$ac_delim ECHO_C!$ECHO_C$ac_delim ECHO_N!$ECHO_N$ac_delim ECHO_T!$ECHO_T$ac_delim LIBS!$LIBS$ac_delim build_alias!$build_alias$ac_delim host_alias!$host_alias$ac_delim target_alias!$target_alias$ac_delim INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim INSTALL_DATA!$INSTALL_DATA$ac_delim CYGPATH_W!$CYGPATH_W$ac_delim PACKAGE!$PACKAGE$ac_delim VERSION!$VERSION$ac_delim ACLOCAL!$ACLOCAL$ac_delim AUTOCONF!$AUTOCONF$ac_delim AUTOMAKE!$AUTOMAKE$ac_delim AUTOHEADER!$AUTOHEADER$ac_delim MAKEINFO!$MAKEINFO$ac_delim install_sh!$install_sh$ac_delim STRIP!$STRIP$ac_delim INSTALL_STRIP_PROGRAM!$INSTALL_STRIP_PROGRAM$ac_delim mkdir_p!$mkdir_p$ac_delim AWK!$AWK$ac_delim SET_MAKE!$SET_MAKE$ac_delim am__leading_dot!$am__leading_dot$ac_delim AMTAR!$AMTAR$ac_delim am__tar!$am__tar$ac_delim am__untar!$am__untar$ac_delim LIBVERSION!$LIBVERSION$ac_delim GNU_PACKAGE!$GNU_PACKAGE$ac_delim M4!$M4$ac_delim LN_S!$LN_S$ac_delim PERL!$PERL$ac_delim CC!$CC$ac_delim CFLAGS!$CFLAGS$ac_delim LDFLAGS!$LDFLAGS$ac_delim CPPFLAGS!$CPPFLAGS$ac_delim ac_ct_CC!$ac_ct_CC$ac_delim EXEEXT!$EXEEXT$ac_delim OBJEXT!$OBJEXT$ac_delim DEPDIR!$DEPDIR$ac_delim am__include!$am__include$ac_delim am__quote!$am__quote$ac_delim AMDEP_TRUE!$AMDEP_TRUE$ac_delim AMDEP_FALSE!$AMDEP_FALSE$ac_delim AMDEPBACKSLASH!$AMDEPBACKSLASH$ac_delim CCDEPMODE!$CCDEPMODE$ac_delim am__fastdepCC_TRUE!$am__fastdepCC_TRUE$ac_delim am__fastdepCC_FALSE!$am__fastdepCC_FALSE$ac_delim CPP!$CPP$ac_delim GREP!$GREP$ac_delim EGREP!$EGREP$ac_delim U!$U$ac_delim ANSI2KNR!$ANSI2KNR$ac_delim YACC!$YACC$ac_delim YFLAGS!$YFLAGS$ac_delim GPERF!$GPERF$ac_delim LEX!$LEX$ac_delim LEX_OUTPUT_ROOT!$LEX_OUTPUT_ROOT$ac_delim LEXLIB!$LEXLIB$ac_delim build!$build$ac_delim build_cpu!$build_cpu$ac_delim build_vendor!$build_vendor$ac_delim build_os!$build_os$ac_delim host!$host$ac_delim host_cpu!$host_cpu$ac_delim host_vendor!$host_vendor$ac_delim _ACEOF if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` if test -n "$ac_eof"; then ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` ac_eof=`expr $ac_eof + 1` fi cat >>$CONFIG_STATUS <<_ACEOF cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof /@[a-zA-Z_][a-zA-Z_0-9]*@/!b _ACEOF sed ' s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g s/^/s,@/; s/!/@,|#_!!_#|/ :n t n s/'"$ac_delim"'$/,g/; t s/$/\\/; p N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n ' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF CEOF$ac_eof _ACEOF ac_delim='%!_!# ' for ac_last_try in false false false false false :; do cat >conf$$subs.sed <<_ACEOF host_os!$host_os$ac_delim SED!$SED$ac_delim ECHO!$ECHO$ac_delim AR!$AR$ac_delim RANLIB!$RANLIB$ac_delim CXX!$CXX$ac_delim CXXFLAGS!$CXXFLAGS$ac_delim ac_ct_CXX!$ac_ct_CXX$ac_delim CXXDEPMODE!$CXXDEPMODE$ac_delim am__fastdepCXX_TRUE!$am__fastdepCXX_TRUE$ac_delim am__fastdepCXX_FALSE!$am__fastdepCXX_FALSE$ac_delim CXXCPP!$CXXCPP$ac_delim F77!$F77$ac_delim FFLAGS!$FFLAGS$ac_delim ac_ct_F77!$ac_ct_F77$ac_delim LIBTOOL!$LIBTOOL$ac_delim LIBOBJS!$LIBOBJS$ac_delim ALLOCA!$ALLOCA$ac_delim MKINSTALLDIRS!$MKINSTALLDIRS$ac_delim MSGFMT!$MSGFMT$ac_delim GMSGFMT!$GMSGFMT$ac_delim XGETTEXT!$XGETTEXT$ac_delim MSGMERGE!$MSGMERGE$ac_delim USE_NLS!$USE_NLS$ac_delim LIBICONV!$LIBICONV$ac_delim LTLIBICONV!$LTLIBICONV$ac_delim INTLLIBS!$INTLLIBS$ac_delim LIBINTL!$LIBINTL$ac_delim LTLIBINTL!$LTLIBINTL$ac_delim POSUB!$POSUB$ac_delim EXTRA_CFLAGS!$EXTRA_CFLAGS$ac_delim EMACS!$EMACS$ac_delim EMACSLOADPATH!$EMACSLOADPATH$ac_delim lispdir!$lispdir$ac_delim EXTENSIONS_TRUE!$EXTENSIONS_TRUE$ac_delim EXTENSIONS_FALSE!$EXTENSIONS_FALSE$ac_delim PSFONT_PATH!$PSFONT_PATH$ac_delim file_prog!$file_prog$ac_delim FILE_LINK!$FILE_LINK$ac_delim LPR!$LPR$ac_delim LPR_QUEUE_OPTION!$LPR_QUEUE_OPTION$ac_delim MEDIUM!$MEDIUM$ac_delim ENCODING!$ENCODING$ac_delim COM_gv!$COM_gv$ac_delim gv!$gv$ac_delim COM_ghostview!$COM_ghostview$ac_delim ghostview!$ghostview$ac_delim COM_DISPLAY!$COM_DISPLAY$ac_delim COM_gzip!$COM_gzip$ac_delim gzip!$gzip$ac_delim COM_bzip!$COM_bzip$ac_delim bzip!$bzip$ac_delim COM_bzip2!$COM_bzip2$ac_delim bzip2!$bzip2$ac_delim COM_dvips!$COM_dvips$ac_delim dvips!$dvips$ac_delim COM_convert!$COM_convert$ac_delim convert!$convert$ac_delim COM_netscape!$COM_netscape$ac_delim netscape!$netscape$ac_delim COM_html2ps!$COM_html2ps$ac_delim html2ps!$html2ps$ac_delim COM_acroread!$COM_acroread$ac_delim acroread!$acroread$ac_delim COM_pdf2ps!$COM_pdf2ps$ac_delim pdf2ps!$pdf2ps$ac_delim COM_acroread4!$COM_acroread4$ac_delim COM_distill!$COM_distill$ac_delim distill!$distill$ac_delim COM_ps2pdf!$COM_ps2pdf$ac_delim ps2pdf!$ps2pdf$ac_delim COM_PS2PDF!$COM_PS2PDF$ac_delim COM_psselect!$COM_psselect$ac_delim psselect!$psselect$ac_delim COM_psnup!$COM_psnup$ac_delim psnup!$psnup$ac_delim COM_PSUTILS!$COM_PSUTILS$ac_delim COM_grog!$COM_grog$ac_delim grog!$grog$ac_delim COM_makeinfo!$COM_makeinfo$ac_delim makeinfo!$makeinfo$ac_delim COM_tex!$COM_tex$ac_delim tex!$tex$ac_delim COM_latex!$COM_latex$ac_delim latex!$latex$ac_delim COM_TEXI!$COM_TEXI$ac_delim COM_LATEX!$COM_LATEX$ac_delim LTLIBOBJS!$LTLIBOBJS$ac_delim LTALLOCA!$LTALLOCA$ac_delim subdirs!$subdirs$ac_delim _ACEOF if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 90; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed` if test -n "$ac_eof"; then ac_eof=`echo "$ac_eof" | sort -nru | sed 1q` ac_eof=`expr $ac_eof + 1` fi cat >>$CONFIG_STATUS <<_ACEOF cat >"\$tmp/subs-2.sed" <<\CEOF$ac_eof /@[a-zA-Z_][a-zA-Z_0-9]*@/!b end _ACEOF sed ' s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g s/^/s,@/; s/!/@,|#_!!_#|/ :n t n s/'"$ac_delim"'$/,g/; t s/$/\\/; p N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n ' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF :end s/|#_!!_#|//g CEOF$ac_eof _ACEOF # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ 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[ ]*=/{ s/:*\$(srcdir):*/:/ s/:*\${srcdir}:*/:/ s/:*@srcdir@:*/:/ s/^\([^=]*=[ ]*\):*/\1/ s/:*$// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF fi # test -n "$CONFIG_FILES" for ac_tag in :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5 echo "$as_me: error: Invalid tag $ac_tag." >&2;} { (exit 1); exit 1; }; };; :[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="$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 || { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 echo "$as_me: error: cannot find input file: $ac_f" >&2;} { (exit 1); exit 1; }; };; esac ac_file_inputs="$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 "`IFS=: echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure." if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} fi case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin";; 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 || echo 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" case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`echo "$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 || echo 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" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`echo "$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 _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # 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= case `sed -n '/datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p ' $ac_file_inputs` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF 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 sed "$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s&@configure_input@&$configure_input&;t t s&@top_builddir@&$ac_top_builddir_sub&;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 $ac_datarootdir_hack " $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" >$tmp/out test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&5 echo "$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 "$tmp/stdin" case $ac_file in -) cat "$tmp/out"; rm -f "$tmp/out";; *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;; esac ;; :H) # # CONFIG_HEADER # _ACEOF # Transform confdefs.h into a sed script `conftest.defines', that # substitutes the proper values into config.h.in to produce config.h. rm -f conftest.defines conftest.tail # First, append a space to every undef/define line, to ease matching. echo 's/$/ /' >conftest.defines # Then, protect against being on the right side of a sed subst, or in # an unquoted here document, in config.status. If some macros were # called several times there might be several #defines for the same # symbol, which is useless. But do not sort them, since the last # AC_DEFINE must be honored. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* # These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where # NAME is the cpp macro being defined, VALUE is the value it is being given. # PARAMS is the parameter list in the macro definition--in most cases, it's # just an empty string. ac_dA='s,^\\([ #]*\\)[^ ]*\\([ ]*' ac_dB='\\)[ (].*,\\1define\\2' ac_dC=' ' ac_dD=' ,' uniq confdefs.h | sed -n ' t rset :rset s/^[ ]*#[ ]*define[ ][ ]*// t ok d :ok s/[\\&,]/\\&/g s/^\('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p s/^\('"$ac_word_re"'\)[ ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p ' >>conftest.defines # Remove the space that was appended to ease matching. # Then 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. # (The regexp can be short, since the line contains either #define or #undef.) echo 's/ $// s,^[ #]*u.*,/* & */,' >>conftest.defines # Break up conftest.defines: ac_max_sed_lines=50 # First sed command is: sed -f defines.sed $ac_file_inputs >"$tmp/out1" # Second one is: sed -f defines.sed "$tmp/out1" >"$tmp/out2" # Third one will be: sed -f defines.sed "$tmp/out2" >"$tmp/out1" # et cetera. ac_in='$ac_file_inputs' ac_out='"$tmp/out1"' ac_nxt='"$tmp/out2"' while : do # Write a here document: cat >>$CONFIG_STATUS <<_ACEOF # First, check the format of the line: cat >"\$tmp/defines.sed" <<\\CEOF /^[ ]*#[ ]*undef[ ][ ]*$ac_word_re[ ]*\$/b def /^[ ]*#[ ]*define[ ][ ]*$ac_word_re[( ]/b def b :def _ACEOF sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS echo 'CEOF sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail grep . conftest.tail >/dev/null || break rm -f conftest.defines mv conftest.tail conftest.defines done rm -f conftest.defines conftest.tail echo "ac_result=$ac_in" >>$CONFIG_STATUS cat >>$CONFIG_STATUS <<\_ACEOF if test x"$ac_file" != x-; then echo "/* $configure_input */" >"$tmp/config.h" cat "$ac_result" >>"$tmp/config.h" if diff $ac_file "$tmp/config.h" >/dev/null 2>&1; then { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 echo "$as_me: $ac_file is unchanged" >&6;} else rm -f $ac_file mv "$tmp/config.h" $ac_file fi else echo "/* $configure_input */" cat "$ac_result" fi rm -f "$tmp/out12" # Compute $ac_file's index in $config_headers. _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $ac_file | $ac_file:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $ac_file" >`$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 || echo X$ac_file | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :C) { echo "$as_me:$LINENO: executing $ac_file commands" >&5 echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # So let's grep whole file. if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` { as_dir=$dirpart/$fdir case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`echo "$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 || echo 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" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ;; "default-1":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 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" cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" # ALL_LINGUAS, POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES 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 "$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" "$ac_given_srcdir/$ac_dir/LINGUAS"` # Hide the ALL_LINGUAS assigment from automake. eval 'ALL_LINGUAS''=$ALL_LINGUAS_' fi case "$ac_given_srcdir" in .) srcdirpre= ;; *) srcdirpre='$(srcdir)/' ;; esac POFILES= GMOFILES= UPDATEPOFILES= DUMMYPOFILES= for lang in $ALL_LINGUAS; do POFILES="$POFILES $srcdirpre$lang.po" GMOFILES="$GMOFILES $srcdirpre$lang.gmo" UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" DUMMYPOFILES="$DUMMYPOFILES $lang.nop" 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|@GMOFILES@|$GMOFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@CATALOGS@|$CATALOGS|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/psmandup":F) chmod +x contrib/psmandup ;; "contrib/psset":F) chmod +x contrib/psset ;; esac done # for ac_tag { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save # 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 || { (exit 1); exit 1; } fi # # CONFIG_SUBDIRS section. # if test "$no_recursion" != yes; then # Remove --cache-file and --srcdir 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=*) ;; *) case $ac_arg in *\'*) ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac ac_sub_configure_args="$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=`echo "$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 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)" echo "$as_me:$LINENO: $ac_msg" >&5 echo "$ac_msg" >&6 { as_dir="$ac_dir" case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`echo "$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 || echo 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" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`echo "$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 guested configure; otherwise get Cygnus style configure. 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 elif test -f "$ac_srcdir/configure.in"; then # This should be Cygnus configure. ac_sub_configure=$ac_aux_dir/configure else { echo "$as_me:$LINENO: WARNING: no configuration information is in $ac_dir" >&5 echo "$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 { echo "$as_me:$LINENO: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&5 echo "$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\"" || { { echo "$as_me:$LINENO: error: $ac_sub_configure failed for $ac_dir" >&5 echo "$as_me: error: $ac_sub_configure failed for $ac_dir" >&2;} { (exit 1); exit 1; }; } fi cd "$ac_popdir" done fi if test $MEDIUM = libpaper; then libpaper_msg=" * (\`libpaper' means a2ps asks the medium to libpaper. See man paperconf.)" fi cat </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 || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @case `sed 15q $(srcdir)/NEWS` in \ *"$(VERSION)"*) : ;; \ *) \ echo "NEWS not updated; not releasing" 1>&2; \ exit 1;; \ esac $(am__remove_distdir) mkdir $(distdir) $(mkdir_p) $(distdir)/contrib $(distdir)/etc $(distdir)/m4 $(distdir)/po $(distdir)/tests @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(mkdir_p) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ distdir) \ || exit 1; \ fi; \ done -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -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 $(SHELL) $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r $(distdir) dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__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*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && cd $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(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 $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}' distuninstallcheck: @cd $(distuninstallcheck_dir) \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { 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: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-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 info: info-recursive info-am: install-data-am: install-exec-am: install-info: install-info-recursive install-man: 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 mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-info-am uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am all-local \ am--refresh check check-am clean clean-generic clean-libtool \ clean-recursive ctags ctags-recursive dist dist-all dist-bzip2 \ dist-gzip dist-shar dist-tarZ dist-zip distcheck distclean \ distclean-generic distclean-hdr distclean-libtool \ distclean-recursive distclean-tags distcleancheck distdir \ distuninstallcheck dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am install-man \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ maintainer-clean-recursive mostlyclean mostlyclean-generic \ mostlyclean-libtool mostlyclean-recursive pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am uninstall-info-am all-local: FAQ AUTHORS 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_srcdir)/doc a2ps.texi | \ sed -n -f $(top_srcdir)/auxdir/make-faq.sed > FAQ-tmp mv FAQ-tmp FAQ AUTHORS: $(top_srcdir)/doc/translators.txt $(top_srcdir)/doc/$(MAKE_AUTHORS) $(top_srcdir)/sheets/sheets.map cd doc \ && $(PERL) $(MAKE_AUTHORS) > $@-t \ && chmod 644 $@-t mv doc/$@-t $@ # 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.14/.a2ps.prcs_aux0000644000175000017500000012004007440740377014327 0ustar mhattamhatta;; This file is automatically generated, editing may cause PRCS to do ;; REALLY bad things. (Created-By-Prcs-Version 1 3 0) (lib/darray.c 14298 936122944 h/44_darray.c 1.2.1.2.1.1.1.1.1.1) (doc/Makefile.am 3096 1015076904 3_Makefile.a 1.5.1.10.1.3.1.1) (tests/ps-ref/sqlcrtbl.ps 11584 916838044 e/4_sqlcrtbl.p 1.2.1.2) (tests/ps-ref/AppDelegate.ps 5272 916838044 e/29_AppDelegat 1.2.1.2) (sheets/sql92.ssh 2458 905785403 b/50_sql92.ssh 1.1) (po/pl.po 44410 1015076904 f/35_pl.po 1.5.1.1.1.17.1.4.1.17.1.2.1.9.1.1.1.1.1.7.1.10) (tests/guess-2.tst 1924 905786329 l/45_guess2.tst 1.1) (afm/phvrrn.afm 15538 905785403 b/1_phvrrn.afm 1.1) (lib/xstrdup.c 1690 943513603 p/12_xstrdup.c 1.3) (tests/tstfiles/space.pls 1297 905785403 e/43_space.pls 1.1) (lib/getshline.c 5334 936122944 h/46_getshline. 1.2.1.1.1.1) (po/POTFILES.in 1151 943951821 f/45_POTFILES.i 1.2.1.1.1.2.1.2.1.1.1.1.1.1.1.1.1.1) (lib/strncasecmp.c 45 916838044 q/22_strncasecm 1.1) (sheets/asn1.ssh 2605 934173799 r/20_asn1.ssh 1.2) (sheets/a2psrc.ssh 1838 940271631 c/22_a2psrc.ssh 1.4) (sheets/fortran.ssh 1767 917108153 c/44_fortran.ss 1.6) (contrib/fixnt.l 7433 938418838 m/24_fixnt.l 1.2.1.1.1.4) (lib/darray.h 4751 934259459 g/37_darray.h 1.2.1.1.1.1) (encoding/iso9.edf 3709 925403171 b/34_latin5.edf 1.2) (ps/ehandler.ps 2842 905785403 k/37_ehandler.p 1.1) (tests/gps-ref/sqlspace.ps 2895 916838044 d/15_sqlspace.p 1.2.1.2) (ogonkify/pcrbo.afm 15422 905785403 j/50_Courier-Bo 1.1) (auxdir/msdos.sh 1093 905787243 m/20_msdos.sh 1.1) (sheets/ocaml.ssh 2067 943515000 s/10_ocaml.ssh 1.1) (lib/dummypwd.h 1180 905785403 g/49_dummypwd.h 1.1) (ogonkify/mac.enc 2271 905787243 m/10_mac.enc 1.1) (lib/getshline.h 2214 936122944 g/39_getshline. 1.1.1.1.1.1) (ogonkify/latin5.enc 2260 927459905 m/13_latin5.enc 1.2) (tests/ps-ref/al1-3.ps 1575 917096609 q/14_al1-3.ps 1.2) (po/pt.po 43784 1015076904 f/34_pt.po 1.5.1.1.1.17.1.4.1.17.1.2.1.9.1.1.1.1.1.7.1.10) (lib/options.c 21241 936122944 i/16_options.c 1.3.1.1.1.2.1.1.1.3.1.9.1.1.1.2.1.1.1.2) (sheets/js.ssh 2925 943515000 s/9_js.ssh 1.1) (sheets/sed.ssh 1260 943513603 s/4_sed.ssh 1.2) (README 7215 949837659 l/39_README 1.4.1.10.1.2.1.4) (tests/ps-ref/a2ps.ps 3935 947802429 e/27_a2ps.ps 1.2.1.2.1.1) (contrib/card.m4 5701 948934056 r/6_card.m4 1.8) (ogonkify/README 935 905785403 k/34_README 1.1) (lib/options.h 1545 927547209 h/21_options.h 1.1.1.3.1.1) (m4/m4.m4 1110 1015075318 o/24_m4.m4 1.1) (afm/phvbrn.afm 15497 905785403 b/5_phvbrn.afm 1.1) (lib/fonts.h 2099 907959771 h/19_fonts.h 1.1.1.1) (sheets/promela.ssh 2009 940271631 c/4_promela.ss 1.2) (lib/getopt.c 29954 943951821 i/49_getopt.c 1.1.1.6) (tests/tstfiles/ftp2.pml 12172 905785403 f/0_ftp2.pml 1.1) (lib/routines.c 5091 940271631 i/27_routines.c 1.2.1.1.1.1.1.1.1.2.1.7) (lib/fonts.l 19663 947251582 i/14_fonts.l 1.2.1.2.1.2.1.2.1.3.1.1.1.1.1.1) (sheets/for90kwds.ssh 5109 934173799 q/8_for90kwds. 1.8) (sheets/symbols.ssh 4423 940271631 c/28_symbols.ss 1.2) (sheets/shell.ssh 2028 940271631 q/48_shell.ssh 1.3) (tests/inout-1.tst 526 905785403 f/21_inout1.tst 1.1) (tests/gps-ref/includeres.ps 3642 925403171 d/27_includeres 1.2.1.3.1.1) (lib/getopt.h 5863 943951821 h/8_getopt.h 1.1.1.4) (lib/strverscmp.c 3416 943951821 p/18_strverscmp 1.2.1.2) (lib/routines.h 7472 940282013 h/32_routines.h 1.1.1.1.1.1.1.2.1.2.1.3.1.5.1.1) (ogonkify/m4/Makefile.am 354 917096609 q/28_Makefile.a 1.1) (sheets/xs.ssh 1859 943515000 s/11_xs.ssh 1.1) (lib/strtol.c 11501 927459905 g/26_strtol.c 1.4) (ogonkify/doc/ogonkify.info 16173 927372830 k/4_ogonkify.i 1.6) (m4/xstrtoumax.m4 629 1015075318 r/47_xstrtoumax 1.2) (tests/ps-ref/toc.ps 7038 949698601 d/42_toc.ps 1.3.1.2.1.2.1.1.1.1.1.1.1.2) (lib/strverscmp.h 408 912097611 p/17_strverscmp 1.1) (lib/argv.c 7111 914685302 o/45_argv.c 1.2) (lib/memcpy.c 1203 906717035 i/44_memcpy.c 1.2) (tests/tstfiles/a2ps.man 3128 947802429 f/8_a2ps.man 1.2) (tests/ps-ref/wide.ps 7552 916838044 d/39_wide.ps 1.2.1.2) (tests/pages-2.tst 571 913554790 p/31_pages-2.ts 1.1) (afm/phvbo.afm 15511 905785403 b/7_phvbo.afm 1.1) (afm/Makefile.am 2363 1015076904 b/25_Makefile.a 1.9) (ps/gray.pro 2255 917096609 k/42_gray.pro 1.1.1.1) (lib/parseppd.y 4060 927547209 i/6_parseppd.y 1.1.1.2.1.1.1.1.1.1) (lib/madir.c 1538 916838044 o/31_madir.c 1.2) (lib/argv.h 3959 914685302 o/44_argv.h 1.2) (ogonkify/Makefile.am 3500 1015076904 k/32_Makefile.a 1.12) (contrib/emacs/a2ps.el 11170 943513603 5_a2ps.el 1.2) (tests/ps-ref/strange.ps 12474 948578642 d/48_strange.ps 1.2.1.2.1.1) (src/versions.c 2958 934191294 g/11_versions.c 1.5) (encoding/iso15.edf 3695 927459905 m/27_iso15.edf 1.3) (sheets/vrml.ssh 2354 948934056 b/44_vrml.ssh 1.2) (ogonkify/latin1.afm 4436 927459905 k/20_latin1.afm 1.2) (lib/madir.h 1295 916838044 o/30_madir.h 1.2) (afm/pcrr.afm 15440 905785403 b/10_pcrr.afm 1.1) (tests/gps-ref/formfeed.ps 3056 916838044 d/29_formfeed.p 1.2.1.2) (tests/ps-ref/vrcaml.ps 8481 947802429 d/40_vrcaml.ps 1.2.1.2.1.1) (src/versions.h 1745 934191294 f/51_versions.h 1.2) (ogonkify/phvro.afm 15486 905785403 j/44_Helvetica- 1.1) (tests/tstfiles/mutex.py 1581 949698601 s/45_mutex.py 1.1) (tests/ps-ref/sqlpq92.ps 585 916838044 e/2_sqlpq92.ps 1.2.1.2) (sheets/html.ssh 2083 940271631 m/30_html.ssh 1.4) (tests/ps-ref/formfeed.ps 3018 916838044 e/17_formfeed.p 1.2.1.2) (tests/tstfiles/essai2.o2c 3590 949698601 f/4_essai2.o2c 1.2) (tests/ps-ref/al1-virtual.ps 1505 917096609 q/15_al1-fill.p 1.2) (man/a2ps.x 119 909056873 o/38_a2ps.x 1.2) (tests/tstfiles/includeres 1611 905785403 e/51_includeres 1.1) (lib/prange.c 9089 936122944 i/12_prange.c 1.2.1.1.1.1.1.1.1.1) (lib/str_ht.c 3224 936122944 h/39_str_ht.c 1.1.1.2) (tests/params.tst 683 908889172 o/41_params.tst 1.1) (m4/ulonglong.m4 466 936122944 r/46_ulonglong. 1.1) (lib/xfnmatch.h 1059 905785403 g/48_xfnmatch.h 1.1) (sheets/ppd.ssh 2119 940271631 c/7_ppd.ssh 1.4) (lib/fnmatch.c 5663 916838044 j/0_fnmatch.c 1.3) (encoding/README 259 905785403 b/42_README 1.1) (lib/prange.h 1660 905785403 h/17_prange.h 1.1) (lib/str_ht.h 1649 905785403 g/32_str_ht.h 1.1) (tests/gps-ref/synopsys.ps 2478 916838044 q/0_synopsys.p 1.2) (sheets/rexx.ssh 2599 934173799 q/10_rexx.ssh 1.4.1.3) (tests/gps-ref/pi.ps 2561 947802429 s/1_pi.ps 1.2) (sheets/caml.ssh 985 943951821 c/51_caml.ssh 1.2) (lib/strtoul.c 897 943951821 i/32_strtoul.c 1.2) (lib/metaseq.c 35298 943513603 i/17_metaseq.c 1.3.1.6.1.2.1.4.1.1.1.2.1.1.1.3.1.1) (lib/fnmatch.h 2436 906717035 g/51_fnmatch.h 1.1.1.1) (lib/addext.c 2629 927459905 n/44_addext.c 1.3) (lib/media.c 5723 936122944 i/30_media.c 1.13) (encoding/ibm-cp850.edf 2826 905789516 b/31_ibmpc.edf 1.2) (tests/tstfiles/confirm.m3 1229 905785403 f/7_confirm.m3 1.1) (tests/gps-ref/mtvplot.ps 1657 916838044 d/26_mtvplot.ps 1.2.1.2) (sheets/cpp.ssh 1329 934173799 r/30_cpproc.ssh 1.1) (lib/caret.c 2964 905785403 i/18_caret.c 1.1) (lib/metaseq.h 2749 927547209 h/22_metaseq.h 1.1.1.1.1.1.1.1) (sheets/gmake.ssh 1715 934173799 q/25_gmake.ssh 1.3) (lib/media.h 2112 927547209 h/35_media.h 1.4) (afm/psyr.afm 9486 905785403 44_psyr.afm 1.1) (lib/caret.h 1436 905785403 h/23_caret.h 1.1) (lib/argmatch.c 8112 943951821 h/49_argmatch.c 1.1.1.13) (po/sl.po 36714 1015076904 f/32_sl.po 1.4.1.1.1.17.1.4.1.17.1.2.1.9.1.1.1.1.1.7.1.10) (tests/tstfiles/pi.b 1188 940282013 s/3_pi.b 1.1) (tests/inline.tst 738 918139827 f/22_inline.tst 1.3) (ogonkify/doc/ogonkify.1 6133 927459905 k/8_ogonkify.1 1.5) (ogonkify/pcrr.afm 15339 905785403 k/1_Courier.af 1.1) (ps/gray2.pro 2245 917096609 k/40_gray2.pro 1.1.1.1) (afm/pbkdi.afm 15226 905785403 b/15_pbkdi.afm 1.1) (lib/lexppd.h 1223 917455374 q/35_lexppd.h 1.1) (lib/argmatch.h 4586 943951821 g/44_argmatch.h 1.1.1.10) (lib/gethostname.c 1683 910797296 i/50_gethostnam 1.1.1.1) (tests/ps-ref/Converter.ps 11761 917106627 e/28_Converter. 1.2.1.4) (sheets/68000.ssh 1590 948934056 c/23_68000.ssh 1.6) (lib/lexppd.l 6884 943513603 i/7_lexppd.l 1.1.1.2.1.1) (tests/tstfiles/formfeed.txt 18 905785403 f/1_formfeed.t 1.1) (src/parsessh.y 19235 947251582 g/9_parsessh.y 1.1.1.3.1.1.1.2.1.1.1.2) (lib/filalign.c 2172 917455374 q/20_filalign.c 1.3) (ogonkify/ptmr.afm 17942 905785403 j/49_Times-Roma 1.1) (m4/file.m4 1472 905785403 l/3_file.m4 1.1) (tests/tstfiles/sqlspace.pkb 1297 905785403 e/39_sqlspace.p 1.1) (sheets/ps.ssh 2380 940271631 c/6_ps.ssh 1.5) (lib/gen.c 3793 936082402 i/21_gen.c 1.1.1.1.1.1.1.1.1.1) (ogonkify/adobe.enc 2223 905785403 k/29_adobe.enc 1.1) (tests/tstfiles/ex_PSGETRS.f90 8129 905785403 f/3_ex_PSGETRS 1.1) (man/psmandup.x 109 909056873 o/36_psmandup.x 1.2) (tests/gps-ref/symbol.ps 10110 916838044 d/12_symbol.ps 1.2.1.2) (encoding/Makefile.am 881 926689662 b/41_Makefile.a 1.5) (po/sv.po 36182 1015076904 f/31_sv.po 1.4.1.1.1.2.1.15.1.4.1.17.1.2.1.9.1.1.1.1.1.7.1.10) (lib/filalign.h 1854 917455374 q/21_filalign.h 1.2) (tests/gps-ref/vrcaml.ps 9302 947802429 d/7_vrcaml.ps 1.2.1.1.1.1.1.1) (tests/gps-ref/Converter.ps 13074 917106627 d/37_Converter. 1.2.1.4) (tests/Makefile.am 2091 943951821 f/29_Makefile.a 1.3.1.1.1.1.1.1.1.1.1.9) (tests/tstfiles/3-pages.txt 21 917096609 q/26_3-pages.tx 1.1) (encoding/iso13.edf 3717 926689662 r/7_iso13.edf 1.1) (lib/gen.h 2050 905785403 h/26_gen.h 1.1) (ogonkify/VERSION 81 927459905 l/50_VERSION 1.4) (afm/ptmbi.afm 15631 905785403 42_ptmbi.afm 1.1) (m4/perl.m4 2116 912610209 o/32_perl.m4 1.2) (tests/ps-ref/prolog-4.ps 13570 948578642 q/19_prolog-4.p 1.1.1.1) (ps/matrix.pro 2914 905785403 k/39_matrix.pro 1.1) (lib/strdup.c 1202 916838044 i/34_strdup.c 1.3) (arch/os2/gsse.cmd.os2 1050 938418838 n/1_gsse.os2 1.3) (ogonkify/configure.in 1427 1015072884 q/27_configure. 1.6) (sheets/card.ssh 2410 940271631 c/50_card.ssh 1.4) (encoding/hp.edf 2777 905785403 b/38_hp.edf 1.1) (po/ko.po 43782 1015076904 f/37_ko.po 1.4.1.1.1.17.1.4.1.17.1.2.1.9.1.1.1.1.1.7.1.10) (ogonkify/pcrb-c.afm 6809 905785403 j/39_Courier-Bo 1.1) (sheets/sather.ssh 3270 940271631 c/2_sather.ssh 1.3) (tests/ps-ref/essai2.ps 6634 949698601 e/20_essai2.ps 1.2.1.2.1.2) (ogonkify/latin1.enc 2242 927459905 m/17_latin1.enc 1.2) (po/tr.po 38020 1015076904 f/33_tr.po 1.4.1.1.1.17.1.4.1.17.1.2.1.9.1.1.1.1.1.7.1.10) (tests/tstfiles/vrcaml.ml 5156 905785403 e/31_vrcaml.ml 1.1) (lib/atexit.c 2015 905785403 j/3_atexit.c 1.1) (sheets/lex.ssh 1755 940271631 c/41_lex.ssh 1.4) (ogonkify/hp.afm 4402 905785403 k/2_hp.afm 1.1) (tests/gps-ref/space.ps 2892 916838044 d/19_space.ps 1.2.1.2) (sheets/oracle.ssh 4103 905785403 c/9_oracle.ssh 1.1) (afm/pncbi.afm 15704 905785403 51_pncbi.afm 1.1) (ogonkify/ibmpc.afm 4392 905785403 k/3_ibmpc.afm 1.1) (lib/psgen.c 25988 948046346 i/26_psgen.c 1.2.1.1.1.2.1.4.1.1.1.1.1.2.1.1) (sheets/for-free.ssh 1226 917108153 p/49_for-free.s 1.3) (m4/lex.m4 327 943951821 s/26_lex.m4 1.1) (lib/path-concat.c 2822 939681158 h/51_pathconcat 1.2.1.4) (lib/psgen.h 1937 916838044 h/31_psgen.h 1.1.1.1) (ogonkify/pcrro.afm 15443 905785403 k/0_Courier-Ob 1.1) (ogonkify/pcrr-c.afm 6824 905785403 j/41_Courier-Co 1.1) (sheets/pre.ssh 2501 940271631 c/32_pre.ssh 1.2) (m4/Makefile.am 402 1015075318 o/33_Makefile.a 1.19) (lib/xgetcwd.c 1908 906717035 i/4_xgetcwd.c 1.2) (src/delegate.c 12431 940282013 g/14_delegate.c 1.2.1.3.1.3.1.1.1.2.1.1.1.2.1.1) (m4/strcasecmp.m4 1080 1015075318 q/24_strcasecmp 1.2) (tests/ps-ref/sqlspace.ps 2603 916838044 e/1_sqlspace.p 1.2.1.2) (tests/gps-ref/eplv_chkr.ps 2306 916838044 d/33_eplv_chkr. 1.2.1.2) (lib/path-concat.h 1322 936684159 g/47_pathconcat 1.2) (sheets/tex.ssh 4381 934173799 b/49_tex.ssh 1.4) (lib/useropt.c 2269 916075048 i/22_useropt.c 1.1.1.2.1.1.1.1) (ogonkify/pcrb.afm 15352 905785403 j/51_Courier-Bo 1.1) (src/delegate.h 2181 915561865 g/2_delegate.h 1.2.1.2) (afm/pzcmi.afm 15474 905785403 39_pzcmi.afm 1.1) (man/texi2dvi4a2ps.x 419 942325706 r/33_texi2dvi4a 1.2) (tests/tstfiles/Converter.java 6692 905785403 f/9_Converter. 1.1) (sheets/Makefile.am 2892 949837659 d/3_Makefile.a 1.25) (lib/backupfile.c 7426 943951821 h/50_backupfile 1.1.1.1.1.4) (lib/useropt.h 1718 905785403 h/27_useropt.h 1.1) (encoding/ms-cp1250.edf 3475 905789516 b/32_cp1250.edf 1.2) (sheets/tk.ssh 2076 940271631 c/25_tk.ssh 1.3) (ppd/README 301 905786329 22_README 1.2) (m4/rename.m4 1099 1015075318 q/23_rename.m4 1.6) (tests/ps-ref/synopsys.ps 2178 916838044 q/1_synopsys.p 1.2) (tests/gps-ref/ex_PSGETRS.ps 13950 1015072884 d/31_ex_PSGETRS 1.2.1.3.1.1.1.2) (ogonkify/ptmb.afm 15712 905785403 j/47_Times-Bold 1.1) (lib/backupfile.h 1901 927459905 g/45_backupfile 1.1.1.1.1.3) (ogonkify/phvb-c.afm 2795 905786329 j/31_Helvetica- 1.2) (tests/gps-ref/report.ps 9871 948578642 d/22_report.ps 1.2.1.2.1.1) (lib/getnum.c 5929 927459905 o/29_getnum.c 1.8) (afm/make_fonts_map.sh 4423 917096609 34_make_fonts 1.2.1.6) (lib/tterm.c 4745 925403171 p/29_tinyterm.c 1.6) (ANNOUNCE 6425 1015072884 m/21_ANNOUNCE 1.9.1.5) (lib/confg.gperf 9512 943513603 p/33_confg.gper 1.2.1.3.1.1.1.1.1.1.1.3.1.1) (sheets/tcsh.ssh 3366 916075048 m/44_tcsh.ssh 1.2) (afm/pplb.afm 15458 905785403 48_pplb.afm 1.1) (tests/backup.tst 1980 918581999 n/45_backup.tst 1.6) (ps/base.ps 7288 905787589 k/38_base.ps 1.2) (ps/fixed.pro 2464 947802429 s/27_fixed.pro 1.1) (m4/gccwarn.m4 1774 914685302 l/6_gccwarn.m4 1.1.1.3) (afm/ptmi.afm 15725 905785403 41_ptmi.afm 1.1) (lib/getnum.h 1679 927459905 o/28_getnum.h 1.4) (lib/tterm.h 1669 917455374 p/30_tinyterm.h 1.2) (ogonkify/ptmbi-c.afm 2991 905786329 j/34_Times-Bold 1.2) (tests/tstfiles/wide.txt 3788 905785403 e/30_wide.txt 1.1) (ps/diff.pro 2791 905787243 m/19_diff.pro 1.1) (ogonkify/pcrbo-c.afm 6876 905785403 j/38_Courier-Bo 1.1) (src/version-etc.c 2052 943951821 r/18_version-et 1.6) (man/Makefile.am 568 942325706 o/2_Makefile.a 1.7) (tests/ps-ref/includeres.ps 3313 925403171 e/15_includeres 1.2.1.3.1.1) (tests/gps-ref/wide.ps 7915 916838044 d/6_wide.ps 1.2.1.1.1.1) (ogonkify/compose.ps 6080 927459905 l/48_compose.ps 1.3) (tests/gps-ref/sqlinit.ps 8286 916838044 d/17_sqlinit.ps 1.2.1.2) (src/version-etc.h 1267 936122944 r/19_version-et 1.3) (ogonkify/phvr-c.afm 3109 905789516 j/33_Helvetica- 1.2) (src/buffer.c 12735 936122944 g/12_buffer.c 1.2.2.6.1.1) (tests/tstfiles/mtvplot.octave 754 905785403 e/50_mtvplot.oc 1.1) (doc/translators.pl 633 912797686 p/25_translator 1.1) (tests/toc.tst 988 918581999 f/13_toc.tst 1.1.1.3) (doc/contributors.txt 1105 912612096 p/21_contributo 1.1) (tests/ps-ref/encoding.ps 127701 948578642 e/22_encoding.p 1.4.1.5.1.1.1.2.1.1) (src/buffer.h 3359 947802429 g/0_buffer.h 1.5.1.1) (lib/pathmax.h 1763 943951821 h/9_pathmax.h 1.2) (sheets/eps.ssh 1404 940271631 c/18_eps.ssh 1.3) (m4/fp_echo.m4 807 905785403 l/10_fp_echo.m4 1.1) (tests/ps-ref/symbol.ps 9872 916838044 d/46_symbol.ps 1.2.1.2) (tests/ps-ref/run-help.ps 983 925403171 e/7_run-help.p 1.2.1.2.1.1) (tests/a2ps-tst.cfg.in 3503 948578642 f/12_.a2psrc 1.3.1.1.1.1.1.4.1.1.1.1.1.1) (sheets/wdiff.ssh 1954 940271631 l/40_wdiff.ssh 1.2) (ogonkify/composeglyphs.in 14004 927459905 m/35_compose.in 1.5) (sheets/vhdl.ssh 1809 934173799 b/45_vhdl.ssh 1.2) (contrib/Makefile.am 1300 949698601 16_Makefile.a 1.8) (tests/tstfiles/sqlinit.ora 5327 905785403 e/41_sqlinit.or 1.1) (tests/tstfiles/snacc.mib 3729 934173799 r/27_snacc.mib 1.1) (encoding/iso10.edf 3658 926689662 b/27_latin6.edf 1.2) (tests/ps-ref/strip-1.ps 789 916838044 d/51_str1.ps 1.2.1.2) (src/ffaces.c 3033 927547209 g/10_ffaces.c 1.2) (ogonkify/latin6.afm 4367 905785403 k/15_latin6.afm 1.1) (sheets/python.ssh 2972 940271631 c/3_python.ssh 1.3) (contrib/fixbb.m4 4460 935175572 r/4_fixbb.m4 1.2) (tests/ps-ref/strip-3.ps 751 916838044 d/49_str3.ps 1.2.1.2) (m4/malloc.m4 975 1015075318 r/35_malloc.m4 1.2) (src/ffaces.h 3266 905785403 f/50_ffaces.h 1.1) (lib/memset.c 940 916838044 i/43_memset.c 1.2) (tests/guess-1.tst 1075 905786329 l/46_guess1.tst 1.1) (sheets/sdl88.ssh 3014 905785403 c/1_sdl88.ssh 1.1) (lib/encoding.c 30522 936122944 i/31_encoding.c 1.2.1.1.1.3.1.3.1.3.1.1.1.1) (ogonkify/hp.enc 2221 905787243 m/8_hp.enc 1.1) (tests/tstfiles/template.e 3601 905785403 e/33_template.e 1.1) (po/no.po 31244 1015076904 o/43_no.po 1.12.1.4.1.17.1.2.1.9.1.1.1.1.1.7.1.10) (sheets/initora.ssh 3803 905785403 c/16_initora.ss 1.1) (tests/ps-ref/sqlinit.ps 7721 916838044 e/3_sqlinit.ps 1.2.1.2) (contrib/sample/main.c 1907 934173799 9_main.c 1.1.1.2) (lib/encoding.h 3788 907959771 h/36_encoding.h 1.1.1.1) (afm/pbkl.afm 15093 905785403 b/14_pbkl.afm 1.1) (ogonkify/ascii.enc 2168 905787243 m/18_ascii.enc 1.1) (tests/ps-ref/s-garnam.ps 21613 916838044 e/6_s-garnam.p 1.3.1.2) (tests/ps-ref/ex1.ps 1831 934173799 r/24_ex1.ps 1.1) (lib/liba2ps.h.extract 1807 905785403 g/27_liba2ps.h. 1.1) (lib/strcasecmp.c 1943 927459905 i/35_strcasecmp 1.5) (ps/bw.pro 2343 905785403 k/43_bw.pro 1.1) (tests/ps-ref/cut.ps 1847 916838044 e/24_cut.ps 1.2.1.2) (sheets/mail.ssh 11369 948578642 c/40_mail.ssh 1.8) (m4/libpaper.m4 576 909056873 o/42_libpaper.m 1.1) (Makefile.am 2121 1015075318 l/33_Makefile.a 1.5.1.16.1.5) (ogonkify/doc/ogonkify.texi 15784 927372830 k/9_ogonkify.t 1.6) (afm/pplr.afm 15565 905785403 46_pplr.afm 1.1) (sheets/vtcl.ssh 2551 912097611 p/19_vtcl.ssh 1.1) (doc/.a2psrc 420 918139827 m/41_.a2psrc 1.1.1.3) (src/sheets-map.l 7722 949698601 s/8_sheets-map 1.4) (tests/gps-ref/bookie.ps 5736 947802429 r/50_bookie.ps 1.2) (lib/printers.c 17437 939681158 i/20_printers.c 1.2.1.1.1.1.1.1.1.5.1.3.1.3.1.1.1.1.1.2.1.2) (ogonkify/phvbo-c.afm 2802 905786329 j/30_Helvetica- 1.2) (ogonkify/latin7.afm 4433 927459905 r/8_latin7.afm 1.2) (lib/getpwuid.c 1246 905785403 i/47_getpwuid.c 1.1) (sheets/for90-fixed.ssh 1247 917108153 q/6_for90-fixe 1.2) (lib/msg.c 1438 917106627 p/28_msg.c 1.3) (tests/gps-ref/tabulation.ps 3068 916838044 d/11_tabulation 1.2.1.2) (ogonkify/cp1250.afm 4450 905785403 k/14_cp1250.afm 1.1) (fonts/Makefile.am 1350 913554790 33_Makefile.a 1.6) (tests/gps-ref/typing.ps 19268 916838044 d/8_typing.ps 1.2.1.2) (sheets/lout.ssh 7522 949698601 s/37_lout.ssh 1.1) (ogonkify/m4/perl.m4 2108 926689662 q/30_perl.m4 1.2) (lib/printers.h 3477 927547209 h/25_printers.h 1.1.1.2.1.1.1.1) (lib/msg.h 1807 917106627 g/42_msg.h 1.1.1.2.1.1) (tests/gps-ref/polkaIDL.ps 6882 949698601 d/25_polkaIDL.p 1.2.1.2.1.1) (tests/tstfiles/sqlpq92.sql 115 905785403 e/40_sqlpq92.sq 1.1) (lib/printlen.c 2513 927547209 h/42_printlen.c 1.3) (tests/ps-ref/space.ps 2600 916838044 e/5_space.ps 1.2.1.2) (src/ssheet.c 41733 940282013 g/17_ssheet.c 1.2.1.3.1.1.1.1.1.4.1.1.1.3.1.1.1.5.1.2.1.1) (encoding/iso1.edf 3732 905787589 b/36_latin1.edf 1.2) (sheets/modula2.ssh 1291 908889172 c/38_modula2.ss 1.2) (tests/tstfiles/encoding.pre 6888 913554790 f/6_encoding.p 1.3) (contrib/psmandup.m4 5490 940815931 q/43_psmandup.m 1.5) (po/fr.po 48257 1015076904 f/39_fr.po 1.4.1.1.1.18.1.4.1.17.1.2.1.9.1.1.1.1.1.7.1.10) (lib/printlen.h 1552 927547209 g/35_printlen.h 1.2) (tests/pages-1.tst 826 917617275 f/17_pages.tst 1.3) (src/ssheet.h 7044 934195723 g/5_ssheet.h 1.1.1.2.1.2) (sheets/dc_shell.ssh 2582 916075048 q/11_dc_shell.s 1.1) (encoding/ibm-cp437.edf 3503 905789516 m/26_pcg.edf 1.2) (arch/os2/a2ps_cfg.os2 14307 948578642 s/33_a2ps_cfg.o 1.1) (lib/output.c 14245 936122944 i/28_output.c 1.2.1.1.1.3.1.1.1.1.1.1.1.1) (doc/a2ps.texi 236494 949837659 1_a2ps.texi 1.5.1.1.1.1.1.2.1.3.1.4.1.4.1.11.1.2.1.2.1.3.1.1.1.1.1.3.1.3.1.3) (tests/tstfiles/mofibida.hs 1852 949698601 s/44_mofibida.h 1.1) (afm/ptmb.afm 15712 905785403 43_ptmb.afm 1.1) (lib/pathwalk.c 13049 943951821 h/45_pathwalk.c 1.2.1.1.1.2.1.4.1.2.1.1.1.1.1.1.1.2.1.1.1.1) (tests/tstfiles/typing.cl 12096 905785403 e/32_typing.cl 1.1) (man/GNUmakefile 756 942325706 s/5_GNUmakefil 1.1) (lib/output.h 2923 905785403 h/33_output.h 1.1) (m4/strftim.m4 666 1015075318 l/8_strftim.m4 1.7) (contrib/fixps.m4 9534 1015072884 q/45_fixps.m4 1.11) (lib/fjobs.c 3996 936122944 i/9_fjobs.c 1.1.1.2.1.1.1.1) (lib/pathwalk.h 2927 934259459 g/38_pathwalk.h 1.1.1.1.1.1.1.1) (tests/prolog-2.tst 637 948578642 q/32_prolog-2.t 1.4) (lib/xmalloc.c 2935 939681158 i/5_xmalloc.c 1.9) (ogonkify/ogonki.afm 4589 927459905 k/13_ogonki.afm 1.2) (ogonkify/phvr.afm 15499 905785403 j/45_Helvetica. 1.1) (lib/fjobs.h 2745 934666276 h/14_fjobs.h 1.1.1.1.1.1.1.1) (lib/quotearg.c 14124 948578642 p/9_quotearg.c 1.9) (contrib/texi2dvi4a2ps 21577 949837659 11_texi2dvi4a 1.12.1.5) (fonts/pcfont.pfa 19263 913470915 m/42_pcfont.pfa 1.3) (contrib/psset.m4 5955 940815931 q/46_psset.m4 1.8) (sheets/sql.ssh 1803 905785403 b/51_sql.ssh 1.1) (encoding/iso2.edf 3777 905785403 b/29_latin2.edf 1.1) (sheets/modula3.ssh 3188 940271631 c/37_modula3.ss 1.4) (lib/quotearg.h 4530 943951821 p/8_quotearg.h 1.6) (tests/ps-ref/mofibida.ps 3110 949698601 s/42_mofibida.p 1.1) (tests/contrib.tst 423 918581999 q/13_contrib.ts 1.3) (ogonkify/latin6.enc 2172 905787243 m/12_latin6.enc 1.1) (doc/translators.texi 1548 949837659 p/24_translator 1.4.1.3) (m4/tterm.m4 276 925403171 p/16_lister.m4 1.4) (tests/ps-ref/polkaIDL.ps 6212 949698601 e/12_polkaIDL.p 1.2.1.2.1.1) (tests/gps-ref/ehandler.ps 5819 917096609 l/42_ehandler.p 1.2.1.3) (tests/gps-ref/configure.ps 582 947802556 s/29_configure. 1.1) (sheets/pascal.ssh 2937 940271631 c/34_pascal.ssh 1.4) (contrib/emacs/Makefile.am 98 943513603 7_Makefile.a 1.4) (ogonkify/latin9.afm 4411 927459905 r/12_latin9.afm 1.1) (ogonkify/allchars.ps 809 905785403 k/26_allchars.p 1.1) (sheets/README 2417 905785403 d/5_README 1.1) (tests/usropt-2.tst 805 917617275 p/48_options-3. 1.2) (tests/ps-ref/mutex.ps 3290 949698601 s/43_mutex.ps 1.1) (contrib/README 408 940815931 18_README 1.2) (lib/dsc.c 10426 947251582 i/15_dsc.c 1.1.1.2.1.1.1.1) (tests/gps-ref/run-help.ps 1164 925403171 d/21_run-help.p 1.2.1.2.1.1) (afm/pbkli.afm 15196 905785403 b/13_pbkli.afm 1.1) (ps/a2ps.hdr 3880 905786329 k/36_a2ps.hdr 1.2) (afm/pzdr.afm 9316 905785403 38_pzdr.afm 1.1) (m4/c-bs-a.m4 691 948578642 s/34_c-bs-a.m4 1.1) (encoding/iso3.edf 3695 905785403 b/35_latin3.edf 1.1) (lib/message.c 3226 940815931 h/48_message.c 1.3.1.2.1.2.1.2) (lib/dsc.h 2319 907959771 h/20_dsc.h 1.1.1.1) (sheets/cxx.ssh 1947 949698601 c/48_cpp.ssh 1.6) (lib/xstrtol.c 5669 943951821 p/14_xstrtol.c 1.3) (sheets/matlab4.ssh 7011 917455374 c/13_matlab4.ss 1.2) (ogonkify/latin7.enc 2238 927459905 r/9_latin7.enc 1.2) (lib/message.h 1662 940282013 g/41_message.h 1.4) (lib/README 749 905785403 j/7_README 1.1) (tests/styles.tst 3543 947802429 f/14_styles.tst 1.1.1.3.2.2.1.1.1.1.1.2.1.1) (tests/ps-ref/tabulation.ps 2887 916838044 d/45_tabulation 1.2.1.2) (lib/xstrtol.h 1693 927459905 p/13_xstrtol.h 1.2) (sheets/awk.ssh 1784 925403171 q/50_awk.ssh 1.1) (afm/pncb.afm 15554 905785403 b/0_pncb.afm 1.1) (arch/os2/Makefile.os2 3470 949698601 m/38_Makefile.o 1.2.1.4.1.5) (tests/ps-ref/psmandup.ps 12305 916838044 e/9_psmandup.p 1.2.1.2) (man/Makefile.maint 961 942325706 s/6_Makefile.m 1.1) (lib/ansi2knr.1 1529 905785403 l/23_ansi2knr.1 1.1) (etc/README.in 1012 927478836 k/46_README.in 1.3) (afm/ptmr.afm 15580 905785403 40_ptmr.afm 1.1) (afm/pcfont.afm 6934 905789516 m/43_pcfont.afm 1.1) (lib/hashtab.c 8476 936122944 i/1_hashtab.c 1.3.1.4.1.1) (tests/ps-ref/ex_PSGETRS.ps 12659 1015072884 e/19_ex_PSGETRS 1.2.1.3.1.1.1.2) (ogonkify/ptmbi.afm 15631 905785403 j/46_Times-Bold 1.1) (src/sshread.c 13476 936122944 g/18_sshread.c 1.2.1.1.1.1.1.1.1.1.1.1.1.2) (tests/tstfiles/report.pre 11395 905785403 e/46_report.pre 1.1) (src/long-options.c 2365 936122944 r/16_long-optio 1.3) (sheets/tcl.ssh 2864 940271631 c/27_tcl.ssh 1.3) (m4/a2_psutils.m4 1291 943513603 m/4_a2_psutils 1.6) (lib/liba2ps.h.in 1999 934173799 g/28_liba2ps.h. 1.1.1.2) (tests/ps-ref/del.ps 3 905785403 e/23_del.ps 1.1) (src/lexps.h 1185 917455374 p/45_lexps.h 1.2) (lib/hashtab.h 7877 940282013 h/7_hashtab.h 1.1.1.4) (ogonkify/phvb.afm 15443 905785403 j/43_Helvetica- 1.1) (src/sshread.h 1338 905786329 g/6_sshread.h 1.2) (src/long-options.h 1264 936122944 r/17_long-optio 1.2) (lib/strftime.c 29834 947251582 i/33_strftime.c 1.1.1.7) (src/lexps.l 1552 1015072884 p/46_lexps.l 1.2.1.1) (ogonkify/mac.afm 4451 905785403 k/12_mac.afm 1.1) (tests/po.tst 300 918139827 q/37_po.tst 1.1) (sheets/lace.ssh 1892 940271631 c/14_lace.ssh 1.2) (src/yy2ssh.h 946 905787589 f/49_yy2ssh.h 1.2) (sheets/.a2psrc 769 910797296 o/40_.a2psrc 1.2) (encoding/iso4.edf 3675 905785403 b/28_latin4.edf 1.1) (lib/alloca.c 14245 916838044 j/4_alloca.c 1.3) (ogonkify/helper.ps 732 905785403 k/24_helper.ps 1.1) (tests/tstfiles/prosamp.pre 479 905785403 e/48_prosamp.pr 1.1) (lib/dirname.c 1879 916838044 p/34_dirname.c 1.2) (arch/os2/config.h.os2 12305 949698601 m/39_config.h.o 1.5.1.4) (po/it.po 49959 1015076904 f/38_it.po 1.4.1.1.1.18.1.4.1.17.1.2.1.9.1.1.1.1.1.7.1.10) (lib/xgethostname.c 1925 936082402 i/3_xgethostna 1.1.1.1) (po/ru.po 36768 1015076904 m/34_ru.po 1.2.1.1.1.17.1.4.1.17.1.2.1.9.1.1.1.1.1.7.1.10) (lib/userdata.c 3260 942325706 r/39_userdata.c 1.4) (tests/ps-ref/pages-1.ps 2342 916838044 e/13_pages.ps 1.2.1.3) (lib/jobs.c 10698 948046346 i/29_jobs.c 1.3.1.1.1.5.1.4.1.1.1.5.1.2.1.1.1.3.1.1) (src/main.c 34897 948934056 g/20_main.c 1.4.1.1.1.1.1.7.1.3.1.5.1.11.1.1.1.2.1.3.1.2.1.1.1.5.1.1.1.1) (tests/ps-ref/prosamp.ps 818 916838044 e/10_prosamp.ps 1.2.1.2) (src/generate.c 10221 948046346 g/15_generate.c 1.2.1.3.1.3.1.3.1.1.1.1.1.1.1.2.1.1) (m4/fullpath.m4 1665 1015075318 p/7_fullpath.m 1.4) (lib/userdata.h 1308 936684159 r/40_userdata.h 1.2) (sheets/yacc.ssh 1645 942325706 c/24_yacc.ssh 1.4) (tests/gps-ref/sqlcrtbl.ps 12602 916838044 d/18_sqlcrtbl.p 1.2.1.2) (sheets/sheets.map 8906 949698601 d/2_sheets.map 1.3.1.3.1.1.1.1.1.5.1.1.1.1.1.1.1.2.1.2.1.6) (lib/jobs.h 6361 948046346 h/34_jobs.h 1.1.1.1.1.4.1.1.1.2.1.2.1.1) (afm/pcrro.afm 15485 905785403 b/9_pcrro.afm 1.1) (tests/gps-ref/mutex.ps 3668 949698601 s/41_mutex.ps 1.1) (src/main.h 1939 927547209 p/39_main.h 1.1.1.1.1.1) (afm/phvb.afm 15443 905785403 b/8_phvb.afm 1.1) (etc/a2ps-site.cfg.in 2567 948046346 p/35_a2ps-print 1.7.1.2) (afm/pplri.afm 15549 905785403 45_pplri.afm 1.1) (src/generate.h 1263 934666276 g/3_generate.h 1.2.1.1.1.1) (tests/prolog-1.tst 360 917110921 f/16_prologue.t 1.4.1.2) (ppd/Makefile.am 1151 905785403 21_Makefile.a 1.1) (lib/stream.c 3645 936122944 i/11_stream.c 1.4.1.1.1.1.1.1) (sheets/unity.ssh 1865 905786329 b/47_unity.ssh 1.2) (lib/mktime.c 15118 935175572 i/42_mktime.c 1.10) (NEWS 28123 1015076904 l/32_NEWS 1.5.1.1.1.4.1.2.1.1.1.5.1.3.1.3.1.2.1.9.1.2.1.2.1.3.1.3.1.1.1.5.1.2.1.7.1.1) (m4/atexit.m4 765 1015075318 l/11_atexit.m4 1.3) (sheets/ada.ssh 3262 940271631 d/1_ada.ssh 1.5) (sheets/maple.ssh 1851 948046346 s/32_maple.ssh 1.1) (lib/stream.h 1856 927547209 h/16_stream.h 1.4) (tests/tstfiles/strange.mail 4810 905785403 e/38_strange.ma 1.1) (encoding/iso5.edf 4353 905785403 b/37_iso5.edf 1.1) (ogonkify/cp1250.enc 2260 905787243 m/11_cp1250.enc 1.1) (lib/closeout.c 2742 927478836 r/14_closeout.c 1.1) (tests/tstfiles/run-help 377 905785403 e/45_run-help 1.1) (tests/tstfiles/ehandler 2842 905786329 l/44_ehandler 1.1) (tests/gps-ref/a2ps.ps 4337 947802429 d/36_a2ps.ps 1.2.1.2.1.1) (sheets/sh.ssh 1810 940271631 c/0_sh.ssh 1.5) (ogonkify/latin9.enc 2216 927459905 r/13_latin9.enc 1.1) (m4/winsz.m4 911 943951821 s/16_winsz.m4 1.1) (ogonkify/ptmr-c.afm 2957 905786329 j/37_Times-Roma 1.2) (lib/xalloc.h 3168 943951821 r/34_xalloc.h 1.1.1.6) (tests/align-1.tst 874 918581999 q/12_align-1.ts 1.3.1.1) (sheets/pretex.ssh 3282 940271631 c/31_pretex.ssh 1.2) (afm/pncr.afm 15495 905785403 50_pncr.afm 1.1) (lib/closeout.h 233 927478836 r/15_closeout.h 1.1) (sheets/autoconf.ssh 1367 948934056 r/31_autoconf.s 1.4) (tests/gps-ref/template.ps 7815 916838044 d/9_template.p 1.2.1.2) (tests/printers.tst 193 926689662 r/5_printers.t 1.1) (tests/tstfiles/sqlcrtbl.sql 5934 905785403 e/42_sqlcrtbl.s 1.1) (sheets/mly.ssh 1345 949698601 s/38_mly.ssh 1.1) (sheets/vba.ssh 2319 925403171 q/51_vba.ssh 1.1) (ogonkify/latin2.afm 4396 905785403 k/19_latin2.afm 1.1) (tests/ps-ref/al1-rank.ps 1503 917096609 q/17_al1-rank.p 1.2) (sheets/zsh.ssh 2334 947802429 b/43_zsh.ssh 1.4) (sheets/texscript.ssh 2068 940271631 c/26_texscript. 1.2) (ogonkify/fontname.dat 241 905786329 l/47_fontname.d 1.1) (tests/usropt-1.tst 438 917617275 o/46_options2.t 1.3) (sheets/java.ssh 2524 934173799 c/42_java.ssh 1.4) (lib/a2ps.h 971 936122944 h/11_a2ps.h 1.3.1.1) (ogonkify/ptmri-c.afm 2982 905786329 j/36_Times-Ital 1.2) (ps/ul.pro 2348 947802429 s/28_ul.pro 1.1) (tests/ps-ref/prolog-1.ps 13422 948578642 e/11_prolog.ps 1.3.1.2) (sheets/perl.ssh 6762 947251582 c/33_perl.ssh 1.6) (sheets/gnuc.ssh 1748 940271631 c/43_gnuc.ssh 1.4) (sheets/tclx.ssh 2039 912097611 p/20_tclx.ssh 1.1) (ogonkify/printenc.ps 117 905785403 k/23_printenc.p 1.1) (ogonkify/pcrro-c.afm 6901 905785403 j/40_Courier-Ob 1.1) (tests/encoding.tst 532 913554790 f/24_encoding.t 1.1.1.1) (tests/ps-ref/typing.ps 16925 916838044 d/41_typing.ps 1.2.1.2) (src/select.c 6112 947251582 g/16_select.c 1.2.1.3.1.1.1.1.1.1.1.1.1.1.1.3.1.1.1.1) (sheets/for-fixed.ssh 1388 934173799 p/50_for-fixed. 1.4) (po/ca.po 46973 1015076904 f/44_ca.po 1.4.1.1.1.17.1.4.1.17.1.2.1.9.1.1.1.1.1.7.1.10) (lib/liba2ps.h 3790 934173799 h/37_liba2ps.h 1.1.1.2) (sheets/chlog.ssh 1791 940271631 c/21_chlog.ssh 1.3) (sheets/for77-free.ssh 1244 917108153 q/4_for77-free 1.2) (sheets/coqv.ssh 2132 940271631 c/19_coqv.ssh 1.2) (man/card.x 109 909056873 o/37_card.x 1.2) (tests/gps-ref/mofibida.ps 3577 949698601 s/40_mofibida.p 1.1) (tests/ps-ref/ftp2.ps 20176 916838044 e/16_ftp2.ps 1.2.1.2) (tests/deleg-1.tst 470 905785403 f/26_deleg1.tst 1.1) (src/select.h 2008 947251582 g/4_select.h 1.2.1.1.1.1) (sheets/eiffel.ssh 2729 940271631 c/46_eiffel.ssh 1.3) (lib/stpcpy.c 1440 916838044 i/37_stpcpy.c 1.3) (tests/gps-ref/snacc.ps 6344 947802429 r/23_snacc.ps 1.2) (lib/system.h 12247 949691314 h/12_system.h 1.2.1.1.1.2.1.4.1.3.1.3.1.1.1.1) (ppd/level2.ppd 2731 917617275 19_level2.ppd 1.1.1.2) (sheets/bc.ssh 1666 940271631 r/48_bc.ssh 1.1) (man/fixps.x 96 909056873 o/35_fixps.x 1.2) (tests/gps-ref/ex1.ps 2029 947802429 r/22_ex1.ps 1.2) (ogonkify/latin3.afm 4474 905785403 k/18_latin3.afm 1.1) (encoding/encoding.map 2948 926689662 b/40_encoding.m 1.4) (lib/lister.c 18303 939681158 p/11_lister.c 1.7.1.4.1.1.1.4) (afm/phvr.afm 15499 905785403 b/4_phvr.afm 1.1) (lib/dstring.c 8951 936122944 h/43_dstring.c 1.5.1.1) (sheets/prolog.ssh 1935 940271631 c/5_prolog.ssh 1.3) (ogonkify/doc/Makefile.am 912 927459905 k/11_Makefile.a 1.3) (sheets/b.ssh 2844 934173799 r/21_b.ssh 1.2) (contrib/sample/Makefile.am 1417 914685302 10_Makefile.a 1.3) (lib/basename.c 1854 939681158 n/43_basename.c 1.4) (tests/tstfiles/ex1.asn1 895 934173799 r/26_ex1.asn1 1.1) (sheets/oberon.ssh 2513 940271631 c/36_oberon.ssh 1.4) (lib/lister.h 2871 917455374 p/10_lister.h 1.8) (lib/ansi2knr.c 18709 927459905 l/22_ansi2knr.c 1.4) (lib/dstring.h 5347 927547209 g/36_dstring.h 1.3) (encoding/ascii.edf 2700 905785403 b/39_ascii.edf 1.1) (tests/ps-ref/mtvplot.ps 1512 916838044 e/14_mtvplot.ps 1.2.1.2) (sheets/tiger.ssh 1664 940271631 r/10_tiger.ssh 1.3) (m4/termios.m4 358 943951821 s/15_termios.m4 1.1) (tests/ps-ref/bookie.ps 5171 947802429 r/51_bookie.ps 1.2) (tests/gps-ref/essai2.ps 7078 949698601 d/32_essai2.ps 1.2.1.2.1.2) (sheets/csh.ssh 1725 925403171 c/47_csh.ssh 1.2) (sheets/pov.ssh 4976 949698601 s/39_pov.ssh 1.1) (contrib/emacs/a2ps-print.el 3943 905787589 m/23_a2ps-print 1.1) (lib/isdir.c 1271 916838044 i/0_isdir.c 1.3) (po/da.po 26780 1015076904 f/42_da.po 1.4.1.1.1.17.1.4.1.17.1.2.1.8.1.1.1.1.1.7.1.10) (lib/xobstack.h 983 943513603 g/43_xobstack.h 1.2.1.2) (tests/tstfiles/psmandup 7565 905785403 e/47_psmandup 1.1) (tests/cut.tst 459 916838044 f/27_cut.tst 1.1.1.1) (lib/getuid.c 961 905785403 i/46_getuid.c 1.1) (po/cs.po 40021 1015076904 f/43_cs.po 1.4.1.1.1.18.1.4.1.17.1.2.1.9.1.1.1.1.1.7.1.10) (tests/deleg-2.tst 480 905785403 f/25_deleg2.tst 1.1) (sheets/claire.ssh 3327 940271631 c/20_claire.ssh 1.3) (encoding/mac.edf 2942 905785403 b/33_mac.edf 1.1) (po/de.po 47488 1015076904 f/41_de.po 1.4.1.1.1.18.1.4.1.17.1.2.1.9.1.1.1.1.1.7.1.10) (tests/ps-ref/confirm.ps 2117 916838044 e/25_confirm.ps 1.2.1.2) (etc/a2ps_cfg.in 15451 949837659 k/47_a2ps_cfg.i 1.4.1.5.1.2.1.6.1.1.1.2.1.1.1.2.1.1.1.4) (sheets/objc.ssh 1779 940271631 c/35_objc.ssh 1.4) (ogonkify/latin4.afm 4373 905785403 k/17_latin4.afm 1.1) (man/psset.x 120 914770353 p/41_psset.x 1.1) (sheets/cidl.ssh 3653 940271631 r/49_cidl.ssh 1.1) (lib/faces.c 4388 927547209 i/24_faces.c 1.1.1.1) (po/Makefile.in.in 5212 1015075318 f/46_Makefile.i 1.3.1.3) (lib/rename.c 3516 949698601 i/38_rename.c 1.4) (afm/phvro.afm 15486 905785403 b/3_phvro.afm 1.1) (tests/ps-ref/snacc.ps 5676 947802429 r/25_snacc.ps 1.2) (sheets/ssh.ssh 7512 940271631 c/29_ssh.ssh 1.3) (lib/xdirent.h 1667 905785403 h/3_xdirent.h 1.1) (tests/tstfiles/AppDelegate.m 3119 905785403 f/10_AppDelegat 1.1) (sheets/c.ssh 2341 949698601 d/0_c.ssh 1.8) (tests/tstfiles/configure.in 91 947802556 s/31_configure. 1.1) (lib/faces.h 3254 905785403 h/29_faces.h 1.1) (lib/xstrrpl.c 3449 936122944 h/47_xstrrpl.c 1.5.1.1) (ogonkify/phvro-c.afm 2793 905786329 j/32_Helvetica- 1.2) (tests/ps-ref/configure.ps 565 947802556 s/30_configure. 1.1) (afm/phvron.afm 15510 905785403 b/2_phvron.afm 1.1) (m4/protos.m4 630 943951821 s/19_protos.m4 1.1) (m4/lpr.m4 789 907959771 l/9_lpr.m4 1.2) (lib/confg.h 1705 905785403 h/28_confg.h 1.1) (lib/pair_ht.c 7126 936122944 h/41_pair_ht.c 1.1.1.7.1.2.1.1.1.1) (ogonkify/phvbo.afm 15511 905785403 j/42_Helvetica- 1.1) (lib/xstrrpl.h 1488 917455374 g/40_xstrrpl.h 1.3) (afm/pbkd.afm 15128 905785403 b/16_pbkd.afm 1.1) (tests/tstfiles/symbol.pre 5866 905785403 e/36_symbol.pre 1.1) (tests/ps-ref/al1-page.ps 1503 917096609 q/16_al1-page.p 1.2) (sheets/o2c.ssh 1746 940271631 c/12_o2c.ssh 1.2) (sheets/elisp.ssh 3040 934173799 c/45_elisp.ssh 1.3) (ogonkify/latin2.enc 2202 905787243 m/16_latin2.enc 1.1) (ogonkify/ptmri.afm 18068 905785403 j/48_Times-Ital 1.1) (tests/tstfiles/fasttrig.pas 3829 905785403 f/2_fasttrig.p 1.1) (lib/pair_ht.h 2609 905785403 g/34_pair_ht.h 1.1) (doc/sample.eps 16275 915561865 p/47_sample.eps 1.1) (src/read.c 5306 947802429 g/19_read.c 1.2.1.3) (lib/prolog.c 18173 940271631 i/25_prolog.c 1.2.1.3.1.2.1.2.1.1.1.1.1.2) (man/pdiff.x 112 909056873 o/34_pdiff.x 1.2) (ps/color.pro 2437 918826184 k/41_color.pro 1.1.1.1) (lib/common.c 1974 943513603 i/8_common.c 1.2.1.2.1.1.1.1.1.1) (tests/tstfiles/synopsys.setup 1268 916075048 q/2_synopsys.s 1.1) (tests/gps-ref/s-garnam.ps 24726 916838044 d/20_s-garnam.p 1.3.1.2) (arch/os2/README 4669 949698601 m/37_README.OS2 1.5.1.3) (auxdir/make-faq.sed 605 927478836 p/36_make-faq.s 1.4) (lib/Makefile.am 4871 940282013 j/5_Makefile.a 1.2.1.1.1.1.1.7.1.1.1.2.1.3.1.2.1.1.1.1.1.1.1.1.1.4.1.1) (m4/uintmax_t.m4 581 942325706 r/45_uintmax_t. 1.2) (ps/bold.pro 2454 905786329 l/51_bold.pro 1.1) (tests/ps-ref/strip-0.ps 818 916838044 e/0_str0.ps 1.2.1.2) (src/read.h 1224 905786329 g/7_read.h 1.2) (sheets/verilog.ssh 1922 905785403 b/46_verilog.ss 1.1) (sheets/plsql.ssh 2626 905785403 c/8_plsql.ssh 1.1) (lib/prolog.h 2039 916838044 h/30_prolog.h 1.1.1.1) (tests/tstfiles/polkaIDL.hh 3618 949698601 e/49_polkaIDL.h 1.2) (tests/gps-ref/psmandup.ps 14138 916838044 d/23_psmandup.p 1.2.1.2) (ogonkify/latin5.afm 4454 927459905 k/16_latin5.afm 1.2) (lib/common.h 1820 937983648 h/13_common.h 1.1.1.1) (m4/realloc.m4 1004 1015075318 r/36_realloc.m4 1.2) (afm/phvbon.afm 15540 905785403 b/6_phvbon.afm 1.1) (tests/ps-ref/template.ps 7320 916838044 d/43_template.p 1.2.1.2) (tests/ps-ref/strip-2.ps 782 916838044 d/50_str2.ps 1.2.1.2) (tests/defs.in 2605 949698601 f/28_defs.in 1.3.1.1.1.1.1.5.1.1.1.1.1.3.1.1.1.2) (ogonkify/ogonkify.in 9325 1015075318 k/27_ogonkify.i 1.9.1.2) (THANKS 2532 949837659 l/31_THANKS 1.20) (tests/strip.tst 898 916838044 f/15_strip.tst 1.2) (sheets/haskell.ssh 3136 949698601 s/36_haskell.ss 1.1) (contrib/shell.m4 2829 942325706 q/47_shell.m4 1.4) (lib/obstack.c 17837 905954850 i/41_obstack.c 1.2) (lib/signame.c 8077 914276742 p/38_signame.c 1.1) (tests/gps-ref/prosamp.ps 899 916838044 d/24_prosamp.ps 1.2.1.2) (sheets/for90-free.ssh 1245 917108153 q/7_for90-free 1.2) (contrib/pdiff.m4 2925 940815931 q/44_pdiff.m4 1.4) (tests/tstfiles/tabulation.pre 1979 905785403 e/35_tabulation 1.1) (tests/tstfiles/eplv_chkr.v 1066 905785403 f/5_eplv_chkr. 1.1) (po/nl.po 40842 1015076904 f/36_nl.po 1.4.1.1.1.17.1.4.1.17.1.2.1.9.1.1.1.1.1.7.1.10) (tests/ps-ref/eplv_chkr.ps 2025 916838044 e/21_eplv_chkr. 1.2.1.2) (tests/inout-2.tst 531 905785403 f/20_inout2.tst 1.1) (lib/obstack.h 22818 905954850 i/40_obstack.h 1.2) (lib/signame.h 2135 914276742 p/37_signame.h 1.1) (man/help2man 11485 943951821 m/50_help2man 1.9) (tests/ps-ref/report.ps 9160 948578642 e/8_report.ps 1.2.1.2.1.1) (src/lexssh.l 13000 943951821 g/8_lexssh.l 1.1.1.1.1.1.1.1.1.1) (sheets/octave.ssh 842 905785403 c/11_octave.ssh 1.1) (lib/ppd.c 4305 936122944 i/13_ppd.c 1.2.1.2.1.3.1.1.1.1) (encoding/iso7.edf 2951 905787589 m/28_iso7.edf 1.1) (sheets/for77kwds.ssh 3870 1015072884 q/5_for77kwds. 1.8) (doc/translators.txt 1152 949837659 p/23_translator 1.4.1.3) (sheets/texinfo.ssh 4932 940271631 b/48_texinfo.ss 1.4) (lib/stpncpy.c 1818 905785403 i/36_stpncpy.c 1.1) (lib/getopt1.c 4555 943951821 i/48_getopt1.c 1.1.1.4) (ogonkify/ogonkify.in.in 9299 927459905 q/31_ogonkify.i 1.3) (sheets/is5rul.ssh 15968 938418838 c/15_is5rul.ssh 1.3) (tests/tstfiles/bookie.idl 2882 940271631 s/0_bookie.idl 1.1) (tests/ps-ref/al1-sheet.ps 1539 917096609 q/18_al1-sheet. 1.2) (src/Makefile.am 1950 943513603 g/23_Makefile.a 1.2.1.1.1.2.1.1.1.1.1.4) (sheets/idl.ssh 14540 948578642 c/17_idl.ssh 1.4) (ogonkify/latin3.enc 2280 905787243 m/15_latin3.enc 1.1) (lib/ppd.h 1965 925403171 h/18_ppd.h 1.1.1.1.1.1) (lib/error.c 6506 943951821 j/2_error.c 1.1.1.5) (sheets/clisp.ssh 2712 934173799 c/49_clisp.ssh 1.4) (po/es.po 47170 1015076904 f/40_es.po 1.4.1.1.1.17.1.4.1.17.1.2.1.9.1.2.1.7.1.10) (ogonkify/ascii.afm 2029 905785403 k/22_ascii.afm 1.1) (afm/pcrbo.afm 15518 905785403 b/11_pcrbo.afm 1.1) (lib/stpncpy.h 1239 907959771 g/46_stpncpy.h 1.2) (etc/Makefile.am 1658 943951821 k/48_Makefile.a 1.3.1.1.1.1.1.2.1.1.1.1.1.1) (lib/yy2ppd.h 1001 905787589 h/10_yy2ppd.h 1.2) (afm/pplbi.afm 15599 905785403 47_pplbi.afm 1.1) (afm/fontsmap 3062 905789516 b/24_fonts.map 1.3) (tests/gps-ref/strange.ps 13405 948578642 d/14_strange.ps 1.2.1.2.1.1) (ppd/level1.ppd 1892 917617275 20_level1.ppd 1.1.1.1) (lib/error.h 2672 914876522 j/1_error.h 1.4) (TODO 4633 949691314 l/30_TODO 1.2.1.5.1.3.1.4.1.21.1.3) (tests/gps-ref/fasttrig.ps 8712 916838044 d/30_fasttrig.p 1.2.1.2) (doc/make-authors.pl 2223 949698601 p/22_make-autho 1.2.1.1.1.1) (lib/document.c 5711 936122944 i/10_document.c 1.5.1.1) (sheets/udiff.ssh 1900 940271631 l/41_udiff.ssh 1.4) (ChangeLog 82651 1015150151 l/35_ChangeLog 1.1.1.7.1.1.1.5.1.4.1.5.1.2.1.2.1.6.1.2.1.11.1.1.1.1) (tests/ps-ref/ehandler.ps 5707 917096609 l/43_ehandler.p 1.2.1.3) (tests/gps-ref/ftp2.ps 24243 916838044 d/28_ftp2.ps 1.2.1.2) (sheets/for77-fixed.ssh 1246 917108153 q/3_for77-fixe 1.2) (tests/view-diff 437 948578642 f/11_gdiff 1.1.1.2) (tests/options-1.tst 669 917617275 f/18_options.ts 1.1.1.3) (src/regex.c 187051 935175572 g/13_regex.c 1.5) (lib/document.h 1897 905785403 h/15_document.h 1.1) (sheets/scheme.ssh 1961 940271631 c/30_scheme.ssh 1.3) (sheets/mib.ssh 1846 938418838 m/29_mib.ssh 1.3) (auxdir/update-ogonkify.sh 1533 927459905 r/11_update-ogo 1.1) (m4/inttypes_h.m4 621 918139827 q/38_inttypes_h 1.1) (tests/tstfiles/s-garnam.adb 13019 905785403 e/44_s-garnam.a 1.1) (tests/inout-3.tst 544 905785403 f/19_inout3.tst 1.1) (src/regex.h 20675 927459905 g/1_regex.h 1.3) (ogonkify/ptmb-c.afm 2984 905786329 j/35_Times-Bold 1.2) (ogonkify/adobe.afm 2853 905785403 k/21_adobe.afm 1.1) (lib/filtdir.c 2882 936122944 h/40_filtdir.c 1.1.1.1.1.2.1.1.1.1) (lib/title.c 3191 927547209 h/38_title.c 1.1.1.3) (ps/color.hdr 3997 905785403 k/35_color.hdr 1.1) (auxdir/Makefile.am 1048 927459905 l/24_Makefile.a 1.9) (lib/xbackupfile.c 7708 916075048 n/47_xbackupfil 1.6) (doc/regex.texi 119873 947802429 0_regex.texi 1.2) (lib/filtdir.h 1485 934259459 g/33_filtdir.h 1.1.1.2.1.1) (configure.in 10845 1015075318 l/27_configure. 1.5.1.1.1.11.1.1.1.4.1.2.1.5.1.8.1.2.1.3.1.2.1.3.1.1.1.7.1.3.1.8) (lib/title.h 1410 927547209 g/31_title.h 1.1.1.2) (ogonkify/latin4.enc 2179 905787243 m/14_latin4.enc 1.1) (tests/gps-ref/AppDelegate.ps 6110 916838044 d/38_AppDelegat 1.2.1.2) (sheets/make.ssh 2071 940271631 c/39_make.ssh 1.5) (sheets/sml.ssh 2353 940271631 q/49_sml.ssh 1.3) (lib/xbackupfile.h 1475 906050565 n/46_xbackupfil 1.2) (ps/Makefile.am 1210 947802429 k/44_Makefile.a 1.3.1.2) (man/common.x 107 942325706 s/7_common.x 1.1) (lib/psstat.c 11141 936122944 i/19_psstat.c 1.2.1.2.1.1.1.1) (tests/ps-ref/pi.ps 2292 947802429 s/2_pi.ps 1.2) (tests/ps-ref/fasttrig.ps 7375 916838044 e/18_fasttrig.p 1.2.1.2) (tests/gps-ref/sqlpq92.ps 607 916838044 d/16_sqlpq92.ps 1.2.1.2) (encoding/koi8.edf 3590 905785403 b/30_koi8.edf 1.1) (arch/os2/a2ps-site.cfg.os2 2586 948934056 s/35_a2ps-site. 1.1) (lib/psstat.h 4158 916075048 h/24_psstat.h 1.1.1.3) (afm/pcrb.afm 15527 905785403 b/12_pcrb.afm 1.1) (tests/gps-ref/confirm.ps 2475 916838044 d/34_confirm.ps 1.2.1.2) (ogonkify/ogonki.enc 2251 927459905 k/28_ogonki.enc 1.2) (afm/pncri.afm 15672 905785403 49_pncri.afm 1.1) (ogonkify/ibmpc.enc 2209 905787243 m/9_ibmpc.enc 1.1) a2ps-4.14/ABOUT-NLS0000644000175000017500000006015710735337263013076 0ustar mhattamhattaNotes on the Free Translation Project ************************************* Free software is going international! The Free Translation Project is a way to get maintainers of free software, translators, and users all together, so that will gradually become able to speak many languages. A few packages already provide translations for their messages. If you found this `ABOUT-NLS' file inside a distribution, you may assume that the distributed package does use GNU `gettext' internally, itself available at your nearest GNU archive site. But you do _not_ need to install GNU `gettext' prior to configuring, installing or using this package with messages translated. Installers will find here some useful hints. These notes also explain how users should proceed for getting the programs to use the available translations. They tell how people wanting to contribute and work at translations should contact the appropriate team. When reporting bugs in the `intl/' directory or bugs which may be related to internationalization, you should tell about the version of `gettext' which is used. The information can be found in the `intl/VERSION' file, in internationalized packages. Quick configuration advice ========================== If you want to exploit the full power of internationalization, you should configure it using ./configure --with-included-gettext to force usage of internationalizing routines provided within this package, despite the existence of internationalizing capabilities in the operating system where this package is being installed. So far, only the `gettext' implementation in the GNU C library version 2 provides as many features (such as locale alias, message inheritance, automatic charset conversion or plural form handling) as the implementation here. It is also not possible to offer this additional functionality on top of a `catgets' implementation. Future versions of GNU `gettext' will very likely convey even more functionality. So it might be a good idea to change to GNU `gettext' as soon as possible. So you need _not_ provide this option if you are using GNU libc 2 or you have installed a recent copy of the GNU gettext package with the included `libintl'. INSTALL Matters =============== Some packages are "localizable" when properly installed; the programs they contain can be made to speak your own native language. Most such packages use GNU `gettext'. Other packages have their own ways to internationalization, predating GNU `gettext'. By default, this package will be installed to allow translation of messages. It will automatically detect whether the system already provides the GNU `gettext' functions. If not, the GNU `gettext' own library will be used. This library is wholly contained within this package, usually in the `intl/' subdirectory, so prior installation of the GNU `gettext' package is _not_ required. Installers may use special options at configuration time for changing the default behaviour. The commands: ./configure --with-included-gettext ./configure --disable-nls will respectively bypass any pre-existing `gettext' to use the internationalizing routines provided within this package, or else, _totally_ disable translation of messages. When you already have GNU `gettext' installed on your system and run configure without an option for your new package, `configure' will probably detect the previously built and installed `libintl.a' file and will decide to use this. This might be not what is desirable. You should use the more recent version of the GNU `gettext' library. I.e. if the file `intl/VERSION' shows that the library which comes with this package is more recent, you should use ./configure --with-included-gettext to prevent auto-detection. The configuration process will not test for the `catgets' function and therefore it will not be used. The reason is that even an emulation of `gettext' on top of `catgets' could not provide all the extensions of the GNU `gettext' library. Internationalized packages have usually many `po/LL.po' files, where LL gives an ISO 639 two-letter code identifying the language. Unless translations have been forbidden at `configure' time by using the `--disable-nls' switch, all available translations are installed together with the package. However, the environment variable `LINGUAS' may be set, prior to configuration, to limit the installed set. `LINGUAS' should then contain a space separated list of two-letter codes, stating which languages are allowed. Using This Package ================== As a user, if your language has been installed for this package, you only have to set the `LANG' environment variable to the appropriate `LL_CC' combination. Here `LL' is an ISO 639 two-letter language code, and `CC' is an ISO 3166 two-letter country code. For example, let's suppose that you speak German and live in Germany. At the shell prompt, merely execute `setenv LANG de_DE' (in `csh'), `export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash'). This can be done from your `.login' or `.profile' file, once and for all. You might think that the country code specification is redundant. But in fact, some languages have dialects in different countries. For example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The country code serves to distinguish the dialects. The locale naming convention of `LL_CC', with `LL' denoting the language and `CC' denoting the country, is the one use on systems based on GNU libc. On other systems, some variations of this scheme are used, such as `LL' or `LL_CC.ENCODING'. You can get the list of locales supported by your system for your country by running the command `locale -a | grep '^LL''. Not all programs have translations for all languages. By default, an English message is shown in place of a nonexistent translation. If you understand other languages, you can set up a priority list of languages. This is done through a different environment variable, called `LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG' for the purpose of message handling, but you still need to have `LANG' set to the primary language; this is required by other parts of the system libraries. For example, some Swedish users who would rather read translations in German than English for when Swedish is not available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'. In the `LANGUAGE' environment variable, but not in the `LANG' environment variable, `LL_CC' combinations can be abbreviated as `LL' to denote the language's main dialect. For example, `de' is equivalent to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT' (Portuguese as spoken in Portugal) in this context. Translating Teams ================= For the Free Translation Project to be a success, we need interested people who like their own language and write it well, and who are also able to synergize with other translators speaking the same language. Each translation team has its own mailing list. The up-to-date list of teams can be found at the Free Translation Project's homepage, `http://www.iro.umontreal.ca/contrib/po/HTML/', in the "National teams" area. If you'd like to volunteer to _work_ at translating messages, you should become a member of the translating team for your own language. The subscribing address is _not_ the same as the list itself, it has `-request' appended. For example, speakers of Swedish can send a message to `sv-request@li.org', having this message body: subscribe Keep in mind that team members are expected to participate _actively_ in translations, or at solving translational difficulties, rather than merely lurking around. If your team does not exist yet and you want to start one, or if you are unsure about what to do or how to get started, please write to `translation@iro.umontreal.ca' to reach the coordinator for all translator teams. The English team is special. It works at improving and uniformizing the terminology in use. Proven linguistic skill are praised more than programming skill, here. Available Packages ================== Languages are not equally supported in all packages. The following matrix shows the current state of internationalization, as of August 2002. The matrix shows, in regard of each package, for which languages PO files have been submitted to translation coordination, with a translation percentage of at least 50%. Ready PO files be bg ca cs da de el en eo es et fi fr +----------------------------------------+ a2ps | [] [] [] [] | ap-utils | | bash | [] [] [] [] | bfd | [] [] | binutils | [] [] | bison | [] [] [] [] | clisp | | clisp | [] [] [] [] | clisplow | | cpio | [] [] [] [] | darkstat | () | diffutils | [] [] [] [] [] [] | enscript | [] [] | error | [] [] [] | fetchmail | [] () [] [] [] () | fileutils | [] [] [] [] [] | findutils | [] [] [] [] [] [] | flex | [] [] [] [] [] | gas | [] [] | gawk | [] [] [] | gcal | [] [] | gcc | [] [] | gettext | [] [] [] [] [] | gnupg | [] [] [] [] [] [] [] | gprof | [] [] | gpsdrive | () () () () () | grep | [] [] [] [] [] [] [] [] | gretl | [] | gthumb | () () () | hello | [] [] [] [] [] [] [] [] [] | id-utils | [] [] [] | indent | [] [] [] [] [] | jpilot | () [] [] [] | jwhois | [] [] | kbd | [] [] [] | ld | [] [] | libc | [] [] [] [] [] [] [] [] | libiconv | [] [] [] [] | lifelines | () () | lilypond | [] [] | lingoteach | [] [] | lingoteach_lessons| () () | lynx | [] [] [] [] [] | m4 | [] [] [] [] [] | make | [] [] [] [] | man-db | [] () () [] () () | mysecretdiary | [] [] [] | nano | [] () [] [] [] [] | nano_1_0 | [] () [] [] [] [] | opcodes | [] [] [] | parted | [] [] [] [] [] | ptx | [] [] [] [] [] [] [] | python | | recode | [] [] [] [] [] [] | sed | [] [] [] [] [] [] [] [] [] [] | sh-utils | [] [] [] [] | sharutils | [] [] [] [] [] [] [] | sketch | () [] () | soundtracker | [] [] [] | sp | [] | tar | [] [] [] [] [] [] | texinfo | [] [] [] [] [] | textutils | [] [] [] [] [] | util-linux | [] [] [] [] [] [] | vorbis-tools | [] | wastesedge | | wdiff | [] [] [] [] [] [] | wget | [] [] [] [] [] [] [] [] [] [] | +----------------------------------------+ be bg ca cs da de el en eo es et fi fr 0 2 19 10 30 44 9 1 12 44 17 6 53 gl he hr hu id it ja ko lv nb nl nn +-------------------------------------+ a2ps | () () [] | ap-utils | | bash | [] | bfd | [] | binutils | [] | bison | [] [] [] [] | clisp | | clisp | [] | clisplow | | cpio | [] [] [] [] | darkstat | | diffutils | [] [] [] [] [] | enscript | [] [] | error | [] | fetchmail | [] | fileutils | [] [] [] | findutils | [] [] [] [] [] [] [] [] | flex | [] | gas | | gawk | [] | gcal | | gcc | [] | gettext | [] [] | gnupg | [] [] [] [] | gprof | [] | gpsdrive | [] () () | grep | [] [] [] [] [] [] [] | gretl | | gthumb | () () | hello | [] [] [] [] [] [] [] [] [] [] [] [] | id-utils | [] [] | indent | [] [] [] [] | jpilot | () () | jwhois | [] [] | kbd | | ld | | libc | [] [] [] [] | libiconv | [] [] [] | lifelines | | lilypond | [] | lingoteach | [] | lingoteach_lessons| | lynx | [] [] [] [] | m4 | [] [] [] [] | make | [] [] [] [] [] [] | man-db | () () | mysecretdiary | [] | nano | [] [] [] [] | nano_1_0 | [] [] [] [] [] | opcodes | [] [] | parted | [] [] [] | ptx | [] [] [] [] [] | python | | recode | [] [] [] | sed | [] [] [] [] [] [] [] [] | sh-utils | [] [] [] | sharutils | [] [] [] | sketch | () | soundtracker | [] [] | sp | | tar | [] [] [] [] [] [] | texinfo | [] [] [] | textutils | [] [] [] [] | util-linux | () [] | vorbis-tools | [] | wastesedge | | wdiff | [] [] [] | wget | [] [] [] [] [] [] | +-------------------------------------+ gl he hr hu id it ja ko lv nb nl nn 23 9 12 19 16 13 26 9 1 7 19 3 no pl pt pt_BR ru sk sl sv tr uk zh_CN zh_TW +----------------------------------------------+ a2ps | () () () [] [] [] [] [] | 10 ap-utils | () | 0 bash | [] | 6 bfd | [] [] | 5 binutils | [] [] | 5 bison | [] [] [] [] | 12 clisp | | 0 clisp | | 5 clisplow | | 0 cpio | [] [] [] [] | 12 darkstat | [] [] () () | 2 diffutils | [] [] [] [] [] [] | 17 enscript | [] [] [] [] | 8 error | [] [] [] | 7 fetchmail | () () [] | 6 fileutils | [] [] [] [] [] [] | 14 findutils | [] [] [] [] [] [] [] | 21 flex | [] [] [] | 9 gas | [] | 3 gawk | [] [] | 6 gcal | [] [] | 4 gcc | [] | 4 gettext | [] [] [] [] [] [] | 13 gnupg | [] [] [] | 14 gprof | [] [] | 5 gpsdrive | [] [] | 3 grep | [] [] [] [] [] | 20 gretl | | 1 gthumb | () () [] | 1 hello | [] [] [] [] [] [] [] | 28 id-utils | [] [] [] [] | 9 indent | [] [] [] [] [] | 14 jpilot | () () [] [] | 5 jwhois | [] () () [] [] | 7 kbd | [] [] | 5 ld | [] [] | 4 libc | [] [] [] [] [] [] | 18 libiconv | [] [] [] [] [] | 12 lifelines | [] | 1 lilypond | [] | 4 lingoteach | [] [] | 5 lingoteach_lessons| () | 0 lynx | [] [] [] [] | 13 m4 | [] [] [] [] | 13 make | [] [] [] [] [] | 15 man-db | | 3 mysecretdiary | [] [] [] | 7 nano | [] [] [] [] | 13 nano_1_0 | [] [] [] [] | 14 opcodes | [] [] [] | 8 parted | [] [] [] [] | 12 ptx | [] [] [] [] [] [] [] | 19 python | | 0 recode | [] [] [] [] [] [] | 15 sed | [] [] [] [] [] [] | 24 sh-utils | [] [] | 9 sharutils | [] [] [] [] | 14 sketch | [] () [] | 4 soundtracker | [] | 6 sp | | 1 tar | [] [] [] [] [] [] [] | 19 texinfo | [] [] | 10 textutils | [] [] [] [] [] | 14 util-linux | [] [] [] | 10 vorbis-tools | [] | 3 wastesedge | | 0 wdiff | [] [] [] [] [] | 14 wget | [] [] [] [] [] [] [] [] | 24 +----------------------------------------------+ 37 teams no pl pt pt_BR ru sk sl sv tr uk zh_CN zh_TW 68 domains 4 15 2 28 28 12 10 49 43 4 1 9 609 Some counters in the preceding matrix are higher than the number of visible blocks let us expect. This is because a few extra PO files are used for implementing regional variants of languages, or language dialects. For a PO file in the matrix above to be effective, the package to which it applies should also have been internationalized and distributed as such by its maintainer. There might be an observable lag between the mere existence a PO file and its wide availability in a distribution. If August 2002 seems to be old, you may fetch a more recent copy of this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date matrix with full percentage details can be found at `http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'. Using `gettext' in new packages =============================== If you are writing a freely available program and want to internationalize it you are welcome to use GNU `gettext' in your package. Of course you have to respect the GNU Library General Public License which covers the use of the GNU `gettext' library. This means in particular that even non-free programs can use `libintl' as a shared library, whereas only free software can use `libintl' as a static library or use modified versions of `libintl'. Once the sources are changed appropriately and the setup can handle to use of `gettext' the only thing missing are the translations. The Free Translation Project is also available for packages which are not developed inside the GNU project. Therefore the information given above applies also for every other Free Software Project. Contact `translation@iro.umontreal.ca' to make the `.pot' files available to the translation teams. a2ps-4.14/.prev-version0000644000175000017500000000000710604555753014274 0ustar mhattamhatta4.13b a2ps-4.14/contrib/0000755000175000017500000000000010735337377013304 5ustar mhattamhattaa2ps-4.14/contrib/psmandup.in0000644000175000017500000001734010735337375015466 0ustar mhattamhatta#! /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_PACKAGE@ @VERSION@) 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.14/contrib/fixbb.m40000644000175000017500000001065310735326343014634 0ustar mhattamhattainclude(shell.m4) #! /bin/sh -e # -*- ksh -*- # Get the name of the program program=`echo $0 | sed 's#.*/##g'` # Look for a running ghostscript gs=${GHOSTSCRIPT:-${GS:-gs}} tmpdir=`mktemp -d -t fixbb.XXXXXX` || { echo "$program: Cannot create temporary dir!" >&2 ; exit 1; } # fixbb -- Fix bounding box info in postscript files. # Written 2/92 by ggh@cs.brown.edu, # using an idea of Doug Crabill (dgc@cs.purdue.edu). # Revised 9/30/92: Use GNU utilities, make backup copy of input. # Revised 3/18/93: Set PATH explicitly. # Revised 4/23/93: Hack FrameMaker header so that it doesn't set paper size. # 04/21/99: Changed by hf@nike.phys.chemie.uni-muenchen.de to run with gs5.x # and some sort of eps-files. #------------------------------------------------------------------------------ help="Try \`$program --help' for more information." # Parse command line arguments. option_without_arguments='vhsqDf' GETOPT([[ -v | --v*) echo "$version"; exit 0;; -h | --h*) echo "$usage"; exit 0;; -q | -s | --s* | --q*) verbose=:;; # Delay debugging so that options parsing does not appear -D | --debug) debug=: ;; -o | --output) shift ; output=$1 ;; -f | --force) # Refuse if gs does not seem to work if test "x$gs" = x; then echo "$program: error: ghostscript does not work." >&2 exit 1 else run_gs=1 fi ;; -) # We are working with stdin ;; set dummy "$@" "$1"; 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 #------------------------------------------------------------------------------ # Render image using GhostScript. #------------------------------------------------------------------------------ # Does ghostscript run? # 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 echo "Cannot not run $gs" >&2 exit 1 fi echo "Computing bounding box: ." # If gs support the bbox device, then cool! if ($gs -h | grep bbox) >/dev/null 2>&1; then bbox_awk=' /^%%BoundingBox:/ { if (bbox_llx < $1) bbox_llx = $1 ; if (bbox_lly < $2) bbox_lly = $2; if (bbox_urx > $3) bbox_urx = $3; if (bbox_ury > $4) bbox_urx = $4; } /^%%HiResBoundingBox:/ { if (hrbbox_llx < $1) hrbbox_llx = $1 ; if (hrbbox_lly < $2) hrbbox_lly = $2; if (hrbbox_urx > $3) hrbbox_urx = $3; if (hrbbox_ury > $4) hrbbox_urx = $4; } END { print "%%BoundingBox:" bbox_llx bbox_lly bbox_urx bbox_ury; print "%%HiResBoundingBox:" hrbbox_llx hrbbox_lly hrbbox_urx hrbbox_ury; } ' # I don't know why, but the result is sent onto stderr. bbox=`$gs -dNOPAUSE -sDEVICE=bbox $file 2>&1 >/dev/null | awk "$bbox_awk"` echo $bbox exit 0 else echo "Cannot not run $gs -sDEVICE=bbox" >&2 exit 1 fi BBOX=`$GS -dNOPAUSE -dQUIET -dBATCH -sDEVICE=epswrite -sOutputFile=- $1 | \ grep "^%%BoundingBox: *[0-9]" | cut -d" " -f2- ` echo -n "." if [ $? -ne 0 ]; then echo; echo "fixbb: Could not find bbox" >&2; exit 1; fi echo "$BBOX" echo -n "Editing $1: ." #------------------------------------------------------------------------------ # Backup original file and replace with updated version. #------------------------------------------------------------------------------ cp $1 $1.orig if [ $? -ne 0 ]; then echo; echo "fixbb: Could not save original file" >&2; exit 1; fi #------------------------------------------------------------------------------ # Update %%BoundingBox comment in source file, nuke /papersize in Frame output. #------------------------------------------------------------------------------ awk '\ /^%%BoundingBox/ {if (!done) print "%%BoundingBox: '"$BBOX"'"; done=1; next}\ /FrameDict/ {frame=1}\ /%%EndProlog/ {if (frame) print "FrameDict begin /papersize {false} def end"}\ /.*/ {print}\ END {if (!done) print "%%BoundingBox: '"$BBOX"'"}' \ $1.orig > $1 if [ $? -ne 0 ]; then echo; echo "fixbb: Edit of $1 failed" >&2; cp $1.orig $1; if [ $? -ne 0 ]; then echo; echo "fixbb: Could not write back original file saved in $1.orig" >&2; exit 1; fi exit 1; fi echo ".done" a2ps-4.14/contrib/psmandup.m40000644000175000017500000001266410735326343015375 0ustar mhattamhattainclude(shell.m4)dnl -*- shell-script-*- #! /bin/sh -e # -*- ksh -*- # psmandup --- produce a version of a PS file to print in manual Duplex. GPL([Copyright (c) 1998, 1999 Akim Demaille, Miguel Santana]) # 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_PACKAGE@ @VERSION@) 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' GETOPT([ -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= ;;]) # 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 changequote(, )dnl pagenum=`sed -ne '/^%%Pages:/{ s/%%Pages: \\([0-9]*\\).*$/\\1/p q }' $file` changequote([, ])dnl # 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 changequote(, )dnl *[13579]) changequote([, ])dnl 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.14/contrib/psset.in0000644000175000017500000002031410735337375014770 0ustar mhattamhatta#! /bin/sh -e # -*- ksh -*- # psset --- Put page device definition somewhere in a PS document. # Copyright (c) 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 at=0 # Insert call in the document's Setup section. debug= file= fixps=${FIXPS:-fixps} output=- pagedevices= # `;' separated list of `key:value' quiet=: # i.e., verbose tmpdir=`mktemp -d -t psset.XXXXXX` || { echo "$program: Cannot create temporary dir!" >&2 ; exit 1; } sedscript=$tmpdir/psset.sed # The version/usage strings version="$program 1.3 (@GNU_PACKAGE@ @VERSION@) 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 Produce a version of the PostScript FILE with a protected call to the PostScript operator \`setpagedevice'. Typical use is making FILE print duplex, or on the manual tray etc. 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 run \`fixps' to fix PS problems in FILE -S, --setpagedevice=KEY[:VALUE] pass a page device definition to output. Multiple values accumulate -a, --at=PAGE insert the page device definitions at PAGE. Default is PAGE=0, standing for the Document's Setup section Shortcuts: -m, --manualfeed alias for -SManualFeed:true -s, --simplex alias for -SDuplex:false -d, --duplex alias for -SDuplex:true -STumble:false corresponds to Duplex, binding along the long edge -t, --tumble alias for -SDuplex:true -STumble:true corresponds to Duplex, binding along the short edge Produced output is meant for PS level 2 printers. News, updates and documentation: visit http://www.inf.enst.fr/~demaille/a2ps/ Report bugs to " help="Try \`$program --help' for more information." # Parse command line arguments. option_without_arguments='vhqnDmdts' # 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 | --sil* | --q*) quiet=echo;; # Delay debugging so that options parsing does not appear -D | --debug) debug=: ;; -o | --output) shift ; output=$1 ;; -a | --at) shift ; at=$1 ;; -S | --set*) shift case $1 in *:*) pagedevices="${pagedevices}$1;" ;; *) echo "$program: invalid argument for -S: $1" 1>&2 exit 1 ;; esac ;; -m | --man* ) pagedevices="${pagedevices}ManualFeed:true;" ;; -d | --dup* ) pagedevices="${pagedevices}Duplex:true;Tumble:false;" ;; -t | --tum* ) pagedevices="${pagedevices}Duplex:true;Tumble:true;" ;; -s | --sim* ) pagedevices="${pagedevices}Duplex:false;" ;; -) # We are working with stdin ;; set dummy "$@" "$1" shift ;; -n|--no-fix) fixps="$fixps -n" ;; --) # 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) # We want $file to be empty to mean stdin if test "x$file" = "x-"; then file= else file=$1 fi ;; *) 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 # Well, if there is nothing to do, just do nothing. if test -z "$pagedevices"; then exec $fixps `$quiet -q` $file -o "$output" fi # Prepare the PostScript snippet we plan to insert if needed pspagedevice= saved_IFS=$IFS IFS=";" for pagedevice in $pagedevices do IFS=$saved_IFS key=`echo $pagedevice | sed -e 's/:.*//g'` value=`echo $pagedevice | sed -e 's/.*://g'` # I use `cvx exec' in order to let the stopped environment catch the # errors. This way, the user can do -SDuplex:fuubar and have a # PS file that behaves well. pspagedevice="$pspagedevice %%BeginFeature: *$key $value (<<) cvx exec /$key ($value) cvx exec (>>) cvx exec systemdict /setpagedevice get exec %%EndFeature" done pspagedevice="% Pagedevice definitions: countdictstack % Push our own mark, since there can be several PS marks pushed depending % where the failure really occured. /psset_mark {$pspagedevice } stopped % My cleartomark { /psset_mark eq { exit } if } loop countdictstack exch sub dup 0 gt { { end } repeat }{ pop } ifelse" # Prepare the sed command we want to run. # End of lines must be protected by `\' but the last one, and leading # spaces with a `\' too... pspagedevicelen=`echo "$pspagedevice" | wc -l` pspagedevice=`echo "$pspagedevice" | \ sed -e "$pspagedevicelen!s/\$/\\\\\\/;s/^ /\\\\\\ /"` case $at in 0) # Insert last in the Setup, so that we win over other requests. address="^%%EndSetup$" insert="i" ;; *) # Insert right after the beginning of the page. Trying to find a # better place than right after %%Page: is an overkill. address="^%%Page: .*$at$" insert="a" ;; esac # The script is complicated by the fact that we don't want to issue # twice the setpagedevice. And it is correct for an included document # to have a Setup section. cat >$sedscript <$output $fixps `$quiet -q` $file | sed -f $sedscript # We don't remove the tmp directory: trap does it. exit 0 a2ps-4.14/contrib/pdiff.in0000644000175000017500000001254010735337375014724 0ustar mhattamhatta#! /bin/sh # -*- sh -*- # pdiff --- Print diff in a nice way # 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 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: http://www.inf.enst.fr/~demaille/a2ps/. Report bugs to ." 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.14/contrib/sample/0000755000175000017500000000000010735337377014565 5ustar mhattamhattaa2ps-4.14/contrib/sample/main.c0000644000175000017500000000356307440740377015661 0ustar mhattamhatta/* This is just to know if your system support stdlib.h */ #ifdef HAVE_CONFIG_H # include #endif #include #ifdef HAVE_STDLIB_H # include #endif #if HAVE_STDBOOL_H # include #else typedef enum {false = 0, true = 1} bool; #endif #include "liba2ps.h" #define _(V) sprintf(buf, "%.4d",V),a2ps_print_string(job,buf, String) int a=10000, b, c=8400, d, e, f[8401], g; char buf[10]; void foo (struct a2ps_job * job) { for (;b-c;) f[b++]=a/5; for (;d=0,g=c*2;c-=14,_(e+d/a), e=d%a) for (b=c;d+=f[b]*a,f[b]=d%--g, d/=g--,--b;d*=b); } /* It is mandatory to declare and set the value of this variable. * It is used when printing error messages. */ char *program_name = "Sample"; char *program_invocation_name = "Sample"; int main (void) { enum face_e i; int j; struct a2ps_job * job; /* Create the structure, and fill it according the master * system configuration file (typically /etc/a2ps.cfg) */ job = a2ps_job_new (); a2_read_sys_config (job); /* Once the configuration files are read, finalize the structure */ a2ps_job_finalize (job); /* Open an output session */ a2ps_open_output_session (job); /* We open a new input session, which title is Sample Input */ a2ps_open_input_session (job, "Sample Input"); for (j = 0 ; j < 5 ; j++) for (i = First_face ; i <= Last_face ; i++) a2ps_print_string (job, "Hello world\n", i); a2ps_print_string (job, "This is an Error", Error); a2ps_close_input_session (job); /* Just another page, with nothing really important in it */ a2ps_open_input_session (job, "Surprise!"); a2ps_print_char (job, '\160', Symbol); a2ps_print_string (job, " = ", Plain); foo (job); a2ps_close_input_session (job); /* This send the output to the current default printer */ a2ps_close_output_session (job); /* Release the memory used */ a2ps_job_free (job); exit (0); } a2ps-4.14/contrib/sample/Makefile.am0000644000175000017500000000250310735322612016603 0ustar mhattamhatta# -*- Makefile -*- # Makefile for a2ps' sources. # 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. # ## Process this file with automake to produce Makefile.in ## Since this package is written in ansi, be ready to un-ansify AUTOMAKE_OPTIONS = $(top_builddir)/lib/ansi2knr localedir = $(datadir)/locale noinst_PROGRAMS = sample sample_SOURCES = main.c INCLUDES = -I. -I.. -I$(top_builddir) -I$(top_srcdir)/intl -I$(top_srcdir)/lib sample_LDADD = $(top_builddir)/lib/liba2ps.la @LIBINTL@ -lm DEFS = @DEFS@ -DLOCALEDIR=\"$(localedir)\" a2ps-4.14/contrib/sample/Makefile.in0000644000175000017500000004176510735337306016637 0ustar mhattamhatta# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 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@ # -*- Makefile -*- # Makefile for a2ps' sources. # 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. # srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ ANSI2KNR = $(top_builddir)/lib/ansi2knr noinst_PROGRAMS = sample$(EXEEXT) subdir = contrib/sample DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/a2_psutils.m4 \ $(top_srcdir)/m4/atexit.m4 $(top_srcdir)/m4/file.m4 \ $(top_srcdir)/m4/fp_echo.m4 $(top_srcdir)/m4/fullpath.m4 \ $(top_srcdir)/m4/gccwarn.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gperf-check.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \ $(top_srcdir)/m4/lex.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/lpr.m4 \ $(top_srcdir)/m4/m4.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \ $(top_srcdir)/m4/perl.m4 $(top_srcdir)/m4/prereq.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/protos.m4 \ $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/rename.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/strcasecmp.m4 \ $(top_srcdir)/m4/strftim.m4 $(top_srcdir)/m4/termios.m4 \ $(top_srcdir)/m4/tterm.m4 $(top_srcdir)/m4/uintmax_t.m4 \ $(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/winsz.m4 \ $(top_srcdir)/m4/xstrtoumax.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/auxdir/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = PROGRAMS = $(noinst_PROGRAMS) am_sample_OBJECTS = main$U.$(OBJEXT) sample_OBJECTS = $(am_sample_OBJECTS) sample_DEPENDENCIES = $(top_builddir)/lib/liba2ps.la DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/auxdir/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(sample_SOURCES) DIST_SOURCES = $(sample_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ COM_DISPLAY = @COM_DISPLAY@ COM_LATEX = @COM_LATEX@ COM_PS2PDF = @COM_PS2PDF@ COM_PSUTILS = @COM_PSUTILS@ COM_TEXI = @COM_TEXI@ COM_acroread = @COM_acroread@ COM_acroread4 = @COM_acroread4@ COM_bzip = @COM_bzip@ COM_bzip2 = @COM_bzip2@ COM_convert = @COM_convert@ COM_distill = @COM_distill@ 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_netscape = @COM_netscape@ COM_pdf2ps = @COM_pdf2ps@ COM_ps2pdf = @COM_ps2pdf@ COM_psnup = @COM_psnup@ COM_psselect = @COM_psselect@ COM_tex = @COM_tex@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ -DLOCALEDIR=\"$(localedir)\" DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ ENCODING = @ENCODING@ EXEEXT = @EXEEXT@ EXTENSIONS_FALSE = @EXTENSIONS_FALSE@ EXTENSIONS_TRUE = @EXTENSIONS_TRUE@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ F77 = @F77@ FFLAGS = @FFLAGS@ FILE_LINK = @FILE_LINK@ GMSGFMT = @GMSGFMT@ GNU_PACKAGE = @GNU_PACKAGE@ GPERF = @GPERF@ GREP = @GREP@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBVERSION = @LIBVERSION@ LN_S = @LN_S@ LPR = @LPR@ LPR_QUEUE_OPTION = @LPR_QUEUE_OPTION@ LTALLOCA = @LTALLOCA@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ M4 = @M4@ MAKEINFO = @MAKEINFO@ MEDIUM = @MEDIUM@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ POSUB = @POSUB@ PSFONT_PATH = @PSFONT_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ U = @U@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ YACC = @YACC@ YFLAGS = @YFLAGS@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ acroread = @acroread@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ 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@ bzip = @bzip@ bzip2 = @bzip2@ convert = @convert@ datadir = @datadir@ datarootdir = @datarootdir@ distill = @distill@ docdir = @docdir@ dvidir = @dvidir@ dvips = @dvips@ exec_prefix = @exec_prefix@ file_prog = @file_prog@ ghostview = @ghostview@ 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 = $(datadir)/locale localstatedir = @localstatedir@ makeinfo = @makeinfo@ mandir = @mandir@ mkdir_p = @mkdir_p@ netscape = @netscape@ oldincludedir = @oldincludedir@ pdf2ps = @pdf2ps@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ ps2pdf = @ps2pdf@ psdir = @psdir@ psnup = @psnup@ psselect = @psselect@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ tex = @tex@ AUTOMAKE_OPTIONS = $(top_builddir)/lib/ansi2knr sample_SOURCES = main.c INCLUDES = -I. -I.. -I$(top_builddir) -I$(top_srcdir)/intl -I$(top_srcdir)/lib sample_LDADD = $(top_builddir)/lib/liba2ps.la @LIBINTL@ -lm all: all-am .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 \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu contrib/sample/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu contrib/sample/Makefile .PRECIOUS: 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__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ 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 clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done sample$(EXEEXT): $(sample_OBJECTS) $(sample_DEPENDENCIES) @rm -f sample$(EXEEXT) $(LINK) $(sample_LDFLAGS) $(sample_OBJECTS) $(sample_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c $(top_builddir)/lib/ansi2knr: cd $(top_builddir)/lib && $(MAKE) $(AM_MAKEFLAGS) ansi2knr mostlyclean-kr: -test "$U" = "" || rm -f *_.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main$U.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< main_.c: main.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/main.c; then echo $(srcdir)/main.c; else echo main.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ main_.$(OBJEXT) main_.lo : $(ANSI2KNR) mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) 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: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic mostlyclean-kr \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstPROGRAMS ctags 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-exec \ install-exec-am install-info install-info-am install-man \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-kr \ mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \ uninstall-am uninstall-info-am # 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.14/contrib/Makefile.am0000644000175000017500000000242410735322557015334 0ustar mhattamhatta# Makefile for a2ps/contrib. # 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. # ## Process this file with automake to produce Makefile.in SUBDIRS = sample emacs bin_SCRIPTS = card fixps pdiff psmandup psset texi2dvi4a2ps bin_PROGRAMS = fixnt fixnt_SOURCES = fixnt.l EXTRA_DIST = \ card.in fixps.in pdiff.in psmandup.in psset.in texi2dvi4a2ps \ card.m4 fixps.m4 pdiff.m4 psmandup.m4 psset.m4 shell.m4 M4 = @M4@ SUFFIXES = .m4 .in .m4.in: shell.m4 $(M4) $*.m4 | \ sed -e 's/@BKL@/[/g;s/@BKR@/]/g;s/@DLR@/$$/g;s/@PND@/#/g'>$@-tmp mv $@-tmp $@ a2ps-4.14/contrib/Makefile.in0000644000175000017500000005622410735337306015352 0ustar mhattamhatta# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 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@ # Makefile for a2ps/contrib. # 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. # srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = fixnt$(EXEEXT) subdir = contrib DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(srcdir)/card.in $(srcdir)/fixps.in $(srcdir)/pdiff.in \ $(srcdir)/psmandup.in $(srcdir)/psset.in fixnt.c ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/a2_psutils.m4 \ $(top_srcdir)/m4/atexit.m4 $(top_srcdir)/m4/file.m4 \ $(top_srcdir)/m4/fp_echo.m4 $(top_srcdir)/m4/fullpath.m4 \ $(top_srcdir)/m4/gccwarn.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gperf-check.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \ $(top_srcdir)/m4/lex.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/lpr.m4 \ $(top_srcdir)/m4/m4.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \ $(top_srcdir)/m4/perl.m4 $(top_srcdir)/m4/prereq.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/protos.m4 \ $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/rename.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/strcasecmp.m4 \ $(top_srcdir)/m4/strftim.m4 $(top_srcdir)/m4/termios.m4 \ $(top_srcdir)/m4/tterm.m4 $(top_srcdir)/m4/uintmax_t.m4 \ $(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/winsz.m4 \ $(top_srcdir)/m4/xstrtoumax.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/auxdir/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = card fixps pdiff psmandup psset am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) PROGRAMS = $(bin_PROGRAMS) am_fixnt_OBJECTS = fixnt.$(OBJEXT) fixnt_OBJECTS = $(am_fixnt_OBJECTS) fixnt_LDADD = $(LDADD) binSCRIPT_INSTALL = $(INSTALL_SCRIPT) SCRIPTS = $(bin_SCRIPTS) DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/auxdir/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ LEXCOMPILE = $(LEX) $(LFLAGS) $(AM_LFLAGS) LTLEXCOMPILE = $(LIBTOOL) --mode=compile $(LEX) $(LFLAGS) $(AM_LFLAGS) SOURCES = $(fixnt_SOURCES) DIST_SOURCES = $(fixnt_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-exec-recursive install-info-recursive \ install-recursive installcheck-recursive installdirs-recursive \ pdf-recursive ps-recursive uninstall-info-recursive \ uninstall-recursive ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ COM_DISPLAY = @COM_DISPLAY@ COM_LATEX = @COM_LATEX@ COM_PS2PDF = @COM_PS2PDF@ COM_PSUTILS = @COM_PSUTILS@ COM_TEXI = @COM_TEXI@ COM_acroread = @COM_acroread@ COM_acroread4 = @COM_acroread4@ COM_bzip = @COM_bzip@ COM_bzip2 = @COM_bzip2@ COM_convert = @COM_convert@ COM_distill = @COM_distill@ 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_netscape = @COM_netscape@ COM_pdf2ps = @COM_pdf2ps@ COM_ps2pdf = @COM_ps2pdf@ COM_psnup = @COM_psnup@ COM_psselect = @COM_psselect@ COM_tex = @COM_tex@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ ENCODING = @ENCODING@ EXEEXT = @EXEEXT@ EXTENSIONS_FALSE = @EXTENSIONS_FALSE@ EXTENSIONS_TRUE = @EXTENSIONS_TRUE@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ F77 = @F77@ FFLAGS = @FFLAGS@ FILE_LINK = @FILE_LINK@ GMSGFMT = @GMSGFMT@ GNU_PACKAGE = @GNU_PACKAGE@ GPERF = @GPERF@ GREP = @GREP@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBVERSION = @LIBVERSION@ LN_S = @LN_S@ LPR = @LPR@ LPR_QUEUE_OPTION = @LPR_QUEUE_OPTION@ LTALLOCA = @LTALLOCA@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ M4 = @M4@ MAKEINFO = @MAKEINFO@ MEDIUM = @MEDIUM@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ POSUB = @POSUB@ PSFONT_PATH = @PSFONT_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ U = @U@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ YACC = @YACC@ YFLAGS = @YFLAGS@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ acroread = @acroread@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ 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@ bzip = @bzip@ bzip2 = @bzip2@ convert = @convert@ datadir = @datadir@ datarootdir = @datarootdir@ distill = @distill@ docdir = @docdir@ dvidir = @dvidir@ dvips = @dvips@ exec_prefix = @exec_prefix@ file_prog = @file_prog@ ghostview = @ghostview@ 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@ netscape = @netscape@ oldincludedir = @oldincludedir@ pdf2ps = @pdf2ps@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ ps2pdf = @ps2pdf@ psdir = @psdir@ psnup = @psnup@ psselect = @psselect@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ tex = @tex@ SUBDIRS = sample emacs bin_SCRIPTS = card fixps pdiff psmandup psset texi2dvi4a2ps fixnt_SOURCES = fixnt.l EXTRA_DIST = \ card.in fixps.in pdiff.in psmandup.in psset.in texi2dvi4a2ps \ card.m4 fixps.m4 pdiff.m4 psmandup.m4 psset.m4 shell.m4 SUFFIXES = .m4 .in all: all-recursive .SUFFIXES: .SUFFIXES: .m4 .in .c .l .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 \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu contrib/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu contrib/Makefile .PRECIOUS: 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__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ 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 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)/$@ psmandup: $(top_builddir)/config.status $(srcdir)/psmandup.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ psset: $(top_builddir)/config.status $(srcdir)/psset.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ || test -f $$p1 \ ; then \ f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ rm -f "$(DESTDIR)$(bindir)/$$f"; \ done clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ echo " rm -f $$p $$f"; \ rm -f $$p $$f ; \ done fixnt$(EXEEXT): $(fixnt_OBJECTS) $(fixnt_DEPENDENCIES) @rm -f fixnt$(EXEEXT) $(LINK) $(fixnt_LDFLAGS) $(fixnt_OBJECTS) $(fixnt_LDADD) $(LIBS) install-binSCRIPTS: $(bin_SCRIPTS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)" @list='$(bin_SCRIPTS)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f $$d$$p; then \ f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \ echo " $(binSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(bindir)/$$f'"; \ $(binSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(bindir)/$$f"; \ else :; fi; \ done uninstall-binSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(bin_SCRIPTS)'; for p in $$list; do \ f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \ echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ rm -f "$(DESTDIR)$(bindir)/$$f"; \ done mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fixnt.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< .l.c: $(LEXCOMPILE) $< sed '/^#/ s|$(LEX_OUTPUT_ROOT)\.c|$@|' $(LEX_OUTPUT_ROOT).c >$@ rm -f $(LEX_OUTPUT_ROOT).c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: # 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. $(RECURSIVE_TARGETS): @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; 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; \ (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" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ 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 || \ tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -d "$(distdir)/$$subdir" \ || $(mkdir_p) "$(distdir)/$$subdir" \ || exit 1; \ distdir=`$(am__cd) $(distdir) && pwd`; \ top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$top_distdir" \ distdir="$$distdir/$$subdir" \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(PROGRAMS) $(SCRIPTS) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(bindir)" "$(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: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -rm -f fixnt.c clean: clean-recursive clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive info: info-recursive info-am: install-data-am: install-exec-am: install-binPROGRAMS install-binSCRIPTS install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS \ uninstall-info-am uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \ clean clean-binPROGRAMS clean-generic clean-libtool \ clean-recursive ctags ctags-recursive distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-recursive 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-exec \ install-exec-am install-info install-info-am install-man \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ maintainer-clean-recursive mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool mostlyclean-recursive \ pdf pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \ uninstall-binPROGRAMS uninstall-binSCRIPTS uninstall-info-am .m4.in: shell.m4 $(M4) $*.m4 | \ sed -e 's/@BKL@/[/g;s/@BKR@/]/g;s/@DLR@/$$/g;s/@PND@/#/g'>$@-tmp mv $@-tmp $@ # 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.14/contrib/fixps.in0000644000175000017500000002736510735337375015000 0ustar mhattamhatta#! /bin/sh -e # fixps --- fix as much as possible PS errors that break the psutils # Copyright (c) 1998-2000 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 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 run_gs=0 # What action to perform: fixps, cat, check, and gs task=fixps tmpdir=`mktemp -d -t fixps.XXXXXX` || { echo "$program: Cannot create temporary dir!" >&2 ; exit 1; } verbose=echo # The version/usage strings version="fixps 1.5 (@GNU_PACKAGE@ @VERSION@) Written by Akim Demaille. Copyright (c) 1998-2000 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 [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 -f, --force force full rewrite by ghostscript -n, --no-fix don't fix the FILE, but still honor \`-o' -c, --check, --dry-run don't perform any action Fixes: - Remove junk before and after PostScript content - Use only Unix end of lines (\\n) - Remove empty lines - Fix Apple prologue (fixmacps) - Fix FrameMaker prologue (fixfmps) - Fix CorelDraw prologue (fixnt) - Fix Windows NT 3.5/4.0 prologue (fixnt) - Fix Windows 95 prologue - Ensure there is a \`%%BeginSetup/%%EndSetup' section - Removes Canvas' extraneaous \`%%EndDocument:' comments - Split too long lines If the FILE seems really in a bad state, ghostscript may be used to perform a full rewrite. The output might then be significantly bigger, but much safer. Report bugs to " help="Try \`$program --help' for more information." # Parse command line arguments. option_without_arguments='vhsqDfn' # 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=:;; # Delay debugging so that options parsing does not appear -D | --debug) debug=: ;; -o | --output) shift ; output=$1 ;; -c | --check | --dry-run) task=check ;; -n | --no-fix) task=cat ;; -f | --force) # Refuse if gs does not seem to work if test "x$gs" = x; then echo "$program: error: ghostscript does not work." >&2 exit 1 else run_gs=1 fi ;; -) # 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 fixps_sed=$tmpdir/fixps.sed # If printing from stdin, save into a tmp file if test $file = '-'; then file=$tmpdir/stdin.ps cat >$file fi ## -------------- ## ## Global fixes. ## ## -------------- ## # 1. Extract what looks like a real PS file, i.e. something between # a "%!" and a "%%EOF". If the latter is not present, go until # the end of the file. # It typically remove JCL junk, but also permits to print the PS content # of a mail without having to remove by hand what is not part of the PS. # Beware of the non Unix end of lines. if sed 1q $file | grep '^%!' >/dev/null; then :; else fix=1 $verbose "$program: removing junk around PostScript content." >&2 $verbose "$program: fixing broken magic number." >&2 # At the same time, make sure the first line does start by # a valid magic number. Use only '\n'. tr '\015' '\012' < $file | sed -n -e '/%!/,/^%%EOF$/{ s/^.*%!/%!/ s/^%!$/%!PS/ p }' > $tmpdir/fixed-$fix.ps file=$tmpdir/fixed-$fix.ps fi # If at this point the file does not start with a real PostScript # magic number, fail if sed 1q $file | grep '^%!' >/dev/null; then :; else echo "$program: error: the file seems not to be PostScript." >&2 exit 1 fi ## ------------------------------------------------------- ## ## After this comment everything can be done with a pipe. ## ## ------------------------------------------------------- ## : >$fixps_sed # For a start, use only '\n'. Don't try to remove multiple end of # line, since you may break valid PostScript code (think of binary # sections). command="tr '\015' '\012' < $file | sed -f $fixps_sed" # 1. Broken end-of-line (Mac?) if sed 20q $file | grep ' %%' > /dev/null; then $verbose "$program: fixing Macintosh broken end of line." >&2 fi # 2. Remove the ^M$, because they prevent some parsers to work normally if sed 20q $file | grep ' $' > /dev/null; then #' $verbose "$program: fixing PC broken end of line." >&2 fi ## ------------------------------ ## ## Fixes on prologues/structure. ## ## ------------------------------ ## # Put in $COMMENT everything we will need to find out the nature # of the file. (This is to speed up the processind) # Fetch all the lines with ``%%'' at the beginning, but # also words `FMDEFINE' comments=`eval "$command" | sed -ne '1p;/^%%/p;/FMDEFINEFONT/p;/FMBEGINPAGE/p'` # If the file does not appear to have enough of the DSC features, just # let it be rewritten by gs. if echo "$comments" | grep "EPSF" >/dev/null 2>&1; then # EPS files need at least the BBox patterns="^%%BoundingBox:"; else # PS files really need page separation information patterns="^%%Pages: ^%%Page:" fi # If some required DSC comments are not present, ask for a full rewrite. for pattern in $patterns do if echo "$comments" | grep "$pattern" >/dev/null; then :; else $verbose "$program: DSC broken. $gs will be asked a full rewrite of the file." >&2 run_gs=1 break; fi done if test $run_gs = 1 && test "x$gs" = x; then echo "$program: warning: cannot run gs, except failures downstream." >&2 run_gs=0 fi # The cleanup is to be made by hand. if test $run_gs = 0; then # If there are lines too long, split them. maxlen_awk=$tmpdir/maxlen.awk cat >$maxlen_awk < max { max = length ; } END { print max ; } EOF # Compute the max line length. maxlen=`eval "$command" | awk -f $maxlen_awk` if test "$maxlen" -ge "128"; then cutline_sed=$tmpdir/cut.sed # A script that split in piece hexa lines longer than 81 chars. cat >$cutline_sed <<'EOF' /^[A-Fa-f0-9]\{81,\}$/b big p b :big h s/^\([A-Fa-f0-9]\{72\}\).*/\1/ p g s/^[A-Fa-f0-9]\{72\}\(.*\)/\1/ t big EOF $verbose "$program: splitting lines too long." >&2 command="$command | sed -n -f $cutline_sed" fi # 7. Broken AppleDict procset if echo $comments | fgrep 'AppleDict' > /dev/null; then $verbose "$program: fixing Macintosh broken prologue." >&2 command="$command | fixmacps" fi # 8. Broken Frame Maker procset if echo $comments | fgrep 'Frame' > /dev/null; then $verbose "$program: fixing Frame Maker broken prologue." >&2 command="$command | fixfmps" fi # 9. Broken CorelDRAW ps, with fixnt if echo "$comments" | grep '^%%Title:.*CorelDRAW' > /dev/null; then $verbose "$program: fixing CorelDRAW broken prologue." >&2 command="$command | fixnt" # 10. Broken Windows NT 4.0 ps, still fixnt elif echo "$comments" | grep 'NTPSOct95' > /dev/null; then $verbose "$program: fixing Windows NT 4.0 broken PostScript." >&2 command="$command | fixnt" # 11. Broken Windows NT 3.5 ps, yet another fixnt elif echo "$comments" | grep 'NTPSOct94' > /dev/null; then $verbose "$program: fixing Windows NT 3.5 broken PostScript." >&2 echo 's/NTPSOct94/NTPSOct95/g' >>$fixps_sed command="$command | fixnt" fi # 12. Broken Windows 95 PS driver v4.0 if echo "$comments" | grep 'Pscript_Win_Utils' > /dev/null; then $verbose "$program: fixing Broken Windows 95 PS driver v4.0 prologue." >&2 echo 's!|/LH/showpage ,!|/LH {showpage}!' >>$fixps_sed fi # 14. Canvas' superfluous `EndDocument:' if echo "$comments" | grep 'CanvasDict' >/dev/null; then $verbose "$program: removing Canvas' extraneous \`%%EndDocument:' comment." >&2 echo '/^%%EndDocument:/d' >>$fixps_sed fi # This should be the last one. # 13. Missing BeginSetup/EndSetup if echo "$comments" | grep '^%%BeginSetup' >/dev/null; then :; else $verbose "$program: adding a %%BeginSetup/%%EndSetup section." >&2 # Because the command will be `eval'ed, it is hard to keep the eol. # Making a script is much easier. cat >>$fixps_sed <"$output" case $task in cat) cat "$file" ;; fixps) # FIXME: We should fail when the program fails eval "$command" ;; gs) $verbose "$program: making a full rewrite of the file ($gs)." >&2 $gs -q -dNOPAUSE -dBATCH -sDEVICE=pswrite -sOutputFile=- -c save pop -f $file ;; esac ) fi exit 0 a2ps-4.14/contrib/README0000644000175000017500000000063007440740377014160 0ustar mhattamhatta a2ps' Contrib Directory * emacs/ An emacs mode for style sheet files, and a useful package for generating regexps. * sample/ A example on how to program with the a2ps library. * texi2dvi4a2ps A recent version of texi2dvi (corresponding to Texinfo 4.0) It makes texi2dvi usuable as a delegation for Texinfo and LaTeX files. * texi2dvi.patch A patch from texi2dvi to add the features above. a2ps-4.14/contrib/psset.m40000644000175000017500000001357110735326343014702 0ustar mhattamhattainclude(shell.m4)dnl -*- shell-script -*- #! /bin/sh -e # -*- ksh -*- # psset --- Put page device definition somewhere in a PS document. GPL([Copyright (c) 1999 Akim Demaille, Miguel Santana]) # Author: Akim Demaille # Get the name of the program program=`echo $0 | sed 's#.*/##g'` # Local vars at=0 # Insert call in the document's Setup section. debug= file= fixps=${FIXPS:-fixps} output=- pagedevices= # `;' separated list of `key:value' quiet=: # i.e., verbose tmpdir=`mktemp -d -t psset.XXXXXX` || { echo "$program: Cannot create temporary dir!" >&2 ; exit 1; } sedscript=$tmpdir/psset.sed # The version/usage strings version="$program 1.3 (@GNU_PACKAGE@ @VERSION@) 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 Produce a version of the PostScript FILE with a protected call to the PostScript operator \`setpagedevice'. Typical use is making FILE print duplex, or on the manual tray etc. 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 run \`fixps' to fix PS problems in FILE changequote(, )dnl -S, --setpagedevice=KEY[:VALUE] pass a page device definition to output. changequote([, ])dnl Multiple values accumulate -a, --at=PAGE insert the page device definitions at PAGE. Default is PAGE=0, standing for the Document's Setup section Shortcuts: -m, --manualfeed alias for -SManualFeed:true -s, --simplex alias for -SDuplex:false -d, --duplex alias for -SDuplex:true -STumble:false corresponds to Duplex, binding along the long edge -t, --tumble alias for -SDuplex:true -STumble:true corresponds to Duplex, binding along the short edge Produced output is meant for PS level 2 printers. News, updates and documentation: visit http://www.inf.enst.fr/~demaille/a2ps/ Report bugs to " help="Try \`$program --help' for more information." # Parse command line arguments. option_without_arguments='vhqnDmdts' GETOPT([ -v | --v*) echo "$version"; exit 0;; -h | --h*) echo "$usage"; exit 0;; -q | --sil* | --q*) quiet=echo;; # Delay debugging so that options parsing does not appear -D | --debug) debug=: ;; -o | --output) shift ; output=$1 ;; -a | --at) shift ; at=$1 ;; -S | --set*) shift case $1 in *:*) pagedevices="${pagedevices}$1;" ;; *) echo "$program: invalid argument for -S: $1" 1>&2 exit 1 ;; esac ;; -m | --man* ) pagedevices="${pagedevices}ManualFeed:true;" ;; -d | --dup* ) pagedevices="${pagedevices}Duplex:true;Tumble:false;" ;; -t | --tum* ) pagedevices="${pagedevices}Duplex:true;Tumble:true;" ;; -s | --sim* ) pagedevices="${pagedevices}Duplex:false;" ;; -) # We are working with stdin ;; set dummy "$@" "$1" shift ;; -n|--no-fix) fixps="$fixps -n" ;;]) # Check the number of arguments. case $# in 0) file=;; 1) # We want $file to be empty to mean stdin if test "x$file" = "x-"; then file= else file=$1 fi ;; *) 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 # Well, if there is nothing to do, just do nothing. if test -z "$pagedevices"; then exec $fixps `$quiet -q` $file -o "$output" fi # Prepare the PostScript snippet we plan to insert if needed pspagedevice= saved_IFS=$IFS IFS=";" for pagedevice in $pagedevices do IFS=$saved_IFS key=`echo $pagedevice | sed -e 's/:.*//g'` value=`echo $pagedevice | sed -e 's/.*://g'` # I use `cvx exec' in order to let the stopped environment catch the # errors. This way, the user can do -SDuplex:fuubar and have a # PS file that behaves well. pspagedevice="$pspagedevice %%BeginFeature: *$key $value (<<) cvx exec /$key ($value) cvx exec (>>) cvx exec systemdict /setpagedevice get exec %%EndFeature" done pspagedevice="% Pagedevice definitions: countdictstack % Push our own mark, since there can be several PS marks pushed depending % where the failure really occured. /psset_mark {$pspagedevice } stopped % My cleartomark { /psset_mark eq { exit } if } loop countdictstack exch sub dup 0 gt { { end } repeat }{ pop } ifelse" # Prepare the sed command we want to run. # End of lines must be protected by `\' but the last one, and leading # spaces with a `\' too... pspagedevicelen=`echo "$pspagedevice" | wc -l` pspagedevice=`echo "$pspagedevice" | \ sed -e "$pspagedevicelen!s/\$/\\\\\\/;s/^ /\\\\\\ /"` case $at in 0) # Insert last in the Setup, so that we win over other requests. address="^%%EndSetup$" insert="i" ;; *) # Insert right after the beginning of the page. Trying to find a # better place than right after %%Page: is an overkill. address="^%%Page: .*$at$" insert="a" ;; esac # The script is complicated by the fact that we don't want to issue # twice the setpagedevice. And it is correct for an included document # to have a Setup section. cat >$sedscript <$output $fixps `$quiet -q` $file | sed -f $sedscript # We don't remove the tmp directory: trap does it. exit 0 a2ps-4.14/contrib/shell.m40000644000175000017500000000541510735326343014651 0ustar mhattamhattadnl This file inplements common sh idioms. divert(-1) changequote([, ]) undefine([shift]) dnl GETOPT(CASE-STATEMENT) dnl Implement a portable getopt define([GETOPT], [# 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/@BKL@^=@BKR@*=//'` shift set dummy "$opt" "$val" ${1+"[$]@"} shift ;; changequote(, )dnl -[$option_without_arguments]?*) changequote([, ])dnl [#] 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 [$1] --) # 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 ]) dnl A short GPL define([GPL], [ifelse([$1],,,[# $1 ]) # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 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.]) divert(0)dnl a2ps-4.14/contrib/texi2dvi4a2ps0000755000175000017500000005245210735324663015644 0ustar mhattamhatta#! /bin/sh # texi2dvi --- produce DVI (or PDF) files from Texinfo (or LaTeX) sources. # $Id: texi2dvi4a2ps,v 1.1.1.1.2.3 2007/12/29 01:58:11 mhatta Exp $ # # Copyright (C) 1992, 93, 94, 95, 96, 97, 98, 99, 2001, 02 # 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, 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. # # Original author: Noah Friedman . # # Please send bug reports, etc. to bug-texinfo@gnu.org. # If possible, please send a copy of the output of the script called with # the `--debug' option when making a bug report. # This string is expanded by rcs automatically when this file is checked out. rcs_revision='$Revision: 1.1.1.1.2.3 $' rcs_version=`set - $rcs_revision; echo $2` program=`echo $0 | sed -e 's!.*/!!'` version="texi2dvi (GNU Texinfo 4.1) $rcs_version Copyright (C) 2002 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: $program [OPTION]... FILE... Run each Texinfo or LaTeX FILE through TeX in turn until all cross-references are resolved, building all indices. The directory containing each FILE is searched for included files. The suffix of FILE is used to determine its language (LaTeX or Texinfo). Makeinfo is used to perform Texinfo macro expansion before running TeX when needed. Operation modes: -b, --batch no interaction -c, --clean remove all auxiliary files -D, --debug turn on shell debugging (set -x) -h, --help display this help and exit successfully -o, --output=OFILE leave output in OFILE (implies --clean); Only one input FILE may be specified in this case -q, --quiet no output unless errors (implies --batch) -s, --silent same as --quiet -v, --version display version information and exit successfully -V, --verbose report on what is done TeX tuning: -@ use @input instead of \input; for preloaded Texinfo -e, --expand force macro expansion using makeinfo -I DIR search DIR for Texinfo files -l, --language=LANG specify the LANG of FILE (LaTeX or Texinfo) -p, --pdf use pdftex or pdflatex for processing -t, --texinfo=CMD insert CMD after @setfilename in copy of input file multiple values accumulate The values of the BIBTEX, LATEX (or PDFLATEX), MAKEINDEX, MAKEINFO, TEX (or PDFTEX), and TEXINDEX environment variables are used to run those commands, if they are set. Email bug reports to , general questions and discussion to . Texinfo home page: http://www.gnu.org/software/texinfo/" # Initialize variables for option overriding and otherwise. # Don't use `unset' since old bourne shells don't have this command. # Instead, assign them an empty value. batch=false # eval for batch mode clean= debug= escape='\' expand= # t for expansion via makeinfo miincludes= # makeinfo include path oformat=dvi oname= # --output quiet= # by default let the tools' message be displayed set_language= textra= tmpdir=`mktemp -d -t texi2dvi4a2ps.XXXXXX` || { echo "$program: Cannot create temporary dir!" >&2 ; exit 1; } txincludes= # TEXINPUTS extensions txiprereq=19990129 # minimum texinfo.tex version to have macro expansion verbose=false # echo for verbose mode orig_pwd=`pwd` # Systems which define $COMSPEC or $ComSpec use semicolons to separate # directories in TEXINPUTS. if test -n "$COMSPEC$ComSpec"; then path_sep=";" else path_sep=":" fi # Save this so we can construct a new TEXINPUTS path for each file. TEXINPUTS_orig="$TEXINPUTS" # Unfortunately makeindex does not read TEXINPUTS. INDEXSTYLE_orig="$INDEXSTYLE" export TEXINPUTS INDEXSTYLE # Push a token among the arguments that will be used to notice when we # ended options/arguments parsing. # Use "set dummy ...; shift" rather than 'set - ..." because on # Solaris set - turns off set -x (but keeps set -e). # Use ${1+"$@"} rather than "$@" because Digital Unix and Ultrix 4.3 # still expand "$@" to a single argument (the empty string) rather # than nothing at all. arg_sep="$$--$$" set dummy ${1+"$@"} "$arg_sep"; shift # # Parse command line arguments. 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 ;; esac # This recognizes --quark as --quiet. So what. case "$1" in -@ ) escape=@;; # Silently and without documentation accept -b and --b[atch] as synonyms. -b | --b*) batch=eval;; -q | -s | --q* | --s*) quiet=t; batch=eval;; -c | --c*) clean=t;; -D | --d*) debug=t;; -e | --e*) expand=t;; -h | --h*) echo "$usage"; exit 0;; -I | --I*) shift miincludes="$miincludes -I $1" txincludes="$txincludes$path_sep$1" ;; -l | --l*) shift; set_language=$1;; -o | --o*) shift clean=t case "$1" in /* | ?:/*) oname=$1;; *) oname="$orig_pwd/$1";; esac;; -p | --p*) oformat=pdf;; -t | --t*) shift; textra="$textra\\ $1";; -v | --vers*) echo "$version"; exit 0;; -V | --verb*) verbose=echo;; --) # What remains are not options. shift while test x"$1" != x"$arg_sep"; do set dummy ${1+"$@"} "$1"; shift shift done break;; -*) echo "$0: Unknown or ambiguous option \`$1'." >&2 echo "$0: Try \`--help' for more information." >&2 exit 1;; *) set dummy ${1+"$@"} "$1"; shift;; esac shift done # Pop the token shift # Interpret remaining command line args as filenames. case $# in 0) echo "$0: Missing file arguments." >&2 echo "$0: Try \`--help' for more information." >&2 exit 2 ;; 1) ;; *) if test -n "$oname"; then echo "$0: Can't use option \`--output' with more than one argument." >&2 exit 2 fi ;; esac # Prepare the temporary directory. Remove it at exit, unless debugging. if test -z "$debug"; then trap "cd / && rm -rf $tmpdir" 0 1 2 15 fi # Prepare the tools we might need. This may be extra work in some # cases, but improves the readibility of the script. utildir=$tmpdir/utils mkdir $utildir || exit 1 # A sed script that preprocesses Texinfo sources in order to keep the # iftex sections only. We want to remove non TeX sections, and # comment (with `@c texi2dvi') TeX sections so that makeinfo does not # try to parse them. Nevertheless, while commenting TeX sections, # don't comment @macro/@end macro so that makeinfo does propagate # them. Unfortunately makeinfo --iftex --no-ifhtml --no-ifinfo # doesn't work well enough (yet) to use that, so work around with sed. comment_iftex_sed=$utildir/comment.sed cat <$comment_iftex_sed /^@tex/,/^@end tex/{ s/^/@c texi2dvi/ } /^@iftex/,/^@end iftex/{ s/^/@c texi2dvi/ /^@c texi2dvi@macro/,/^@c texi2dvi@end macro/{ s/^@c texi2dvi// } } /^@html/,/^@end html/{ s/^/@c (texi2dvi)/ } /^@ifhtml/,/^@end ifhtml/{ s/^/@c (texi2dvi)/ } /^@ifnottex/,/^@end ifnottex/{ s/^/@c (texi2dvi)/ } /^@ifinfo/,/^@end ifinfo/{ /^@node/p /^@menu/,/^@end menu/p t s/^/@c (texi2dvi)/ } s/^@ifnotinfo/@c texi2dvi@ifnotinfo/ s/^@end ifnotinfo/@c texi2dvi@end ifnotinfo/ EOF # Uncommenting is simple: Remove any leading `@c texi2dvi'. uncomment_iftex_sed=$utildir/uncomment.sed cat <$uncomment_iftex_sed s/^@c texi2dvi// EOF # A shell script that computes the list of xref files. # Takes the filename (without extension) of which we look for xref # files as argument. The index files must be reported last. get_xref_files=$utildir/get_xref.sh cat <<\EOF >$get_xref_files #! /bin/sh # Get list of xref files (indexes, tables and lists). # Find all files having root filename with a two-letter extension, # saves the ones that are really Texinfo-related files. .?o? catches # LaTeX tables and lists. for this_file in "$1".?o? "$1".aux "$1".?? "$1".idx; do # If file is empty, skip it. test -s "$this_file" || continue # If the file is not suitable to be an index or xref file, don't # process it. The file can't be if its first character is not a # backslash or single quote. first_character=`sed -n '1s/^\(.\).*$/\1/p;q' $this_file` if test "x$first_character" = "x\\" \ || test "x$first_character" = "x'"; then xref_files="$xref_files ./$this_file" fi done echo "$xref_files" EOF chmod 500 $get_xref_files # File descriptor usage: # 0 standard input # 1 standard output (--verbose messages) # 2 standard error # 3 some systems may open it to /dev/tty # 4 used on the Kubota Titan # 5 tools output (turned off by --quiet) # Tools' output. If quiet, discard, else redirect to the message flow. if test "$quiet" = t; then exec 5>/dev/null else exec 5>&1 fi # Enable tracing test "$debug" = t && set -x # # TeXify files. for command_line_filename in ${1+"$@"}; do $verbose "Processing $command_line_filename ..." # If the COMMAND_LINE_FILENAME is not absolute (e.g., --debug.tex), # prepend `./' in order to avoid that the tools take it as an option. echo "$command_line_filename" | egrep '^(/|[A-z]:/)' >/dev/null \ || command_line_filename="./$command_line_filename" # See if the file exists. If it doesn't we're in trouble since, even # though the user may be able to reenter a valid filename at the tex # prompt (assuming they're attending the terminal), this script won't # be able to find the right xref files and so forth. if test ! -r "$command_line_filename"; then echo "$0: Could not read $command_line_filename, skipping." >&2 continue fi # Get the name of the current directory. We want the full path # because in clean mode we are in tmp, in which case a relative # path has no meaning. filename_dir=`echo $command_line_filename | sed 's!/[^/]*$!!;s!^$!.!'` filename_dir=`cd "$filename_dir" >/dev/null && pwd` # Strip directory part but leave extension. filename_ext=`basename "$command_line_filename"` # Strip extension. filename_noext=`echo "$filename_ext" | sed 's/\.[^.]*$//'` ext=`echo "$filename_ext" | sed 's/^.*\.//'` # _src. Use same basename since we want to generate aux files with # the same basename as the manual. If --expand, then output the # macro-expanded file to here, else copy the original file. tmpdir_src=$tmpdir/src filename_src=$tmpdir_src/$filename_noext.$ext # _xtr. The file with the user's extra commands. tmpdir_xtr=$tmpdir/xtr filename_xtr=$tmpdir_xtr/$filename_noext.$ext # _bak. Copies of the previous xref files (another round is run if # they differ from the new one). tmpdir_bak=$tmpdir/bak # Make all those directories and give up if we can't succeed. mkdir $tmpdir_src $tmpdir_xtr $tmpdir_bak || exit 1 # Source file might include additional sources. Put `.' and # directory where source file(s) reside in TEXINPUTS before anything # else. `.' goes first to ensure that any old .aux, .cps, # etc. files in ${directory} don't get used in preference to fresher # files in `.'. Include orig_pwd in case we are in clean mode, where # we've cd'd to a temp directory. common=".$path_sep$orig_pwd$path_sep$filename_dir$path_sep$txincludes$path_sep" TEXINPUTS="$common$TEXINPUTS_orig" INDEXSTYLE="$common$INDEXSTYLE_orig" # If the user explicitly specified the language, use that. # Otherwise, if the first line is \input texinfo, assume it's texinfo. # Otherwise, guess from the file extension. if test -n "$set_language"; then language=$set_language elif sed 1q "$command_line_filename" | fgrep 'input texinfo' >/dev/null; then language=texinfo else language= fi # Get the type of the file (latex or texinfo) from the given language # we just guessed, or from the file extension if not set yet. case ${language:-$filename_ext} in [lL]a[tT]e[xX] | *.ltx | *.tex) # Assume a LaTeX file. LaTeX needs bibtex and uses latex for # compilation. No makeinfo. bibtex=${BIBTEX:-bibtex} makeinfo= # no point in running makeinfo on latex source. texindex=${MAKEINDEX:-makeindex} if test $oformat = dvi; then tex=${LATEX:-latex} else tex=${PDFLATEX:-pdflatex} fi ;; *) # Assume a Texinfo file. Texinfo files need makeinfo, texindex and tex. bibtex= texindex=${TEXINDEX:-texindex} if test $oformat = dvi; then tex=${TEX:-tex} else tex=${PDFTEX:-pdftex} fi # Unless required by the user, makeinfo expansion is wanted only # if texinfo.tex is too old. if test "$expand" = t; then makeinfo=${MAKEINFO:-makeinfo} else # Check if texinfo.tex performs macro expansion by looking for # its version. The version is a date of the form YEAR-MO-DA. # We don't need to use [0-9] to match the digits since anyway # the comparison with $txiprereq, a number, will fail with non # digits. txiversion_tex=txiversion.tex echo '\input texinfo.tex @bye' >$tmpdir/$txiversion_tex # Run in the tmpdir to avoid leaving files. eval `cd $tmpdir >/dev/null && $tex $txiversion_tex 2>/dev/null | sed -n 's/^.*\[\(.*\)version \(....\)-\(..\)-\(..\).*$/txiformat=\1 txiversion="\2\3\4"/p'` $verbose "texinfo.tex preloaded as \`$txiformat', version is \`$txiversion' ..." if test "$txiprereq" -le "$txiversion" >/dev/null 2>&1; then makeinfo= else makeinfo=${MAKEINFO:-makeinfo} fi # As long as we had to run TeX, offer the user this convenience if test "$txiformat" = Texinfo; then escape=@ fi fi ;; esac # Expand macro commands in the original source file using Makeinfo. # Always use `end' footnote style, since the `separate' style # generates different output (arguably this is a bug in -E). # Discard main info output, the user asked to run TeX, not makeinfo. if test -n "$makeinfo"; then $verbose "Macro-expanding $command_line_filename to $filename_src ..." sed -f $comment_iftex_sed "$command_line_filename" \ | $makeinfo --footnote-style=end -I "$filename_dir" $miincludes \ -o /dev/null --macro-expand=- \ | sed -f $uncomment_iftex_sed >"$filename_src" filename_input=$filename_src fi # If makeinfo failed (or was not even run), use the original file as input. if test $? -ne 0 \ || test ! -r "$filename_src"; then $verbose "Reverting to $command_line_filename ..." filename_input=$filename_dir/$filename_ext fi # Used most commonly for @finalout, @smallbook, etc. if test -n "$textra"; then $verbose "Inserting extra commands: $textra" sed '/^@setfilename/a\ '"$textra" "$filename_input" >$filename_xtr filename_input=$filename_xtr fi # If clean mode was specified, then move to the temporary directory. if test "$clean" = t; then $verbose "cd $tmpdir_src" cd "$tmpdir_src" || exit 1 fi while :; do # will break out of loop below orig_xref_files=`$get_xref_files "$filename_noext"` # Save copies of originals for later comparison. if test -n "$orig_xref_files"; then $verbose "Backing up xref files: `echo $orig_xref_files | sed 's|\./||g'`" cp $orig_xref_files $tmpdir_bak fi # Run bibtex on current file. # - If its input (AUX) exists. # - If AUX contains both `\bibdata' and `\bibstyle'. # - If some citations are missing (LOG contains `Citation'). # or the LOG complains of a missing .bbl # # We run bibtex first, because I can see reasons for the indexes # to change after bibtex is run, but I see no reason for the # converse. # # Don't try to be too smart. Running bibtex only if the bbl file # exists and is older than the LaTeX file is wrong, since the # document might include files that have changed. Because there # can be several AUX (if there are \include's), but a single LOG, # looking for missing citations in LOG is easier, though we take # the risk to match false messages. if test -n "$bibtex" \ && test -r "$filename_noext.aux" \ && test -r "$filename_noext.log" \ && (grep '^\\bibdata[{]' "$filename_noext.aux" \ && grep '^\\bibstyle[{]' "$filename_noext.aux" \ && (grep 'Warning:.*Citation.*undefined' "$filename_noext.log" \ || grep 'No file .*\.bbl\.' "$filename_noext.log")) \ >/dev/null 2>&1; \ then $verbose "Running $bibtex $filename_noext ..." if $bibtex "$filename_noext" >&5; then :; else echo "$0: $bibtex exited with bad status, quitting." >&2 exit 1 fi fi # What we'll run texindex on -- exclude non-index files. # Since we know index files are last, it is correct to remove everything # before .aux and .?o?. index_files=`echo "$orig_xref_files" \ | sed "s!.*\.aux!!g; s!./$filename_noext\..o.!!g; s/^[ ]*//;s/[ ]*$//"` # Run texindex (or makeindex) on current index files. If they # already exist, and after running TeX a first time the index # files don't change, then there's no reason to run TeX again. # But we won't know that if the index files are out of date or # nonexistent. if test -n "$texindex" && test -n "$index_files"; then $verbose "Running $texindex $index_files ..." if $texindex $index_files 2>&5 1>&2; then :; else echo "$0: $texindex exited with bad status, quitting." >&2 exit 1 fi fi # Finally, run TeX. # Prevent $ESCAPE from being interpreted by the shell if it happens # to be `/'. $batch tex_args="\\${escape}nonstopmode\ \\${escape}input" cmd="$tex $tex_args $filename_input" $verbose "Running $cmd ..." if $cmd >&5; then :; else echo "$0: $tex exited with bad status, quitting." >&2 echo "$0: see $filename_noext.log for errors." >&2 test "$clean" = t \ && cp "$filename_noext.log" "$orig_pwd" exit 1 fi # Decide if looping again is needed. finished=t # LaTeX (and the package changebar) report in the LOG file if it # should be rerun. This is needed for files included from # subdirs, since texi2dvi does not try to compare xref files in # subdirs. Performing xref files test is still good since LaTeX # does not report changes in xref files. if fgrep "Rerun to get" "$filename_noext.log" >/dev/null 2>&1; then finished= fi # Check if xref files changed. new_xref_files=`$get_xref_files "$filename_noext"` $verbose "Original xref files = `echo $orig_xref_files | sed 's|\./||g'`" $verbose "New xref files = `echo $new_xref_files | sed 's|\./||g'`" # If old and new lists don't at least have the same file list, # then one file or another has definitely changed. test "x$orig_xref_files" != "x$new_xref_files" && finished= # File list is the same. We must compare each file until we find # a difference. if test -n "$finished"; then for this_file in $new_xref_files; do $verbose "Comparing xref file `echo $this_file | sed 's|\./||g'` ..." # cmp -s returns nonzero exit status if files differ. if cmp -s "$this_file" "$tmpdir_bak/$this_file"; then :; else # We only need to keep comparing until we find one that # differs, because we'll have to run texindex & tex again no # matter how many more there might be. finished= $verbose "xref file `echo $this_file | sed 's|\./||g'` differed ..." test "$debug" = t && diff -c "$tmpdir_bak/$this_file" "$this_file" break fi done fi # If finished, exit the loop, else rerun the loop. test -n "$finished" && break done # If we were in clean mode, compilation was in a tmp directory. # Copy the DVI (or PDF) file into the directory where the compilation # has been done. (The temp dir is about to get removed anyway.) # We also return to the original directory so that # - the next file is processed in correct conditions # - the temporary file can be removed if test -n "$clean"; then if test -n "$oname"; then dest=$oname else dest=$orig_pwd fi $verbose "Copying $oformat file from `pwd` to $dest" cp -p "./$filename_noext.$oformat" "$dest" cd / # in case $orig_pwd is on a different drive (for DOS) cd $orig_pwd || exit 1 fi # Remove temporary files. if test "x$debug" = "x"; then $verbose "Removing $tmpdir_src $tmpdir_xtr $tmpdir_bak ..." cd / rm -rf $tmpdir_src $tmpdir_xtr $tmpdir_bak fi done $verbose "$0 done." exit 0 # exit successfully, not however we ended the loop. a2ps-4.14/contrib/fixps.m40000644000175000017500000002257610735326343014702 0ustar mhattamhattainclude(shell.m4)dnl -*- shell-script -*- #! /bin/sh -e # fixps --- fix as much as possible PS errors that break the psutils GPL([Copyright (c) 1998-2000 Akim Demaille, Miguel Santana]) # Author: Akim Demaille # 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 run_gs=0 # What action to perform: fixps, cat, check, and gs task=fixps tmpdir=`mktemp -d -t fixps.XXXXXX` || { echo "$program: Cannot create temporary dir!" >&2 ; exit 1; } verbose=echo # The version/usage strings version="fixps 1.5 (@GNU_PACKAGE@ @VERSION@) Written by Akim Demaille. Copyright (c) 1998-2000 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 [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 -f, --force force full rewrite by ghostscript -n, --no-fix don't fix the FILE, but still honor \`-o' -c, --check, --dry-run don't perform any action Fixes: - Remove junk before and after PostScript content - Use only Unix end of lines (\\n) - Remove empty lines - Fix Apple prologue (fixmacps) - Fix FrameMaker prologue (fixfmps) - Fix CorelDraw prologue (fixnt) - Fix Windows NT 3.5/4.0 prologue (fixnt) - Fix Windows 95 prologue - Ensure there is a \`%%BeginSetup/%%EndSetup' section - Removes Canvas' extraneaous \`%%EndDocument:' comments - Split too long lines If the FILE seems really in a bad state, ghostscript may be used to perform a full rewrite. The output might then be significantly bigger, but much safer. Report bugs to "] help="Try \`$program --help' for more information." # Parse command line arguments. option_without_arguments='vhsqDfn' GETOPT([ -v | --v*) echo "$version"; exit 0;; -h | --h*) echo "$usage"; exit 0;; -q | -s | --s* | --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 ;; -n | --no-fix) task=cat ;; -f | --force) # Refuse if gs does not seem to work if test "x$gs" = x; then echo "$program: error: ghostscript does not work." >&2 exit 1 else run_gs=1 fi ;; -) # We are working with stdin ;; set dummy "$@" "$1"; 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 fixps_sed=$tmpdir/fixps.sed # If printing from stdin, save into a tmp file if test $file = '-'; then file=$tmpdir/stdin.ps cat >$file fi ## -------------- ## ## Global fixes. ## ## -------------- ## # 1. Extract what looks like a real PS file, i.e. something between # a "%!" and a "%%EOF". If the latter is not present, go until # the end of the file. # It typically remove JCL junk, but also permits to print the PS content # of a mail without having to remove by hand what is not part of the PS. # Beware of the non Unix end of lines. if sed 1q $file | grep '^%!' >/dev/null; then :; else fix=1 $verbose "$program: removing junk around PostScript content." >&2 $verbose "$program: fixing broken magic number." >&2 # At the same time, make sure the first line does start by # a valid magic number. Use only '\n'. tr '\015' '\012' < $file | sed -n -e '/%!/,/^%%EOF$/{ s/^.*%!/%!/ s/^%!$/%!PS/ p }' > $tmpdir/fixed-$fix.ps file=$tmpdir/fixed-$fix.ps fi # If at this point the file does not start with a real PostScript # magic number, fail if sed 1q $file | grep '^%!' >/dev/null; then :; else echo "$program: error: the file seems not to be PostScript." >&2 exit 1 fi ## ------------------------------------------------------- ## ## After this comment everything can be done with a pipe. ## ## ------------------------------------------------------- ## : >$fixps_sed # For a start, use only '\n'. Don't try to remove multiple end of # line, since you may break valid PostScript code (think of binary # sections). command="tr '\015' '\012' < $file | sed -f $fixps_sed" # 1. Broken end-of-line (Mac?) if sed 20q $file | grep ' %%' > /dev/null; then $verbose "$program: fixing Macintosh broken end of line." >&2 fi # 2. Remove the ^M$, because they prevent some parsers to work normally if sed 20q $file | grep ' $' > /dev/null; then #' $verbose "$program: fixing PC broken end of line." >&2 fi ## ------------------------------ ## ## Fixes on prologues/structure. ## ## ------------------------------ ## # Put in $COMMENT everything we will need to find out the nature # of the file. (This is to speed up the processind) # Fetch all the lines with ``%%'' at the beginning, but # also words `FMDEFINE' comments=`eval "$command" | sed -ne '1p;/^%%/p;/FMDEFINEFONT/p;/FMBEGINPAGE/p'` # If the file does not appear to have enough of the DSC features, just # let it be rewritten by gs. if echo "$comments" | grep "EPSF" >/dev/null 2>&1; then # EPS files need at least the BBox patterns="^%%BoundingBox:"; else # PS files really need page separation information patterns="^%%Pages: ^%%Page:" fi # If some required DSC comments are not present, ask for a full rewrite. for pattern in $patterns do if echo "$comments" | grep "$pattern" >/dev/null; then :; else $verbose "$program: DSC broken. $gs will be asked a full rewrite of the file." >&2 run_gs=1 break; fi done if test $run_gs = 1 && test "x$gs" = x; then echo "$program: warning: cannot run gs, except failures downstream." >&2 run_gs=0 fi # The cleanup is to be made by hand. if test $run_gs = 0; then # If there are lines too long, split them. maxlen_awk=$tmpdir/maxlen.awk cat >$maxlen_awk < max { max = length ; } END { print max ; } EOF # Compute the max line length. maxlen=`eval "$command" | awk -f $maxlen_awk` if test "$maxlen" -ge "128"; then cutline_sed=$tmpdir/cut.sed # A script that split in piece hexa lines longer than 81 chars. cat >$cutline_sed <<'EOF' [/^[A-Fa-f0-9]\{81,\}$/b big p b :big h s/^\([A-Fa-f0-9]\{72\}\).*/\1/ p g s/^[A-Fa-f0-9]\{72\}\(.*\)/\1/ t big] EOF $verbose "$program: splitting lines too long." >&2 command="$command | sed -n -f $cutline_sed" fi # 7. Broken AppleDict procset if echo $comments | fgrep 'AppleDict' > /dev/null; then $verbose "$program: fixing Macintosh broken prologue." >&2 command="$command | fixmacps" fi # 8. Broken Frame Maker procset if echo $comments | fgrep 'Frame' > /dev/null; then $verbose "$program: fixing Frame Maker broken prologue." >&2 command="$command | fixfmps" fi # 9. Broken CorelDRAW ps, with fixnt if echo "$comments" | grep '^%%Title:.*CorelDRAW' > /dev/null; then $verbose "$program: fixing CorelDRAW broken prologue." >&2 command="$command | fixnt" # 10. Broken Windows NT 4.0 ps, still fixnt elif echo "$comments" | grep 'NTPSOct95' > /dev/null; then $verbose "$program: fixing Windows NT 4.0 broken PostScript." >&2 command="$command | fixnt" # 11. Broken Windows NT 3.5 ps, yet another fixnt elif echo "$comments" | grep 'NTPSOct94' > /dev/null; then $verbose "$program: fixing Windows NT 3.5 broken PostScript." >&2 echo 's/NTPSOct94/NTPSOct95/g' >>$fixps_sed command="$command | fixnt" fi # 12. Broken Windows 95 PS driver v4.0 if echo "$comments" | grep 'Pscript_Win_Utils' > /dev/null; then $verbose "$program: fixing Broken Windows 95 PS driver v4.0 prologue." >&2 echo 's!|/LH/showpage ,!|/LH {showpage}!' >>$fixps_sed fi # 14. Canvas' superfluous `EndDocument:' if echo "$comments" | grep 'CanvasDict' >/dev/null; then $verbose "$program: removing Canvas' extraneous \`%%EndDocument:' comment." >&2 echo '/^%%EndDocument:/d' >>$fixps_sed fi # This should be the last one. # 13. Missing BeginSetup/EndSetup if echo "$comments" | grep '^%%BeginSetup' >/dev/null; then :; else $verbose "$program: adding a %%BeginSetup/%%EndSetup section." >&2 # Because the command will be `eval'ed, it is hard to keep the eol. # Making a script is much easier. cat >>$fixps_sed <"$output" case $task in cat) cat "$file" ;; fixps) # FIXME: We should fail when the program fails eval "$command" ;; gs) $verbose "$program: making a full rewrite of the file ($gs)." >&2 $gs -q -dNOPAUSE -dBATCH -sDEVICE=pswrite -sOutputFile=- -c save pop -f $file ;; esac ) fi exit 0 a2ps-4.14/contrib/card.m40000644000175000017500000001314010735326343014445 0ustar mhattamhattainclude(shell.m4)dnl -*- shell-script -*- #! /bin/sh # -*- ksh -*- # card --- smartly produce a printed reference card of a program GPL([Copyright (c) 1998-2000 Akim Demaille, Miguel Santana]) # Author: Akim Demaille # Name by which this script was invoked. changequote(, )dnl program=`echo "$0" | sed -e 's/[^\/]*\///g'` changequote([, ])dnl 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@)" changequote(, )dnl 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='netscape -help') Options for a2ps are given after \`--', for instance $ card -lfr a2ps -- -Pdisplay -4 News, updates and documentation: http://www.inf.enst.fr/~demaille/a2ps/ Report bugs to ." changequote([, ])dnl 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. GETOPT([ -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= ;;]) # 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 changequote(, )dnl filename=`echo "$file" | sed -e 's/[^\/]*\///g'` changequote([, ])dnl $verbose "Working on \`$filename'" case $LC_ALL in fr) title="Carte de référence 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 <>$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="Résultat 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 <>$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.14/contrib/fixnt.c0000644000175000017500000021527110735337374014605 0ustar mhattamhatta #line 3 "fixnt.c" #define YY_INT_ALIGNED short int /* A lexical scanner generated by flex */ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 #define YY_FLEX_SUBMINOR_VERSION 33 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ #include #include #include #include /* end standard C headers. */ /* flex integer type definitions */ #ifndef FLEXINT_H #define FLEXINT_H /* C99 systems have . Non-C99 systems may or may not. */ #if __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 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; #endif /* ! C99 */ /* 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 #endif /* ! FLEXINT_H */ #ifdef __cplusplus /* The "const" storage-class-modifier is valid. */ #define YY_USE_CONST #else /* ! __cplusplus */ #if __STDC__ #define YY_USE_CONST #endif /* __STDC__ */ #endif /* ! __cplusplus */ #ifdef YY_USE_CONST #define yyconst const #else #define yyconst #endif /* Returned upon end-of-file. */ #define YY_NULL 0 /* Promotes a possibly negative, possibly signed char to an unsigned * integer for use as an array index. If the signed char is negative, * we want to instead treat it as an 8-bit unsigned char, hence the * double cast. */ #define YY_SC_TO_UI(c) ((unsigned int) (unsigned 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 #define YY_BUF_SIZE 16384 #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 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) /* 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) ) /* The following is because we cannot portably get our hands on size_t * (without autoconf's help, which isn't available because we want * flex-generated scanners to compile on their own). */ #ifndef YY_TYPEDEF_YY_SIZE_T #define YY_TYPEDEF_YY_SIZE_T typedef unsigned int yy_size_t; #endif #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. */ yy_size_t 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 = 0; /**< 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 = (char *) 0; 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 (yyconst char *yy_str ); YY_BUFFER_STATE yy_scan_bytes (yyconst 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 unsigned char YY_CHAR; FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0; typedef int yy_state_type; extern int yylineno; int yylineno = 1; extern char *yytext; #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 yy_fatal_error (yyconst 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 = (size_t) (yy_cp - yy_bp); \ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; #define YY_NUM_RULES 25 #define YY_END_OF_BUFFER 26 /* 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 yyconst flex_int16_t yy_accept[477] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 25, 25, 25, 2, 25, 25, 6, 25, 25, 24, 25, 25, 25, 25, 25, 25, 25, 25, 9, 25, 25, 16, 25, 0, 0, 2, 0, 0, 6, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 16, 0, 0, 1, 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, 23, 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, 5, 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, 13, 0, 0, 6, 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, 12, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 17, 0, 0, 0, 0, 8, 0, 0, 0, 3, 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, 14, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 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, 21, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 24, 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, 18, 0 } ; static yyconst flex_int32_t 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, 3, 4, 1, 1, 1, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6, 1, 7, 1, 1, 1, 8, 1, 9, 1, 10, 11, 1, 1, 1, 1, 1, 12, 13, 14, 15, 16, 17, 18, 19, 1, 1, 1, 1, 1, 1, 20, 21, 22, 1, 23, 24, 25, 1, 26, 27, 1, 1, 1, 1, 1, 1, 1, 28, 1, 29, 30, 31, 32, 33, 34, 35, 1, 36, 1, 1, 37, 38, 39, 40, 41, 1, 42, 43, 44, 45, 46, 1, 47, 1, 48, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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 yyconst flex_int32_t yy_meta[49] = { 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 } ; static yyconst flex_int16_t yy_base[516] = { 0, 0, 0, 809, 0, 1, 2, 6, 27, 8, 11, 12, 13, 813, 815, 808, 809, 815, 18, 808, 815, 29, 807, 815, 33, 35, 7, 14, 21, 23, 48, 806, 815, 19, 805, 815, 54, 804, 803, 815, 802, 801, 815, 49, 800, 815, 53, 40, 25, 34, 41, 59, 60, 62, 66, 799, 815, 67, 798, 815, 71, 797, 815, 796, 815, 73, 74, 75, 76, 81, 77, 82, 78, 84, 85, 91, 87, 88, 89, 92, 93, 94, 98, 102, 103, 104, 105, 106, 108, 114, 116, 121, 125, 134, 117, 122, 126, 128, 132, 137, 141, 795, 142, 143, 146, 151, 152, 149, 158, 153, 154, 159, 167, 160, 161, 164, 162, 794, 815, 166, 174, 179, 171, 180, 169, 186, 184, 190, 189, 197, 200, 201, 793, 204, 206, 205, 207, 209, 202, 212, 217, 214, 215, 216, 218, 219, 220, 221, 792, 815, 228, 229, 232, 237, 233, 238, 240, 242, 244, 245, 246, 249, 251, 255, 257, 258, 259, 262, 265, 260, 266, 268, 281, 282, 269, 270, 284, 272, 280, 288, 291, 292, 791, 293, 790, 301, 295, 294, 300, 302, 304, 306, 310, 312, 315, 317, 319, 320, 321, 789, 815, 323, 788, 769, 325, 322, 324, 326, 327, 334, 335, 339, 344, 340, 342, 343, 345, 347, 351, 763, 366, 785, 355, 368, 371, 373, 369, 375, 376, 784, 384, 783, 381, 386, 762, 385, 781, 815, 389, 388, 392, 393, 387, 397, 403, 780, 815, 391, 779, 815, 400, 778, 755, 420, 404, 396, 406, 405, 407, 408, 409, 776, 775, 410, 411, 774, 815, 754, 413, 430, 412, 440, 444, 445, 447, 414, 772, 751, 770, 766, 449, 450, 739, 453, 454, 452, 767, 766, 457, 738, 761, 763, 460, 720, 462, 463, 467, 761, 815, 760, 815, 464, 726, 735, 757, 815, 465, 748, 468, 815, 469, 470, 471, 473, 724, 714, 474, 747, 479, 476, 483, 484, 730, 724, 485, 749, 487, 490, 493, 491, 725, 714, 494, 501, 503, 747, 505, 506, 745, 710, 744, 712, 514, 742, 815, 515, 520, 701, 709, 739, 815, 705, 526, 524, 531, 706, 696, 701, 530, 535, 533, 693, 733, 695, 542, 545, 517, 689, 730, 815, 729, 544, 548, 549, 690, 727, 815, 558, 562, 686, 534, 546, 694, 553, 563, 724, 568, 565, 723, 719, 569, 570, 718, 571, 573, 697, 574, 575, 679, 577, 581, 691, 578, 579, 683, 582, 584, 681, 585, 589, 684, 591, 586, 674, 592, 593, 713, 580, 595, 712, 815, 596, 598, 711, 600, 710, 815, 601, 603, 609, 709, 708, 691, 668, 668, 662, 681, 678, 700, 660, 668, 657, 655, 658, 655, 663, 693, 692, 671, 663, 656, 657, 665, 662, 684, 644, 652, 641, 639, 642, 639, 647, 677, 676, 672, 671, 650, 632, 644, 636, 634, 637, 627, 666, 665, 815, 815, 665, 664, 663, 662, 661, 660, 659, 658, 657, 656, 655, 654, 653, 652, 651, 650, 649, 648, 646, 645, 644, 643, 642, 641, 640, 637, 636, 633, 631, 630, 629, 628, 627, 624, 619, 617, 611, 603, 0 } ; static yyconst flex_int16_t yy_def[516] = { 0, 477, 477, 477, 478, 479, 479, 480, 480, 481, 481, 482, 482, 476, 476, 476, 483, 476, 483, 484, 476, 484, 485, 476, 485, 485, 485, 485, 485, 485, 485, 486, 476, 486, 487, 476, 487, 488, 483, 476, 489, 484, 476, 484, 485, 476, 485, 485, 485, 485, 485, 485, 485, 485, 485, 486, 476, 486, 487, 476, 487, 488, 476, 489, 476, 484, 484, 484, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 486, 487, 487, 484, 484, 484, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 486, 487, 487, 484, 484, 484, 485, 490, 485, 485, 485, 485, 485, 485, 485, 485, 486, 487, 487, 484, 484, 484, 485, 490, 476, 485, 485, 485, 485, 485, 485, 485, 485, 486, 487, 487, 487, 484, 491, 484, 485, 485, 485, 485, 485, 485, 485, 485, 485, 486, 487, 487, 487, 484, 491, 476, 492, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 486, 487, 487, 487, 487, 484, 492, 492, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 486, 487, 487, 493, 487, 494, 492, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 486, 487, 487, 493, 476, 487, 494, 476, 492, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 486, 487, 487, 487, 476, 492, 495, 485, 485, 485, 485, 485, 485, 485, 496, 486, 497, 487, 487, 476, 492, 495, 476, 485, 485, 485, 485, 485, 485, 485, 496, 476, 486, 497, 476, 487, 498, 476, 492, 485, 485, 485, 485, 485, 485, 485, 499, 500, 486, 487, 498, 476, 476, 492, 485, 485, 485, 485, 485, 485, 485, 499, 476, 500, 476, 486, 487, 476, 492, 485, 485, 501, 502, 485, 476, 476, 503, 487, 476, 504, 485, 485, 501, 476, 502, 476, 485, 476, 476, 503, 476, 487, 476, 504, 476, 504, 485, 485, 485, 476, 476, 487, 476, 504, 485, 485, 485, 476, 476, 487, 476, 504, 485, 485, 485, 476, 476, 487, 476, 504, 505, 485, 485, 476, 476, 506, 476, 504, 505, 476, 485, 485, 476, 476, 506, 476, 476, 504, 485, 485, 476, 476, 476, 504, 485, 485, 476, 507, 476, 504, 485, 485, 476, 507, 476, 508, 504, 485, 485, 476, 508, 476, 485, 485, 476, 485, 485, 476, 485, 485, 509, 485, 485, 509, 476, 485, 485, 476, 485, 485, 476, 485, 485, 476, 485, 485, 476, 485, 485, 476, 485, 485, 476, 485, 485, 476, 485, 485, 476, 485, 485, 510, 485, 485, 510, 476, 485, 485, 511, 485, 511, 476, 485, 485, 485, 512, 512, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 513, 513, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 514, 514, 476, 476, 476, 476, 476, 476, 476, 476, 476, 515, 515, 476, 0, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476 } ; static yyconst flex_int16_t yy_nxt[864] = { 0, 474, 17, 20, 20, 18, 21, 21, 23, 45, 32, 24, 25, 32, 35, 35, 45, 36, 36, 26, 39, 56, 40, 45, 27, 45, 28, 45, 29, 23, 30, 42, 24, 25, 43, 45, 45, 45, 46, 50, 26, 33, 45, 45, 33, 27, 52, 28, 47, 29, 45, 42, 53, 48, 51, 45, 59, 49, 57, 60, 54, 45, 45, 72, 45, 71, 65, 68, 45, 56, 69, 66, 70, 59, 67, 42, 42, 42, 45, 45, 45, 73, 75, 45, 45, 79, 45, 45, 80, 45, 45, 56, 94, 45, 59, 59, 42, 76, 74, 78, 42, 77, 85, 82, 42, 45, 45, 45, 45, 84, 45, 83, 81, 88, 89, 91, 45, 86, 45, 56, 92, 87, 101, 45, 59, 95, 97, 45, 59, 90, 42, 93, 96, 98, 42, 102, 45, 109, 100, 42, 106, 104, 107, 45, 45, 45, 99, 105, 45, 108, 103, 45, 113, 45, 45, 45, 56, 111, 112, 110, 45, 59, 42, 42, 45, 114, 42, 120, 45, 59, 121, 45, 132, 45, 115, 119, 45, 116, 123, 122, 124, 45, 45, 139, 125, 129, 45, 127, 45, 141, 130, 59, 56, 131, 135, 128, 126, 133, 138, 59, 136, 134, 59, 42, 45, 137, 42, 45, 45, 45, 154, 45, 155, 140, 45, 150, 45, 45, 56, 45, 59, 59, 59, 42, 151, 142, 143, 158, 144, 152, 42, 45, 153, 146, 45, 45, 162, 145, 156, 45, 45, 163, 45, 168, 45, 147, 45, 45, 45, 178, 160, 56, 176, 59, 157, 161, 159, 59, 164, 59, 59, 42, 45, 165, 42, 170, 166, 42, 45, 169, 45, 45, 45, 171, 45, 175, 172, 168, 177, 174, 168, 173, 45, 45, 45, 179, 45, 193, 181, 191, 56, 180, 195, 59, 59, 59, 45, 45, 183, 186, 184, 182, 45, 42, 45, 185, 45, 188, 45, 187, 189, 190, 45, 192, 45, 194, 168, 45, 212, 45, 207, 56, 59, 59, 45, 59, 45, 42, 45, 45, 197, 210, 196, 221, 206, 198, 45, 45, 201, 205, 168, 45, 45, 204, 45, 56, 45, 59, 208, 59, 209, 223, 214, 59, 211, 215, 231, 45, 220, 213, 224, 217, 48, 226, 216, 218, 49, 225, 42, 222, 45, 45, 230, 45, 240, 45, 241, 45, 45, 227, 228, 168, 233, 59, 229, 242, 56, 42, 59, 45, 45, 45, 232, 56, 45, 45, 239, 238, 45, 45, 168, 253, 59, 235, 255, 45, 45, 45, 45, 45, 45, 45, 56, 59, 45, 42, 45, 243, 244, 251, 254, 247, 42, 250, 256, 258, 283, 263, 168, 260, 261, 264, 45, 257, 259, 168, 262, 269, 270, 271, 273, 284, 45, 268, 281, 275, 45, 45, 285, 45, 272, 56, 59, 274, 45, 42, 45, 295, 280, 45, 288, 292, 59, 306, 309, 45, 45, 59, 168, 45, 309, 309, 45, 45, 286, 45, 59, 310, 45, 287, 294, 309, 291, 310, 310, 45, 45, 59, 286, 309, 301, 287, 45, 45, 310, 45, 59, 311, 296, 316, 312, 321, 310, 329, 333, 309, 313, 45, 45, 318, 319, 328, 336, 320, 324, 327, 309, 45, 310, 45, 334, 326, 45, 354, 332, 337, 45, 359, 309, 310, 352, 341, 309, 45, 335, 45, 45, 45, 340, 345, 342, 310, 365, 364, 309, 310, 309, 45, 45, 358, 45, 45, 378, 346, 372, 45, 377, 310, 373, 310, 45, 380, 353, 360, 45, 45, 383, 45, 381, 371, 45, 45, 45, 45, 396, 45, 45, 45, 366, 45, 45, 45, 45, 45, 45, 408, 45, 45, 45, 386, 384, 45, 412, 45, 45, 45, 387, 45, 45, 390, 45, 424, 45, 45, 463, 45, 399, 391, 394, 397, 403, 45, 447, 393, 400, 411, 421, 409, 431, 405, 425, 415, 402, 406, 414, 419, 418, 417, 388, 375, 368, 349, 343, 427, 308, 423, 429, 304, 299, 422, 430, 297, 278, 276, 265, 248, 245, 236, 428, 202, 199, 167, 148, 117, 63, 61, 58, 55, 44, 41, 38, 34, 31, 22, 19, 16, 14, 475, 475, 473, 472, 471, 470, 469, 468, 467, 466, 465, 464, 464, 462, 461, 460, 459, 458, 457, 456, 455, 454, 453, 452, 451, 450, 449, 448, 448, 446, 445, 444, 443, 442, 441, 440, 439, 438, 437, 436, 435, 434, 433, 432, 432, 426, 426, 420, 420, 416, 413, 410, 407, 404, 401, 398, 395, 392, 389, 389, 385, 382, 376, 379, 376, 369, 374, 370, 369, 367, 363, 362, 361, 357, 350, 356, 355, 344, 351, 350, 348, 347, 344, 339, 338, 333, 331, 330, 325, 323, 322, 317, 305, 315, 314, 300, 298, 307, 305, 303, 302, 300, 298, 293, 290, 279, 289, 277, 282, 266, 279, 277, 267, 266, 249, 246, 237, 252, 249, 246, 237, 234, 219, 203, 200, 203, 200, 149, 149, 118, 118, 64, 62, 59, 56, 45, 42, 64, 39, 62, 59, 56, 45, 42, 39, 37, 476, 15, 13, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476 } ; static yyconst flex_int16_t yy_chk[864] = { 0, 515, 4, 5, 6, 4, 5, 6, 7, 26, 9, 7, 7, 10, 11, 12, 27, 11, 12, 7, 18, 33, 18, 28, 7, 29, 7, 48, 7, 8, 8, 21, 8, 8, 21, 24, 49, 25, 24, 26, 8, 9, 47, 50, 10, 8, 28, 8, 25, 8, 30, 43, 29, 25, 27, 46, 36, 25, 33, 36, 30, 51, 52, 49, 53, 48, 43, 46, 54, 57, 46, 43, 47, 60, 43, 65, 66, 67, 68, 70, 72, 50, 52, 69, 71, 60, 73, 74, 60, 76, 77, 78, 78, 75, 79, 80, 81, 53, 51, 57, 82, 54, 69, 66, 83, 84, 85, 86, 87, 68, 88, 67, 65, 72, 73, 75, 89, 70, 90, 94, 76, 71, 85, 91, 95, 79, 81, 92, 96, 74, 97, 77, 80, 82, 98, 86, 93, 93, 84, 99, 90, 88, 91, 100, 102, 103, 83, 89, 104, 92, 87, 107, 97, 105, 106, 109, 110, 95, 96, 94, 108, 111, 113, 114, 116, 98, 115, 103, 119, 112, 104, 124, 114, 122, 99, 102, 120, 100, 106, 105, 107, 121, 123, 123, 108, 112, 126, 110, 125, 125, 112, 128, 127, 113, 119, 111, 109, 115, 122, 129, 120, 116, 130, 131, 138, 121, 133, 135, 134, 136, 136, 137, 137, 124, 139, 133, 141, 142, 143, 140, 144, 145, 146, 147, 134, 126, 127, 140, 128, 134, 150, 151, 135, 130, 152, 154, 144, 129, 138, 153, 155, 144, 156, 150, 157, 131, 158, 159, 160, 160, 142, 161, 158, 162, 139, 143, 141, 163, 145, 164, 165, 166, 169, 146, 167, 152, 147, 168, 170, 151, 171, 174, 175, 153, 177, 157, 154, 167, 159, 156, 168, 155, 178, 172, 173, 161, 176, 176, 163, 174, 179, 162, 178, 180, 181, 183, 187, 186, 165, 169, 166, 164, 188, 185, 189, 168, 190, 171, 191, 170, 172, 173, 192, 175, 193, 177, 185, 194, 193, 195, 188, 196, 197, 198, 205, 201, 206, 204, 207, 208, 180, 191, 179, 205, 187, 181, 209, 210, 183, 186, 204, 211, 213, 185, 214, 215, 212, 216, 189, 217, 190, 207, 195, 218, 192, 196, 216, 222, 204, 194, 208, 198, 212, 210, 197, 201, 212, 209, 220, 206, 223, 226, 215, 224, 224, 225, 225, 227, 228, 211, 213, 220, 218, 232, 214, 226, 230, 235, 233, 242, 239, 238, 217, 247, 240, 241, 223, 222, 255, 243, 235, 235, 250, 220, 239, 244, 254, 257, 256, 258, 259, 260, 263, 264, 270, 268, 275, 227, 228, 233, 238, 230, 253, 232, 240, 241, 268, 247, 268, 242, 243, 250, 269, 240, 241, 253, 244, 254, 255, 256, 258, 269, 271, 253, 264, 260, 272, 273, 270, 274, 257, 280, 281, 259, 285, 283, 284, 284, 263, 288, 275, 281, 292, 292, 294, 295, 301, 306, 283, 296, 308, 310, 311, 312, 271, 313, 316, 294, 319, 273, 283, 318, 280, 308, 310, 320, 321, 324, 272, 326, 288, 274, 327, 329, 318, 328, 332, 295, 285, 306, 296, 313, 326, 321, 333, 334, 301, 336, 337, 310, 311, 320, 328, 312, 316, 319, 342, 345, 334, 366, 326, 318, 346, 346, 324, 329, 353, 353, 352, 342, 342, 333, 358, 354, 327, 360, 380, 359, 332, 336, 334, 352, 359, 358, 364, 358, 371, 365, 381, 352, 372, 373, 373, 337, 365, 383, 372, 364, 366, 371, 377, 377, 345, 354, 378, 384, 380, 387, 378, 364, 386, 390, 391, 393, 393, 394, 396, 397, 360, 399, 402, 403, 417, 400, 405, 405, 406, 408, 412, 383, 381, 409, 409, 411, 414, 415, 384, 418, 421, 386, 422, 422, 424, 427, 514, 428, 396, 387, 391, 394, 400, 429, 513, 390, 397, 408, 417, 406, 512, 402, 511, 412, 399, 403, 411, 510, 415, 414, 509, 508, 507, 506, 505, 424, 504, 421, 428, 503, 502, 418, 429, 501, 500, 499, 498, 497, 496, 495, 427, 494, 493, 492, 491, 490, 489, 488, 487, 486, 485, 484, 483, 482, 481, 480, 479, 478, 477, 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, 425, 423, 419, 416, 413, 410, 407, 404, 401, 398, 395, 392, 389, 388, 385, 382, 379, 375, 374, 370, 368, 367, 363, 362, 361, 357, 356, 355, 351, 349, 348, 347, 343, 341, 340, 339, 338, 335, 331, 330, 325, 323, 322, 317, 315, 314, 307, 304, 303, 302, 299, 297, 293, 291, 290, 289, 287, 286, 282, 279, 278, 277, 276, 267, 265, 262, 261, 252, 251, 248, 245, 236, 234, 231, 229, 221, 219, 203, 202, 199, 184, 182, 148, 132, 117, 101, 63, 61, 58, 55, 44, 41, 40, 38, 37, 34, 31, 22, 19, 16, 15, 13, 3, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476, 476 } ; 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 "fixnt.l" #line 3 "fixnt.l" /* Time-stamp: "99/06/29 14:48:25 bauer" */ /* Filter for Windows NT 4.0 postscript printer driver. Enables * the use of psnup from Angus Duggan's psutils package * ( http://www.dcs.ed.ac.uk/home/ajcd/psutils/ ) * Copyright: GNU General Public License (GPL) * Authors: * Holger Bauer 1998, 1999 bauer@itsm.uni-stuttgart.de * Michael Rath 1998, 1999 rath@itsm.uni-stuttgart.de * Akim Demaille 1999 demaille@inf.enst.fr * Version: 0.1c * Release Date: 1999/02/04 * * Compilation: * * flex fixnt.l * cc -O -o fixnt lex.yy.c * * Usage: * csh-prompt> cat BAD_NT_Postscript_FILE.ps | fixnt | psnup -4 | gs - * or: * csh-prompt> cat BAD_NT_Postscript_FILE.ps | fixnt | psnup -4 >GOOD.ps * * Windows NT 3.5 users may be happy with: * csh-prompt> cat BAD_NT_Postscript_FILE.ps | \ * sed 's/NTPSOct94/NTPSOct95/g' | fixnt | psnup -4 >GOOD.ps * * TODO-List: * - check for NTPSOct94 (in the meantime use the sed command above) * * * BUG-Reports: to Authors (above) (please, no 20MB postscript files !!!!!!) * Patches (welcome) to code maintainer: bauer@itsm.uni-stuttgart.de * */ #ifdef HAVE_CONFIG_H # include "config.h" # include # if defined STDC_HEADERS || defined _LIBC || defined HAVE_STDLIB_H # include # endif # if HAVE_SYS_TYPES_H # include # endif # if HAVE_UNISTD_H # include # endif #else /* !HAVE_CONFIG_H */ # include # ifdef _WIN32 # include # include # include # include # else /* !_WIN32 */ # include # endif # include char *getenv (); #endif /* !HAVE_CONFIG_H */ /* Support of prototyping when possible */ #ifndef PARAMS # if PROTOTYPES # define PARAMS(protos) protos # else /* no PROTOTYPES */ # define PARAMS(protos) () # endif /* no PROTOTYPES */ #endif /* Do not allow redefinition of malloc and realloc. */ #undef malloc #undef realloc #if defined (YYLMAX) # undef YYLMAX # define YYLMAX 1024 #endif void reassemble PARAMS ((FILE*,FILE*,FILE*,char*,char*,char*)); static int first_time = 1; FILE *font; FILE *adobe; FILE *body; int ifpagesv = 0; int ifcorel = 0; int ifendsetup = 0; int pid; char fontfname[255]; char adobefname[255]; char bodyfname[255]; #ifdef _WIN32 char tmpdir[_MAX_PATH]; #else const char *tmpdir; #endif #line 908 "fixnt.c" #define INITIAL 0 #define DUMMY 1 #define NORMAL 2 #define BODY 3 #define ADOBE 4 #define FONT 5 #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 #endif #ifndef YY_EXTRA_TYPE #define YY_EXTRA_TYPE void * #endif static int yy_init_globals (void ); /* 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 static void yyunput (int c,char *buf_ptr ); #ifndef yytext_ptr static void yy_flex_strncpy (char *,yyconst char *,int ); #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (yyconst 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 #define YY_READ_BUF_SIZE 8192 #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 (void) fwrite( yytext, yyleng, 1, yyout ) #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 = '*'; \ size_t 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 = fread(buf, 1, 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 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 { register yy_state_type yy_current_state; register char *yy_cp, *yy_bp; register int yy_act; #line 105 "fixnt.l" if(first_time){ BEGIN DUMMY; first_time = 0; } #line 1079 "fixnt.c" 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( ); } while ( 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 { register 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 >= 477 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } while ( yy_base[yy_current_state] != 815 ); 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 114 "fixnt.l" { /* regular Postscript starts here ... */ ECHO; BEGIN NORMAL; } YY_BREAK case 2: /* rule 2 can match eol */ YY_RULE_SETUP #line 119 "fixnt.l" { /* nothing to do */ } YY_BREAK case 3: /* rule 3 can match eol */ YY_RULE_SETUP #line 122 "fixnt.l" { /* Corel Draw modus recognized */ ifcorel = 1; ECHO; } YY_BREAK case 4: /* rule 4 can match eol */ YY_RULE_SETUP #line 127 "fixnt.l" { /* suppress EndSetup */ fprintf(yyout,"NTPSOct95 begin\n"); ifendsetup = 1; } YY_BREAK case 5: /* rule 5 can match eol */ YY_RULE_SETUP #line 132 "fixnt.l" { /* read up to first page and just output everyting */ sprintf(bodyfname, "%s/fixnt_Body_%d", tmpdir, pid); body = fopen(bodyfname,"w+"); fprintf(body,"%s",yytext); BEGIN BODY; } YY_BREAK case 6: /* rule 6 can match eol */ YY_RULE_SETUP #line 139 "fixnt.l" { /* o.k. */ fprintf(yyout,"%s",yytext); } YY_BREAK case 7: /* rule 7 can match eol */ YY_RULE_SETUP #line 143 "fixnt.l" { /* Adobe Stuff */ sprintf(adobefname, "%s/fixnt_Adobe_%d", tmpdir, pid); adobe = fopen(adobefname,"w+"); fprintf(adobe,"%s",yytext); BEGIN ADOBE; } YY_BREAK case 8: /* rule 8 can match eol */ YY_RULE_SETUP #line 150 "fixnt.l" { /* End of Adobe definition stuff */ fprintf(adobe,"%s",yytext); BEGIN BODY; } YY_BREAK case 9: /* rule 9 can match eol */ YY_RULE_SETUP #line 155 "fixnt.l" { /* print just everything ... */ fprintf(adobe,"%s",yytext); } YY_BREAK case 10: /* rule 10 can match eol */ YY_RULE_SETUP #line 160 "fixnt.l" { ; /* remove showpage definition of CorelDraw defintions */ if( ifcorel == 1 ){ fprintf(body," @gs @gr\n"); /* Corel draw defines spg as showpage */ } else { fprintf(body,"%s",yytext); /* Somebody else defined spg, leave it in */ } } YY_BREAK case 11: /* rule 11 can match eol */ YY_RULE_SETUP #line 169 "fixnt.l" { ; /* font definitions from here on */ sprintf(fontfname, "%s/fixnt_Font_%d", tmpdir, pid); font = fopen(fontfname,"w+"); fprintf(font,"%s",yytext); BEGIN FONT; } YY_BREAK case 12: /* rule 12 can match eol */ YY_RULE_SETUP #line 177 "fixnt.l" { /* Font definitions go to FILE* font */ fprintf(font,"%s",yytext); BEGIN FONT; } YY_BREAK case 13: /* rule 13 can match eol */ YY_RULE_SETUP #line 182 "fixnt.l" { /* End of Font Definition */ fprintf(font,"%s",yytext); BEGIN BODY; } YY_BREAK case 14: /* rule 14 can match eol */ YY_RULE_SETUP #line 187 "fixnt.l" { ; /* NT 3.5 Postscript Files have different FontDefinitions */ fprintf(font,"%s",yytext); BEGIN FONT; } YY_BREAK case 15: /* rule 15 can match eol */ YY_RULE_SETUP #line 193 "fixnt.l" { ; /* NT 3.5 Postscript Files have different FontDefinitions */ fprintf(font,"%s",yytext); BEGIN BODY; } YY_BREAK case 16: /* rule 16 can match eol */ YY_RULE_SETUP #line 199 "fixnt.l" { /* goes all to FILE *font ... */ fprintf(font,"%s",yytext); } YY_BREAK case 17: /* rule 17 can match eol */ YY_RULE_SETUP #line 203 "fixnt.l" { ; ifpagesv = 1; } YY_BREAK case 18: /* rule 18 can match eol */ YY_RULE_SETUP #line 207 "fixnt.l" { fprintf(body,"%%%%Trailer\nAdobe_WinNT_Driver_Gfx dup /terminate get exec\nPageSV restore\nFontSV restore\n"); } YY_BREAK case 19: /* rule 19 can match eol */ YY_RULE_SETUP #line 211 "fixnt.l" { ; /* switch FontSV/PageSV */ fprintf(body,"PageSV restore\nFontSV restore\n"); } YY_BREAK case 20: /* rule 20 can match eol */ YY_RULE_SETUP #line 216 "fixnt.l" { ; /* put PageSV after Trailer */ fprintf(body,"%%%%Trailer\nPageSV restore\n"); } YY_BREAK case 21: /* rule 21 can match eol */ YY_RULE_SETUP #line 222 "fixnt.l" { ; /* put PageSV/FontSV after Trailer */ fprintf(body,"%%%%Trailer\nPageSV restore\nFontSV restore\n"); } YY_BREAK case 22: /* rule 22 can match eol */ YY_RULE_SETUP #line 228 "fixnt.l" { ; /* do not allow any PageSV's to appear within the actual body */ } YY_BREAK case 23: /* rule 23 can match eol */ YY_RULE_SETUP #line 233 "fixnt.l" { ; /* What to do at the end of the file (either recognized by %%EOF or reg. end of file */ fprintf(body,"%s",yytext); return 0; } YY_BREAK case YY_STATE_EOF(BODY): #line 240 "fixnt.l" { ; /* This section is obsolete, could be removed ..., assume there is no string <> in a Postscript file ... */ /* Only flex knows about the <> symbol therefore put the reassembling process into the main program. Plain lex does return 0 for regular end of file marks. */ return 0; } YY_BREAK case 24: /* rule 24 can match eol */ YY_RULE_SETUP #line 250 "fixnt.l" { /* put pages in FILE *body */ fprintf(body,"%s",yytext); } YY_BREAK case 25: YY_RULE_SETUP #line 254 "fixnt.l" ECHO; YY_BREAK #line 1402 "fixnt.c" case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(DUMMY): case YY_STATE_EOF(NORMAL): case YY_STATE_EOF(ADOBE): case YY_STATE_EOF(FONT): 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 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) { register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; register char *source = (yytext_ptr); register 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; 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,b->yy_buf_size + 2 ); } else /* Can't grow it, we don't own it. */ b->yy_ch_buf = 0; 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), (size_t) 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; (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) { register yy_state_type yy_current_state; register 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 ) { register 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 >= 477 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) 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 ) { register int yy_is_jam; register char *yy_cp = (yy_c_buf_p); register 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 >= 477 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; yy_is_jam = (yy_current_state == 476); return yy_is_jam ? 0 : yy_current_state; } static void yyunput (int c, register char * yy_bp ) { register 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. */ register int number_to_move = (yy_n_chars) + 2; register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; register 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) = 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; } #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 = (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 EOF; 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(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 ); } #ifndef __cplusplus extern int isatty (int ); #endif /* __cplusplus */ /* 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) { int 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; (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); 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. */ int 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*) ); /* 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 0; 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 = 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 = 0; 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 (yyconst char * yystr ) { return yy_scan_bytes(yystr,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 bytes the byte buffer to scan * @param 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 (yyconst 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 = _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 yy_fatal_error (yyconst char* msg ) { (void) 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 * */ 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) = 0; (yy_buffer_stack_top) = 0; (yy_buffer_stack_max) = 0; (yy_c_buf_p) = (char *) 0; (yy_init) = 0; (yy_start) = 0; /* Defined in main.c */ #ifdef YY_STDINIT yyin = stdin; yyout = stdout; #else yyin = (FILE *) 0; yyout = (FILE *) 0; #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, yyconst char * s2, int n ) { register int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (yyconst char * s ) { register int n; for ( n = 0; s[n]; ++n ) ; return n; } #endif void *yyalloc (yy_size_t size ) { return (void *) 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 (void *) realloc( (char *) ptr, size ); } void yyfree (void * ptr ) { free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" #line 254 "fixnt.l" int yywrap () { return 1; } int main () { #ifdef _WIN32 GetTempPath(_MAX_PATH, tmpdir); #else if (!(tmpdir = getenv("TMPDIR"))) tmpdir = "/tmp"; #endif pid = (int) getpid (); yylex(); /* at the end always reassemble the file and clean up ... */ reassemble(adobe, font, body, adobefname, fontfname, bodyfname); return 0; } void reassemble (adobe, font, body, adobefname, fontfname, bodyfname) FILE* adobe; FILE* font; FILE* body; char *adobefname; char *fontfname; char *bodyfname; { int xx; /* put everything in right order ... */ if( adobe != NULL ){ rewind(adobe); while( (xx = getc( adobe )) != EOF ){ putc(xx,yyout); } fclose(adobe); remove(adobefname); } if( font != NULL){ rewind(font); while( (xx = getc( font )) != EOF ){ putc(xx,yyout); } fclose(font); remove(fontfname); } if( ifendsetup == 1){ fprintf(yyout,"%%%%EndSetup:\n"); } if( body != NULL){ rewind(body); if(ifpagesv == 1) fprintf(yyout,"NTPSOct95 /PageSV save put\n"); while( (xx = getc( body )) != EOF ){ putc(xx,yyout); } fclose(body); remove(bodyfname); } return; } /* Local Variables: Mode: C End: */ a2ps-4.14/contrib/card.in0000644000175000017500000001754310735337375014555 0ustar mhattamhatta#! /bin/sh # -*- ksh -*- # card --- smartly produce a printed reference card of a program # Copyright (c) 1998-2000 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 # 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='netscape -help') Options for a2ps are given after \`--', for instance $ card -lfr a2ps -- -Pdisplay -4 News, updates and documentation: http://www.inf.enst.fr/~demaille/a2ps/ Report bugs to ." 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 référence 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 <>$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="Résultat 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 <>$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.14/contrib/pdiff.m40000644000175000017500000000600510735326343014626 0ustar mhattamhattainclude(shell.m4)dnl -*- shell-script -*- #! /bin/sh # -*- sh -*- # pdiff --- Print diff in a nice way GPL([Copyright (c) 1998, 1999 Akim Demaille, Miguel Santana]) # Author: Akim Demaille # Get the name of the program program=`echo $0 | sed 's#.*/##g'` changequote(, ) # 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: http://www.inf.enst.fr/~demaille/a2ps/. Report bugs to ." help="Try \`$program --help' for more information." changequote([, ]) # Parse command line arguments. option_without_arguments='vhsqDlw' GETOPT([ -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 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.14/contrib/fixnt.l0000644000175000017500000001641107440740377014611 0ustar mhattamhatta%p 3000 %{ /* -*- c -*- */ /* <--- EMACS knows now about what mode to use ... */ /* Time-stamp: "99/06/29 14:48:25 bauer" */ /* Filter for Windows NT 4.0 postscript printer driver. Enables * the use of psnup from Angus Duggan's psutils package * ( http://www.dcs.ed.ac.uk/home/ajcd/psutils/ ) * Copyright: GNU General Public License (GPL) * Authors: * Holger Bauer 1998, 1999 bauer@itsm.uni-stuttgart.de * Michael Rath 1998, 1999 rath@itsm.uni-stuttgart.de * Akim Demaille 1999 demaille@inf.enst.fr * Version: 0.1c * Release Date: 1999/02/04 * * Compilation: * * flex fixnt.l * cc -O -o fixnt lex.yy.c * * Usage: * csh-prompt> cat BAD_NT_Postscript_FILE.ps | fixnt | psnup -4 | gs - * or: * csh-prompt> cat BAD_NT_Postscript_FILE.ps | fixnt | psnup -4 >GOOD.ps * * Windows NT 3.5 users may be happy with: * csh-prompt> cat BAD_NT_Postscript_FILE.ps | \ * sed 's/NTPSOct94/NTPSOct95/g' | fixnt | psnup -4 >GOOD.ps * * TODO-List: * - check for NTPSOct94 (in the meantime use the sed command above) * * * BUG-Reports: to Authors (above) (please, no 20MB postscript files !!!!!!) * Patches (welcome) to code maintainer: bauer@itsm.uni-stuttgart.de * */ #ifdef HAVE_CONFIG_H # include "config.h" # include # if defined STDC_HEADERS || defined _LIBC || defined HAVE_STDLIB_H # include # endif # if HAVE_SYS_TYPES_H # include # endif # if HAVE_UNISTD_H # include # endif #else /* !HAVE_CONFIG_H */ # include # ifdef _WIN32 # include # include # include # include # else /* !_WIN32 */ # include # endif # include char *getenv (); #endif /* !HAVE_CONFIG_H */ /* Support of prototyping when possible */ #ifndef PARAMS # if PROTOTYPES # define PARAMS(protos) protos # else /* no PROTOTYPES */ # define PARAMS(protos) () # endif /* no PROTOTYPES */ #endif /* Do not allow redefinition of malloc and realloc. */ #undef malloc #undef realloc #if defined (YYLMAX) # undef YYLMAX # define YYLMAX 1024 #endif void reassemble PARAMS ((FILE*,FILE*,FILE*,char*,char*,char*)); static int first_time = 1; FILE *font; FILE *adobe; FILE *body; int ifpagesv = 0; int ifcorel = 0; int ifendsetup = 0; int pid; char fontfname[255]; char adobefname[255]; char bodyfname[255]; #ifdef _WIN32 char tmpdir[_MAX_PATH]; #else const char *tmpdir; #endif %} %Start DUMMY NORMAL BODY ADOBE FONT %% %{ if(first_time){ BEGIN DUMMY; first_time = 0; } %} %!.*\n { /* regular Postscript starts here ... */ ECHO; BEGIN NORMAL; } ^.*\n { /* nothing to do */ } %%Title:.*CorelDRAW.*\n { /* Corel Draw modus recognized */ ifcorel = 1; ECHO; } %%EndSetup.*\nNTPSOct95[ ]+begin.*\n { /* suppress EndSetup */ fprintf(yyout,"NTPSOct95 begin\n"); ifendsetup = 1; } %%Page:.*\n { /* read up to first page and just output everyting */ sprintf(bodyfname, "%s/fixnt_Body_%d", tmpdir, pid); body = fopen(bodyfname,"w+"); fprintf(body,"%s",yytext); BEGIN BODY; } .*\n { /* o.k. */ fprintf(yyout,"%s",yytext); } [/]Adobe_WinNT_Driver_Gfx[ ]175[ ]dict[ ]dup[ ]begin.*\n { /* Adobe Stuff */ sprintf(adobefname, "%s/fixnt_Adobe_%d", tmpdir, pid); adobe = fopen(adobefname,"w+"); fprintf(adobe,"%s",yytext); BEGIN ADOBE; } end[ ]reinitialize.*\n { /* End of Adobe definition stuff */ fprintf(adobe,"%s",yytext); BEGIN BODY; } .*\n { /* print just everything ... */ fprintf(adobe,"%s",yytext); } ^[ ]@gs[ ]spg[ ]@gr.*\n { ; /* remove showpage definition of CorelDraw defintions */ if( ifcorel == 1 ){ fprintf(body," @gs @gr\n"); /* Corel draw defines spg as showpage */ } else { fprintf(body,"%s",yytext); /* Somebody else defined spg, leave it in */ } } (NTPSOct95[ ]){0,1}[/]FontSV[ ]save[ ](put|def).*\n { ; /* font definitions from here on */ sprintf(fontfname, "%s/fixnt_Font_%d", tmpdir, pid); font = fopen(fontfname,"w+"); fprintf(font,"%s",yytext); BEGIN FONT; } %%BeginFont:.*\n { /* Font definitions go to FILE* font */ fprintf(font,"%s",yytext); BEGIN FONT; } %%EndFont.*\n { /* End of Font Definition */ fprintf(font,"%s",yytext); BEGIN BODY; } %%BeginResource:[ ]font.*\n { ; /* NT 3.5 Postscript Files have different FontDefinitions */ fprintf(font,"%s",yytext); BEGIN FONT; } %%EndResource.*\n { ; /* NT 3.5 Postscript Files have different FontDefinitions */ fprintf(font,"%s",yytext); BEGIN BODY; } .*\n { /* goes all to FILE *font ... */ fprintf(font,"%s",yytext); } (NTPSOct95[ ]){0,1}[/]PageSV[ ]save[ ](put|def).*\n { ; ifpagesv = 1; } Adobe_WinNT_Driver_Gfx[ ]dup[ ][/]terminate[ ]get[ ]exec.*\nFontSV[ ]restore.*\nPageSV[ ]restore.*\n%%Trailer.*\n { fprintf(body,"%%%%Trailer\nAdobe_WinNT_Driver_Gfx dup /terminate get exec\nPageSV restore\nFontSV restore\n"); } FontSV[ ]restore.*\nPageSV[ ]restore.*\n { ; /* switch FontSV/PageSV */ fprintf(body,"PageSV restore\nFontSV restore\n"); } PageSV[ ]restore.*\n%%Trailer.*\n { ; /* put PageSV after Trailer */ fprintf(body,"%%%%Trailer\nPageSV restore\n"); } FontSV[ ]restore.*\nPageSV[ ]restore.*\n%%Trailer.*\n { ; /* put PageSV/FontSV after Trailer */ fprintf(body,"%%%%Trailer\nPageSV restore\nFontSV restore\n"); } PageSV[ ]restore.*\n { ; /* do not allow any PageSV's to appear within the actual body */ } %%EOF.*\n { ; /* What to do at the end of the file (either recognized by %%EOF or reg. end of file */ fprintf(body,"%s",yytext); return 0; } <> { ; /* This section is obsolete, could be removed ..., assume there is no string <> in a Postscript file ... */ /* Only flex knows about the <> symbol therefore put the reassembling process into the main program. Plain lex does return 0 for regular end of file marks. */ return 0; } .*\n { /* put pages in FILE *body */ fprintf(body,"%s",yytext); } %% int yywrap () { return 1; } int main () { #ifdef _WIN32 GetTempPath(_MAX_PATH, tmpdir); #else if (!(tmpdir = getenv("TMPDIR"))) tmpdir = "/tmp"; #endif pid = (int) getpid (); yylex(); /* at the end always reassemble the file and clean up ... */ reassemble(adobe, font, body, adobefname, fontfname, bodyfname); return 0; } void reassemble (adobe, font, body, adobefname, fontfname, bodyfname) FILE* adobe; FILE* font; FILE* body; char *adobefname; char *fontfname; char *bodyfname; { int xx; /* put everything in right order ... */ if( adobe != NULL ){ rewind(adobe); while( (xx = getc( adobe )) != EOF ){ putc(xx,yyout); } fclose(adobe); remove(adobefname); } if( font != NULL){ rewind(font); while( (xx = getc( font )) != EOF ){ putc(xx,yyout); } fclose(font); remove(fontfname); } if( ifendsetup == 1){ fprintf(yyout,"%%%%EndSetup:\n"); } if( body != NULL){ rewind(body); if(ifpagesv == 1) fprintf(yyout,"NTPSOct95 /PageSV save put\n"); while( (xx = getc( body )) != EOF ){ putc(xx,yyout); } fclose(body); remove(bodyfname); } return; } /* Local Variables: Mode: C End: */ a2ps-4.14/contrib/emacs/0000755000175000017500000000000010735337377014374 5ustar mhattamhattaa2ps-4.14/contrib/emacs/a2ps.el0000644000175000017500000002564710735324663015573 0ustar mhattamhatta;;; 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. ;;; ;; This file is (not yet) part of GNU Emacs. ;; $Id: a2ps.el,v 1.1.1.1.2.2 2007/12/29 01:58:11 mhatta Exp $ ;; to autoload a2ps lisp code: ;; (autoload 'a2ps-mode "a2ps-mode" nil t) ;; ;; or can use (load "a2ps-mode") or (require 'a2ps-mode) to just load it ;; ;; to try to "auto-detect" a2ps files: ;; (setq auto-mode-alist ;; (cons '(".*\\.a2ps$" . a2ps-mode) ;; auto-mode-alist)) ;; Thanks to Didier Verna for ;; a2ps-compile-regexp ;;path to the a2ps program (defvar a2ps-program "/usr/local/bin/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) ;;; a2ps-compile-regexp ;;; Author: Didier Verna on metheny ;;; Maintainer: Verna@inf.enst.fr ;;; Created: Wed Aug 6 08:54:37 1997 under emacs ;;; Last revision: Wed Aug 6 10:32:40 1997 ;;; ;;; Removed this now the syntax is completely different. ;;; (defun a2ps-compile-regexp (start end) ;;; "Compile a list of keywords or operators to the optimized regexp. ;;; - Select the region of keywords and type M-x a2ps-compile-regexp." ;;; (interactive "r") ;;; (let (thelist lines) ;;; (setq lines (count-lines start end)) ;;; (goto-char start) ;;; (save-excursion ;;; (while (< (point) end) ;;; (re-search-forward "[^ #,\"\t\n]+") ;;; (setq thelist (cons (match-string 0) thelist)) ;;; (goto-char (+ (match-end 0) 1)))) ;;; (let ((i 1)) ;;; (beginning-of-line) ;;; (while (<= i lines) ;;; (if (not (string= (char-to-string (following-char)) "#")) ;;; (insert "#")) ;;; (forward-line) ;;; (setq i (+ i 1)))) ;;; (insert "/") ;;; (save-excursion ;;; (insert (prin1-to-string (make-regexp thelist))) ;;; (delete-char -1) ;;; (insert "/\n")) ;;; (delete-char 1))) (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" ["Compile region" a2ps-compile-regexp t] ["Documentation" a2ps-goto-info-page t] ; ["Complete" TeX-complete-symbol t] ; ["Save Document" TeX-save-document t] ; ["Next Error" TeX-next-error t] ; ["Kill Job" TeX-kill-job t] ; ["Debug Bad Boxes" TeX-toggle-debug-boxes ; :style toggle :selected TeX-debug-bad-boxes ] ; ["Switch to Original File" TeX-home-buffer t] ; ["Recenter Output Buffer" TeX-recenter-output-buffer t] ; ;; ["Uncomment" TeX-un-comment t] ; ["Uncomment Region" TeX-un-comment-region t] ; ;; ["Comment Paragraph" TeX-comment-paragraph t] ; ["Comment Region" TeX-comment-region t] ; ["Switch to Master file" TeX-home-buffer t] ; ["Submit bug report" TeX-submit-bug-report t] ; ["Reset Buffer" TeX-normal-mode t] ; ["Reset AUC TeX" (TeX-normal-mode t) :keys "C-u C-c C-n"] )) ;; 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")) (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 to have a cooler environment (require 'filladapt) (filladapt-mode) ; Used to compile regexps ; (load "make-regexp") ; 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) ;;stuff to play with for debugging ;(char-to-string (char-syntax ?`)) ;;; (setq foo (make-regexp '("a2ps" "alphabet" "alphabets" "ancestors" "are" "by" "case" "closers" "documentation" "end" "exceptions" "first" "in" "insensitive" "is" "keywords" "requires" "second" "sensitive" "operators" "optional" "sequences" "style" "version" "written") t)) ;;; (setq bar (make-regexp '("\\\\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" "\\\\apple" "\\\\rangle" "\\\\int" "\\\\rceil" "\\\\rfloor"))) ;;; (defvar foobar (make-regexp '("Plain" "Keyword" "Keyword_strong" "Comment" "Comment_strong" "Label" "Label_strong" "String" "Symbol" "Tag1" "Tag2" "Tag3" "Tag4" "Index1" "Index2" "Index3" "Index4" "Error" "Encoding" "Invisible" "C-string" "C-char"))) ;;; (setq forall (make-regexp '("\\\\forall" "\\\\bullet"))) ;;; a2ps.el ends here a2ps-4.14/contrib/emacs/Makefile.am0000644000175000017500000000014207440740377016422 0ustar mhattamhatta## Process this file with automake to produce Makefile.in dist_lisp_LISP = a2ps.el a2ps-print.el a2ps-4.14/contrib/emacs/Makefile.in0000644000175000017500000003332010735337306016432 0ustar mhattamhatta# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 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@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../.. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = contrib/emacs DIST_COMMON = $(dist_lisp_LISP) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/a2_psutils.m4 \ $(top_srcdir)/m4/atexit.m4 $(top_srcdir)/m4/file.m4 \ $(top_srcdir)/m4/fp_echo.m4 $(top_srcdir)/m4/fullpath.m4 \ $(top_srcdir)/m4/gccwarn.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gperf-check.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \ $(top_srcdir)/m4/lex.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/lpr.m4 \ $(top_srcdir)/m4/m4.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \ $(top_srcdir)/m4/perl.m4 $(top_srcdir)/m4/prereq.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/protos.m4 \ $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/rename.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/strcasecmp.m4 \ $(top_srcdir)/m4/strftim.m4 $(top_srcdir)/m4/termios.m4 \ $(top_srcdir)/m4/tterm.m4 $(top_srcdir)/m4/uintmax_t.m4 \ $(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/winsz.m4 \ $(top_srcdir)/m4/xstrtoumax.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/auxdir/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = 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 = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(lispdir)" dist_lispLISP_INSTALL = $(INSTALL_DATA) LISP = $(dist_lisp_LISP) am__ELFILES = a2ps-print.el a2ps.el am__ELCFILES = $(am__ELFILES:.el=.elc) ELCFILES = $(LISP:.el=.elc) elisp_comp = $(top_srcdir)/auxdir/elisp-comp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ COM_DISPLAY = @COM_DISPLAY@ COM_LATEX = @COM_LATEX@ COM_PS2PDF = @COM_PS2PDF@ COM_PSUTILS = @COM_PSUTILS@ COM_TEXI = @COM_TEXI@ COM_acroread = @COM_acroread@ COM_acroread4 = @COM_acroread4@ COM_bzip = @COM_bzip@ COM_bzip2 = @COM_bzip2@ COM_convert = @COM_convert@ COM_distill = @COM_distill@ 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_netscape = @COM_netscape@ COM_pdf2ps = @COM_pdf2ps@ COM_ps2pdf = @COM_ps2pdf@ COM_psnup = @COM_psnup@ COM_psselect = @COM_psselect@ COM_tex = @COM_tex@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ ENCODING = @ENCODING@ EXEEXT = @EXEEXT@ EXTENSIONS_FALSE = @EXTENSIONS_FALSE@ EXTENSIONS_TRUE = @EXTENSIONS_TRUE@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ F77 = @F77@ FFLAGS = @FFLAGS@ FILE_LINK = @FILE_LINK@ GMSGFMT = @GMSGFMT@ GNU_PACKAGE = @GNU_PACKAGE@ GPERF = @GPERF@ GREP = @GREP@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBVERSION = @LIBVERSION@ LN_S = @LN_S@ LPR = @LPR@ LPR_QUEUE_OPTION = @LPR_QUEUE_OPTION@ LTALLOCA = @LTALLOCA@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ M4 = @M4@ MAKEINFO = @MAKEINFO@ MEDIUM = @MEDIUM@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ POSUB = @POSUB@ PSFONT_PATH = @PSFONT_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ U = @U@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ YACC = @YACC@ YFLAGS = @YFLAGS@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ acroread = @acroread@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ 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@ bzip = @bzip@ bzip2 = @bzip2@ convert = @convert@ datadir = @datadir@ datarootdir = @datarootdir@ distill = @distill@ docdir = @docdir@ dvidir = @dvidir@ dvips = @dvips@ exec_prefix = @exec_prefix@ file_prog = @file_prog@ ghostview = @ghostview@ 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@ netscape = @netscape@ oldincludedir = @oldincludedir@ pdf2ps = @pdf2ps@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ ps2pdf = @ps2pdf@ psdir = @psdir@ psnup = @psnup@ psselect = @psselect@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ tex = @tex@ dist_lisp_LISP = 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 \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu contrib/emacs/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu contrib/emacs/Makefile .PRECIOUS: 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__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ 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 mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: elc-stamp: $(LISP) @echo 'WARNING: Warnings can be ignored. :-)' @rm -f elc-temp && touch elc-temp if test "$(EMACS)" != no; then \ set x; \ list='$(LISP)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ set x "$$@" "$$d$$p"; shift; \ done; \ shift; \ EMACS="$(EMACS)" $(SHELL) $(elisp_comp) "$$@" || exit 1; \ else : ; fi @mv -f elc-temp $@ $(am__ELCFILES): elc-stamp @if test "$(EMACS)" != no && test ! -f $@; then \ trap 'rm -rf elc-lock elc-stamp' 1 2 13 15; \ if mkdir elc-lock 2>/dev/null; then \ rm -f elc-stamp; \ $(MAKE) $(AM_MAKEFLAGS) elc-stamp; \ rmdir elc-lock; \ else \ while test -d elc-lock; do sleep 1; done; \ test -f elc-stamp; exit $$?; \ fi; \ else : ; fi install-dist_lispLISP: $(dist_lisp_LISP) $(ELCFILES) @$(NORMAL_INSTALL) @if test "$(EMACS)" != no; then \ test -z "$(lispdir)" || $(mkdir_p) "$(DESTDIR)$(lispdir)"; \ list='$(dist_lisp_LISP)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(dist_lispLISP_INSTALL) '$$d$$p' '$(DESTDIR)$(lispdir)/$$f'"; \ $(dist_lispLISP_INSTALL) "$$d$$p" "$(DESTDIR)$(lispdir)/$$f"; \ if test -f $${p}c; then \ echo " $(dist_lispLISP_INSTALL) '$${p}c' '$(DESTDIR)$(lispdir)/$${f}c'"; \ $(dist_lispLISP_INSTALL) "$${p}c" "$(DESTDIR)$(lispdir)/$${f}c"; \ else : ; fi; \ done; \ else : ; fi uninstall-dist_lispLISP: @$(NORMAL_UNINSTALL) @if test "$(EMACS)" != no; then \ list='$(dist_lisp_LISP)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(lispdir)/$$f' '$(DESTDIR)$(lispdir)/$${f}c'"; \ rm -f "$(DESTDIR)$(lispdir)/$$f" "$(DESTDIR)$(lispdir)/$${f}c"; \ done; \ else : ; fi clean-lisp: -rm -f elc-stamp $(ELCFILES) tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LISP) $(ELCFILES) 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: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-lisp mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-dist_lispLISP install-exec-am: install-info: install-info-am install-man: 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 mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-dist_lispLISP uninstall-info-am .PHONY: all all-am check check-am clean clean-generic clean-libtool \ clean-lisp 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_lispLISP \ install-exec install-exec-am install-info install-info-am \ install-man install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am uninstall uninstall-am uninstall-dist_lispLISP \ uninstall-info-am # 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.14/contrib/emacs/a2ps-print.el0000644000175000017500000000754710735324663016724 0ustar mhattamhatta;;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.14/po/0000755000175000017500000000000010735337377012262 5ustar mhattamhattaa2ps-4.14/po/ja.gmo0000644000175000017500000005635510735337367013375 0ustar mhattamhattaÞ•ªlã¼ H I%S/yü©r¦A|[FØ!EA ‡ä(‚ p! # EB °ˆ O9! ‰! –! !·!É!Ý!$÷!",6" c",„"±"%Ï",õ"-"# P#&q##˜#!¼#Þ#þ#v$&•$ò¼$¯&Î&Þ&þ& ' '' $'0' @' L'X'%w''­'À'Ó'ã'ô'ù'( ( ( (-( ?(M(#c(‡((¡(#©( Í(—Û)&s*š* ª*·*+Ì*-ø*&+;+¯K+û+ ,!,A,a,,œ,´,Ñ,ã,"ù, -=-'\-„-˜-³-Ò-#Û-ÿ-*.F.^./t.$¤.$É.î. /2/R/r/ ’/  / «/ ¹/!Ã/å/ý/0,0>0D0d0‚0Ÿ0'¾0æ0ø01 "1C1_1y1Œ11®1Æ1Ë1Ò1\ñ1N2l2†2•2›2µ2Ì2 ß2ê23363O3k3ˆ3š3¬3Æ3Ü3û34(4 -4[94 •5ÖŸ5*v7h¡9™ <:¤=Oß>6/A:fC]¡DØÿDäØE ½Ft^G!ÓGõGWHèlHOUI¥I ´I ÀI ÊIÖI!îI+J!;X}Jk+ŠG•"†g#H\Aˆ¡0=ªs5št({8 'dn›|7i!]¥ƒ)„Tx  .£r ~KDv6[Vj¢$29<WŒzaFMBC:p’‚—,Il‡ e©UL3*-…§`/SofcN h%@?™q‘b“ž€ 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 -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 = %d sides per sheet = %s page device definitions = medium = %s%s, %s page layout = %d x %d, %s borders = %s file alignment = %s interior margin = %d number lines = %s format = %s tabulation size = %d 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 = %d file command = %s library path = %A %B %d, %Y%b %d, %y%d characters per line%d lines per page%s, delegated to %s%s: illegal option -- %c %s: invalid argument for %s%c escape%s: invalid option -- %c %s: invalid separator `%s%c' for `%s' escape%s: missing `%c' for %s%c escape%s: option `%c%s' doesn't allow an argument %s: option `%s' is ambiguous %s: option `%s' requires an argument %s: option `--%s' doesn't allow an argument %s: option `-W %s' doesn't allow an argument %s: option `-W %s' is ambiguous %s: option requires an argument -- %c %s: too long argument for %s escape%s: unknown `%s' escape `%c' (%d)%s: unrecognized option `%c%s' %s: unrecognized option `--%s' After having performed the task, exit successfully. Detailed lists may provide additional help on specific features. Applications configured for delegationBy 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 PrinterDelegation `%s', from %s to %s Global: Headers: Headings: Input: Internals: Known EncodingsKnown FontsKnown MediaKnown Outputs (Printers, etc.)Known PostScript Printer DescriptionsKnown ProloguesKnown Style SheetsKnown User OptionsKnown VariablesMemory exhaustedNameOutput: Page %dPage %d/%cPage %d/%dPostScript: Pretty-printing: Printed by %sPrinted by %s from %sReport bugs to . Sheets: Table of ContentTasks: 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.). This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Try `%s --help' for more information. Unknown PrinterUnknown UserUnknown system errorValid arguments are floats f such that: %s Valid arguments are integers n such that: %s Valid arguments are: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. Written by %s. [%d lines wrapped] [%s (%s): %d pages on %d sheets] [%s (%s): %d pages on 1 sheet] [%s (%s): 1 page on 1 sheet] [%s (%s): failed. Ignored] [%s (binary): ignored] [%s (unprintable): ignored] [1 line wrapped] [No output produced] [Total: %d pages on %d sheets] %s [Total: %d 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'ambiguous argument %s for `%s'any typeautomatic style selection cancelledcannot close directory `%s'cannot compile regular expression `%s': %scannot create file `%s'cannot find file `%s'cannot find style sheet `%s': using plain stylecannot get current working directorycannot get informations on file `%s'cannot open a pipe on `%s'cannot open file `%s'cannot process `%s' which requires a2ps version %scannot rename file `%s' as `%s'caret (i.e., `^C', `M-^C' etc.)columns firstdimensionseach %d lineseach lineemacs (i.e., `C-c', `M-C-c' etc.)end of line inside a %send-of-line in string constantfont %f too bigfont size is %gptheavyhexadecimal (i.e., `\x0a' etc.)incomplete knowledge of facesinvalid argument %s for `%s'invalid argument `%s' for `%s'invalid definition for printer `%s': %sinvalid face `%s'invalid interval `%s'invalid option `%s'invalid variable identifier `%s'invalid version number `%s'missing argument for `%s'never make backupsnono command for the `%s' (%s%s)no key defined for `%s'nonenormalnumbered backups of every filenumbered backups of files already numbered, and simple of othersobsolete `%s' entry. Ignoredoctal (i.e., `\001' etc.)output commandplainquestion-mark (i.e., `?')received signal %d: %srestored file `%s'rows firstsaved into the file `%s'selected automaticallysent to the default printersent to the printer `%s'sent to the standard outputsimple backups of every filespace (i.e., ` ')too many includesunexpected character `%c'unknown encoding `%s'unknown encoding `%s', ignoredunknown medium `%s'unknown user option `%s'userwrite errorProject-Id-Version: a2ps 4.13b Report-Msgid-Bugs-To: POT-Creation-Date: 2007-12-29 11:28+0800 PO-Revision-Date: 2003-03-23 18:22+0900 Last-Translator: Masayuki Hatta Language-Team: Japanese MIME-Version: 1.0 Content-Type: text/plain; charset=EUC-JP Content-Transfer-Encoding: 8bit ¤Ê¤·. --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') -D, --setpagedevice=K[:V] ¥Ú¡¼¥¸¥Ç¥Ð¥¤¥¹ÄêµÁ¤ò½ÐÎϤØÄ̤¹ -S, --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¥·¡¼¥È¤¢¤¿¤ê¤Î¥³¥é¥à¿ô(¿ôÃÍ > 0) --rows=¿ôÃÍ 1¥·¡¼¥È¤¢¤¿¤ê¤ÎÎó¿ô(¿ôÃÍ > 0) --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[=¥Æ¥­¥¹¥È] Ìܼ¡¤òºîÀ®¤¹¤ë -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 °õºþÉô¿ô = %d ¥µ¥¤¥É¡¿¥·¡¼¥È = %s ¥Ú¡¼¥¸¥Ç¥Ð¥¤¥¹ÄêµÁ = ¥á¥Ç¥£¥¢ = %s%s, %s ¥Ú¡¼¥¸¥ì¥¤¥¢¥¦¥È = %d x %d, %s ÏÈ = %s ¥Õ¥¡¥¤¥ë¶èÀÚ¤ê = %s ÆâÉô¥Þ¡¼¥¸¥ó = %d ¹ÔÈÖ¹æ = %s ·Á¼° = %s ¥¿¥Ö¥µ¥¤¥º = %d °õºþÉԲĻþ¤Î·Á¼° = %s ¥Ú¡¼¥¸¥×¥ì¥Õ¥£¡¼¥É = %s statusdictÄêµÁ = ¥¹¥¿¥¤¥ë¥·¡¼¥È = %s Áõ¾þ¥ì¥Ù¥ë = %s ¥³¥á¥ó¥È¾Êά¥ì¥Ù¥ë = %d ¹Ô¤ÎÀÚ¤êµÍ¤á = %s ³ä¤ê¹þ¤ß = %s ²þ¹Ô¥³¡¼¥É = %s ɸ½à¥¨¥ó¥³¡¼¥É = %s ʸ¾ÏÂê̾ = %s ɸ½à¥×¥í¥í¡¼¥° = %s ¶¯À©°õºþ = %s ³°Éô¥Õ¥£¥ë¥¿¥ê¥ó¥° = %s ¥á¥Ã¥»¡¼¥¸¾ÜºÙ¥ì¥Ù¥ë= %d file¥³¥Þ¥ó¥É¥Ñ¥¹ = %s ¥é¥¤¥Ö¥é¥ê¥Ñ¥¹ = %Yǯ %b%eÆü %A%yǯ %b%eÆü%dʸ»ú/¹Ô%d¹Ô/¥Ú¡¼¥¸%s, %s¤Ø¥Õ¥£¥ë¥¿¤·¤Þ¤¹ %s: ´Ö°ã¤Ã¤¿¥ª¥×¥·¥ç¥ó¤Ç¤¹ -- %c %s: ¥¨¥¹¥±¡¼¥× %s%c¤ËÂФ·¤ÆÉÔŬÀڤʰú¿ô¤Ç¤¹%s: ÉÔŬÀڤʥª¥×¥·¥ç¥ó¤Ç¤¹ -- %c %s: `%s%c'¤Ï¥¨¥¹¥±¡¼¥× %s ¤ËÂФ·¤ÆÉÔŬÀڤǤ¹%s: `%c'¤¬¥¨¥¹¥±¡¼¥× %s%c¤ËÂФ·¤ÆÉÔ­¤·¤Æ¤¤¤Þ¤¹%s: ¥ª¥×¥·¥ç¥ó`%c%s'¤Ï°ú¿ô¤ò¼è¤ê¤Þ¤»¤ó %s: ¥ª¥×¥·¥ç¥ó`%s'¤ÏÛ£Ëæ¤Ç¤¹ %s: ¥ª¥×¥·¥ç¥ó`%s'¤Ë¤Ï°ú¿ô¤¬É¬ÍפǤ¹ %s: ¥ª¥×¥·¥ç¥ó`--%s'¤Ï°ú¿ô¤ò¼è¤ê¤Þ¤»¤ó %s: ¥ª¥×¥·¥ç¥ó`-W %s'¤Ï°ú¿ô¤ò¼è¤ê¤Þ¤»¤ó %s: ¥ª¥×¥·¥ç¥ó`-W %s'¤¬Û£Ëæ¤Ç¤¹ %s: ¥ª¥×¥·¥ç¥ó¤Ë¤Ï°ú¿ô¤¬É¬ÍפǤ¹ -- %c %s: ¥¨¥¹¥±¡¼¥×%s¤ËÂФ¹¤ë°ú¿ô¤¬Ä¹²á¤®¤Þ¤¹%s: ÉÔÌÀ¤Ê `%s'¥¨¥¹¥±¡¼¥× `%c' (%d)%s: ÉÔÌÀ¤Ê¥ª¥×¥·¥ç¥ó¤Ç¤¹ `%c%s' %s: ÉÔÌÀ¤Ê¥ª¥×¥·¥ç¥ó¤Ç¤¹ `--%s' ¥¿¥¹¥¯½èÍý½ªÎ»¸å¤Ë, Àµ¾ï¤Ë½ªÎ»¤·¤Þ¤¹. ¾ÜºÙ¤Ê¥ê¥¹¥È¤Ë¤è¤Ã¤Æ »ØÄꤷ¤¿µ¡Ç½¤Ë´Ø¤¹¤ëÄɲåإë¥×¤¬Ä󶡤µ¤ì¤Þ¤¹. ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï³°Éô¥Õ¥£¥ë¥¿¤ÎÀßÄ꤬¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¥Ç¥Õ¥©¥ë¥È¤Ç, 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¤Ø Á´ÈÌ: ¥Ø¥Ã¥À: ¥Ø¥Ã¥À: ÆþÎÏ: ÆâÉô¾ðÊó: ÍøÍѲÄǽ¤Ê¥¨¥ó¥³¡¼¥ÉÍøÍѲÄǽ¤Ê¥Õ¥©¥ó¥ÈÍøÍѲÄǽ¤Ê¥á¥Ç¥£¥¢ÍøÍѲÄǽ¤Ê½ÐÎÏÀè(¥×¥ê¥ó¥¿Åù)ÍøÍѲÄǽ¤ÊPostScript¥×¥ê¥ó¥¿¤Îµ­½ÒÉÔÌÀ¤Ê¥×¥í¥í¡¼¥°ÍøÍѲÄǽ¤Ê¥¹¥¿¥¤¥ë¥·¡¼¥ÈÍøÍѲÄǽ¤Ê¥æ¡¼¥¶¥ª¥×¥·¥ç¥óÍøÍѲÄǽ¤ÊÊÑ¿ô¥á¥â¥ê¤¬Â­¤ê¤Þ¤»¤ó̾Á°½ÐÎÏ: %d¥Ú¡¼¥¸%d/%c ¥Ú¡¼¥¸%d/%d¥Ú¡¼¥¸¥Ý¥¹¥È¥¹¥¯¥ê¥×¥È: °õºþÁõ¾þ: ¥æ¡¼¥¶Ì¾: %s¥æ¡¼¥¶Ì¾:%s ¾ì½ê:%s¥Ð¥°¤òȯ¸«¤·¤¿¤é °¸¤ËÊó¹ð¤·¤Æ²¼¤µ¤¤. ¥·¡¼¥È: ¥³¥ó¥Æ¥ó¥È¥Æ¡¼¥Ö¥ë¥¿¥¹¥¯: TEXT¤Ë¤ÏÆÃ¼ì¤Ê¥¨¥¹¥±¡¼¥×¤¬ÍøÍѤǤ­¤Þ¤¹¡£ ¥ª¥×¥·¥ç¥ó -1.. -9 ¤Ï, »öÁ°¤ËÀßÄꤵ¤ì¤¿80·å¤Î¥ì¥¤¥¢¥¦¥È¤òÀßÄꤹ¤ë ¤¤¤¯¤Ä¤«¤Î´ðËܥѥé¥á¡¼¥¿¤Ë±Æ¶Á¤·¤Þ¤¹¡£ ¤½¤Î¤¿¤á¡¢°Ê²¼¤Î¤è¤¦¤Ê¤³¤È¤¬µ¯¤³¤ê¤Þ¤¹: `-R -f40 -2' ¤Ï`-2'¤ÈƱÅù ¤Ç¤¹. ¥ì¥¤¥¢¥¦¥È¤ò²Ã¹©¤¹¤ë¤Î¤Ë, `-2Rf40'¤òÍѤ¤¤ë¤«¡¢¤â¤·¤¯¤Ï¡¢´ðËÜ ¥ª¥×¥·¥ç¥ó¤òÁȤ߹ç¤ï¤»¤Þ¤¹ (`--columns', `--font-size' Åù)¡£ ¤³¤Î¥×¥í¥°¥é¥à¤ÏÊØÍø¤Ë¤Ê¤ë¤³¤È¤ò´õ˾¤·¤Æ¤¤¤Þ¤¹¤¬´°Á´¤Ë̵ÊݾڤǤ¹¡£ ±ÄÍøÌÜۤ䤢¤ëÆÃÄê¤ÎÌÜŪ¤Î¤¿¤á¤ÎŬÀµ¤Î¤â¤Î¤Ç¤â¤¢¤ê¤Þ¤»¤ó¡£ ¾Ü¤·¤¯¤Ï`%s --help'¤ò¼Â¹Ô¤·¤Æ²¼¤µ¤¤. ÉÔÌÀ¤Ê¥×¥ê¥ó¥¿ÉÔÌÀ¤Ê¥æ¡¼¥¶¡¼¤Ç¤¹ÉÔÌÀ¤Ê¥·¥¹¥Æ¥à¥¨¥é¡¼¤Ç¤¹¼Â¿ô¤Î»ØÄ꤬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹:%s À°¿ô¤Î»ØÄ꤬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹:%s ¤ª¤«¤·¤Ê°ú¿ô¤Ç¤¹:²¾ÁÛ¥Ú¡¼¥¸: ³°Éô¥Õ¥£¥ë¥¿¤òÍ­¸ú¤Ë¤·¤Æ¤¤¤ë¾ì¹ç, a2ps ¤ÏÀ¸¾ðÊó¤È¤·¤Æ°õºþ¤¹¤Ù¤­¤Ç¤Ï¤Ê¤¤ ¥Õ¥¡¥¤¥ë¤Î½èÍý¤ËÂФ·¤Æ, Ê̤Υ¢¥×¥ê¥±¡¼¥·¥ç¥ó¤òÍøÍѤ·¤Þ¤¹¡£ Îã: HTML, Postscript, PDFÅù. ºîÀ®¼Ô: %s [%d¹Ô ÀÞ¤ê¾ö¤ß] [%s (%s): %d¥Ú¡¼¥¸, %d¥·¡¼¥È] [%s (%s): %d¥Ú¡¼¥¸, 1¥·¡¼¥È] [%s (%s): 1¥Ú¡¼¥¸, 1¥·¡¼¥È] [%s (%s): ¼ºÇÔ¤·¤Þ¤·¤¿. ̵¸ú¤Ë¤Ê¤ê¤Þ¤¹] [%s (¥Ð¥¤¥Ê¥ê): ̵¸ú¤Ç¤¹] [%s (°õºþÉÔ²Ä): ̵¸ú¤Ç¤¹] [1¹Ô ÀÞ¤ê¾ö¤ß] [½ÐÎϤϤ¢¤ê¤Þ¤»¤ó] [¹ç·×: %d¥Ú¡¼¥¸, %d¥·¡¼¥È] %s [¹ç·×: %d¥Ú¡¼¥¸, 1¥·¡¼¥È] %s [¹ç·×: 1¥Ú¡¼¥¸, 1¥·¡¼¥È] %s `%s'¤Ï¥Ð¥¤¥Ê¥ê¥Õ¥¡¥¤¥ë¤Ç¤¹, °õºþ¤ÏÃæÃǤ·¤Þ¤¹`%s'¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¹`%s' ¤Ï `%s' ¤È°ìÃפ·¤Æ¤¤¤Þ¤»¤óÛ£Ëæ¤Ê°ú¿ô`%s'¤¬`%s'¤ËÂФ·¤Æ»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹Á´¤Æ¤Î¥¿¥¤¥×¼«Æ°¥¹¥¿¥¤¥ëÁªÂò¤¬¥­¥ã¥ó¥»¥ë¤µ¤ì¤Þ¤·¤¿¥Ç¥£¥ì¥¯¥È¥ê`%s'¤òÊĤ¸¤é¤ì¤Þ¤»¤óÀµµ¬É½¸½`%s'¤òËÝÌõ¤Ç¤­¤Þ¤»¤ó: %s¥Õ¥¡¥¤¥ë`%s'¤òºîÀ®¤Ç¤­¤Þ¤»¤ó¥Õ¥¡¥¤¥ë`%s'¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó¥¹¥¿¥¤¥ë¥·¡¼¥È`%s'¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: ¥×¥ì¡¼¥ó¥¹¥¿¥¤¥ë¤ò»ÈÍѤ·¤Þ¤¹¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤¬ÆÀ¤é¤ì¤Þ¤»¤ó¥Õ¥¡¥¤¥ë`%s'¾å¤Î¾ðÊó¤ò¼èÆÀ¤Ç¤­¤Þ¤»¤ó`%s'¤Î¥Ñ¥¤¥×¤ò³«¤±¤Þ¤»¤ó¥Õ¥¡¥¤¥ë`%s'¤ò³«¤±¤Þ¤»¤ó`%s'¤ò½èÍý¤¹¤ë¤Ë¤Ï a2ps¥Ð¡¼¥¸¥ç¥ó %s¤¬É¬ÍפǤ¹¥Õ¥¡¥¤¥ë`%s'¤ò`%s'¤ØÌ¾Á°Êѹ¹¤Ç¤­¤Þ¤»¤ócaret (Îã, `^C', `M-^C'Åù)·åÍ¥Àè¥Ç¥£¥á¥ó¥¸¥ç¥ó³Æ%d¹Ô³Æ¹Ôemacs (Îã, `C-c', `M-C-c'Åù)%s ʸ»úÎóÃæ¤Ë¹ÔËö¤¬¤­¤Æ¤¤¤Þ¤¹Ê¸»úÎóÃæ¤Ë¹ÔËö¤¬¤­¤Æ¤¤¤Þ¤¹¥Õ¥©¥ó¥È %f ¤ÏÂ礭¤¹¤®¤Þ¤¹%gpt¥Õ¥©¥ó¥È¥µ¥¤¥º¥Ø¥Ó¡¼hexadecimal (Îã, `\x0a'Åù)¥Õ¥§¡¼¥¹¤Ë´Ø¤·¤ÆÉÔ´°Á´¤Ê¾ðÊó¤Ç¤¹¤ª¤«¤·¤Ê°ú¿ô`%s'¤¬`%s'¤Ë»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹¤ª¤«¤·¤Ê°ú¿ô`%s'¤¬`%s'¤Ë»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹¤ª¤«¤·¤Ê¥×¥ê¥ó¥¿¤ÎÄêµÁ¤Ç¤¹ `%s': %s´Ö°ã¤Ã¤¿¥Õ¥§¡¼¥¹¤Ç¤¹: `%s'¤ª¤«¤·¤Ê¥Þ¥¯¥í¾ðÊó¤Ç¤¹ `%s'´Ö°ã¤Ã¤¿¥ª¥×¥·¥ç¥ó¤Ç¤¹: `%s'¤ª¤«¤·¤ÊÊÑ¿ô¾ÚÌÀ¤Ç¤¹ `%s'¤ª¤«¤·¤Ê¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤Ç¤¹ `%s'`%s'¤ËÂФ¹¤ë°ú¿ô¤¬Â­¤ê¤Þ¤»¤ó¥Ð¥Ã¥¯¥¢¥Ã¥×¤òºîÀ®¤·¤Ê¤¤Ìµ¸ú`%s'¥³¥Þ¥ó¥É¤Ï¤¢¤ê¤Þ¤»¤ó (%s%s)`%s'¤ËÂФ¹¤ë¥­¡¼¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¤Ê¤·ÄÌ¾ï³Æ¥Õ¥¡¥¤¥ë¤Î¿ô»ú¤Ë¤è¤ë¥Ð¥Ã¥¯¥¢¥Ã¥×¥Õ¥¡¥¤¥ë¤Î¥Ð¥Ã¥¯¥¢¥Ã¥×ÈÖ¹æ¤Ï¤¹¤Ç¤ËÈֹ椬¸ºß¤·¤Æ¤ª¤ê¡¢ ¾¤Îñ½ã¥Ð¥Ã¥¯¥¢¥Ã¥×¤â¤¢¤ê¤Þ¤¹µì¼°¤Î`%s'¥¨¥ó¥È¥ê¤Ç¤¹. ̵¸ú¤Ç¤¹octal (Îã, `\001'Åù)½ÐÎÏ¥³¥Þ¥ó¥É¥×¥ì¡¼¥óquestion-mark (Îã, `?')¥·¥°¥Ê¥ë%d¤ò¼õ¤±¼è¤ê¤Þ¤·¤¿: %s¥Õ¥¡¥¤¥ë`%s'¤ò½¤Éü¤·¤Þ¤¹¹ÔÍ¥Àè¥Õ¥¡¥¤¥ë`%s'¤ØÊݸ¤·¤Þ¤¹¼«Æ°ÁªÂòɸ½à¥×¥ê¥ó¥¿¤ØÅ¾Á÷¤·¤Þ¤¹¥×¥ê¥ó¥¿`%s'¤ØÅ¾Á÷¤·¤Þ¤¹É¸½à½ÐÎϤØÅ¾Á÷¤·¤Þ¤¹³Æ¥Õ¥¡¥¤¥ë¤Îñ½ã¥Ð¥Ã¥¯¥¢¥Ã¥×¶õÇò (Îã, ` ')include¤¬Â¿¤¹¤®¤Þ¤¹Í½´ü¤·¤Ê¤¤Ê¸»ú`%c'¤Ç¤¹¡£ÉÔÌÀ¤Ê¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤Ç¤¹: `%s'ÉÔÌÀ¤Ê¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤Ç¤¹: `%s', ̵¸ú¤Ë¤Ê¤ê¤Þ¤¹ÉÔÌÀ¤Ê¥á¥Ç¥£¥¢¤Ç¤¹ `%s'ÉÔÌÀ¤Ê¥æ¡¼¥¶¥ª¥×¥·¥ç¥ó`%s'¤Ç¤¹¥æ¡¼¥¶¡¼½ñ¤­¹þ¤ß¥¨¥é¡¼a2ps-4.14/po/insert-header.sin0000644000175000017500000000124010735337263015516 0ustar mhattamhatta# Sed script that inserts the file called HEADER before the header entry. # # 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.14/po/en@quot.header0000644000175000017500000000226310735337263015044 0ustar mhattamhatta# 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 # http://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.14/po/no.gmo0000644000175000017500000003000410735337367013376 0ustar mhattamhattaÞ•‡TµŒ` !a Eƒ  É äj ‚OpÒ!CeE„°Ê {…œ®Â$Ü, H,i–%´,Ú- 5&V#}!¡Ãã&*IYy ‚ Œ— Ÿ «·%Öü 2BSXa i t Œ ž¬ÂË&Ü  +5-a¤!´Öö1If"| ŸÀ'ß6#?c/—$Ç$ì,2Bu • £ ® ¼!Æè)/O'n– ¬Í éó  #(/\N«Éãòø2 EPi€œµÑî5IN6R>‰]ÈØ&åÿ‚å ~h!!ç! "W'"è"h#q#ƒ#–#ª#$Ä#é#-$$1$+V$!‚$$¤$-É$,÷$%$%%J%*p% ›%¼%Ö%(ð%&9&J&j& s&}&Œ&”& ¨&/¶&+æ&'"'7'L']'q'v'' ‡' ’' 'ª'¹'Ê'â'è'&ü'#( 2(@((R(({(¤(»(Î(í( )')E)!])) š)»)Û)%ù)*2* K*V*"t*—*)³*8Ý*++ B+c+8|+&µ+Ü+ ë+÷+ ,!,6,S,i,…, ,®,"Í,ð,"-3-O-d-„-œ- -¥-$¬-„Ñ-6V.. ¨.³.¹.Ì.à.õ. //'/8/R/k/ / ¢/®/!Æ/è/ú/09\<zoi" X RtHPLF…#‡x:qO}hrvGc.DN2Vm+[{aknf;ZE&^bCK!Qu|,017„ W%j'@$TsBS8Ie_ld† )/>5UƒY6Mw4 ‚*py?€J~](`- 3g=A -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 = %d sides per sheet = %s page device definitions = medium = %s%s, %s page layout = %d x %d, %s borders = %s file alignment = %s interior margin = %d number lines = %s format = %s tabulation size = %d 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 %b %d, %y%d characters per line%d lines per page%s, delegated to %s%s: illegal option -- %c %s: invalid argument for %s%c escape%s: invalid option -- %c %s: invalid separator `%s%c' for `%s' escape%s: missing `%c' for %s%c escape%s: option `%c%s' doesn't allow an argument %s: option `%s' is ambiguous %s: option `%s' requires an argument %s: option `--%s' doesn't allow an argument %s: option `-W %s' doesn't allow an argument %s: option `-W %s' is ambiguous %s: option requires an argument -- %c %s: too long argument for %s escape%s: unknown `%s' escape `%c' (%d)%s: unrecognized option `%c%s' %s: unrecognized option `--%s' Applications configured for delegationConfiguration status of %s %s Default PrinterDelegation `%s', from %s to %s Global: Headers: Headings: Input: Internals: Known FontsKnown Outputs (Printers, etc.)Known PostScript Printer DescriptionsKnown ProloguesKnown Style SheetsKnown User OptionsKnown VariablesMemory exhaustedNameOutput: Page %dPage %d/%cPage %d/%dPostScript: Pretty-printing: Printed by %sPrinted by %s from %sSheets: Table of ContentTry `%s --help' for more information. Unknown PrinterUnknown UserUnknown system errorValid arguments are floats f such that: %s Valid arguments are integers n such that: %s Valid arguments are:Virtual pages: [%s (%s): %d pages on %d sheets] [%s (%s): %d pages on 1 sheet] [%s (%s): 1 page on 1 sheet] [%s (%s): failed. Ignored] [%s (binary): ignored] [%s (unprintable): ignored] [No output produced] [Total: %d pages on %d sheets] %s [Total: %d 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'any typeautomatic style selection cancelledcannot close directory `%s'cannot create file `%s'cannot find style sheet `%s': using plain stylecannot get current working directorycannot get informations on file `%s'cannot open a pipe on `%s'cannot open file `%s'cannot process `%s' which requires a2ps version %scannot rename file `%s' as `%s'columns firstdimensionseach %d lineseach lineemacs (i.e., `C-c', `M-C-c' etc.)end-of-line in string constantfont %f too bigfont size is %gptheavyhexadecimal (i.e., `\x0a' etc.)invalid argument `%s' for `%s'invalid definition for printer `%s': %sinvalid interval `%s'invalid variable identifier `%s'invalid version number `%s'landscapemissing argument for `%s'never make backupsnononenormalnumbered backups of every filenumbered backups of files already numbered, and simple of othersobsolete `%s' entry. Ignoredoctal (i.e., `\001' etc.)output commandplainportraitquestion-mark (i.e., `?')received signal %d: %srestored file `%s'rows firstsaved into the file `%s'selected automaticallysent to the default printersent to the printer `%s'sent to the standard outputsimple backups of every filespace (i.e., ` ')unknown encoding `%s'unknown encoding `%s', ignoredunknown medium `%s'useryesProject-Id-Version: a2ps 4.12 Report-Msgid-Bugs-To: POT-Creation-Date: 2007-12-29 11:28+0800 PO-Revision-Date: 1999-02-11 17:50+01:00 Last-Translator: Jon Ross Language-Team: Norwegian MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8-bit -q, --quiet, --silent holde kjeft -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 = %d sider per ark = %s "page device" definisjoner = medium = %s%s, %s layout per side = %d x %d %s rammer = %s fil alignment = %s marg på innside = %d nummerer linjer = %s formater = %s tabulatorstørrelse = %d 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 %b %d %y%d tegn per linje%d linjer per side%s, delegert til %s%s: ulovlig opsjon -- %c %s: ulovlig argument for %s%c escape%s: ugyldig opsjon -- %c %s: ulovlig skilletegn `%s%c' for `%s' escape%s: det mangler `%c' for %s%c escape%s: opsjonen `%c%s' tillater ikke argument %s: opsjonen `%s' er ikke ntydig %s: opsjonen `%s' må ha et argument %s: opsjonen `--%s' tillater ikke argumenter %s: opsjonen `-W %s' tillater ikke argument %s: opsjonen `-W %s' er ikke entydig %s: opsjonen må ha et argument -- %c %s: er et for langt argument til %s escape%s: ukjent `%s' escape `%c' (%d)%s: ukjent opsjon `%c%s' %s: ukjent opsjon `--%s' Applikasjoner konfigurert for delegeringKonfigurasjonsstatus for %s %s Standard skriverDelegering `%s', fra %s til %s Global: Headere: Overskrifter: Input: Internde detaljer: Kjente fonterKjente destinasjoner for utdate (skrivere osb.)Kjente PostScript Printerbeskrivelser (PPD)Kjente prologerKjente maler (språk)Kjent brukeropsjonerKjente VariablerAll memory oppbruktNavnUtdata: Side %dSide %d/%cSide %d/%dPostScript: Pen utskrift: Skrevet ut av %sSkrevet ut av %s fra %sArk: InnholdsfortegnelseBruk `%s --help' for mer informasjon. Ukjent skriverUkjent brukerUkjent systemfeilLovlige argumenter er flyttall f så: %s Lovlige argumenter er heltall n så : %s Lovlige argumenter er:Virituelle sider: [%s (%s): %d sider på %d ark] [%s (%s): %d sider på 1 ark] [%s (%s): 1 side på 1 ark] [%s (%s): feilet. Ignorert] [%s (binær): ignorert] [%s (ikke utskrivbar): ignorert] [Ikke noe data produsert] [Totalt: %d sider på %d ark] %s [Totalt: %d 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'alle typerautomatisk mal-valg kanselertklarer ikke å lukke katalogen `%s'kan ikke opprete filen `%s'finner ikke mal `%s': bruker standard malklarer 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 %sklarer ikke å omdøpe fil `%s' til `%s'kolonner førstdimensjonerhver av %d linjerhver linjeemacs (f.eks `C-c', `M-C-c' etc.)end-of-line i strengkonstantfonten %f er for storfontstørrelse er %g punkterkraftighexadesimalt (f.eks `\x0a' etc.)ulovlig argument `%s' for `%s'ugyldig printerdefinisjon `%s': %sulovlig heltallsintervall: `%s'ulovlig variabel identifkator `%s'ulovlig versjonsnummer `%s'liggende (landscape)det mangler argument efter `%s'aldri ta sikkerhetskopineiikkenormalnummerert sikkerhetskopi av hver filnummerert sikkerhetskopi av filer som allerede er nummerert, og enkel sikkerhetskopi av de øvrige fileneIgnorerer innslaget `%s' fordi det er foreldet/ugyldigoktalt (f.eks '\001' etc.)utkommandoenkelstående (portrait)spørsmålstegn (`?')mottok signal %d: %sreddet filen `%s'rader førstlagret til fil `%s'valgt automatisksent til standard skriversendt til skriveren `%s'sendt til standard utenkel sikkerhetskopi av hver filblank (` ')ukjent tegnkoding: `%s'ukjent tegnkoding: `%s', ignorertukjent media `%s'brukerjaa2ps-4.14/po/cs.gmo0000644000175000017500000005317510735337365013403 0ustar mhattamhattaÞ•¤<ß\ Ø Ù %ã / ü9r6A©Fë!2ET šä;‚ p£!6EU°›OL œ ©³ÊÜð$ /,I v,—Ä%â, -5 c &„ #« !Ï ñ !v1!&¨!Ï!1î! "0"P" Y" c"n" v"‚" ’" ž"ª"%É"ï"ÿ"#%#5#F#K#T# \# g# r## ‘#Ÿ##µ#Ù#â#ó##û#—$&·$Þ$ î$û$+%-<%j%%¯%?&!O&q&‘&¯&Ì&ä&'"' :'[''z'¢'¶'Ñ'#Ú'þ'*(E(](/s($£($È(í()2)Q)q) ‘) Ÿ) ª) ¸)!Â)ä)**%*+*K*i*†*'¥*Í*ß*õ* +*+ F+P+j+}+€+Ÿ+¤+«+\Ê+',E,_,n,t,},—,®, Á,Ì,å,ü,-1-M-j-|-’-±-Å-Þ- ã-ï-<ó- 0/Ã;/ÿ14Ä–7V[9r²:%=u¶>8,?e@ÒtAœGB'äB$ Cu1C8§CsàD TE `EjE~E”E°E*ÌE÷E2F#FF1jF#œF$ÀF1åF2G&JG%qG-—G1ÅG÷GHV1H ˆH©H1ÅH÷H I&I —'/.o{f  Z…"8Bž%g2v iW†macN6Dœ›q1€nE< P` [e¤9Š„K”}R‡dƒw,5kj“LSQ¢Oˆ$!47Œ’‘‚‹sy)#ŸHrx-l~ 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 -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 -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 = %d sides per sheet = %s page device definitions = medium = %s%s, %s page layout = %d x %d, %s borders = %s file alignment = %s interior margin = %d number lines = %s format = %s tabulation size = %d 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 = %d file command = %s library path = %A %B %d, %Y%b %d, %y%d characters per line%d lines per page%s, delegated to %s%s: illegal option -- %c %s: invalid argument for %s%c escape%s: invalid option -- %c %s: invalid separator `%s%c' for `%s' escape%s: missing `%c' for %s%c escape%s: option `%c%s' doesn't allow an argument %s: option `%s' is ambiguous %s: option `%s' requires an argument %s: option `--%s' doesn't allow an argument %s: option `-W %s' doesn't allow an argument %s: option `-W %s' is ambiguous %s: option requires an argument -- %c %s: too long argument for %s escape%s: unknown `%s' escape `%c' (%d)%s: unrecognized option `%c%s' %s: unrecognized option `--%s' After having performed the task, exit successfully. Detailed lists may provide additional help on specific features. Applications configured for delegationConfiguration status of %s %s Copyright (C) 1999 Free Software Foundation, Inc.Default PrinterDelegation `%s', from %s to %s Global: Headers: Headings: Input: Internals: Known EncodingsKnown FontsKnown MediaKnown Outputs (Printers, etc.)Known PostScript Printer DescriptionsKnown ProloguesKnown Style SheetsKnown User OptionsKnown VariablesMemory exhaustedNameOutput: Page %dPage %d/%cPage %d/%dPostScript: Pretty-printing: Printed by %sPrinted by %s from %sReport bugs to . Sheets: Table of ContentTasks: The TEXTs may use special escapes. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Try `%s --help' for more information. Unknown PrinterUnknown UserUnknown system errorValid arguments are floats f such that: %s Valid arguments are integers n such that: %s Valid arguments are: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. Written by %s. [%s (%s): %d pages on %d sheets] [%s (%s): %d pages on 1 sheet] [%s (%s): 1 page on 1 sheet] [%s (%s): failed. Ignored] [%s (binary): ignored] [%s (unprintable): ignored] [No output produced] [Total: %d pages on %d sheets] %s [Total: %d 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'any typeautomatic style selection cancelledcannot close directory `%s'cannot compile regular expression `%s': %scannot create file `%s'cannot find file `%s'cannot find style sheet `%s': using plain stylecannot get current working directorycannot get informations on file `%s'cannot open a pipe on `%s'cannot open file `%s'cannot process `%s' which requires a2ps version %scannot rename file `%s' as `%s'caret (i.e., `^C', `M-^C' etc.)columns firstdimensionseach %d lineseach lineemacs (i.e., `C-c', `M-C-c' etc.)end-of-line in string constantfont %f too bigfont size is %gptheavyhexadecimal (i.e., `\x0a' etc.)incomplete knowledge of facesinvalid argument %s for `%s'invalid argument `%s' for `%s'invalid definition for printer `%s': %sinvalid face `%s'invalid interval `%s'invalid option `%s'invalid variable identifier `%s'invalid version number `%s'landscapemissing argument for `%s'never make backupsnono command for the `%s' (%s%s)nonenormalnumbered backups of every filenumbered backups of files already numbered, and simple of othersobsolete `%s' entry. Ignoredoctal (i.e., `\001' etc.)output commandplainportraitquestion-mark (i.e., `?')received signal %d: %srestored file `%s'rows firstsaved into the file `%s'selected automaticallysent to the default printersent to the printer `%s'sent to the standard outputsimple backups of every filespace (i.e., ` ')unknown encoding `%s'unknown encoding `%s', ignoredunknown medium `%s'unknown user option `%s'userwrite erroryesProject-Id-Version: a2ps 4.12 Report-Msgid-Bugs-To: POT-Creation-Date: 2007-12-29 11:28+0800 PO-Revision-Date: 1999-10-10 21:42+0200 Last-Translator: Jiøí Pavlovský Language-Team: Czech MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-2 Content-Transfer-Encoding: 8bit ®ádná. --line-numbers=ÈÍSLO pøedøadí ka¾dému ÈÍSLO. øádku jeho èíslo -C pøezdívka pro --line-numbers=5 -f, --font-size=VELIKOST VELIKOST (float) písma pro hlavní text -L, --lines-per-page=POÈET pøepoèítá písmo, aby tiskl POÈET øádkù na stránku -l, --chars-per-line=POÈET pøepoèítá písmo, aby 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=FMT nastaví zpùsob zpracování netisknutelných znakù --prologue=SOUBOR vlo¾í SOUBOR.pro jako PostScriptový prolog --ppd[=KLÍÈ] automatická volba PPD nebo nastaví na KLÍÈ -n, --copies=POÈET vytiskne POÈET kopií ka¾dé stránky -s, --sides=RE®IM poèet stran na papír (`1' èi `simplex', `2' èi `duplex', `tumble') -S, --setpagedevice=K[:V] po¹le na výstup nastavení stránkového zaøízení --statusdict=K[:[:]V] po¹le na výstup nastavení 'statusdict' -k, --page-prefeed zapne 'page prefeed' -K, --no-page-prefeed vypne 'page prefeed' --version vypí¹e oznaèení verze programu --help vypí¹e tuto nápovìdu --guess vypí¹e pøedpokládaný typ SOUBORÙ --which vypí¹e úplnou cestu k zadaným knihovním SOUBORÙM --glob vypí¹e úplnou cestu ke knihovním SOUBORÙM vyhovujícím vzoru --list=defaults vypí¹e implicitní nastavení a parametry --list=TÉMA vypí¹e 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] zapne tisk stylù ( = STYL) --highlight-level=ÚROVEÒ nastaví ÚROVEÒ zvýrazòování pøi tisku stylù ÚROVEÒ mù¾e být none, normal nebo heavy -g alias pro --highlight-level=heavy --strip-level=ÚROVEÒ ÚROVEÒ oøezávání komentáøù -a, --pages[=ROZSAH] zvolí stránky k vyti¹tìní -c, --truncate-lines* oøezává dlouhé øádky -i, --interpret* interpretace tab, bs a ff znakù --end-of-line=TYP nastaví znak eol (TYP:r, n, nr, rn, any) -X, --encoding=JMÉNO pou¾ije vstupní kódování JMÉNO -t, --title=JMÉNO nastaví JMÉNO úlohy --stdin=SOUBOR ète SOUBOR ze standardního vstupu --print-anyway* tiskne také binární data -Z, --delegate* pøedá soubory ke zpracování jiné aplikaci --toc[=TEXT] vytvoøí obsah -q, --quiet, --silent minimální informace o bìhu programu -v, --verbose[=ÚROVEÒ] úroveò výpisu hlá¹ek zapnuta, nebo nastavena na ÚROVEÒ -=, --user-option=ZKRATKA pou¾ije u¾ivatelem definovanou ZKRATKU --debug pou¾ije ladící funkce -D, --define=KLÍÈ[:HODNOTA] zru¹í nebo nastaví promìnnou K na hodnotu H 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 implicitní PPD = %s formát èísla stránky = %s poèet kopií = %d stran na list = %s nastavení stránkového zaøízení = médium = %s%s, %s rozvr¾ení stránky = %d x %d, %s rámeèky = %s tisk oddìlených souborù = %s vnitøní okraj = %d èíslování øádkù = %s formát = %s velikost tabulátoru = %d netisknutelné znaky = %s 'page prefeed' = %s nastavení 'statusdict' = 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 titul dokumentu = %s prolog = %s tisk binárních dat = %s pøedávání úloh = %s úroveò výpisu hlá¹ek = %d pøíkaz pro vyvolání file = %s cesta ke knihovnám = %A %d.%B %Y%d.%m. %yznakù na øádek - %døádkù na stránku - %d%s pøedáno ke zpracování %s%s: neznámý pøepínaè -- %c %s: neplatný argument pro øídící znak %s%c%s: neznámý pøepínaè -- %c %s: neplatný separátor `%s%c' pro øídící znak `%s'%s: chybí `%c' pro øídící znak %s%c%s: pøepínaè `%c%s' musí být zadán bez argumentu %s: pøepínaè `%s' není jednoznaèný %s: pøepínaè `%s' vy¾aduje argument %s: pøepínaè `--%s' musí být zadán bez argumentu %s: pøepínaè `-W %s' musí být zadán bez argumentu %s: pøepínaè `-W %s' není jednoznaèný %s: pøepínaè vy¾aduje argument -- %c %s: pøíli¹ dlouhý argument pro øídící znak %s%s: pro `%s' není øídící znak `%c' (%d) definován%s: neznámý pøepínaè `%c%s' %s: neznámý pøepínaè `--%s' Úloha byla úspì¹nì dokonèena. Nápovìdu ke konkrétním tématùm poskytne podrobný výpis. Aplikace urèené k pøedávání úlohAktuální konfigurace %s %s Copyright (C) 1999 Free Software Foundation, Inc.implicitní tiskárnaPøedání `%s', od %s do %s V¹eobecná nastavení: Hlavièky: Hlavièky: Vstup: Interní nastavení: Pøipravená kódováníPøipravená písmaPøipravená médiaPøipravené výstupní cíle (tiskárny apod.)Pøipravené popisy tiskárenPøipravené prologyPøipravené styly (jazyky)Pøipravené u¾ivatelsky definované zkratkyPøipravené promìnnéNení volná pamì»JménoVýstup: Stránka %dStránka %d/%cStránka %d/%dPostScript: Tisk stylù: Vytiskl %sVytiskl %s z %sChyby v programu oznamujte na adrese (pouze anglicky). Pøipomínky k pøekladu zasílejte na adresu (èesky). Listy: ObsahÚlohy: Vstup mù¾e pou¾ívat zvlá¹tní øídící znaky. Toto je volné programové vybavení. Podmínky kopírování a roz¹iøování naleznete ve zdrojových textech. Tento program je BEZ ZÁRUKY; dokonce i bez záruky PRODEJNOSTI nebo VHODNOSTI PRO NÌJAKÝ KONKRÉTNÍ ÚÈEL. Více informací získáte pøíkazem `%s --help'. neznámá tiskárnaneznámý u¾ivatelNeznámá systémová chybaPlatnými argumenty jsou reálná èísla f, pro nì¾ platí: %s Platnými argumenty jsou celá èísla n, pro nì¾ platí: %s Platné argumenty jsou: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. Napsal %s. [%s (%s): poèet stran/listù: %d/%d] [%s (%s): poèet stran/listù: %d/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] [®ádný výstup nebyl vytvoøen] [Celkem: poèet stran/listù: %d/%d] %s [Celkem: poèet stran/listù: %d/1] %s [Celkem: poèet stran/listù: 1/1] %s `%s' je binární soubor, tisk ukonèen`%s' je adresáø`%s' bez odpovídajícího `%s'jakýkoliv typautomatická volba stylù vypnutaadresáø `%s' nelze zavøítregulární výraz `%s' nelze zkompilovat: %ssoubor `%s' nelze vytvoøitsoubor `%s' nelze najítstyl `%s' nelze najít: pou¾it prostý stylsouèasný pracovní adresáø nelze urèitinformace o souboru `%s' nelze získatrouru do `%s' nelze otevøítsoubor `%s' nelze otevøít`%s' nelze zpracovat - vy¾aduje a2ps verze %ssoubor `%s' nelze pøejmenovat na `%s'karet (i.e. `^C', `M-^C' etc.)nejdøíve sloupcerozmìryka¾dý %d. øádekka¾dý øádekemacs (i.e. `C-c', M-C-c' etc.)neukonèená øetìzcová konstantapísmo %f je pøíli¹ velikévelikost písma je %gptmaximální (heavy)¹estnáctkovì (i.e. `\x0a' etc.)nejsou známy v¹echny tváøeneplatný argument %s pro pøepínaè `%s'neplatný argument `%s' pro pøepínaè `%s'neplatná definice pro tiskárnu `%s': %sneznámý pøepínaè `%s'nepovolený interval `%s'neznámý pøepínaè `%s'neplatné u¾ití promìnné `%s'neplatné èíslo verze `%s'na ¹íøkuchybí argument pro `%s'¾ádné zálo¾ní kopiene¾ádný pøíkaz pro `%s' (%s%s)¾ádná (none)bì¾ná (normal)èíslované zálo¾ní kopie v¹ech souborùèíslované zálo¾ní kopie èíslovaných souborù a jednoduché ostatníchzastaralá volba `%s'. Ignorováno.osmièkovì (i.e. `\001' etc.)výstupní pøíkazprostýna vý¹kuotazník (i.e. `?')obdr¾en signál %d: %ssoubor `%s' obnovennejdøíve øádkyulo¾eno do souboru `%s'automatická volbaposláno na implicitní tiskárnuposláno na tiskárnu `%s'posláno na standardní výstupjednoduché zálo¾ní kopie ka¾dého souborumezera (i.e. ` ')neznámé kódování `%s'neznámé kódování `%s', ignorovánoneznámé médium `%s'neznámá u¾ivatelsky definovaná zkratka `%s'u¾ivatelchyba zápisuanoa2ps-4.14/po/nl.po0000644000175000017500000010451110735337367013234 0ustar mhattamhatta# Translation of a2ps-4.13b to Dutch. # Copyright (C) 1998, 2000, 2007 Free Software Foundation, Inc. # # Marcel van der Laan , 1998. # Tijs van Bakel , 2000. # Benno Schulenberg , 2007. msgid "" msgstr "" "Project-Id-Version: a2ps 4.13b\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-12-29 11:28+0800\n" "PO-Revision-Date: 2007-09-30 22:49+0200\n" "Last-Translator: Benno Schulenberg \n" "Language-Team: Dutch \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" #: src/buffer.c:68 msgid "any type" msgstr "willekeurig" #: src/delegate.c:137 confg.gperf:168 lib/encoding.c:530 lib/encoding.c:576 #: lib/encoding.c:616 lib/output.c:302 lib/pair_ht.c:296 lib/prolog.c:146 #, c-format msgid "missing argument for `%s'" msgstr "ontbrekend argument voor '%s'" #: src/delegate.c:260 lib/routines.c:160 lib/xbackupfile.c:248 #: lib/xbackupfile.c:276 lib/xbackupfile.c:284 #, c-format msgid "cannot create file `%s'" msgstr "kan bestand '%s' niet aanmaken" #: src/delegate.c:269 src/select.c:193 lib/routines.c:190 lib/routines.c:196 #, c-format msgid "cannot open a pipe on `%s'" msgstr "kan geen pijp openen op '%s'" #: src/delegate.c:389 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "Delegatie '%s', van %s naar %s\n" #: src/delegate.c:408 src/delegate.c:430 msgid "Applications configured for delegation" msgstr "Programma's waarnaar gedelegeerd kan worden" #: src/generate.c:88 #, c-format msgid "`%s' is a directory" msgstr "'%s' is een map" #: src/generate.c:96 src/main.c:560 src/main.c:582 confg.gperf:192 #: confg.gperf:355 lib/routines.c:154 #, c-format msgid "cannot open file `%s'" msgstr "kan bestand '%s' niet openen" #: src/generate.c:101 lib/xbackupfile.c:224 #, c-format msgid "cannot get informations on file `%s'" msgstr "kan geen informatie over bestand '%s' verkrijgen" #: src/generate.c:168 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): 1 pagina op 1 blad]\n" #: src/generate.c:174 #, c-format msgid "[%s (%s): %d pages on 1 sheet]\n" msgstr "[%s (%s): %d pagina's op 1 blad]\n" #: src/generate.c:181 #, c-format msgid "[%s (%s): %d pages on %d sheets]\n" msgstr "[%s (%s): %d pagina's op %d bladen]\n" #: src/generate.c:208 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[Totaal: 1 pagina op 1 blad] %s\n" #: src/generate.c:212 #, c-format msgid "[Total: %d pages on 1 sheet] %s\n" msgstr "[Totaal: %d pagina's op 1 blad] %s\n" #: src/generate.c:217 #, c-format msgid "[Total: %d pages on %d sheets] %s\n" msgstr "[Totaal: %d pagina's op %d bladen] %s\n" #: src/generate.c:226 msgid "[1 line wrapped]\n" msgstr "[1 afgebroken regel]\n" #: src/generate.c:229 #, c-format msgid "[%d lines wrapped]\n" msgstr "[%d afgebroken regels]\n" #: src/generate.c:242 msgid "[No output produced]\n" msgstr "[Geen uitvoer geproduceerd]\n" #: src/generate.c:314 #, c-format msgid "%s, delegated to %s" msgstr "%s, gedelegeerd naar %s" #: src/generate.c:322 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): is mislukt -- genegeerd]\n" #: src/generate.c:330 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (onafdrukbaar) -- genegeerd]\n" #: src/generate.c:339 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (binair) -- genegeerd]\n" #: src/generate.c:360 msgid "plain" msgstr "gewoon" #: lexssh.l:348 msgid "end-of-line in string constant" msgstr "regeleindeteken in tekstconstante" #: lexssh.l:415 src/sheets-map.l:153 src/sheets-map.l:192 #, c-format msgid "end of line inside a %s" msgstr "regeleinde binnen een %s" #: src/main.c:203 #, c-format msgid "received signal %d: %s" msgstr "signaal %d ontvangen: %s" #: src/main.c:242 msgid "heavy" msgstr "sterk" #: src/main.c:246 msgid "normal" msgstr "normaal" #: src/main.c:250 msgid "none" msgstr "geen" #: src/main.c:324 src/main.c:328 msgid "yes" msgstr "ja" #: src/main.c:325 src/main.c:328 src/main.c:369 msgid "no" msgstr "nee" #: src/main.c:335 #, c-format msgid "Configuration status of %s %s\n" msgstr "Configuratiestatus van %s %s\n" #: src/main.c:339 src/main.c:697 msgid "Sheets:\n" msgstr "Bladen:\n" #: src/main.c:340 #, 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" msgstr "" " papierformaat = %s%s, %s\n" " virtuele lay-out = %d x %d (%s)\n" " marges = %s\n" " bestandsuitlijning = %s\n" " binnenmarge = %d\n" #: src/main.c:349 msgid "portrait" msgstr "portret" #: src/main.c:349 msgid "landscape" msgstr "landschap" #: src/main.c:358 #, c-format msgid "%d characters per line" msgstr "%d tekens per regel" #: src/main.c:361 #, c-format msgid "%d lines per page" msgstr "%d regels per pagina" #: src/main.c:364 #, c-format msgid "font size is %gpt" msgstr "groote van lettertype is %gpt" #: src/main.c:373 msgid "each line" msgstr "elke regel" #: src/main.c:377 #, c-format msgid "each %d lines" msgstr "om de %d regels" #: src/main.c:380 src/main.c:718 msgid "Virtual pages:\n" msgstr "Virtuele pagina's:\n" #: src/main.c:381 #, c-format msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %d\n" " non printable format = %s\n" msgstr "" " regelnummers = %s\n" " formaat = %s\n" " tabulatiebreedte = %d\n" " niet-afdrukbare tekens = %s\n" #: src/main.c:392 msgid "Headers:\n" msgstr "Randversierselen:\n" #: src/main.c:393 #, 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:412 src/main.c:747 msgid "Input:\n" msgstr "Invoer:\n" #: src/main.c:413 #, 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:438 src/main.c:504 msgid "selected automatically" msgstr "automatisch geselecteerd" #: src/main.c:441 src/main.c:766 msgid "Pretty-printing:\n" msgstr "Fraai printen:\n" #: src/main.c:442 #, 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:462 msgid "never make backups" msgstr "nooit backups maken" #: src/main.c:466 msgid "simple backups of every file" msgstr "simpele backups van ieder bestand" #: src/main.c:471 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:476 msgid "numbered backups of every file" msgstr "genummerde backups van ieder bestand" #: src/main.c:480 src/main.c:775 msgid "Output:\n" msgstr "Uitvoer:\n" #: src/main.c:481 #, 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:494 src/main.c:786 msgid "PostScript:\n" msgstr "PostScript:\n" #: src/main.c:495 #, 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 = " msgstr "" " magisch nummer = %s\n" " printeromschrijving (PPD) = %s\n" " standaard-PPD = %s\n" " paginalabelopmaak = %s\n" " aantal kopieën = %d\n" " zijdes per blad = %s\n" " pagina-apparaat-definities = " #: src/main.c:515 #, c-format msgid " statusdict definitions = " msgstr " statusdict-definities = " #: src/main.c:518 #, c-format msgid " page prefeed = %s\n" msgstr " pagina-anticipering = %s\n" #: src/main.c:527 msgid "Internals:\n" msgstr "Interne werking:\n" #: src/main.c:528 #, c-format msgid "" " verbosity level = %d\n" " file command = %s\n" " library path = \n" msgstr "" " breedsprakigheidsniveau = %d\n" " bestandsopdracht = %s\n" " bibliothekenzoekpad = \n" #: src/main.c:653 #, 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" msgstr "" "Gebruik: %s [OPTIE]... [BESTAND]...\n" "\n" "Converteert de gegeven BESTAND(en) of standaardinvoer naar PostScript.\n" "\n" "Verplichte argumenten bij een lange optie gelden ook voor de korte vorm.\n" "Lange opties gemarkeerd met een * vereisen 'yes' of 'no' als argument,\n" "de overeenkomstige korte opties staan voor 'yes' (ja).\n" #: src/main.c:668 msgid "Tasks:\n" msgstr "Taken:\n" #: src/main.c:669 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" msgstr "" " --version versie-informatie tonen\n" " --help deze hulptekst tonen\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:\n" " delegations, encodings, features, media, ppd, " "printers,\n" " prologues, style-sheets, user-options, variables\n" #: src/main.c:680 msgid "" "After having performed the task, exit successfully. Detailed lists may\n" "provide 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:688 msgid "Global:\n" msgstr "Globaal:\n" #: src/main.c:689 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:698 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" 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 voorgedefiniëerde 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:711 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:719 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:730 msgid "Headings:\n" msgstr "Paginakoppen:\n" #: src/main.c:732 #, 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:743 msgid "The TEXTs may use special escapes.\n" msgstr "De TEKSTen mogen speciale stuurcodes gebruiken.\n" #: src/main.c:748 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:760 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:767 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:776 #, 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=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\n" #: src/main.c:787 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:801 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" 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 folder.dvi.gz -d\n" #: src/main.c:822 #, fuzzy msgid "" "News, updates and documentation: visit http://www.gnu.org/software/a2ps/.\n" msgstr "" "Nieuws, updates en documentatie vindt u op\n" " http://www.inf.enst.fr/~demaille/a2ps/\n" #: src/main.c:824 msgid "Report bugs to .\n" msgstr "" "Rapporteer gebreken in het programma aan .\n" #: src/main.c:942 #, 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" #: src/main.c:1173 msgid "Table of Content" msgstr "Inhoudsopgave" #: src/parsessh.y:236 #, 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:111 #, c-format msgid "unexpected character `%c'" msgstr "onverwacht teken '%c'" #: src/sheets-map.l:211 lexppd.l:211 msgid "too many includes" msgstr "te veel insluitingen ('includes')" #: src/sheets-map.l:296 src/sheets-map.l:303 #, c-format msgid "no key defined for `%s'" msgstr "geen sleutel gedefinieerd voor '%s'" #: src/select.c:122 src/ssheet.c:866 fonts.l:838 fonts.l:840 fonts.l:842 #: lib/pathwalk.c:328 lib/pathwalk.c:414 #, c-format msgid "cannot find file `%s'" msgstr "kan bestand '%s' niet vinden" #: src/select.c:124 msgid "automatic style selection cancelled" msgstr "automatische stijlkeuze is geannuleerd" #: src/ssheet.c:295 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "kan reguliere expressie '%s' niet compileren: %s" #: src/ssheet.c:974 src/ssheet.c:995 msgid "Known Style Sheets" msgstr "Bekende stijlbestanden" #: src/ssheet.c:1461 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "kan stijlbestand '%s' niet vinden -- gewone stijl wordt gebruikt" #: src/sshread.c:453 #, c-format msgid "unknown encoding `%s', ignored" msgstr "onbekende codering '%s' -- genegeerd" #: src/version-etc.c:38 msgid "Copyright (C) 1999 Free Software Foundation, Inc." msgstr "Copyright (C) 1999 Free Software Foundation, Inc." #: src/version-etc.c:60 #, c-format msgid "Written by %s.\n" msgstr "Geschreven door %s.\n" #: src/version-etc.c:66 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" #: src/versions.c:133 #, c-format msgid "invalid version number `%s'" msgstr "ongeldig versienummer '%s'" #: lib/caret.c:43 msgid "space (i.e., ` ')" msgstr "spatie (' ')" #: lib/caret.c:45 msgid "octal (i.e., `\\001' etc.)" msgstr "octaal ('\\001' enz.)" #: lib/caret.c:47 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "hexadecimaal ('\\x0a' enz.)" #: lib/caret.c:49 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "dakje ('^C', 'M-^C' enz.)" #: lib/caret.c:51 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "emacs ('C-c', 'M-C-c' enz.)" #: lib/caret.c:53 msgid "question-mark (i.e., `?')" msgstr "vraagteken ('?')" #: lib/closeout.c:71 lib/closeout.c:73 msgid "write error" msgstr "schrijffout" #: confg.gperf:157 lib/encoding.c:638 #, c-format msgid "invalid option `%s'" msgstr "ongeldige optie '%s'" #: confg.gperf:224 confg.gperf:231 confg.gperf:238 #, c-format msgid "invalid definition for printer `%s': %s" msgstr "ongeldige definitie voor printer '%s': %s" #: confg.gperf:229 confg.gperf:232 lib/printers.c:47 msgid "Unknown Printer" msgstr "Onbekende printer" #: confg.gperf:236 confg.gperf:239 lib/printers.c:46 msgid "Default Printer" msgstr "Standaardprinter" #: confg.gperf:292 lib/options.c:697 #, c-format msgid "invalid variable identifier `%s'" msgstr "ongeldige variabelenaam '%s'" #: confg.gperf:321 #, c-format msgid "obsolete `%s' entry. Ignored" msgstr "verouderd item '%s' -- genegeerd" #: lib/encoding.c:1114 lib/encoding.c:1135 msgid "Known Encodings" msgstr "Bekende coderingen" #: lib/faces.c:156 msgid "incomplete knowledge of faces" msgstr "niet genoeg bekend over uiterlijk" #: lib/filtdir.c:113 #, c-format msgid "cannot close directory `%s'" msgstr "kan map '%s' niet sluiten" #: lib/getnum.c:63 lib/getnum.c:121 lib/getnum.c:153 lib/getnum.c:221 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "ongeldig argument '%s' van optie '%s'" #: lib/getnum.c:123 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "Geldige argumenten zijn gehele getallen 'n' waarvoor geldt: %s\n" #: lib/getnum.c:223 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "" "Geldige argumenten zijn drijvende-komma-getallen 'f' waarvoor geldt: %s\n" #: lib/jobs.c:308 #, c-format msgid "unknown encoding `%s'" msgstr "onbekende codering '%s'" #: lib/madir.c:59 msgid "rows first" msgstr "regels eerst" #: lib/madir.c:62 msgid "columns first" msgstr "kolommen eerst" #: lib/media.c:173 #, c-format msgid "unknown medium `%s'" msgstr "onbekend papierformaat '%s'" #: lib/media.c:208 lib/media.c:237 msgid "Known Media" msgstr "Bekende papierformaten" #: lib/media.c:211 msgid "Name" msgstr "Naam" #: lib/media.c:212 msgid "dimensions" msgstr "afmetingen" #: lib/metaseq.c:104 lib/metaseq.c:113 #, c-format msgid "Known Variables" msgstr "Bekende variabelen" #: lib/metaseq.c:162 lib/metaseq.c:531 lib/metaseq.c:548 lib/metaseq.c:608 #: lib/metaseq.c:951 lib/metaseq.c:972 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%s: ontbrekende '%c' in '%s%c'-stuurcodereeks" #: lib/metaseq.c:288 lib/metaseq.c:300 #, c-format msgid "Printed by %s" msgstr "Afgedrukt door %s" #: lib/metaseq.c:298 #, c-format msgid "Printed by %s from %s" msgstr "Afgedrukt door %s vanaf %s" #: lib/metaseq.c:308 lib/metaseq.c:327 msgid "cannot get current working directory" msgstr "kan huidige map niet bepalen" #: lib/metaseq.c:341 lib/metaseq.c:534 lib/metaseq.c:563 lib/metaseq.c:652 #: lib/metaseq.c:954 lib/metaseq.c:987 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s: argument voor '%s'-stuurcodereeks is te lang" #: lib/metaseq.c:364 lib/metaseq.c:675 msgid "%b %d, %y" msgstr "%d %b %y" #: lib/metaseq.c:373 lib/metaseq.c:684 msgid "%A %B %d, %Y" msgstr "%A %d %B %Y" #: lib/metaseq.c:419 lib/metaseq.c:448 lib/metaseq.c:491 lib/metaseq.c:724 #: lib/metaseq.c:808 lib/metaseq.c:867 lib/metaseq.c:922 lib/metaseq.c:1099 #: lib/metaseq.c:1234 lib/metaseq.c:1246 lib/metaseq.c:1289 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s: onbekende '%s'-stuurcodereeks '%c' (%d)" #: lib/metaseq.c:426 lib/metaseq.c:815 #, c-format msgid "Page %d" msgstr "Pagina %d" #: lib/metaseq.c:431 lib/metaseq.c:826 #, c-format msgid "Page %d/%c" msgstr "Pagina %d/%c" #: lib/metaseq.c:593 lib/metaseq.c:1021 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "%s: ongeldig scheidingsteken '%s%c' voor stuurcode '%s'" #: lib/metaseq.c:601 lib/metaseq.c:611 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s: ongeldig argument voor stuurcode '%s%c'" #: lib/metaseq.c:822 #, c-format msgid "Page %d/%d" msgstr "Pagina %d/%d" #: lib/metaseq.c:1266 msgid "output command" msgstr "uitvoeropdracht" #: lib/options.c:302 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Typ '%s --help' voor meer informatie.\n" #: lib/output.c:466 #, c-format msgid "invalid face `%s'" msgstr "ongeldig uiterlijk '%s'" #: lib/output.c:538 #, c-format msgid "`%s' with no matching `%s'" msgstr "'%s' zonder corresponderende '%s'" #: lib/ppd.c:108 msgid "Known Fonts" msgstr "Bekende lettertypen" #: lib/ppd.c:111 msgid "" "\n" " None.\n" msgstr "" "\n" " Geen.\n" #: lib/ppd.c:149 lib/ppd.c:165 msgid "Known PostScript Printer Descriptions" msgstr "Bekende PostScript-printeromschrijvingen" #: lib/prange.c:305 lib/prange.c:323 #, c-format msgid "invalid interval `%s'" msgstr "ongeldig interval '%s'" #: lib/printers.c:396 lib/printers.c:413 #, c-format msgid "no command for the `%s' (%s%s)" msgstr "geen opdracht voor de '%s' (%s%s)" #: lib/printers.c:429 msgid "sent to the standard output" msgstr "naar standaarduitvoer gestuurd" #: lib/printers.c:430 msgid "sent to the default printer" msgstr "naar de standaardprinter gestuurd" #: lib/printers.c:435 #, c-format msgid "saved into the file `%s'" msgstr "in bestand '%s' opgeslagen" #: lib/printers.c:436 #, c-format msgid "sent to the printer `%s'" msgstr "naar printer '%s' gestuurd" #: lib/printers.c:613 lib/printers.c:621 msgid "Known Outputs (Printers, etc.)" msgstr "Bekende uitvoerapparaten (printers, enz.)" #: lib/prolog.c:98 lib/prolog.c:181 msgid "Known Prologues" msgstr "Bekende prologen" #: lib/prolog.c:579 #, c-format msgid "font %f too big" msgstr "lettertype %f is te groot" #: lib/psgen.c:662 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "'%s' is binair -- afdrukken is afgebroken" #: lib/quotearg.c:200 msgid "`" msgstr "‘" #: lib/quotearg.c:203 msgid "'" msgstr "’" #: lib/userdata.c:129 msgid "user" msgstr "gebruiker" #: lib/userdata.c:130 msgid "Unknown User" msgstr "Onbekende gebruiker" #: lib/useropt.c:75 #, c-format msgid "unknown user option `%s'" msgstr "onbekende gebruikeroptie '%s'" #: lib/useropt.c:86 lib/useropt.c:97 msgid "Known User Options" msgstr "Bekende gebruikeropties" #: lib/xbackupfile.c:105 lib/xmalloc.c:66 msgid "Memory exhausted" msgstr "Onvoldoende geheugen beschikbaar" #: lib/xbackupfile.c:240 lib/xbackupfile.c:252 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "kan bestand '%s' niet hernoemen naar '%s'" #: lib/xbackupfile.c:255 #, c-format msgid "restored file `%s'" msgstr "bestand '%s' is hersteld" #: lib/argmatch.c:159 #, c-format msgid "invalid argument %s for `%s'" msgstr "ongeldig argument '%s' bij optie '%s'" #: lib/argmatch.c:160 #, c-format msgid "ambiguous argument %s for `%s'" msgstr "argument '%s' bij optie '%s' is niet eenduidig" #: lib/argmatch.c:178 #, c-format msgid "Valid arguments are:" msgstr "Geldige argumenten zijn:" #: lib/error.c:102 msgid "Unknown system error" msgstr "Onbekende systeemfout" #: lib/getopt.c:675 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: optie '%s' is niet eenduidig\n" #: lib/getopt.c:700 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: optie '--%s' staat geen argument toe\n" #: lib/getopt.c:705 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: optie '%c%s' staat geen argument toe\n" #: lib/getopt.c:723 lib/getopt.c:896 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: optie '%s' vereist een argument\n" #: lib/getopt.c:752 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: onbekende optie '--%s'\n" #: lib/getopt.c:756 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: onbekende optie '%c%s'\n" #: lib/getopt.c:782 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: ongeldige optie -- %c\n" #: lib/getopt.c:785 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: ongeldige optie -- %c\n" #: lib/getopt.c:815 lib/getopt.c:945 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: optie vereist een argument -- %c\n" #: lib/getopt.c:862 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: optie '-W %s' is niet eenduidig\n" #: lib/getopt.c:880 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: optie '-W %s' staat geen argument toe\n" a2ps-4.14/po/it.gmo0000644000175000017500000002334310735337366013405 0ustar mhattamhattaÞ•t¼\Ð AÑ ! 5 T a k ‚ ” ¨ $ ç , . ,O | %š ,À -í  &< #c !‡ © É &é /?_ h r} …‘ ¡­ÌÜïÿ & 1 <I [iˆ—™&1X hu+Š-¶äù! +Ki†ž»"Ñ ô'4\w#€¤/À$ð2+^ ~ Œ — ¥!¯Ñð8'V ~ˆ›ž£ª\É&D^ms| –¡ºÑí"?QVKZ•¦%<"b …‘š°ÄÚ<ö!3DU:š+Õ)+I,u ¢*Ã6î6%\|*œ Çèþ #2A ISp(‡°Ìçö    , 9FXg|„í+{§½Ð:î8) b } ! !± Ó $ô !&9!'`!#ˆ!#¬!"Ð!(ó! " ="0G"&x">Ÿ"-Þ" #A,# n## ¢# ­# »#É#æ#%ÿ#%$C$I$<c$5 $ Ö$â$ø$û$% %r,%%Ÿ%Å%Ú%ì% ô%þ%&)&=&"O&r&Ž&¬& Ì&Ù&à&$=8%qIZ`OBAX \V,P&!MYg<e"a];UHD _c7Ft+>N9)Kn oJdsSLh05lpG/:4  ('^i?k#rRf 2QmCj*.WT[b13@-6E -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 page prefeed = %s statusdict definitions = %A %B %d, %Y%b %d, %y%d characters per line%d lines per page%s, delegated to %s%s: illegal option -- %c %s: invalid argument for %s%c escape%s: invalid option -- %c %s: invalid separator `%s%c' for `%s' escape%s: missing `%c' for %s%c escape%s: option `%c%s' doesn't allow an argument %s: option `%s' is ambiguous %s: option `%s' requires an argument %s: option `--%s' doesn't allow an argument %s: option `-W %s' doesn't allow an argument %s: option `-W %s' is ambiguous %s: option requires an argument -- %c %s: too long argument for %s escape%s: unknown `%s' escape `%c' (%d)%s: unrecognized option `%c%s' %s: unrecognized option `--%s' Applications configured for delegationConfiguration status of %s %s Default PrinterDelegation `%s', from %s to %s Global: Headers: Headings: Input: Internals: Known EncodingsKnown MediaKnown Outputs (Printers, etc.)Known ProloguesKnown User OptionsKnown VariablesMemory exhaustedNameOutput: Page %dPage %d/%cPage %d/%dPostScript: Pretty-printing: Printed by %sPrinted by %s from %sSheets: Table of ContentThis is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Try `%s --help' for more information. Unknown PrinterUnknown UserUnknown system errorValid arguments are floats f such that: %s Valid arguments are integers n such that: %s Valid arguments are:Virtual pages: [%s (%s): %d pages on %d sheets] [%s (%s): %d pages on 1 sheet] [%s (%s): 1 page on 1 sheet] [%s (%s): failed. Ignored] [%s (binary): ignored] [%s (unprintable): ignored] [No output produced] [Total: %d pages on %d sheets] %s [Total: %d pages on 1 sheet] %s [Total: 1 page on 1 sheet] %s `%s' is a binary file, printing aborted`%s' with no matching `%s'any typeautomatic style selection cancelledcannot close directory `%s'cannot find style sheet `%s': using plain stylecannot get current working directorycannot open file `%s'cannot process `%s' which requires a2ps version %scaret (i.e., `^C', `M-^C' etc.)columns firstdimensionseach %d lineseach lineemacs (i.e., `C-c', `M-C-c' etc.)end-of-line in string constantfont %f too bigfont size is %gptheavyhexadecimal (i.e., `\x0a' etc.)incomplete knowledge of facesinvalid definition for printer `%s': %slandscapenever make backupsnononenormalnumbered backups of every filenumbered backups of files already numbered, and simple of othersobsolete `%s' entry. Ignoredoctal (i.e., `\001' etc.)output commandplainportraitquestion-mark (i.e., `?')rows firstsaved into the file `%s'selected automaticallysent to the default printersent to the printer `%s'sent to the standard outputsimple backups of every filespace (i.e., ` ')useryesProject-Id-Version: 4.10.4 Report-Msgid-Bugs-To: POT-Creation-Date: 2007-12-29 11:28+0800 PO-Revision-Date: 1999-01-24 13:01+01:00 Last-Translator: "Lorenzo M. Catucci" Language-Team: Italian MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8-bit -E, --pretty-print[=LANG] abilita l'evidenziazione sintattica (secondo lo stile LANG) --graphic-symbols=LEVEL determina il livello di evidenziazione sintattica LEVEL può essere «none» (nullo), «normal» (normale), «heavy» (elevato) --strip-level=NUM elimina NUM livelli di commenti alimentazione immediata carta = %s definizioni nello statusdict = %A %d %B %Y%d %b %y%d caratteri per riga%d righe per pagina%s, incaricato per %s%s: opzione illegale -- %c %s: argomento non utilizzabile per la sequenza speciale %s%c%s: l'opzione -- %c non è valida %s: separatore `%s%c' non utilizzabile per la sequenza speciale `%s'%s: manca il separatore `%c' per la sequenza speciale %s%c%s: l'opzione `%c%s' non ammette argomenti %s: l'opzione `%s' è ambigua %s: l'opzione `%s' richiede un argomento %s: l'opzione `--%s' non ammette argomenti %s: l'opzione `-W %s' non ammette argomenti %s: l'opzione `-W %s' è ambigua %s: l'opzione richiede un argomento -- %c %s: argomento troppo lungo per la sequenza speciale %s%s: la sequenza speciale `%s' `%c' (%d) non è definita%s: opzione sconosciuta `%c%s' %s: opzione sconosciuta `--%s' Applicazioni configurate per gli incarichiConfigurazione attuale di %s %s Stampante predefinitaIncarico `%s', da %s a %s Globale: Bordo Pagina: Bordo Pagina: Input: Interno: Codifiche dei caratteri noteFormati di pagina notiDestinazioni possibili (stampanti, etc.)File di prologo disponibiliOpzioni locali disponibiliVariabili noteMemoria esauritaNomeOutput: Pagina %dPagina %d/%cPagina %d/%dPostscript: Pretty-printing: Stampato da %sStampato da %s su %sFogli: SommarioQuesto programma è free software; si vedano i sorgenti per le condizioni di copia. Il programma viene distribuito SENZA ALCUNA GARANZIA; senza neppure la garanzia implicita di NEGOZIABILITA` o di APPLICABILITA` PER UN PARTICOLARE SCOPO. Usa `%s --help' per ulteriori informazioni Stampante sconosciutaUtente sconosciutoErrore di sistema sconosciutoGli argomenti validi sono numeri decimali f, tali che: %s Gli argomenti validi sono numeri interi n, tali che: %s Gli argomenti validi sono:Pagine virtuali: [%s (%s): %d pagine su %d fogli] [%s (%s): %d pagine su 1 foglio] [%s (%s): 1 pagina su 1 foglio] [%s (%s): fallito: verrà ignorato] [%s (binario): verrà ignorato] [%s (non stampabile): verrà ignorato] [Non è stato prodotto nulla in uscita] [Totale: %d pagine su %d fogli] %s [Totale: %d pagine su 1 foglio] %s [Totale: 1 pagina su 1 foglio] %s `%s' é un file binario: stampa annullata`%s'senza il corrispondente `%s'qualsiasila scelta automatica dello stile non è possibileimpossibile chiudere la directory `%s'il foglio stile %s non è reperibile: utilizzo lo stile di baseimpossibile determinare la directory correnteimpossibile aprire il file `%s'impossibile elaborare `%s' perché richiede la versione %s di a2pscirconflesso ('^C', 'M-^C' etc.)ordina per colonnedimensioniogni %d righeper ogni rigaemacs (`C-c', `M-C-c' etc.')fine-riga in una stringail corpo %f richiesto è troppo grandeil corpo dei caratteri è %gptforteesadecimale ('\x0a' etc.)le caratteristiche dei caratteri non sono completamente notedefinizione non utlizzabile per la stampante `%s': %sorizzontalenon creare mai backupnonessunonormalebackup numerati per tutti i filebackup numerati per i file che già ne abbiano, e semplice per gli altriil comando obsoleto %s verrà ignoratoottale ('\001' etc.)comando di stampanormaleverticalepunto interrogativo ('?')ordina per righesalvato nel file %sscelta automaticainviato alla stampante predefinitainviato alla stampante `%s'inviato sullo standard outputbackup semplice di tutti i filespazio (' ')utentesía2ps-4.14/po/sl.po0000644000175000017500000010464310735337371013242 0ustar mhattamhatta# PREVOD SPOROCIL PROGRAMSKEGA PAKETA A2PS # Copyright (C) 1999 Free Software Foundation, Inc. # Igor Furlan , 1999 # msgid "" msgstr "" "Project-Id-Version: a2ps 4.12c\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-12-29 11:28+0800\n" "PO-Revision-Date: 1999-02-19 16:59+01:00\n" "Last-Translator: Igor Furlan \n" "Language-Team: Slovenian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-2\n" "Content-Transfer-Encoding: 8-bit\n" #: src/buffer.c:68 msgid "any type" msgstr "kakrsenkoli tip" #: src/delegate.c:137 confg.gperf:168 lib/encoding.c:530 lib/encoding.c:576 #: lib/encoding.c:616 lib/output.c:302 lib/pair_ht.c:296 lib/prolog.c:146 #, c-format msgid "missing argument for `%s'" msgstr "manjka argument za `%s'" #: src/delegate.c:260 lib/routines.c:160 lib/xbackupfile.c:248 #: lib/xbackupfile.c:276 lib/xbackupfile.c:284 #, c-format msgid "cannot create file `%s'" msgstr "ne morem ustvariti fajla `%s'" #: src/delegate.c:269 src/select.c:193 lib/routines.c:190 lib/routines.c:196 #, c-format msgid "cannot open a pipe on `%s'" msgstr "ne morem vzpostaviti povezave na `%s'" #: src/delegate.c:389 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "Prenos izvrsitve `%s', iz %s na %s\n" #: src/delegate.c:408 src/delegate.c:430 msgid "Applications configured for delegation" msgstr "Aplikacije prirejene za prenos izvrsbe " #: src/generate.c:88 #, c-format msgid "`%s' is a directory" msgstr "`%s' je imenik" #: src/generate.c:96 src/main.c:560 src/main.c:582 confg.gperf:192 #: confg.gperf:355 lib/routines.c:154 #, c-format msgid "cannot open file `%s'" msgstr "ne morem odpreti fajla `%s'" #: src/generate.c:101 lib/xbackupfile.c:224 #, c-format msgid "cannot get informations on file `%s'" msgstr "ne najdem podatkov o fajlu `%s'" #: src/generate.c:168 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): ena stran na listu]\n" #: src/generate.c:174 #, c-format msgid "[%s (%s): %d pages on 1 sheet]\n" msgstr "[%s (%s): %d strani na enemu listu]\n" #: src/generate.c:181 #, c-format msgid "[%s (%s): %d pages on %d sheets]\n" msgstr "[%s (%s): %d strani na %d listih]\n" #: src/generate.c:208 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[Skupaj: ena stran na enemu listu] %s\n" #: src/generate.c:212 #, c-format msgid "[Total: %d pages on 1 sheet] %s\n" msgstr "[Skupaj: %d strani na enemu listu] %s\n" #: src/generate.c:217 #, c-format msgid "[Total: %d pages on %d sheets] %s\n" msgstr "[Skupaj: %d strani na %d listih] %s\n" #: src/generate.c:226 msgid "[1 line wrapped]\n" msgstr "" #: src/generate.c:229 #, fuzzy, c-format msgid "[%d lines wrapped]\n" msgstr "%d vrstic na stran" #: src/generate.c:242 msgid "[No output produced]\n" msgstr "[Nic nismo dobili na izhod]\n" #: src/generate.c:314 #, c-format msgid "%s, delegated to %s" msgstr "%s, pooblascen na %s" #: src/generate.c:322 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): napaka. Ukaz ne bo izvrsen]\n" #: src/generate.c:330 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (ni mozno natisniti): Ukaz ne bo izvrsen]\n" #: src/generate.c:339 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (binarna oblika): Ukaz ne bo izvrsen]\n" #: src/generate.c:360 msgid "plain" msgstr "osnovni oziroma obicajen" #: lexssh.l:348 msgid "end-of-line in string constant" msgstr "znak-za-konec-vrstice v znakovni konstanti" #: lexssh.l:415 src/sheets-map.l:153 src/sheets-map.l:192 #, fuzzy, c-format msgid "end of line inside a %s" msgstr "znak-za-konec-vrstice v znakovni konstanti" #: src/main.c:203 #, c-format msgid "received signal %d: %s" msgstr "prejeti signal %d: %s" #: src/main.c:242 msgid "heavy" msgstr "povdarjeno" #: src/main.c:246 msgid "normal" msgstr "normalno" #: src/main.c:250 msgid "none" msgstr "nicesar" #: src/main.c:324 src/main.c:328 msgid "yes" msgstr "" #: src/main.c:325 src/main.c:328 src/main.c:369 msgid "no" msgstr "ne" #: src/main.c:335 #, c-format msgid "Configuration status of %s %s\n" msgstr "Trenutno stanje nastavitev %s %s\n" #: src/main.c:339 src/main.c:697 msgid "Sheets:\n" msgstr "Listov:\n" #: src/main.c:340 #, 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" msgstr "" " medij = %s%s, %s\n" " oblika strani = %d x %d, %s\n" " robniki = %s\n" " poravnava = %s\n" " notranji rob = %d\n" #: src/main.c:349 msgid "portrait" msgstr "pokoncno" #: src/main.c:349 msgid "landscape" msgstr "lezece" #: src/main.c:358 #, c-format msgid "%d characters per line" msgstr "%d znakov v vrstici" #: src/main.c:361 #, c-format msgid "%d lines per page" msgstr "%d vrstic na stran" #: src/main.c:364 #, c-format msgid "font size is %gpt" msgstr "velikost znaka/crke je %gpt" #: src/main.c:373 msgid "each line" msgstr "vsaka vrstica" #: src/main.c:377 #, c-format msgid "each %d lines" msgstr "vsakih %d vrstic" #: src/main.c:380 src/main.c:718 msgid "Virtual pages:\n" msgstr "Navidezne strani:\n" #: src/main.c:381 #, c-format msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %d\n" " non printable format = %s\n" msgstr "" " stevilo vrstic = %s\n" " oblika = %s\n" " dolzina tabularija = %d\n" " oblika nenatiskljivih znakov = %s\n" #: src/main.c:392 msgid "Headers:\n" msgstr "Glave strani:\n" #: src/main.c:393 #, 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" " levi zaznamek = %s\n" " zaznamek na dnu strani = %s\n" " desni zaznamek = %s\n" " levi naslov = %s\n" " osrednji naslov = %s\n" " desni naslov = %s\n" " predloga = %s\n" #: src/main.c:412 src/main.c:747 msgid "Input:\n" msgstr "Vhod:\n" #: src/main.c:413 #, 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 "" " skrajsane vrstice = %s\n" " prevedi = %s\n" " konec vrstice = %s\n" " kodiranje = %s\n" " ime dokumenta = %s\n" " predznaki = %s\n" " vseeno natisni = %s\n" " izvrsitev ukaza prenesena = %s\n" #: src/main.c:438 src/main.c:504 msgid "selected automatically" msgstr "avtomaticni izbor" #: src/main.c:441 src/main.c:766 msgid "Pretty-printing:\n" msgstr "Prijeten natis:\n" #: src/main.c:442 #, c-format msgid "" " style sheet = %s\n" " highlight level = %s\n" " strip level = %d\n" msgstr "" " stil lista = %s\n" " nivo povdarjanja = %s\n" " nivo zadrzevanja = %d\n" #: src/main.c:462 msgid "never make backups" msgstr "nikoli ne naredi varnostne kopije" #: src/main.c:466 msgid "simple backups of every file" msgstr "preprosta varnostna kopija vsakega fajla" #: src/main.c:471 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" "ostevilcene varnostne kopije fajlov , ki ze imajo stevilko,\n" " in preprosta varnostna kopija za ostale" #: src/main.c:476 msgid "numbered backups of every file" msgstr "ostevilcene varnostne kopije za vsak fajl" #: src/main.c:480 src/main.c:775 msgid "Output:\n" msgstr "Izhod:\n" #: src/main.c:481 #, 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:494 src/main.c:786 msgid "PostScript:\n" msgstr "Postscript:\n" #: src/main.c:495 #, 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 = " 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:515 #, c-format msgid " statusdict definitions = " msgstr " opis statusdict" #: src/main.c:518 #, c-format msgid " page prefeed = %s\n" msgstr " vnaprejsnji premik strani = %s\n" #: src/main.c:527 msgid "Internals:\n" msgstr "Notranje spremenljivke:\n" #: src/main.c:528 #, fuzzy, c-format msgid "" " verbosity level = %d\n" " file command = %s\n" " library path = \n" msgstr "" " gostobesednostni nivo = %d\n" " ukazni fajl = %s\n" " zacasni imenik = %s\n" " pot do knjiznic = \n" #: src/main.c:653 #, 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" msgstr "" "Uporaba: %s [IZBIRA]... FAJLI...\n" " ali pa: %s [IZBIRA]... \n" "Natisk FAJLOV, oziroma tiskanje na standardno vhodno enoto.\n" "Argument je obvezen za dolgi izbor in je ravnotako obvezen za kratek izbor.\n" "Dolgi izbor oznacen z * pricakuje kot argument yes/no, njegova kratka " "izpeljanka pa privzema `yes'.\n" #: src/main.c:668 msgid "Tasks:\n" msgstr "" #: src/main.c:669 #, 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" msgstr "" " -V, --version prikazi programsko razlicico\n" " --help prikazi to sporocilo za pomoc\n" " --copyright prikazi kdo je lastnik programa in " "kopirne pogoje\n" " --guess prikazi kaksna je zvrst FAJLA kot ga je " "program razumel\n" " --list=KATEGORIJA nastej znane podatke o KATEGORIJI\n" "\n" "KATEGORIJA je katerakoli nedvoumna okrajsava za:\n" " * `defaults': vnaprej dolocene nastavitve in parametri,\n" " * `features': kratek seznam podpiranih prenosnih sredstev, kodiranja, " "razlicnih stilov itd.\n" " * `delegations', `encodings', `variables', `media',\n" " `ppd', `printers', `prologues', `style-sheets', `user-options': \n" " razsirjen seznam.\n" #: src/main.c:680 msgid "" "After having performed the task, exit successfully. Detailed lists may\n" "provide additional help on specific features.\n" msgstr "" #: src/main.c:688 msgid "Global:\n" msgstr "Globalno:\n" #: src/main.c:689 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 progrem bo izvrsen brez mnogo sporocil za\n" " uporabnika na ekranu\n" " -v, --verbose[=NIVO] program bo prikazoval vec ali manj " "sporocil\n" " med delovanjem na ekran. Kolicina je " "odvisna\n" " od nastavitve NIVO-ja\n" " -= --user-option=IZBOR program bo uporabil okrajsavo za IZBOR \n" " doloceno s streni uporabnika\n" " --debug program bo aktiviral razhroscevalne " "lastnosti\n" " -D, --define=TIPKA[:VREDNOST] dodana oziroma odvzeta bo VREDNOST za " "TIPKO\n" #: src/main.c:698 #, 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" msgstr "" " -M, --medium=IME uporabi kot izhodno sredstvo IME\n" " -r, --landscape tiskaj v lezeci obliki\n" " -R, --portrait tiskaj v pokoncni obliki\n" " --columns=STEVILO STEVILO stolpcev na listu (STEVILO > 0)\n" " --rows=STEVILO STEVILO vrstic na list (STEVILO > 0)\n" " --major=SMER najprej napolni (SMER=) rows, ali columns\n" " -1, -2, ..., -9 vnaprej dolocena velikost znakov in razporeditev " "na navideznih listih 1.. 9 -A, --file-allign=NACIN poravnaj pozamezne " "fajle v skladu z NACIN (fill, rank\n" " page, sheet, or a number)\n" " -j, --borders* dodaj okvir okrog stolpcev\n" " --margin[=STEVILO] dodaj notranji razmik velikosti STEVILO\n" #: src/main.c:711 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:719 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:730 msgid "Headings:\n" msgstr "Glava:\n" #: src/main.c:732 #, 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 strani bodo brez glave\n" " -b, --header[=TEXT] stran bo imela glavo TEXT \n" " -u, --underlay[=TEXT] natisni TEXT na koncu vsake strani\n" " --center-title[=TITLE] stran ima naslov TITLE\n" " --left-title[=TEXT] nastavi levi in desni naslov strani na TEXT\n" " --right-title[=TEXT]\n" " --left-footer[=TEXT] nastavi komentar na dnu lista na TEXT\n" " --footer[=TEXT] TEXT lahko vsebuje ubezne sekvence $ in %\n" #: src/main.c:743 msgid "The TEXTs may use special escapes.\n" msgstr "" #: src/main.c:748 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:760 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:767 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:776 #, 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=FAJL vpisuj v fajl FAJL. Ce je pred FAJLom `-',\n" " zapisuj na standardno izhodno napravo \n" " (najverjetneje ekran).\n" " --version-control=BESEDA razvrscaj razlicice glede na BESEDO\n" " --suffix=KONCNICA uporabljena bo KONCNICA kot podaljsek imena " "FAJLa\n" " -P, --printer=IME izpisuj na tiskalnik IME\n" " -d izpisuj na vnaprej dolocen tiskalnik\n" #: src/main.c:787 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:801 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" msgstr "" #: src/main.c:822 #, fuzzy msgid "" "News, updates and documentation: visit http://www.gnu.org/software/a2ps/.\n" msgstr "" "Novosti, izboljsane razlicice programa in dokumentacija: http://www.inf.enst." "fr/~demaille/a2ps/\n" #: src/main.c:824 #, fuzzy msgid "Report bugs to .\n" msgstr "" "Sporoci programske hrosce na \n" "Prosim, ce posljes komentar o prevodu na E-naslov IgorF@ix.netcom.com\n" "Se najbolj bi pa bil vesel PREDLOGOV, ki bi izboljsali prevod. Seveda " "sprejemam \n" "tudi ostro in manj ostro kritiko. To , kar berete, je razlicica 0.1 \n" #: src/main.c:942 #, 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" "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" #: src/main.c:1173 msgid "Table of Content" msgstr "Tabela vsebine" #: src/parsessh.y:236 #, c-format msgid "cannot process `%s' which requires a2ps version %s" msgstr "ne morem izvrsiti `%s' , ki je vsebovan v a2ps razlicica %s" #: src/sheets-map.l:111 #, c-format msgid "unexpected character `%c'" msgstr "" #: src/sheets-map.l:211 lexppd.l:211 msgid "too many includes" msgstr "" #: src/sheets-map.l:296 src/sheets-map.l:303 #, fuzzy, c-format msgid "no key defined for `%s'" msgstr "ne morem najti fajla `%s'" #: src/select.c:122 src/ssheet.c:866 fonts.l:838 fonts.l:840 fonts.l:842 #: lib/pathwalk.c:328 lib/pathwalk.c:414 #, c-format msgid "cannot find file `%s'" msgstr "ne morem najti fajla `%s'" #: src/select.c:124 msgid "automatic style selection cancelled" msgstr "samodejna izbira stila je izbrisana" #: src/ssheet.c:295 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "ne morem prevesti stavka `%s': %s" #: src/ssheet.c:974 src/ssheet.c:995 msgid "Known Style Sheets" msgstr "Pripoznani stili za liste" #: src/ssheet.c:1461 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "ne najdem stilni list `%s': uporabil bom osnovni stil" #: src/sshread.c:453 #, c-format msgid "unknown encoding `%s', ignored" msgstr "Neznano kodiranje `%s' ni uporabljeno" #: src/version-etc.c:38 msgid "Copyright (C) 1999 Free Software Foundation, Inc." msgstr "" #: src/version-etc.c:60 #, fuzzy, c-format msgid "Written by %s.\n" msgstr "Natiskano z %s" #: src/version-etc.c:66 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 "" #: src/versions.c:133 #, c-format msgid "invalid version number `%s'" msgstr "`%s' neznana oznaka razlicice" #: lib/caret.c:43 msgid "space (i.e., ` ')" msgstr "presledek (npr., ` ')" #: lib/caret.c:45 msgid "octal (i.e., `\\001' etc.)" msgstr "oktalno stevilo (npr., `\\001' itd.)" #: lib/caret.c:47 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "hexadecimalno stevilo (npr., `\\x0a' itd" #: lib/caret.c:49 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "caret (npr., `^C', `M-^C' itd.)" #: lib/caret.c:51 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "emacs (npr., `C-c', `M-C-c' itd.)" #: lib/caret.c:53 msgid "question-mark (i.e., `?')" msgstr "vprasaj (npr., `?')" #: lib/closeout.c:71 lib/closeout.c:73 msgid "write error" msgstr "" #: confg.gperf:157 lib/encoding.c:638 #, c-format msgid "invalid option `%s'" msgstr "neveljaven izbor `%s'" #: confg.gperf:224 confg.gperf:231 confg.gperf:238 #, c-format msgid "invalid definition for printer `%s': %s" msgstr "neveljavna definicija za tiskalnik `%s': %s" #: confg.gperf:229 confg.gperf:232 lib/printers.c:47 msgid "Unknown Printer" msgstr "Neznani tiskalnik" #: confg.gperf:236 confg.gperf:239 lib/printers.c:46 msgid "Default Printer" msgstr "Osnovni/primarni tiskalnik" #: confg.gperf:292 lib/options.c:697 #, c-format msgid "invalid variable identifier `%s'" msgstr "neveljavni oznacevalec `%s za spremenljivko" #: confg.gperf:321 #, c-format msgid "obsolete `%s' entry. Ignored" msgstr "nepotrebni vnos `%s'. Ni upostevan" #: lib/encoding.c:1114 lib/encoding.c:1135 msgid "Known Encodings" msgstr "Znano kodiranje" #: lib/faces.c:156 msgid "incomplete knowledge of faces" msgstr "nezadostno poznavanje faces" #: lib/filtdir.c:113 #, c-format msgid "cannot close directory `%s'" msgstr "ne morem zapreti imenik `%s'" #: lib/getnum.c:63 lib/getnum.c:121 lib/getnum.c:153 lib/getnum.c:221 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "neveljaven argument `%s' za `%s'" #: lib/getnum.c:123 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "Veljavni argumenti so cela stevila n tako da: %s\n" #: lib/getnum.c:223 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "Veljavni so argumenti z plavajoco vejico f , tako da: %s\n" #: lib/jobs.c:308 #, c-format msgid "unknown encoding `%s'" msgstr "neznano kodiranje `%s'" #: lib/madir.c:59 msgid "rows first" msgstr "najprej vrstice" #: lib/madir.c:62 msgid "columns first" msgstr "najprej stolpci" #: lib/media.c:173 #, c-format msgid "unknown medium `%s'" msgstr "neznano prenosno sredstvo `%s'" #: lib/media.c:208 lib/media.c:237 msgid "Known Media" msgstr "Znano prenosno sredstvo" #: lib/media.c:211 msgid "Name" msgstr "Ime" #: lib/media.c:212 msgid "dimensions" msgstr "mere" #: lib/metaseq.c:104 lib/metaseq.c:113 #, c-format msgid "Known Variables" msgstr "Znane spremenljivke" #: lib/metaseq.c:162 lib/metaseq.c:531 lib/metaseq.c:548 lib/metaseq.c:608 #: lib/metaseq.c:951 lib/metaseq.c:972 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%s: manjka `%c' za ubezno sekvenco %s%c" #: lib/metaseq.c:288 lib/metaseq.c:300 #, c-format msgid "Printed by %s" msgstr "Natiskano z %s" #: lib/metaseq.c:298 #, c-format msgid "Printed by %s from %s" msgstr "Natiskano z %s iz %s" #: lib/metaseq.c:308 lib/metaseq.c:327 msgid "cannot get current working directory" msgstr "delovni imenik mi ni dostopen" #: lib/metaseq.c:341 lib/metaseq.c:534 lib/metaseq.c:563 lib/metaseq.c:652 #: lib/metaseq.c:954 lib/metaseq.c:987 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s: predolg argument za ubezno sekvenco %s" #: lib/metaseq.c:364 lib/metaseq.c:675 msgid "%b %d, %y" msgstr "%b %d, %y" #: lib/metaseq.c:373 lib/metaseq.c:684 msgid "%A %B %d, %Y" msgstr "%A %B %d, %Y" #: lib/metaseq.c:419 lib/metaseq.c:448 lib/metaseq.c:491 lib/metaseq.c:724 #: lib/metaseq.c:808 lib/metaseq.c:867 lib/metaseq.c:922 lib/metaseq.c:1099 #: lib/metaseq.c:1234 lib/metaseq.c:1246 lib/metaseq.c:1289 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s: neznana `%s' ubezna sekvenca `%c' (%d)" #: lib/metaseq.c:426 lib/metaseq.c:815 #, c-format msgid "Page %d" msgstr "Stran %d" #: lib/metaseq.c:431 lib/metaseq.c:826 #, c-format msgid "Page %d/%c" msgstr "Stran %d/%c" #: lib/metaseq.c:593 lib/metaseq.c:1021 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "%s: neveljaven locevalni znak `%s%c' za ubezno sekvenco `%s'" #: lib/metaseq.c:601 lib/metaseq.c:611 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s: neveljaven argument za ubezno sekvenco %s%c" #: lib/metaseq.c:822 #, c-format msgid "Page %d/%d" msgstr "Stran %d/%d" #: lib/metaseq.c:1266 msgid "output command" msgstr "izhodni ukaz" #: lib/options.c:302 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Poskusi z `%s --help' dobiti vec informacij.\n" #: lib/output.c:466 #, c-format msgid "invalid face `%s'" msgstr "neveljavna oblika `%s'" #: lib/output.c:538 #, c-format msgid "`%s' with no matching `%s'" msgstr "`%s' brez vsebovanega `%s'" #: lib/ppd.c:108 msgid "Known Fonts" msgstr "Znane oblike crk" #: lib/ppd.c:111 msgid "" "\n" " None.\n" msgstr "" "\n" " ne obstaja.\n" #: lib/ppd.c:149 lib/ppd.c:165 msgid "Known PostScript Printer Descriptions" msgstr "Znani opisi PostScript tiskalnikov " #: lib/prange.c:305 lib/prange.c:323 #, c-format msgid "invalid interval `%s'" msgstr "neveljaven interval `%s'" #: lib/printers.c:396 lib/printers.c:413 #, fuzzy, c-format msgid "no command for the `%s' (%s%s)" msgstr "ne obstaja v naprej pripravljen ukaz za neznani tiskalnik `%s'" #: lib/printers.c:429 msgid "sent to the standard output" msgstr "poslano na standardni izhod" #: lib/printers.c:430 msgid "sent to the default printer" msgstr "poslano na primarni tiskalnik" #: lib/printers.c:435 #, c-format msgid "saved into the file `%s'" msgstr "shranjeno v fajl `%s'" #: lib/printers.c:436 #, c-format msgid "sent to the printer `%s'" msgstr "`%s' poslan v tiskanje" #: lib/printers.c:613 lib/printers.c:621 msgid "Known Outputs (Printers, etc.)" msgstr "Znane izhodne enote (Tiskalniki, itd.)" #: lib/prolog.c:98 lib/prolog.c:181 msgid "Known Prologues" msgstr "" "Znan Prologues ( ja, vem, prevod je zelo napacen. Prosim sporocite mi " "PRAVILNEGA. Hvala )" #: lib/prolog.c:579 #, c-format msgid "font %f too big" msgstr "zvrst znaka %f je prevelika" #: lib/psgen.c:662 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "`%s' je binarni fajl, tiskanje je prekinjeno" #: lib/quotearg.c:200 msgid "`" msgstr "" #: lib/quotearg.c:203 msgid "'" msgstr "" #: lib/userdata.c:129 msgid "user" msgstr "uporabnik" #: lib/userdata.c:130 msgid "Unknown User" msgstr "Neznani Uporabnik" #: lib/useropt.c:75 #, c-format msgid "unknown user option `%s'" msgstr "neznan uporabniski izbor `%s'" #: lib/useropt.c:86 lib/useropt.c:97 msgid "Known User Options" msgstr "Pripoznane moznosti" #: lib/xbackupfile.c:105 lib/xmalloc.c:66 msgid "Memory exhausted" msgstr "Spomin je izcrpan" #: lib/xbackupfile.c:240 lib/xbackupfile.c:252 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "ne morem preimenovati fajla `%s' v `%s'" #: lib/xbackupfile.c:255 #, c-format msgid "restored file `%s'" msgstr "obujen fajl `%s'" #: lib/argmatch.c:159 #, fuzzy, c-format msgid "invalid argument %s for `%s'" msgstr "neveljaven argument `%s' za `%s'" #: lib/argmatch.c:160 #, fuzzy, c-format msgid "ambiguous argument %s for `%s'" msgstr "dvoumen argument `%s' za `%s'" #: lib/argmatch.c:178 #, c-format msgid "Valid arguments are:" msgstr "Pripoznane moznosti so" #: lib/error.c:102 msgid "Unknown system error" msgstr "Neprepoznana sistemska napaka" #: lib/getopt.c:675 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: izbira `%s' je dvoumna\n" #: lib/getopt.c:700 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: izbor `--%s' ne dovoljuje argumenta\n" #: lib/getopt.c:705 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: izbor `%c%s' ne dovoljuje argumenta\n" #: lib/getopt.c:723 lib/getopt.c:896 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: izbor `%s' pricakuje argument\n" #: lib/getopt.c:752 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: ne prepoznam izbora `--%s'\n" #: lib/getopt.c:756 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: ne prepoznam izbora `%c%s'\n" #: lib/getopt.c:782 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: neveljaven izbor -- %c\n" #: lib/getopt.c:785 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: neustrezen izbor -- %c\n" #: lib/getopt.c:815 lib/getopt.c:945 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: izbor pricakuje argument -- %c\n" #: lib/getopt.c:862 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: izbira `-W %s' je dvoumna\n" #: lib/getopt.c:880 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: izbira `-W %s' ne dopusca oziroma sprejema 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 and .\n" #~ msgstr "" #~ "Program sta napisala in \n" #~ "S prevodom se je trudil Igor Furlan .\n" #~ msgid "no default command for option `-d'" #~ msgstr "ni vnaprej pripravljenega ukaza za izbor `-d'" #~ msgid " Report translation problems to \n" #~ msgstr "" #~ "Sporoci neustrezne oziroma nevsecne prevode na naslov \n" a2ps-4.14/po/ru.po0000644000175000017500000010475110735337370013251 0ustar mhattamhatta# ìÏËÁÌÉÚÁÃÉÑ a2ps. # Copyright (C) 1999 Free Software Foundation, Inc. # Dmitry S. Sivachenko , 1999. # msgid "" msgstr "" "Project-Id-Version: a2ps 4.12j\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-12-29 11:28+0800\n" "PO-Revision-Date: 2000-01-27 23:28+03:00\n" "Last-Translator: Dmitry S. Sivachenko \n" "Language-Team: Russian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=koi8-r\n" "Content-Transfer-Encoding: 8bit\n" #: src/buffer.c:68 msgid "any type" msgstr "ÐÒÏÉÚ×ÏÌØÎÏÇÏ ÔÉÐÁ" #: src/delegate.c:137 confg.gperf:168 lib/encoding.c:530 lib/encoding.c:576 #: lib/encoding.c:616 lib/output.c:302 lib/pair_ht.c:296 lib/prolog.c:146 #, c-format msgid "missing argument for `%s'" msgstr "ÐÒÏÐÕÝÅÎ ÁÒÇÕÍÅÎÔ ÄÌÑ `%s'" #: src/delegate.c:260 lib/routines.c:160 lib/xbackupfile.c:248 #: lib/xbackupfile.c:276 lib/xbackupfile.c:284 #, c-format msgid "cannot create file `%s'" msgstr "ÎÅ ÕÄÁÅÔÓÑ ÓÏÚÄÁÔØ ÆÁÊÌ `%s'" #: src/delegate.c:269 src/select.c:193 lib/routines.c:190 lib/routines.c:196 #, c-format msgid "cannot open a pipe on `%s'" msgstr "ÎÅ ÕÄÁÅÔÓÑ ÏÔËÒÙÔØ ËÁÎÁÌ ÎÁ `%s'" #: src/delegate.c:389 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "äÅÌÅÇÉÒÏ×ÁÎÉÅ `%s', ÏÔ %s Ë %s\n" #: src/delegate.c:408 src/delegate.c:430 msgid "Applications configured for delegation" msgstr "ðÒÉÌÏÖÅÎÉÑ, ÓËÏÎÆÉÇÕÒÉÒÏ×ÁÎÎÙÅ ÄÌÑ ÄÅÌÅÇÉÒÏ×ÁÎÉÑ" #: src/generate.c:88 #, c-format msgid "`%s' is a directory" msgstr "`%s' Ñ×ÌÑÅÔÓÑ ËÁÔÁÌÏÇÏÍ" #: src/generate.c:96 src/main.c:560 src/main.c:582 confg.gperf:192 #: confg.gperf:355 lib/routines.c:154 #, c-format msgid "cannot open file `%s'" msgstr "ÎÅ ÕÄÁÅÔÓÑ ÏÔËÒÙÔØ ÆÁÊÌ `%s'" #: src/generate.c:101 lib/xbackupfile.c:224 #, c-format msgid "cannot get informations on file `%s'" msgstr "ÎÅ ÕÄÁÅÔÓÑ ÐÏÌÕÞÉÔØ ÉÎÆÏÒÍÁÃÉÀ Ï ÆÁÊÌÅ `%s'" #: src/generate.c:168 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): 1 ÓÔÒÁÎÉÃÁ ÎÁ 1 ÌÉÓÔÅ]\n" #: src/generate.c:174 #, c-format msgid "[%s (%s): %d pages on 1 sheet]\n" msgstr "[%s (%s): %d ÓÔÒÁÎÉÃÙ ÎÁ 1 ÌÉÓÔÅ]\n" #: src/generate.c:181 #, c-format msgid "[%s (%s): %d pages on %d sheets]\n" msgstr "[%s (%s): ÓÔÒÁÎÉÃ: %d, ÌÉÓÔÏ×: %d\n" #: src/generate.c:208 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[÷ÓÅÇÏ: 1 ÓÔÒÁÎÉÃÁ ÎÁ 1 ÌÉÓÔÅ] %s\n" #: src/generate.c:212 #, c-format msgid "[Total: %d pages on 1 sheet] %s\n" msgstr "[÷ÓÅÇÏ: %d ÓÔÒÁÎÉÃÙ ÎÁ 1 ÌÉÓÔÅ] %s\n" #: src/generate.c:217 #, c-format msgid "[Total: %d pages on %d sheets] %s\n" msgstr "[÷ÓÅÇÏ: ÓÔÒÁÎÉÃ: %d, ÌÉÓÔÏ×: %d] %s\n" #: src/generate.c:226 msgid "[1 line wrapped]\n" msgstr "[1 ÓÔÒÏËÁ ÕÓÅÞÅÎÁ]\n" #: src/generate.c:229 #, c-format msgid "[%d lines wrapped]\n" msgstr "[%d ÓÔÒÏË ÕÓÅÞÅÎÏ]\n" #: src/generate.c:242 msgid "[No output produced]\n" msgstr "[÷ÙÈÏÄÎÏÊ ÐÏÔÏË ÐÕÓÔ]\n" #: src/generate.c:314 #, c-format msgid "%s, delegated to %s" msgstr "%s, ÄÅÌÅÇÉÒÏ×ÁÎ %s" #: src/generate.c:322 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): ÚÁ×ÅÒÛÉÌÓÑ Ó ÏÛÉÂËÏÊ. ðÒÏÉÇÎÏÒÉÒÏ×ÁÎÏ]\n" #: src/generate.c:330 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (ÎÅÐÅÞÁÔÁÅÍÙÊ): ÉÇÎÏÒÉÒÏ×ÁÎ]\n" #: src/generate.c:339 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (Ä×ÏÉÞÎÙÊ): ÉÇÎÏÒÉÒÏ×ÁÎ]\n" #: src/generate.c:360 msgid "plain" msgstr "ÐÒÏÓÔÏÊ" #: lexssh.l:348 msgid "end-of-line in string constant" msgstr "ËÏÎÅà ÓÔÒÏËÉ ×ÎÕÔÒÉ ÓÔÒÏËÏ×ÏÊ ËÏÎÓÔÁÎÔÙ" #: lexssh.l:415 src/sheets-map.l:153 src/sheets-map.l:192 #, c-format msgid "end of line inside a %s" msgstr "ËÏÎÅà ÓÔÒÏËÉ × %s" #: src/main.c:203 #, c-format msgid "received signal %d: %s" msgstr "ÐÏÌÕÞÅÎ ÓÉÇÎÁÌ %d: %s" #: src/main.c:242 msgid "heavy" msgstr "ÖÉÒÎÙÊ" #: src/main.c:246 msgid "normal" msgstr "ÏÂÙÞÎÙÊ" #: src/main.c:250 msgid "none" msgstr "ÍÉÎÉÍÁÌØÎÙÊ" #: src/main.c:324 src/main.c:328 msgid "yes" msgstr "ÄÁ" #: src/main.c:325 src/main.c:328 src/main.c:369 msgid "no" msgstr "ÎÅÔ" #: src/main.c:335 #, c-format msgid "Configuration status of %s %s\n" msgstr "ðÁÒÁÍÅÔÒÙ ËÏÎÆÉÇÕÒÁÃÉÉ %s %s\n" #: src/main.c:339 src/main.c:697 msgid "Sheets:\n" msgstr "ìÉÓÔÙ:\n" #: src/main.c:340 #, 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" msgstr "" " ÂÕÍÁÇÁ ÐÏ ÕÍÏÌÞÁÎÉÀ = %s%s, %s\n" " ÒÁÓËÌÁÄËÁ ÌÉÓÔÁ = %d x %d, %s\n" " ÒÁÍËÉ = %s\n" " ×ÙÒÁ×ÎÉ×ÁÎÉÅ ÆÁÊÌÁ = %s\n" " ×ÎÕÔÒÅÎÎÑÑ ÇÒÁÎÉÃÁ = %d\n" #: src/main.c:349 msgid "portrait" msgstr "×ÅÒÔÉËÁÌØÎÏ" #: src/main.c:349 msgid "landscape" msgstr "ÇÏÒÉÚÏÎÔÁÌØÎÏ" #: src/main.c:358 #, c-format msgid "%d characters per line" msgstr "%d ÚÎÁËÏ× × ÓÔÒÏËÅ" #: src/main.c:361 #, c-format msgid "%d lines per page" msgstr "%d ÓÔÒÏË ÎÁ ÓÔÒÁÎÉÃÅ" #: src/main.c:364 #, c-format msgid "font size is %gpt" msgstr "ÒÁÚÍÅÒ ÛÒÉÆÔÁ ÒÁ×ÅÎ %gpt" #: src/main.c:373 msgid "each line" msgstr "ËÁÖÄÁÑ ÓÔÒÏËÁ" #: src/main.c:377 #, c-format msgid "each %d lines" msgstr "ËÁÖÄÙÅ %d ÓÔÒÏË" #: src/main.c:380 src/main.c:718 msgid "Virtual pages:\n" msgstr "÷ÉÒÔÕÁÌØÎÙÅ ÓÔÒÁÎÉÃÙ:\n" #: src/main.c:381 #, c-format msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %d\n" " non printable format = %s\n" msgstr "" " ÎÏÍÅÒÁ ÓÔÒÏË = %s\n" " ÆÏÒÍÁÔ = %s\n" " ÛÁÇ ÔÁÂÕÌÑÃÉÉ = %d\n" " ÎÅÐÅÞÁÔÁÅÍÙÊ ÆÏÒÍÁÔ = %s\n" #: src/main.c:392 msgid "Headers:\n" msgstr "úÁÇÏÌÏ×ËÉ:\n" #: src/main.c:393 #, 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:412 src/main.c:747 msgid "Input:\n" msgstr "÷ÈÏÄÎÙÅ ÄÁÎÎÙÅ:\n" #: src/main.c:413 #, 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:438 src/main.c:504 msgid "selected automatically" msgstr "×ÙÂÒÁÎ Á×ÔÏÍÁÔÉÞÅÓËÉ" #: src/main.c:441 src/main.c:766 msgid "Pretty-printing:\n" msgstr "óÔÒÕËÔÕÒÎÁÑ ÐÅÞÁÔØ:\n" #: src/main.c:442 #, 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:462 msgid "never make backups" msgstr "ÎÉËÏÇÄÁ ÎÅ ÓÏÚÄÁ×ÁÔØ ÒÅÚÅÒ×ÎÙÅ ËÏÐÉÉ" #: src/main.c:466 msgid "simple backups of every file" msgstr "ÐÒÏÓÔÏÅ ÒÅÚÅÒ×ÎÏÅ ËÏÐÉÒÏ×ÁÎÉÅ ËÁÖÄÏÇÏ ÆÁÊÌÁ" #: src/main.c:471 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" "îÕÍÅÒÏ×ÁÎÎÙÅ ËÏÐÉÉ ÄÌÑ ÕÖÅ ÐÒÏÎÕÍÅÒÏ×ÁÎÎÙÈ ÆÁÊÌÏ×,\n" " É ÐÒÏÓÔÏÅ ÒÅÚÅÒ×ÎÏÅ ËÏÐÉÒÏ×ÁÎÉÅ ÄÌÑ ÏÓÔÁÌØÎÙÈ" #: src/main.c:476 msgid "numbered backups of every file" msgstr "ÎÕÍÅÒÏ×ÁÎÎÙÅ ÒÅÚÅÒ×ÎÙÅ ËÏÐÉÉ ËÁÖÄÏÇÏ ÆÁÊÌÁ" #: src/main.c:480 src/main.c:775 msgid "Output:\n" msgstr "÷ÙÈÏÄÎÙÅ ÄÁÎÎÙÅ:\n" #: src/main.c:481 #, c-format msgid "" " destination = %s\n" " version control = %s\n" " backup suffix = %s\n" msgstr "" " ÐÒÉÅÍÎÉË = %s\n" " ËÏÎÔÒÏÌØ ×ÅÒÓÉÊ = %s\n" " ÓÕÆÆÉËÓ ÒÅÚÅÒ×ÎÏÊ ËÏÐÉÉ = %s\n" #: src/main.c:494 src/main.c:786 msgid "PostScript:\n" msgstr "PostScript:\n" #: src/main.c:495 #, 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 = " msgstr "" " ÉÄÅÎÔÉÆÉËÁÔÏÒ ×ÅÒÓÉÉ = %s\n" " ïÐÉÓÁÎÉÅ ÐÒÉÎÔÅÒÁ (ïð) = %s\n" " ïð ÐÏ ÕÍÏÌÞÁÎÉÀ = %s\n" " ÆÏÒÍÁÔ ÍÅÔËÉ ÓÔÒÁÎÉÃÙ = %s\n" " ËÏÌÉÞÅÓÔ×Ï ËÏÐÉÊ = %d\n" " ÞÉÓÌÏ ÓÔÏÒÏÎ ÎÁ ÌÉÓÔÅ = %s\n" " ÏÐÒÅÄÅÌÅÎÉÑ ÕÓÔÒÏÊÓÔ×Á ÓÔÒÁÎÉÃÙ = " #: src/main.c:515 #, c-format msgid " statusdict definitions = " msgstr " ÏÐÒÅÄÅÌÅÎÉÑ statusdict = " #: src/main.c:518 #, c-format msgid " page prefeed = %s\n" msgstr " ÐÒÅÄ×ÁÒÉÔÅÌØÎÁÑ ÐÏÄÁÞÁ ÓÔÒÁÎÉÃÙ = %s\n" #: src/main.c:527 msgid "Internals:\n" msgstr "÷ÎÕÔÒÅÎÎÉÅ ÐÁÒÁÍÅÔÒÙ:\n" #: src/main.c:528 #, c-format msgid "" " verbosity level = %d\n" " file command = %s\n" " library path = \n" msgstr "" " ÕÒÏ×ÅÎØ ÐÏÄÒÏÂÎÏÓÔÉ = %d\n" " ËÏÍÁÎÄÁ file = %s\n" " ÂÉÂÌÉÏÔÅË ÐÕÔÅÊ = \n" #: src/main.c:653 #, 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" msgstr "" "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ëìàþé]... æáêì...\n" "\n" "ðÒÅÏÂÒÁÚÏ×ÁÔØ æáêì(Ù) ÉÌÉ ÓÔÁÎÄÁÒÔÎÙÊ ×ÈÏÄ × PostScript.\n" "\n" "áÒÇÕÍÅÎÔÙ, Ñ×ÌÑÀÝÉÅÓÑ ÏÂÑÚÁÔÅÌØÎÙÍÉ ÄÌÑ ÄÌÉÎÎÙÈ ËÌÀÞÅÊ, ÔÁËÖÅ Ñ×ÌÑÀÔÓÑ\n" "ÏÂÑÚÁÔÅÌØÎÙÍÉ ÄÌÑ ËÏÒÏÔËÉÈ. äÌÉÎÎÙÅ ËÌÀÞÉ, ÏÔÍÅÞÅÎÎÙÅ *, ÔÒÅÂÕÀÔ × " "ËÁÞÅÓÔ×Å\n" "ÁÒÇÕÍÅÎÔÁ yes ÉÌÉ no, ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÊ ËÏÒÏÔËÉÊ ËÌÀÞ ÔÒÁËÔÕÅÔÓÑ ËÁË `yes'.\n" #: src/main.c:668 msgid "Tasks:\n" msgstr "úÁÄÁÞÉ:\n" #: src/main.c:669 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" 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:680 msgid "" "After having performed the task, exit successfully. Detailed lists may\n" "provide additional help on specific features.\n" msgstr "" "ðÏÓÌÅ ×ÙÐÏÌÎÅÎÉÑ ÚÁÄÁÞÉ, ÕÓÐÅÛÎÏ ÚÁ×ÅÒÛÉÔØÓÑ. ðÏÄÒÏÂÎÙÊ ÓÐÉÓÏË ÍÏÖÅÔ\n" "ÐÒÅÄÏÓÔÁ×ÉÔØ ÄÏÐÏÌÎÉÔÅÌØÎÕÀ ÐÏÍÏÝØ ÐÏ ËÏÎËÒÅÔÎÙÍ ×ÏÚÍÏÖÎÏÓÔÑÍ.\n" #: src/main.c:688 msgid "Global:\n" msgstr "çÌÏÂÁÌØÎÙÅ:\n" #: src/main.c:689 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:698 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" 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:711 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:719 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:730 msgid "Headings:\n" msgstr "úÁÇÏÌÏ×ËÉ:\n" #: src/main.c:732 #, 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:743 msgid "The TEXTs may use special escapes.\n" msgstr "" "ôåëóôÙ ÍÏÇÕÔ ÉÓÐÏÌØÚÏ×ÁÔØ ÓÐÅÃÉÁÌØÎÙÅ ÜËÒÁÎÉÒÕÀÝÉÅ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ.\n" #: src/main.c:748 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:760 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:767 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:776 #, 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" " ÎÁÐÒÁ×ÉÔØ ×Ù×ÏÄ ÎÁ stdout.\n" " --version-control=óìï÷ï ÐÅÒÅËÒÙ×ÁÅÔ ÎÏÍÅÒ ÔÅËÕÝÅÊ ×ÅÒÓÉÉ\n" " --suffix=óõææéëó ÐÅÒÅËÒÙ×ÁÅÔ ÓÕÆÆÉËÓ ÒÅÚÅÒ×ÎÏÊ ËÏÐÉÉ\n" " -P, --printer=éíñ ÎÁÐÒÁ×ÉÔØ ×Ù×ÏÄ ÎÁ ÐÒÉÎÔÅÒ éíñ\n" " -d ÎÁÐÒÁ×ÉÔØ ×Ù×ÏÄ ÎÁ ÐÒÉÎÔÅÒ ÐÏ ÕÍÏÌÞÁÎÉÀ\n" #: src/main.c:787 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:801 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" 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:822 #, fuzzy msgid "" "News, updates and documentation: visit http://www.gnu.org/software/a2ps/.\n" msgstr "" "îÏ×ÏÓÔÉ, ÏÂÎÏ×ÌÅÎÉÑ É ÄÏËÕÍÅÎÔÁÃÉÀ ÍÏÖÎÏ ÎÁÊÔÉ ÚÄÅÓØ: \n" "http://www.inf.enst.fr/~demaille/a2ps/.\n" #: src/main.c:824 msgid "Report bugs to .\n" msgstr "ï ÏÛÉÂËÁÈ × ÐÒÏÇÒÁÍÍÅ ÓÏÏÂÝÁÊÔÅ ÐÏ ÁÄÒÅÓÕ .\n" #: src/main.c:942 #, 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-93 Miguel Santana\n" "Copyright (c) 1995-99 Akim Demaille, Miguel Santana" #: src/main.c:1173 msgid "Table of Content" msgstr "óÏÄÅÒÖÁÎÉÅ" #: src/parsessh.y:236 #, c-format msgid "cannot process `%s' which requires a2ps version %s" msgstr "ÎÅ ÕÄÁÅÔÓÑ ÏÂÒÁÂÏÔÁÔØ `%s', ËÏÔÏÒÙÊ ÔÒÅÂÕÅÔ a2ps ×ÅÒÓÉÉ %s" #: src/sheets-map.l:111 #, c-format msgid "unexpected character `%c'" msgstr "ÎÅÏÖÉÄÁÎÎÙÊ ÚÎÁË `%c'" #: src/sheets-map.l:211 lexppd.l:211 msgid "too many includes" msgstr "ÓÌÉÛËÏÍ ÍÎÏÇÏ ×ËÌÀÞÅÎÉÊ" #: src/sheets-map.l:296 src/sheets-map.l:303 #, c-format msgid "no key defined for `%s'" msgstr "ÎÅ ÏÐÒÅÄÅÌÅÎ ËÌÀÞ ÄÌÑ `%s'" #: src/select.c:122 src/ssheet.c:866 fonts.l:838 fonts.l:840 fonts.l:842 #: lib/pathwalk.c:328 lib/pathwalk.c:414 #, c-format msgid "cannot find file `%s'" msgstr "ÎÅ ÕÄÁÅÔÓÑ ÎÁÊÔÉ ÆÁÊÌ `%s'" #: src/select.c:124 msgid "automatic style selection cancelled" msgstr "ÒÅÖÉÍ Á×ÔÏÍÁÔÉÞÅÓËÏÇÏ ×ÙÂÏÒÁ ÓÔÉÌÅÊ ÏÔÍÅÎÅÎ" #: src/ssheet.c:295 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "ÎÅ ÕÄÁÅÔÓÑ ÓËÏÍÐÉÌÉÒÏ×ÁÔØ ÒÅÇÕÌÑÒÎÏÅ ×ÙÒÁÖÅÎÉÅ `%s': %s" #: src/ssheet.c:974 src/ssheet.c:995 msgid "Known Style Sheets" msgstr "éÚ×ÅÓÔÎÙÅ ÓÔÉÌÅ×ÙÅ ÎÁÂÏÒÙ" #: src/ssheet.c:1461 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "ÎÅ ÕÄÁÅÔÓÑ ÎÁÊÔÉ ÓÔÉÌÅ×ÏÊ ÎÁÂÏÒ `%s': ÉÓÐÏÌØÚÕÅÔÓÑ ÐÒÏÓÔÏÊ ÓÔÉÌØ" #: src/sshread.c:453 #, c-format msgid "unknown encoding `%s', ignored" msgstr "ÎÅÉÚ×ÅÓÔÎÁÑ ËÏÄÉÒÏ×ËÁ `%s', ÉÇÎÏÒÉÒÏ×ÁÎÁ" #: src/version-etc.c:38 msgid "Copyright (C) 1999 Free Software Foundation, Inc." msgstr "Copyright (C) 1999 Free Software Foundation, Inc." #: src/version-etc.c:60 #, c-format msgid "Written by %s.\n" msgstr "îÁÐÉÓÁÌ %s.\n" #: src/version-etc.c:66 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" #: src/versions.c:133 #, c-format msgid "invalid version number `%s'" msgstr "ÎÅ×ÅÒÎÙÊ ÎÏÍÅÒ ×ÅÒÓÉÉ `%s'" #: lib/caret.c:43 msgid "space (i.e., ` ')" msgstr "ÐÒÏÂÅÌ (Ô.Å. ` ')" #: lib/caret.c:45 msgid "octal (i.e., `\\001' etc.)" msgstr "×ÏÓØÍÅÒÉÞÎÏÅ ÞÉÓÌÏ (Ô.Å. `\\001' É Ô.Ä.)" #: lib/caret.c:47 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "ÛÅÓÔÎÁÄÃÁÔÅÒÉÞÎÏÅ ÞÉÓÌÏ (Ô.Å. `\\x0a' É Ô.Ä.)" #: lib/caret.c:49 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "ÕÐÒÁ×ÌÑÀÝÉÅ ÓÉÍ×ÏÌÙ (Ô.Å. `^C', `M-^C' É Ô.Ä.)" #: lib/caret.c:51 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "emacs (Ô.Å. `C-c', `M-C-c' É Ô.Ä.)" #: lib/caret.c:53 msgid "question-mark (i.e., `?')" msgstr "ÚÎÁË ×ÏÐÒÏÓÁ (Ô.Å. `?')" #: lib/closeout.c:71 lib/closeout.c:73 msgid "write error" msgstr "ÏÛÉÂËÁ ÚÁÐÉÓÉ" #: confg.gperf:157 lib/encoding.c:638 #, c-format msgid "invalid option `%s'" msgstr "ÎÅ×ÅÒÎÙÊ ËÌÀÞ `%s'" #: confg.gperf:224 confg.gperf:231 confg.gperf:238 #, c-format msgid "invalid definition for printer `%s': %s" msgstr "ÎÅ×ÅÒÎÏÅ ÏÐÒÅÄÅÌÅÎÉÅ ÐÒÉÎÔÅÒÁ `%s': %s" #: confg.gperf:229 confg.gperf:232 lib/printers.c:47 msgid "Unknown Printer" msgstr "îÅÉÚ×ÅÓÔÎÙÊ ÐÒÉÎÔÅÒ" #: confg.gperf:236 confg.gperf:239 lib/printers.c:46 msgid "Default Printer" msgstr "ðÒÉÎÔÅÒ ÐÏ ÕÍÏÌÞÁÎÉÀ" #: confg.gperf:292 lib/options.c:697 #, c-format msgid "invalid variable identifier `%s'" msgstr "ÎÅ×ÅÒÎÙÊ ÉÄÅÎÔÉÆÉËÁÔÏÒ ÐÅÒÅÍÅÎÎÏÊ `%s'" #: confg.gperf:321 #, c-format msgid "obsolete `%s' entry. Ignored" msgstr "ÕÓÔÁÒÅ×ÛÁÑ ÚÁÐÉÓØ `%s'. éÇÎÏÒÉÒÏ×ÁÎÁ" #: lib/encoding.c:1114 lib/encoding.c:1135 msgid "Known Encodings" msgstr "éÚ×ÅÓÔÎÙÅ ËÏÄÉÒÏ×ËÉ" #: lib/faces.c:156 msgid "incomplete knowledge of faces" msgstr "ÎÅÐÏÌÎÁÑ ÉÎÆÏÒÍÁÃÉÑ Ï ÎÁÞÅÒÔÁÎÉÑÈ" #: lib/filtdir.c:113 #, c-format msgid "cannot close directory `%s'" msgstr "ÎÅ ÕÄÁÅÔÓÑ ÚÁËÒÙÔØ ËÁÔÁÌÏÇ `%s'" #: lib/getnum.c:63 lib/getnum.c:121 lib/getnum.c:153 lib/getnum.c:221 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "ÎÅ×ÅÒÎÙÊ ÁÒÇÕÍÅÎÔ `%s' ÄÌÑ `%s'" #: lib/getnum.c:123 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "ðÒÁ×ÉÌØÎÙÍÉ ÁÒÇÕÍÅÎÔÁÍÉ Ñ×ÌÑÀÔÓÑ ÃÅÌÙÅ ÞÉÓÌÁ n, ÔÁËÉÅ ËÁË: %s\n" #: lib/getnum.c:223 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "" "ðÒÁ×ÉÌØÎÙÍÉ ÁÒÇÕÍÅÎÔÁÍÉ Ñ×ÌÑÀÔÓÑ ÞÉÓÌÁ Ó ÐÌÁ×ÁÀÝÅÊ ÔÏÞËÏÊ f, ÔÁËÉÅ ËÁË: %s\n" #: lib/jobs.c:308 #, c-format msgid "unknown encoding `%s'" msgstr "ÎÅÉÚ×ÅÓÔÎÁÑ ËÏÄÉÒÏ×ËÁ `%s'" #: lib/madir.c:59 msgid "rows first" msgstr "ÓÎÁÞÁÌÁ ÓÔÒÏËÉ" #: lib/madir.c:62 msgid "columns first" msgstr "ÓÎÁÞÁÌÁ ÓÔÏÌÂÃÙ" #: lib/media.c:173 #, c-format msgid "unknown medium `%s'" msgstr "ÎÅÉÚ×ÅÓÔÎÙÊ ÎÏÓÉÔÅÌØ `%s'" #: lib/media.c:208 lib/media.c:237 msgid "Known Media" msgstr "éÚ×ÅÓÔÎÙÅ ÎÏÓÉÔÅÌÉ" #: lib/media.c:211 msgid "Name" msgstr "éÍÑ" #: lib/media.c:212 msgid "dimensions" msgstr "ÒÁÚÍÅÒÙ" #: lib/metaseq.c:104 lib/metaseq.c:113 #, c-format msgid "Known Variables" msgstr "éÚ×ÅÓÔÎÙÅ ÐÅÒÅÍÅÎÎÙÅ" #: lib/metaseq.c:162 lib/metaseq.c:531 lib/metaseq.c:548 lib/metaseq.c:608 #: lib/metaseq.c:951 lib/metaseq.c:972 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%s: ÐÒÏÐÕÝÅÎÏ `%c' ÄÌÑ ÜËÒÁÎÉÒÕÀÝÅÊ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ %s%c" #: lib/metaseq.c:288 lib/metaseq.c:300 #, c-format msgid "Printed by %s" msgstr "ðÅÞÁÔÁÌ %s" #: lib/metaseq.c:298 #, c-format msgid "Printed by %s from %s" msgstr "ðÅÞÁÔÁÌ %s Ó %s" #: lib/metaseq.c:308 lib/metaseq.c:327 msgid "cannot get current working directory" msgstr "ÎÅ ÕÄÁÅÔÓÑ ÐÏÌÕÞÉÔØ ÉÍÑ ÔÅËÕÝÅÇÏ ÒÁÂÏÞÅÇÏ ËÁÔÁÌÏÇÁ" #: lib/metaseq.c:341 lib/metaseq.c:534 lib/metaseq.c:563 lib/metaseq.c:652 #: lib/metaseq.c:954 lib/metaseq.c:987 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s: ÓÌÉÛËÏÍ ÄÌÉÎÎÙÊ ÁÒÇÕÍÅÎÔ ÄÌÑ ÜËÒÁÎÉÒÕÀÝÅÊ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ %s" #: lib/metaseq.c:364 lib/metaseq.c:675 msgid "%b %d, %y" msgstr "%d %b %y" #: lib/metaseq.c:373 lib/metaseq.c:684 msgid "%A %B %d, %Y" msgstr "%d %B %Y, %A" #: lib/metaseq.c:419 lib/metaseq.c:448 lib/metaseq.c:491 lib/metaseq.c:724 #: lib/metaseq.c:808 lib/metaseq.c:867 lib/metaseq.c:922 lib/metaseq.c:1099 #: lib/metaseq.c:1234 lib/metaseq.c:1246 lib/metaseq.c:1289 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s: ÎÅÉÚ×ÅÓÔÎÙÊ `%s' ËÏÄ ÜËÒÁÎÉÒÕÀÝÅÊ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ `%c' (%d)" #: lib/metaseq.c:426 lib/metaseq.c:815 #, c-format msgid "Page %d" msgstr "óÔÒÁÎÉÃÁ %d" #: lib/metaseq.c:431 lib/metaseq.c:826 #, c-format msgid "Page %d/%c" msgstr "óÔÒÁÎÉÃÁ %d/%c" #: lib/metaseq.c:593 lib/metaseq.c:1021 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "" "%s: ÎÅ×ÅÒÎÙÊ ÒÁÚÄÅÌÉÔÅÌØ `%s%c' ÄÌÑ ÜËÒÁÎÉÒÕÀÝÅÊ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ `%s'" #: lib/metaseq.c:601 lib/metaseq.c:611 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s: ÎÅ×ÅÒÎÙÊ ÁÒÇÕÍÅÎÔ ÄÌÑ ÜËÒÁÎÉÒÕÀÝÅÊ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ %s%c" #: lib/metaseq.c:822 #, c-format msgid "Page %d/%d" msgstr "óÔÒÁÎÉÃÁ %d/%d" #: lib/metaseq.c:1266 msgid "output command" msgstr "ËÏÍÁÎÄÁ ×Ù×ÏÄÁ" #: lib/options.c:302 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "ðÏÐÒÏÂÕÊÔÅ `%s --help' ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÄÏÐÏÌÎÉÔÅÌØÎÏÊ ÉÎÆÏÒÍÁÃÉÉ.\n" #: lib/output.c:466 #, c-format msgid "invalid face `%s'" msgstr "ÎÅ×ÅÒÎÏÅ ÎÁÞÅÒÔÁÎÉÅ `%s'" #: lib/output.c:538 #, c-format msgid "`%s' with no matching `%s'" msgstr "`%s' ÎÅ ÉÍÅÅÔ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÊ `%s'" #: lib/ppd.c:108 msgid "Known Fonts" msgstr "éÚ×ÅÓÔÎÙÅ ÛÒÉÆÔÙ" #: lib/ppd.c:111 msgid "" "\n" " None.\n" msgstr "" "\n" " ðÕÓÔÏ.\n" #: lib/ppd.c:149 lib/ppd.c:165 msgid "Known PostScript Printer Descriptions" msgstr "éÚ×ÅÓÔÎÙÅ ÏÐÉÓÁÎÉÑ PostScript-ÐÒÉÎÔÅÒÁ" #: lib/prange.c:305 lib/prange.c:323 #, c-format msgid "invalid interval `%s'" msgstr "ÎÅÄÏÐÕÓÔÉÍÙÊ ÉÎÔÅÒ×ÁÌ `%s'" #: lib/printers.c:396 lib/printers.c:413 #, c-format msgid "no command for the `%s' (%s%s)" msgstr "ÎÅÔ ËÏÍÁÎÄÙ ÄÌÑ `%s' (%s%s)" #: lib/printers.c:429 msgid "sent to the standard output" msgstr "ÏÔÐÒÁ×ÌÅÎ ÎÁ ÓÔÁÎÄÁÒÔÎÙÊ ×Ù×ÏÄ" #: lib/printers.c:430 msgid "sent to the default printer" msgstr "ÏÔÐÒÁ×ÌÅÎ ÎÁ ÐÒÉÎÔÅÒ ÐÏ ÕÍÏÌÞÁÎÉÀ" #: lib/printers.c:435 #, c-format msgid "saved into the file `%s'" msgstr "ÓÏÈÒÁÎÅÎ × ÆÁÊÌ `%s'" #: lib/printers.c:436 #, c-format msgid "sent to the printer `%s'" msgstr "ÏÔÐÒÁ×ÌÅÎ ÎÁ ÐÒÉÎÔÅÒ `%s'" #: lib/printers.c:613 lib/printers.c:621 msgid "Known Outputs (Printers, etc.)" msgstr "éÚ×ÅÓÔÎÙÅ ÕÓÔÒÏÊÓÔ×Á ×Ù×ÏÄÁ (ÐÒÉÎÔÅÒÙ É Ô.Ä.)" #: lib/prolog.c:98 lib/prolog.c:181 msgid "Known Prologues" msgstr "éÚ×ÅÓÔÎÙÅ ××ÏÄÎÙÅ ÞÁÓÔÉ" #: lib/prolog.c:579 #, c-format msgid "font %f too big" msgstr "ÛÒÉÆÔ %f ÓÌÉÛËÏÍ ÂÏÌØÛÏÊ" #: lib/psgen.c:662 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "`%s' Ñ×ÌÑÅÔÓÑ Ä×ÏÉÞÎÙÍ ÆÁÊÌÏÍ, ÐÅÞÁÔØ ÐÒÅÒ×ÁÎÁ" #: lib/quotearg.c:200 msgid "`" msgstr "`" #: lib/quotearg.c:203 msgid "'" msgstr "'" #: lib/userdata.c:129 msgid "user" msgstr "ÐÏÌØÚÏ×ÁÔÅÌØ" #: lib/userdata.c:130 msgid "Unknown User" msgstr "îÅÉÚ×ÅÓÔÎÙÊ ÐÏÌØÚÏ×ÁÔÅÌØ" #: lib/useropt.c:75 #, c-format msgid "unknown user option `%s'" msgstr "ÎÅÉÚ×ÅÓÔÎÙÊ ÐÏÌØÚÏ×ÁÔÅÌØÓËÉÊ ËÌÀÞ `%s'" #: lib/useropt.c:86 lib/useropt.c:97 msgid "Known User Options" msgstr "éÚ×ÅÓÔÎÙÅ ÐÏÌØÚÏ×ÁÔÅÌØÓËÉÅ ËÌÀÞÉ" #: lib/xbackupfile.c:105 lib/xmalloc.c:66 msgid "Memory exhausted" msgstr "ðÁÍÑÔØ ÉÓÞÅÒÐÁÎÁ" #: lib/xbackupfile.c:240 lib/xbackupfile.c:252 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "ÎÅ ÕÄÁÅÔÓÑ ÐÅÒÅÉÍÅÎÏ×ÁÔØ ÆÁÊÌ `%s' × `%s'" #: lib/xbackupfile.c:255 #, c-format msgid "restored file `%s'" msgstr "ÆÁÊÌ `%s' ×ÏÓÓÔÁÎÏ×ÌÅÎ" #: lib/argmatch.c:159 #, c-format msgid "invalid argument %s for `%s'" msgstr "ÎÅ×ÅÒÎÙÊ ÁÒÇÕÍÅÎÔ %s ÄÌÑ `%s'" #: lib/argmatch.c:160 #, c-format msgid "ambiguous argument %s for `%s'" msgstr "ÎÅÏÄÎÏÚÎÁÞÎÙÊ ÁÒÇÕÍÅÎÔ %s ÄÌÑ `%s'" #: lib/argmatch.c:178 #, c-format msgid "Valid arguments are:" msgstr "ðÒÁ×ÉÌØÎÙÅ ÁÒÇÕÍÅÎÔÙ:" #: lib/error.c:102 msgid "Unknown system error" msgstr "îÅÉÚ×ÅÓÔÎÁÑ ÓÉÓÔÅÍÎÁÑ ÏÛÉÂËÁ" #: lib/getopt.c:675 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: ÎÅÏÄÎÏÚÎÁÞÎÙÊ ËÌÀÞ `%s'\n" #: lib/getopt.c:700 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: ËÌÀÞ `--%s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÂÅÚ ÁÒÇÕÍÅÎÔÁ\n" #: lib/getopt.c:705 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: ËÌÀÞ `%c%s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÂÅÚ ÁÒÇÕÍÅÎÔÁ\n" #: lib/getopt.c:723 lib/getopt.c:896 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: ËÌÀÞ `%s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ Ó ÁÒÇÕÍÅÎÔÏÍ\n" #: lib/getopt.c:752 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: ÎÅÉÚ×ÅÓÔÎÙÊ ËÌÀÞ `--%s'\n" #: lib/getopt.c:756 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: ÎÅÉÚ×ÅÓÔÎÙÊ ËÌÀÞ `%c%s'\n" #: lib/getopt.c:782 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: ÎÅÄÏÐÕÓÔÉÍÙÊ ËÌÀÞ -- %c\n" #: lib/getopt.c:785 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: ÎÅ×ÅÒÎÙÊ ËÌÀÞ -- %c\n" #: lib/getopt.c:815 lib/getopt.c:945 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: ËÌÀÞ ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ Ó ÁÒÇÕÍÅÎÔÏÍ -- %c\n" #: lib/getopt.c:862 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: ÎÅÏÄÎÏÚÎÁÞÎÙÊ ËÌÀÞ `-W %s'\n" #: lib/getopt.c:880 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: ËÌÀÞ `-W %s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÂÅÚ ÁÒÇÕÍÅÎÔÁ\n" a2ps-4.14/po/boldquot.sed0000644000175000017500000000033110735337263014577 0ustar mhattamhattas/"\([^"]*\)"/“\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.14/po/da.gmo0000644000175000017500000000127610735337365013355 0ustar mhattamhattaÞ•,<P—Q6é This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Project-Id-Version: a2ps 4.10.3 Report-Msgid-Bugs-To: POT-Creation-Date: 2007-12-29 11:28+0800 PO-Revision-Date: 1998-06-18 12:00+02:00 Last-Translator: full name Language-Team: Danish MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8-bit Dette er fri software; se kopieringsbetingelserne i kildeteksten. Der gives INGEN garanti; end ikke for SALGBARHED eller ANVENDELIGHED TIL ET GIVET FORMÅL. a2ps-4.14/po/Makevars0000644000175000017500000000207307535137114013747 0ustar mhattamhatta# Makefile variables for PO directory in any package using GNU gettext. # 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_ # 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 is the list of locale categories, beyond LC_MESSAGES, for which the # message catalogs shall be used. It is usually empty. EXTRA_LOCALE_CATEGORIES = a2ps-4.14/po/ko.gmo0000644000175000017500000002130510735337367013377 0ustar mhattamhattaÞ•r¬<° A± !ó  4 A K b t ˆ $¢ Ç ,á  ,/ \ %z ,  -Í û & #C !g ‰ © &É ð ? H R] eq ¬¼Ïßðõþ   ) ;I_h—y&8 HUj!±Ñï $A"W z›'ºâý#*/F$v›2±ä    +!5Wv†˜ž¾'Ü !$)0\O¬Êäóù '@WsŒ¨Å×Ü:àB!^€Ÿ ¯¼Ë Üê!#1:'l"”·"Ó"ö#=#\ €(¡Êê% 0 COgnw€‡ Ž œ¨ ÆÒåÿ$,4 E S]nsšx4HZlƒ ’ ¼×ñ # >Kg*›Æ â!ì =/%m“4®!ã    # D _ u † ‹ )¥ "Ï ò û !!!!!b@!%£!É! â!ì!ñ!ú! "","F"]"t" ‹"¬"»"Â"$;8%GX^M@?V ZT,N&!KWe:c"_[hSFB ]a7Dr+<L9)Il mHbqQJf05jnE/o4  ('\g=i#pPd 2OkA*.URY`13>-6C -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 page prefeed = %s statusdict definitions = %A %B %d, %Y%b %d, %y%d characters per line%d lines per page%s, delegated to %s%s: illegal option -- %c %s: invalid argument for %s%c escape%s: invalid option -- %c %s: invalid separator `%s%c' for `%s' escape%s: missing `%c' for %s%c escape%s: option `%c%s' doesn't allow an argument %s: option `%s' is ambiguous %s: option `%s' requires an argument %s: option `--%s' doesn't allow an argument %s: option `-W %s' doesn't allow an argument %s: option `-W %s' is ambiguous %s: option requires an argument -- %c %s: too long argument for %s escape%s: unknown `%s' escape `%c' (%d)%s: unrecognized option `%c%s' %s: unrecognized option `--%s' Applications configured for delegationConfiguration status of %s %s Default PrinterDelegation `%s', from %s to %s Global: Headers: Headings: Input: Internals: Known EncodingsKnown MediaKnown Outputs (Printers, etc.)Known ProloguesKnown User OptionsKnown VariablesMemory exhaustedNameOutput: Page %dPage %d/%cPage %d/%dPostScript: Pretty-printing: Printed by %sPrinted by %s from %sSheets: Table of ContentThis is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Try `%s --help' for more information. Unknown PrinterUnknown UserUnknown system errorValid arguments are:Virtual pages: [%s (%s): %d pages on %d sheets] [%s (%s): %d pages on 1 sheet] [%s (%s): 1 page on 1 sheet] [%s (%s): failed. Ignored] [%s (binary): ignored] [%s (unprintable): ignored] [No output produced] [Total: %d pages on %d sheets] %s [Total: %d pages on 1 sheet] %s [Total: 1 page on 1 sheet] %s `%s' is a binary file, printing aborted`%s' with no matching `%s'any typeautomatic style selection cancelledcannot close directory `%s'cannot find style sheet `%s': using plain stylecannot get current working directorycannot open file `%s'cannot process `%s' which requires a2ps version %scaret (i.e., `^C', `M-^C' etc.)columns firstdimensionseach %d lineseach lineemacs (i.e., `C-c', `M-C-c' etc.)end-of-line in string constantfont %f too bigfont size is %gptheavyhexadecimal (i.e., `\x0a' etc.)incomplete knowledge of facesinvalid definition for printer `%s': %slandscapenever make backupsnononenormalnumbered backups of every filenumbered backups of files already numbered, and simple of othersobsolete `%s' entry. Ignoredoctal (i.e., `\001' etc.)output commandplainportraitquestion-mark (i.e., `?')rows firstsaved into the file `%s'selected automaticallysent to the default printersent to the printer `%s'sent to the standard outputsimple backups of every filespace (i.e., ` ')useryesProject-Id-Version: a2ps-4.10.1 Report-Msgid-Bugs-To: POT-Creation-Date: 2007-12-29 11:28+0800 PO-Revision-Date: 1999-01-24 13:02+01:00 Last-Translator: CHOI Junho Language-Team: Korean MIME-Version: 1.0 Content-Type: text/plain; charset=EUC-KR Content-Transfer-Encoding: 8bit -E, --pretty-print[=LANG] Ãâ·Â ²Ù¹Ì±â¸¦ »ç¿ëÇÕ´Ï´Ù(½ºÅ¸ÀÏÀº LANG·Î) --highlight-level=LEVEL Ãâ·Â ²Ù¹Ì±âÀÇ ÇÏÀ̶óÀÌµå ¼öÁØÀ» LEVEL·Î ÁöÁ¤ LEVELÀº none, normal, heavyÀÏ ¼ö ÀÖ½À´Ï´Ù -g --highlight-level=heavyÀÇ º°¸í --strip-level=NUM ÁÖ¼®¹® Á¦°Å ¼öÁØ ÆäÀÌÁö ¹Ì¸® ¹èÃâ = %s statusdict Á¤ÀÇ = %Y³â %B %dÀÏ %A%y³â %b %dÀÏÇà´ç %d°³ ¹®ÀÚÆäÀÌÁö´ç %d°³ Çà%s, %s·Î À§ÀÓ%s: À߸øµÈ ¿É¼Ç -- %c %s: ¿¡½ºÄÉÀÌÇÁ %s%c¿¡ À߸øµÈ Àμö%s: À߸øµÈ ¿É¼Ç -- %c %s: À߸øµÈ ºÐ¸®ÀÚ `%s%c'°¡ ¿¡½ºÄÉÀÌÇÁ `%s'¿¡ »ç¿ë%s: `%c'°¡ ¿¡½ºÄÉÀÌÇÁ %s%c¿¡ ºüÁ³½À´Ï´Ù%s: ¿É¼Ç `%c%s'Àº Àμö°¡ ¾ø½À´Ï´Ù %s: ¿É¼Ç `%s'Àº ¾Ö¸ÅÇÕ´Ï´Ù %s: ¿É¼Ç `%s'Àº Àμö°¡ ÇÊ¿äÇÕ´Ï´Ù %s: ¿É¼Ç `--%s'Àº Àμö°¡ ¾ø½À´Ï´Ù %s: ¿É¼ð `-W %s'Àº Àμö°¡ ¾ø½À´Ï´Ù %s: ¿É¼Ç `-W %s'Àº ¾Ö¸ÅÇÕ´Ï´Ù %s: ¿É¼ÇÀº Àμö°¡ ÇÊ¿äÇÕ´Ï´Ù -- %c %s: ¿¡½ºÄÉÀÌÇÁ %s¿¡ ³Ê¹« ±ä Àμö%s: ¾Ë ¼ö ¾ø´Â `%s' ¿¡½ºÄÉÀÌÇÁ `%c' (%d)%s: ÀνÄÇÒ ¼ö ¾ø´Â ¿É¼Ç `%c%s' %s: ÀνÄÇÒ ¼ö ¾ø´Â ¿É¼Ç `--%s' ¾îÇø®ÄÉÀ̼ÇÀº À§ÀÓ ¼³Á¤ÀÌ µÇ¾ú½À´Ï´Ù%sÀÇ ¼³Á¤ »óȲ %s ±âº» ÇÁ¸°ÅÍÀ§ÀÓ `%s': %s¿¡¼­ %s·Î Àü¿ª: ¸Ó¸´¸»: ¸Ó¸´¸»: ÀÔ·Â: ³»ºÎ: ¾Ë·ÁÁø ÀÎÄÚµù¾Ë·ÁÁø ¸Åü¾Ë·ÁÁø Ãâ·Â ¹æÇâ(ÇÁ¸°ÅÍ µîµî)¾Ë·ÁÁø ¼­¹®¾Ë·ÁÁø »ç¿ëÀÚ ¿É¼Ç¾Ë·ÁÁø ¸ÅÅ©·Î ¸ÞŸ ½ÃÄö½º¸Þ¸ð¸®°¡ ¸ðÀÚ¶ø´Ï´ÙÀ̸§Ãâ·Â: %dÂÊ%d/%cÂÊ%d/%dÂÊÆ÷½ºÆ®½ºÅ©¸³Æ®: Ãâ·Â ²Ù¹Ì±â: %s°¡ Ãâ·Â%s°¡ %s¿¡¼­ Ãâ·ÂÀå: Â÷·ÊÀ̰ÍÀº ÇÁ¸® ¼ÒÇÁÆ®¿þ¾îÀÔ´Ï´Ù: º¹»ç Á¶°Ç¿¡ ´ëÇØ¼­´Â ¼Ò½º¸¦ º¸¼¼¿ä. ƯÁ¤ ¸ñÀûÀ» À§ÇÑ »ç¿ëÀÇ ÀûÇÕ¼ºÀ̳ª »óǰÀÇ Áú¿¡ ´ëÇÑ ¾Ï¹¬ÀûÀÎ º¸Áõµµ °®°í ÀÖÁö ¾Ê½À´Ï´Ù. ´õ ¸¹Àº Á¤º¸¸¦ ¾òÀ¸·¯¸é `%s --help'¸í·ÉÀ» ÇϽʽÿÀ. ¾Ë ¼ö ¾ø´Â ÇÁ¸°ÅÍ¾Ë ¼ö ¾ø´Â »ç¿ëÀÚ¾Ë ¼ö ¾ø´Â ½Ã½ºÅÛ ¿¡·¯¿Ã¹Ù¸¥ Àμö´Â:°¡»ó ÆäÀÌÁö: [%s (%s): %d ÆäÀÌÁö/%d Àå] [%s (%s): %d ÆäÀÌÁö/1 Àå] [%s (%s): 1 ÆäÀÌÁö/1 Àå] [%s (%s): ½ÇÆÐ. ¹«½ÃÇÔ] [%s (¹ÙÀ̳ʸ®): ¹«½ÃÇÔ] [%s (Ãâ·ÂºÒ°¡´É): ¹«½ÃÇÔ] [Ãâ·Â ¾øÀ½] [ÇÕ°è: %d ÆäÀÌÁö/%d Àå] %s [ÇÕ°è: %d ÆäÀÌÁö/1Àå] %s [ÇÕ°è: 1 ÆäÀÌÁö/1 Àå] %s `%s' ´Â ÀÌÁø ÆÄÀÏÀÔ´Ï´Ù. Ãâ·ÂÀ» Áß´ÜÇÕ´Ï´Ù`%s'¿Í ¸Â´Â `%s'ÀÌ ¾ø½À´Ï´Ù¸ðµç Á¾·ùÀÚµ¿ ½ºÅ¸ÀÏ ¼±ÅÃÀº Ãë¼ÒµÇ¾ú½À´Ï´Ùµð·ºÅ丮 `%s'¸¦ ´ÝÀ» ¼ö ¾ø½À´Ï´Ù½ºÅ¸ÀÏ ½ÃÆ® `%s'¸¦ ãÀ» ¼ö ¾ø½À´Ï´Ù: º¸Åë ½ºÅ¸ÀÏÀ» »ç¿ëÇÕ´Ï´ÙÇöÀç ÀÛ¾÷ µð·ºÅ丮¸¦ ¾òÀ» ¼ö ¾ø½À´Ï´ÙÆÄÀÏ `%s'À» ¿­ ¼ö ¾ø½À´Ï´Ùa2ps ¹öÀü %s¸¦ ÇÊ¿ä·Î ÇÏ´Â `%s'¸¦ ó¸®ÇÒ ¼ö ¾ø½À´Ï´ÙÁ¦¾î¹®ÀÚ (¿¹> `^C', `M-^C' µîµî.)¿­ ¸ÕÀúÂ÷¿ø°¢ %d°³ Çà°¢ Çàemacs (¿¹> `C-c', `M-C-c' µîµî.)¹®ÀÚ¿­ »ó¼ö ¾È¿¡¼­ ÇàÀÇ ³¡ÆùÆ® %f´Â ³Ê¹« Å®´Ï´Ù±Û²Ã Å©±â´Â %gpt°í±Þ16Áø¼ö (¿¹> `\x0a' µîµî.)ÆùÆ® ¸ð¾ç¿¡ ´ëÇØ ºÒ¿ÏÀüÇÏ°Ô ¾Ë°í ÀÖ½À´Ï´ÙÇÁ¸°ÅÍ `%s'¿¡ ´ëÇÑ À߸øµÈ Á¤ÀÇ: %s°¡·Î³Ð°Ô¹é¾÷À» ¸¸µéÁö ¾Ê´Â´Ù¾Æ´Ï¿À¾øÀ½º¸Åë¸ðµç ÆÄÀÏÀÇ ¹øÈ£°¡ ÁÖ¾îÁø ¹é¾÷¹øÈ£°¡ ÁÖ¾îÁø ¹é¾÷ÀÌ ÀÖÀ¸¸é ¹øÈ£¸¦ ÁÖ°í, ±×·¸Áö ¾ÊÀ¸¸é ´Ü¼øÇÏ°Ô ÇÕ´Ï´Ù»ç¿ëÇÏÁö ¾Ê´Â `%s' ¿£Æ®¸®. ¹«½ÃÇÕ´Ï´Ù8Áø¼ö (¿¹> `\001' µîµî.)Ãâ·Â ¸í·Éº¸Åë¼¼·Î³Ð°ÔÀǹ®ºÎÈ£ (¿¹> `?')Çà ¸ÕÀúÆÄÀÏ `%s'·Î ÀúÀåÇÕ´Ï´ÙÀÚµ¿ÀûÀ¸·Î ¼±ÅõǾú½À´Ï´Ù±âº» ÇÁ¸°ÅÍ·Î º¸³À´Ï´ÙÇÁ¸°ÅÍ `%s'·Î º¸³À´Ï´ÙÇ¥ÁØ Ãâ·ÂÀ¸·Î º¸³À´Ï´Ù¸ðµç ÆÄÀÏÀÇ °£´ÜÇÑ ¹é¾÷À» ¸¸µç´Ù°ø¹é (¿¹> ` ')»ç¿ëÀÚ¿¹a2ps-4.14/po/sv.gmo0000644000175000017500000005210210735337371013410 0ustar mhattamhattaÞ•£4ßL È É %Ó /ùü)r&A™FÛ!"ED Šä+‚p“!&EE°‹O< Œ ™£ºÌà$ú,9 f,‡´%Ò,ø-% S &t #› !¿ á !v!!&˜!¿!1Þ!" "@" I" S"^" f"r" ‚" Ž"š"%¹"ß"ï"##%#6#;#D# L# W# b#o# ###¥#É#Ò#ã##ë#—$&§$Î$ Þ$ë$+%-,%Z%o%¯%/&!?&a&&Ÿ&¼&Ô&ñ&"' *'K''j'’'¦'Á'#Ê'î'* (5(M(/c($“($¸(Ý(ø(2)A)a) ) ) š) ¨)!²)Ô)ó)***;*Y*'x* *²*È* Ü*ý* +#+=+P+S+r+w+~+\+ú+,2,A,G,P,j,, ”,Ÿ,¸,Ï,ë,- -=-O-e-„-˜-±- ¶-Â-BÆ- /™/8­1©æ3Ò6=c8s¡9Õ<cë=ØO>ë(? @µ@"FAiAW‰AáAgêBRCdCmCC‘C§C+ÁCíC4 D$>D+cDD!­D+ÏD,ûD (E"IE*lE$—E¼EÕErîE*aFŒF1¬FÞF$ïFG&G–'/.o{f ŸZ„"8B%g2vŽ iW…macœN6D›šq1nE<€ P` [e£9‰ƒK“R†d‚w,5kj’LSQ¡O‡$!47‹‘Šsy)#žH~rx-l} 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 -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 -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 = %d sides per sheet = %s page device definitions = medium = %s%s, %s page layout = %d x %d, %s borders = %s file alignment = %s interior margin = %d number lines = %s format = %s tabulation size = %d 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 = %d file command = %s library path = %A %B %d, %Y%b %d, %y%d characters per line%d lines per page%s, delegated to %s%s: illegal option -- %c %s: invalid argument for %s%c escape%s: invalid option -- %c %s: invalid separator `%s%c' for `%s' escape%s: missing `%c' for %s%c escape%s: option `%c%s' doesn't allow an argument %s: option `%s' is ambiguous %s: option `%s' requires an argument %s: option `--%s' doesn't allow an argument %s: option `-W %s' doesn't allow an argument %s: option `-W %s' is ambiguous %s: option requires an argument -- %c %s: too long argument for %s escape%s: unknown `%s' escape `%c' (%d)%s: unrecognized option `%c%s' %s: unrecognized option `--%s' After having performed the task, exit successfully. Detailed lists may provide additional help on specific features. Applications configured for delegationConfiguration status of %s %s Copyright (C) 1999 Free Software Foundation, Inc.Default PrinterDelegation `%s', from %s to %s Global: Headers: Headings: Input: Internals: Known EncodingsKnown FontsKnown MediaKnown Outputs (Printers, etc.)Known PostScript Printer DescriptionsKnown ProloguesKnown Style SheetsKnown User OptionsKnown VariablesMemory exhaustedNameOutput: Page %dPage %d/%cPage %d/%dPostScript: Pretty-printing: Printed by %sPrinted by %s from %sReport bugs to . Sheets: Table of ContentTasks: The TEXTs may use special escapes. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Try `%s --help' for more information. Unknown PrinterUnknown UserUnknown system errorValid arguments are floats f such that: %s Valid arguments are integers n such that: %s Valid arguments are: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. Written by %s. [%s (%s): %d pages on %d sheets] [%s (%s): %d pages on 1 sheet] [%s (%s): 1 page on 1 sheet] [%s (%s): failed. Ignored] [%s (binary): ignored] [%s (unprintable): ignored] [No output produced] [Total: %d pages on %d sheets] %s [Total: %d 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'any typeautomatic style selection cancelledcannot close directory `%s'cannot compile regular expression `%s': %scannot create file `%s'cannot find file `%s'cannot find style sheet `%s': using plain stylecannot get current working directorycannot get informations on file `%s'cannot open a pipe on `%s'cannot open file `%s'cannot process `%s' which requires a2ps version %scannot rename file `%s' as `%s'caret (i.e., `^C', `M-^C' etc.)columns firstdimensionseach %d lineseach lineemacs (i.e., `C-c', `M-C-c' etc.)end-of-line in string constantfont %f too bigfont size is %gptheavyhexadecimal (i.e., `\x0a' etc.)incomplete knowledge of facesinvalid argument `%s' for `%s'invalid definition for printer `%s': %sinvalid face `%s'invalid interval `%s'invalid option `%s'invalid variable identifier `%s'invalid version number `%s'landscapemissing argument for `%s'never make backupsnono command for the `%s' (%s%s)nonenormalnumbered backups of every filenumbered backups of files already numbered, and simple of othersobsolete `%s' entry. Ignoredoctal (i.e., `\001' etc.)output commandplainportraitquestion-mark (i.e., `?')received signal %d: %srestored file `%s'rows firstsaved into the file `%s'selected automaticallysent to the default printersent to the printer `%s'sent to the standard outputsimple backups of every filespace (i.e., ` ')unknown encoding `%s'unknown encoding `%s', ignoredunknown medium `%s'unknown user option `%s'userwrite erroryesProject-Id-Version: a2ps 4.12 Report-Msgid-Bugs-To: POT-Creation-Date: 2007-12-29 11:28+0800 PO-Revision-Date: 1999-10-10 00:49+02:00 Last-Translator: Peter Nilsson Language-Team: Swedish MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8-bit Inga. --line-numbers=NUM skriv radnummer framför var NUM: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==NUM ange antal rader på en sida (teckenstorleken justeras) --l, --chars-per-line=NUM ange hur många kolumner som skrivs ut per sida (teckenstorleken justeras) -m, --catman behandla filen som en man-fil (samma som -L66) -T, --tab-size=NUM sätt tabulatoravståndet till NUM --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 visa gissningar för filtyper av FILER --which rapportera den fulla sökvägen till hjälpfilerna FILER --glob rapportera den fulla sökvägen till filer som matchar FILER --list=defaults visa standardinställningar och -parametrar --list=ÄMNE visa detaljerad lista om Ä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] TEXT kan innehålla särskilda %- och $-sekvenser --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 -G samma som --highlight-level=heavy --strip-level=NIVÅ nivå på bortrensning av kommentarer -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 teckenuppsättning 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 --toc=TEXT skapa innehållsförteckning -Z, --delegate* delegera filer till ett annat program -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å avlusning -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-PPF = %s sidettikettsformat = %s antal kopior = %d sidor per ark = %s "page device"-definitioner = medium = %s%s, %s sidlayout = %d x %d, %s kantlinjer = %s "fil-alignment" = %s inre marginal = %d numrera rader = %s format = %s tabulatoravstånd = %d 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 teckenuppsättning = %s dokumenttitel = %s prolog = %s skriv ut i alla fall = %s delegering = %s "mångordighet" = %d file-kommando = %s katalog för hjälpfiler = %Aen den %d %B %Y%d %b %y%d tecken per rad%d rader per sida%s, delegerad till %s%s: ogiltig flagga -- %c %s: otillåtet argument för metasekvens %s%c%s: otillåten flagga -- %c %s: otillåten avskiljare "%s%c" för metasekvens "%s"%s: "%c" saknas för metasekvens %s%c%s: flaggan "%c%s" tillåter inget argument %s: flaggan "%s" är tvetydig %s: flaggan "%s" kräver argument %s: flaggan "--%s" tillåter inget argument %s: flaggan "-W %s" tillåter inget argument %s: flaggan "-W %s" är tvetydig %s: flaggan kräver argument -- %c %s: för långt argument till metasekvens %s%s: okänd "%s" metasekvens "%c" (%d)%s: okänd flagga "%c%s" %s: okänd flagga "--%s" Avsluta normalt, efter att uppgiften har utförts. Detaljerade listor ger mer information om specifika funktioner. Applikationer konfigurerade för delegeringKonfigurationsstatus för %s %s Copyright (C) 1999 Free Software Foundation, Inc.StandardskrivareDelegering "%s" från "%s" till "%s" Globala flaggor: Sidhuvud och sidfot: Sudhuvud och sidfot: Indata: Interna detaljer: Kända teckenuppsättningarKända typsnittKända mediaKända destinationer för utdata (skrivare etc.)Kända PostScript-skrivarbeskrivningarKända prologerKända stilmallarKända användarflaggorKända metasekvenser (makron)Slut på minneNamnUtdata: Sidan %dSidan %d/%cSiidan %d/%dPostScript: Snygga utskrifter: Utskrivet av %sUtskrivet av %s från %sRapportera fel till . Rapportera fel på översättningen till . Översättaren är medveten om att översättningen har brister. Kom gärna med konstruktiva synpunkter och tips på förbättringar! Ark: InnehållsförteckningUppgifter: TEXT-erna kan innehålla speciella metasekvenser. Detta är fri programvara; se källkoden för kopieringsvillkor. Det finns INGEN garanti; inte ens för SÄLJBARHET eller LÄMPLIGHET FÖR NÅGOT SPECIELLT ÄNDAMÅL. Försök med "%s --help" för mer information. Okänd skrivareOkänd användareOkänt systemfelTillåtna argument är flyttal f så att: %s Tillåtna argument är heltal n så att: %s Tillåtna argument är: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. Utskrivet av %s. [%s (%s): %d sidor på %d ark] [%s (%s): %d 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] [Ingen utdata skapad] [Totalt: %d sidor på %d ark] %s [Totalt: %d 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"alla typerväljer ej stilmall automatisktkan inte stänga katalogen "%s"kan inte kompilera reguljärt uttryck "%s": %skan inte skapa filen "%s"kan inte hitta filen "%s"kan inte hitta stilmallen "%s": använder enkel stilmallkan inte ta reda på aktuell katalogkan 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 %skan inte ändra namn på filen "%s" till "%s".cirkumflex ("^C", "M-^C" etc.)kolumner förstdimensionervar %d:e radvarje rademacs ("C-c", "M-C-c" etc.)radslut i strängkonstanttypsnittet %f för stortteckenstorleken är %.0f tumstorhexadecimalt tal ("\x0a" etc.)otillräcklig kännedom om virtuella typsnittogiltigt argument "%s" för flaggan "%s"ogiltig definition för skrivaren "%s": %sogiltligt typsnitt "%s"ogiltigt intervall: %sotillåten flagga "%s"ogiltig variabelidentifierare "%s"felaktigt versionsnummer "%s"liggandeargument för "%s" saknasskapa aldrig säkerhetskopiornejinget kommando för "%s" (%s%s)ingennormalnumrerade säkerhetskopior av alla filernumrerade säkerhetskopior av filer som redan är numrerade och enkla säkerhetskopior av övriga filer"%s" obsolet. Ignoreradoktalt tal ("\001" etc.)utkommandoenkelståendefrågetecken (d.v.s. "?")fick signal %d: %såterskapad fil "%s"rader förstsparat på filen "%s"vald automatisktskickat till standardskrivarenskickat till skrivaren "%s"skickat till standard utenkla säkerhetskopior av alla filermellanslag (d.v.s. " ")okänd teckenuppsättning "%s"okänd teckenuppsättning "%s", ignoreradokänt medium "%s"okänd användarflagga "%s"användarefel vid skrivningjaa2ps-4.14/po/tr.gmo0000644000175000017500000004153710735337371013417 0ustar mhattamhattaÞ•–ÌÓ| È É %Ó /ùA)Fk!²EԠ仂 p#!”¶EÕ° Ì Ùãú  $:_,y ¦,Çô%,8-e “&´#Û!ÿ!A&aˆ§·× à êõ ý   %1%Pv†™¬¼ÍÒÛ ã î ù &<E&V} š+¯-Û !.PpŽ«Ãà"ö  : 'Y  • ° #¹ Ý *ù $!8>(V>>>(µ>0Þ>? .?{g,Ul#f?D C‡–ƒjua^M’Y-„ <4‘=FŒ“"it!LEm56€.zn‚*I‹Owd&|]}…k9ZAqBpcŠ 0e•' 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 -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 -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 = %d sides per sheet = %s page device definitions = medium = %s%s, %s page layout = %d x %d, %s borders = %s file alignment = %s interior margin = %d number lines = %s format = %s tabulation size = %d 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 %A %B %d, %Y%b %d, %y%d characters per line%d lines per page%s, delegated to %s%s: illegal option -- %c %s: invalid argument for %s%c escape%s: invalid option -- %c %s: invalid separator `%s%c' for `%s' escape%s: missing `%c' for %s%c escape%s: option `%c%s' doesn't allow an argument %s: option `%s' is ambiguous %s: option `%s' requires an argument %s: option `--%s' doesn't allow an argument %s: option `-W %s' doesn't allow an argument %s: option `-W %s' is ambiguous %s: option requires an argument -- %c %s: too long argument for %s escape%s: unknown `%s' escape `%c' (%d)%s: unrecognized option `%c%s' %s: unrecognized option `--%s' Applications configured for delegationConfiguration status of %s %s Default PrinterDelegation `%s', from %s to %s Global: Headers: Headings: Input: Internals: Known EncodingsKnown FontsKnown MediaKnown Outputs (Printers, etc.)Known PostScript Printer DescriptionsKnown ProloguesKnown Style SheetsKnown User OptionsKnown VariablesMemory exhaustedNameOutput: Page %dPage %d/%cPage %d/%dPostScript: Pretty-printing: Printed by %sPrinted by %s from %sSheets: Table of ContentTry `%s --help' for more information. Unknown PrinterUnknown UserUnknown system errorValid arguments are floats f such that: %s Valid arguments are integers n such that: %s Valid arguments are:Virtual pages: [%s (%s): %d pages on %d sheets] [%s (%s): %d pages on 1 sheet] [%s (%s): 1 page on 1 sheet] [%s (%s): failed. Ignored] [%s (binary): ignored] [%s (unprintable): ignored] [No output produced] [Total: %d pages on %d sheets] %s [Total: %d 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'any typeautomatic style selection cancelledcannot close directory `%s'cannot compile regular expression `%s': %scannot create file `%s'cannot find file `%s'cannot find style sheet `%s': using plain stylecannot get current working directorycannot get informations on file `%s'cannot open a pipe on `%s'cannot open file `%s'cannot process `%s' which requires a2ps version %scannot rename file `%s' as `%s'caret (i.e., `^C', `M-^C' etc.)columns firstdimensionseach %d lineseach lineemacs (i.e., `C-c', `M-C-c' etc.)end-of-line in string constantfont %f too bigfont size is %gptheavyhexadecimal (i.e., `\x0a' etc.)incomplete knowledge of facesinvalid argument `%s' for `%s'invalid definition for printer `%s': %sinvalid face `%s'invalid interval `%s'invalid option `%s'invalid variable identifier `%s'invalid version number `%s'landscapemissing argument for `%s'never make backupsnononenormalnumbered backups of every filenumbered backups of files already numbered, and simple of othersobsolete `%s' entry. Ignoredoctal (i.e., `\001' etc.)output commandplainportraitquestion-mark (i.e., `?')received signal %d: %srestored file `%s'rows firstsaved into the file `%s'selected automaticallysent to the default printersent to the printer `%s'sent to the standard outputsimple backups of every filespace (i.e., ` ')unknown encoding `%s'unknown encoding `%s', ignoredunknown medium `%s'unknown user option `%s'useryesProject-Id-Version: a2ps 4.9 Report-Msgid-Bugs-To: POT-Creation-Date: 2007-12-29 11:28+0800 PO-Revision-Date: 2002-03-25 18:17+0100 Last-Translator: H. Turgut Uyar Language-Team: Turkish MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-9 Content-Transfer-Encoding: 8-bit Yok. --line-numbers=SAYI her SAYI satýrýn önüne satýr numarasý ekle -C --line-numbers=5 yerine geçer -f, --font-size=BOY metin için BOY (float) yazýtipini kullan -L, --lines-per-page=SAYI her sanal sayfaya SAYI satýr basýlacak þekilde yazýtipini ölçekle -l, --chars-per-line=SAYI her sanal sayfaya SAYI sütun basýlacak þekilde yazýtipini ölçekle -m, --catman dosyayý man sayfasý olarak iþle (-L66 ile ayný) -T, --tabsize=SAYI tab boyuna SAYI deðerini ver --non-printable-format=FMT basýlamaz karakterlerin nasýl basýlacaðýný belirt --prologue=DOSYA DOSYA.pro dosyasýný PostScript giriþi olarak al --ppd[=ANAHTAR] PPD'yi kendin seç [ya da ANAHTAR deðerini ver] -n, --copies=SAYI her sayfadan SAYI kopya bas -s, --sides=KÝP duplex KÝP'e geç (`1' ya da `simplex', `2' ya da `duplex', `tumble' -S, --setpagedevice=K[:V] çýktýya bir sayfa aygýtý tanýmý geçir --statusdict=K[:[:]V] çýktýya bir statusdict tanýmý geçir -k, --page-prefeed sayfa önbeslemesine izin ver -K, --no-page-prefeed sayfa önbeslemesi iznini kaldýr -E, --pretty-print[=DÝL] süslü-basýmý aç (stili DÝL olarak ayarla) --highlight-level=DÜZEY süslü-basým renklendirme DÜZEYini ayarla DÜZEY none, normal ya da heavy olabilir -g --highlight-level=heavy ile ayný --strip-level=NUM yorum ayýklama düzeyi -a, --pages[=ARALIK] basýlacak sayfalarý seç -c, --truncate-lines* uzun satýrlarý kýrp -i, --interpret* tab, bs ve ff karakterlerini yorumla --end-of-line=TÝP satýr-sonu karakterini belirt (TÝP: r, n, nr, rn, any) -X, --encoding=ÝSÝM ÝSÝM giriþ kodlamasýný kullan -t, --title=ÝSÝM iþe isim ver --stdin=ÝSÝM standart giriþ dosyasýna isim ver --print-anyway* ikili düzende basmayý zorla -Z, --delegate* dosyalarý baþka bir uygulamaya devret --toc[=METÝN] içindekiler bölümü oluþtur -q, --quiet, --silent gerçekten sessiz ol -v, --verbose[=DÜZEY] geveze kipe geç ya da DÜZEY olarak ayarla -=, --user-option=SEÇENEK kullanýcý tanýmlý SEÇENEK kestirmesini kullan --debug hata ayýklama yeteneklerini aç -D, --define=ANAHTAR[:DEÐER] ANAHTAR deðiþkenini sil ya da DEÐER ata varýþ = %s sürüm denetimi = %s yedek soneki = %s üstyazý = %s sol altyazý = %s altyazý = %s sað altyazý = %s sol baþlýk = %s orta baþlýk = %s sað baþlýk = %s dipyazý = %s büyülü numara = %s Yazýcý Betimlemesi (PPD) = %s öntanýmlý PPD = %s sayfa etiketi formatý = %s kopya sayýsý = %d kaðýt yüzü sayýsý = %s sayfa aygýtý tanýmlarý = ortam = %s%s, %s sayfa düzeni = %d x %d, %s kenarlar = %s dosya hizalama = %s iç kenar aralýðý = %d satýr numaralama = %s format = %s tab boyu = %d basýlamaz format = %s sayfa önbesleme = %s statusdict tanýmlarý = stil dosyasý = %s renklendirme düzeyi = %s ayýklama düzeyi = %d satýrlarý kýrp = %s yorumla = %s satýr sonu = %s kodlama = %s belge baþlýðý = %s giriþ = %s yine de bas = %s üstlenici = %s %d %B %Y, %A%d %b %ybir satýra %d karakterbir sayfaya %d satýr%s, %s uygulamasýna devredildi%s: geçersiz seçenek -- %c %s: %s%c kaçýþ dizgesi için hatalý argüman%s: hatalý seçenek -- %c %1$s: `%4$s' kaçýþ dizgesi için `%2$s%3$c' ayýrýcýsý hatalý%1$s: %3$s%4$c kaçýþ dizgesinde `%2$c' eksik%s: `%c%s' seçeneðine argüman verilemez %s: `%s' seçeneði belirsiz %s: `%s' seçeneðine argüman verilmeli %s: `--%s' seçeneðine argüman verilemez %s: `-W %s' seçeneðine argüman verilemez %s: `-W %s' seçeneði belirsiz %s: seçeneðe bir argüman verilmeli -- %c %s: %s kaçýþ dizgesi için çok uzun argüman%s: tanýnmayan `%s' kaçýþ dizgesinde `%c' (%d)%s: tanýnmayan seçenek `%c%s' %s: tanýnmayan seçenek `--%s' Üstlenici olarak ayarlanan uygulamalar%s için ayar durumu %s Öntanýmlý YazýcýÜstlenici `%s', %s -> %s Genel: Üstyazýlar: Baþlýklar: Girdi: Ýç Ayrýntýlar: Tanýnan kodlamalarTanýnan YazýtipleriTanýnan ortamlarTanýnan çýktý varýþlarý (yazýcýlar v.b.)Tanýnan PostScript Yazýcý Betimlemeleri (PPD)Tanýnan giriþlerTanýnan Stil DosyalarýTanýnan kullanýcý seçenekleriBilinen Macro Meta Sequence'larBellek tükendiÝsimÇýktý: Sayfa %dSayfa %d/%cSayfa %d/%dPostScript: Süslü-basým: Basan: %sBasan: %s, Yer: %sKaðýtlar: ÝçindekilerDaha çok bilgi almak için `%s --help' komutunu deneyin. Tanýnmayan YazýcýTanýnmayan KullanýcýTanýnmayan sistem hatasýGeçerli argümanlar %s kuralýna uyan f gerçel sayýlarýdýr Geçerli argümanlar %s kuralýna uyan n tamsayýlarýdýr Geçerli argümanlar:Sanal sayfalar: [%s (%s): %d sayfa / %d kaðýt] [%s (%s): %d sayfa / 1 kaðýt] [%s (%s): 1 sayfa / 1 kaðýt] [%s (%s): baþarýsýz. Gözardý edildi] [%s (ikili): gözardý edildi] [%s (basýlamaz): gözardý edildi] [Çýktý üretilmedi] [Toplam: %d sayfa / %d kaðýt] %s [Toplam: %d sayfa / 1 kaðýt] %s [Toplam: 1 sayfa / 1 kaðýt] %s `%s' ikili bir dosya, basma iþlemi býrakýldý`%s' bir dizin`%s' için karþýlýk olan bir `%s' yokher tipkendiliðinden stil seçimi kapatýldý`%s' dizini kapatýlamýyor`%s' düzgün deyimi derlenemiyor: %s`%s' dosyasý yaratýlamýyor`%s' dosyasý bulunamýyor`%s' stil dosyasý bulunamýyor: sade stil kullanýlýyorbulunulan dizin öðrenilemiyor`%s' dosyasý ile ilgili bilgi alýnamýyor`%s' üzerinde pipe açýlamýyor`%s' dosyasý açýlamýyor`%s' iþlenemiyor, a2ps %s sürümü gerekli`%s' dosyasýnýn adý `%s' olarak deðiþtirilemiyorþapka (yani `^C', `M-^C' gibi)önce sütunlarboyutlarher %d satýrher satýremacs (yani `C-c', `M-C-c' gibi)katar sabitinde satýr-sonu%f yazýtipi çok büyükyazýtipi boyu: %gptçokonaltýlý (yani `\x0a' gibi)yüzler hakkýnda yetersiz bilgi`%2$s' için geçersiz argüman `%1$s'`%s' yazýcýsý için hatalý tanýmlama: %sgeçersiz yüz `%s'geçersiz aralýk %sgeçersiz seçenek `%s'geçersiz deðiþken adý `%s'geçersiz sürüm numarasý `%s'enine`%s' için eksik argümanasla yedek almahayýryoknormalher dosyanýn numaralý yedeðini alnumaralý dosyalarýn numaralý, diðerlerinin basit yedeklerini al`%s' kaydý artýk anlamsýz. Gözardý edildisekizli (yani `\001' gibi)çýktý komutusadeboyunasoru iþareti (yani `?')%d iþareti alýndý: %s`%s' dosyasý kurtarýldýönce satýrlar`%s' dosyasýna yazýldýkendiliðinden seçildiöntanýmlý yazýcýya gönderildi`%s' yazýcýsýna gönderildistandart çýkýþa gönderildiher dosyanýn basit yedeðini alboþluk (yani ` ')tanýnmayan kodlama: `%s'tanýnmayan kodlama: `%s', gözardý edilditanýnmayan ortam `%s'tanýnmayan kullanýcý seçeneði `%s'kullanýcýeveta2ps-4.14/po/sv.po0000644000175000017500000010363710735337371013256 0ustar mhattamhatta# Swedish Messages for a2ps # Copyright (C) 1998,1999 Peter Nilsson # Peter Nilsson 1998, 1999. # msgid "" msgstr "" "Project-Id-Version: a2ps 4.12\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-12-29 11:28+0800\n" "PO-Revision-Date: 1999-10-10 00:49+02:00\n" "Last-Translator: Peter Nilsson \n" "Language-Team: Swedish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8-bit\n" #: src/buffer.c:68 msgid "any type" msgstr "alla typer" #: src/delegate.c:137 confg.gperf:168 lib/encoding.c:530 lib/encoding.c:576 #: lib/encoding.c:616 lib/output.c:302 lib/pair_ht.c:296 lib/prolog.c:146 #, c-format msgid "missing argument for `%s'" msgstr "argument för \"%s\" saknas" #: src/delegate.c:260 lib/routines.c:160 lib/xbackupfile.c:248 #: lib/xbackupfile.c:276 lib/xbackupfile.c:284 #, c-format msgid "cannot create file `%s'" msgstr "kan inte skapa filen \"%s\"" #: src/delegate.c:269 src/select.c:193 lib/routines.c:190 lib/routines.c:196 #, c-format msgid "cannot open a pipe on `%s'" msgstr "kan inte öppna rör till \"%s\"" #: src/delegate.c:389 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "Delegering \"%s\" från \"%s\" till \"%s\"\n" #: src/delegate.c:408 src/delegate.c:430 msgid "Applications configured for delegation" msgstr "Applikationer konfigurerade för delegering" #: src/generate.c:88 #, c-format msgid "`%s' is a directory" msgstr "\"%s\" är en katalog" #: src/generate.c:96 src/main.c:560 src/main.c:582 confg.gperf:192 #: confg.gperf:355 lib/routines.c:154 #, c-format msgid "cannot open file `%s'" msgstr "kan inte öppna filen \"%s\"" #: src/generate.c:101 lib/xbackupfile.c:224 #, c-format msgid "cannot get informations on file `%s'" msgstr "kan inte skaffa information om filen \"%s\"" #: src/generate.c:168 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): 1 sida på 1 ark]\n" #: src/generate.c:174 #, c-format msgid "[%s (%s): %d pages on 1 sheet]\n" msgstr "[%s (%s): %d sidor på 1 ark]\n" #: src/generate.c:181 #, c-format msgid "[%s (%s): %d pages on %d sheets]\n" msgstr "[%s (%s): %d sidor på %d ark]\n" #: src/generate.c:208 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[Totalt: 1 sida på 1 ark] %s\n" #: src/generate.c:212 #, c-format msgid "[Total: %d pages on 1 sheet] %s\n" msgstr "[Totalt: %d sidor på 1 ark] %s\n" #: src/generate.c:217 #, c-format msgid "[Total: %d pages on %d sheets] %s\n" msgstr "[Totalt: %d sidor på %d ark] %s\n" #: src/generate.c:226 msgid "[1 line wrapped]\n" msgstr "" #: src/generate.c:229 #, fuzzy, c-format msgid "[%d lines wrapped]\n" msgstr "%d rader per sida" #: src/generate.c:242 msgid "[No output produced]\n" msgstr "[Ingen utdata skapad]\n" #: src/generate.c:314 #, c-format msgid "%s, delegated to %s" msgstr "%s, delegerad till %s" #: src/generate.c:322 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): misslyckades. Ignorerad]\n" #: src/generate.c:330 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (går ej att skriva ut): ignorerad]\n" #: src/generate.c:339 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (binär): ignorerad]\n" #: src/generate.c:360 msgid "plain" msgstr "enkel" #: lexssh.l:348 msgid "end-of-line in string constant" msgstr "radslut i strängkonstant" #: lexssh.l:415 src/sheets-map.l:153 src/sheets-map.l:192 #, fuzzy, c-format msgid "end of line inside a %s" msgstr "radslut i reguljärt uttryck" #: src/main.c:203 #, c-format msgid "received signal %d: %s" msgstr "fick signal %d: %s" #: src/main.c:242 msgid "heavy" msgstr "stor" #: src/main.c:246 msgid "normal" msgstr "normal" #: src/main.c:250 msgid "none" msgstr "ingen" #: src/main.c:324 src/main.c:328 msgid "yes" msgstr "ja" #: src/main.c:325 src/main.c:328 src/main.c:369 msgid "no" msgstr "nej" #: src/main.c:335 #, c-format msgid "Configuration status of %s %s\n" msgstr "Konfigurationsstatus för %s %s\n" #: src/main.c:339 src/main.c:697 msgid "Sheets:\n" msgstr "Ark:\n" #: src/main.c:340 #, 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" msgstr "" " medium = %s%s, %s\n" " sidlayout = %d x %d, %s\n" " kantlinjer = %s\n" " \"fil-alignment\" = %s\n" " inre marginal = %d\n" #: src/main.c:349 msgid "portrait" msgstr "stående" #: src/main.c:349 msgid "landscape" msgstr "liggande" #: src/main.c:358 #, c-format msgid "%d characters per line" msgstr "%d tecken per rad" #: src/main.c:361 #, c-format msgid "%d lines per page" msgstr "%d rader per sida" #: src/main.c:364 #, c-format msgid "font size is %gpt" msgstr "teckenstorleken är %.0f tum" #: src/main.c:373 msgid "each line" msgstr "varje rad" #: src/main.c:377 #, c-format msgid "each %d lines" msgstr "var %d:e rad" #: src/main.c:380 src/main.c:718 msgid "Virtual pages:\n" msgstr "Virtuella sidor:\n" #: src/main.c:381 #, c-format msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %d\n" " non printable format = %s\n" msgstr "" " numrera rader = %s\n" " format = %s\n" " tabulatoravstånd = %d\n" " format för oskrivbara tecken = %s\n" #: src/main.c:392 msgid "Headers:\n" msgstr "Sidhuvud och sidfot:\n" #: src/main.c:393 #, 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:412 src/main.c:747 msgid "Input:\n" msgstr "Indata:\n" #: src/main.c:413 #, 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" " teckenuppsättning = %s\n" " dokumenttitel = %s\n" " prolog = %s\n" " skriv ut i alla fall = %s\n" " delegering = %s\n" #: src/main.c:438 src/main.c:504 msgid "selected automatically" msgstr "vald automatiskt" #: src/main.c:441 src/main.c:766 msgid "Pretty-printing:\n" msgstr "Snygga utskrifter:\n" #: src/main.c:442 #, 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:462 msgid "never make backups" msgstr "skapa aldrig säkerhetskopior" #: src/main.c:466 msgid "simple backups of every file" msgstr "enkla säkerhetskopior av alla filer" #: src/main.c:471 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:476 msgid "numbered backups of every file" msgstr "numrerade säkerhetskopior av alla filer" #: src/main.c:480 src/main.c:775 msgid "Output:\n" msgstr "Utdata:\n" #: src/main.c:481 #, 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:494 src/main.c:786 msgid "PostScript:\n" msgstr "PostScript:\n" #: src/main.c:495 #, 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 = " msgstr "" " \"magiskt tal\" = %s\n" " skrivarbeskrivning (PPD) = %s\n" " standard-PPF = %s\n" " sidettikettsformat = %s\n" " antal kopior = %d\n" " sidor per ark = %s\n" " \"page device\"-definitioner = " #: src/main.c:515 #, c-format msgid " statusdict definitions = " msgstr " \"statusdict\"-definitioner = " #: src/main.c:518 #, c-format msgid " page prefeed = %s\n" msgstr " förmatning av sidor = %s\n" #: src/main.c:527 msgid "Internals:\n" msgstr "Interna detaljer:\n" #: src/main.c:528 #, c-format msgid "" " verbosity level = %d\n" " file command = %s\n" " library path = \n" msgstr "" " \"mångordighet\" = %d\n" " file-kommando = %s\n" " katalog för hjälpfiler = \n" #: src/main.c:653 #, 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" msgstr "" "Användning: %s [FLAGGA]... [FIL]...\n" "\n" "Konvertera FIL(er) eller standard in till PostScript.\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:668 msgid "Tasks:\n" msgstr "Uppgifter:\n" #: src/main.c:669 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" msgstr "" " --version visa version\n" " --help visa denna hjälptext\n" " --guess visa gissningar för filtyper av FILER\n" " --which rapportera den fulla sökvägen till " "hjälpfilerna\n" " FILER\n" " --glob rapportera den fulla sökvägen till filer som\n" " matchar FILER\n" " --list=defaults visa standardinställningar och -parametrar\n" " --list=ÄMNE visa detaljerad lista om ÄMNE (delegations,\n" " encodings, features, variables, media, ppd,\n" " printers, prologues, style-sheets, user-" "options)\n" #: src/main.c:680 msgid "" "After having performed the task, exit successfully. Detailed lists may\n" "provide additional help on specific features.\n" msgstr "" "Avsluta normalt, efter att uppgiften har utförts. Detaljerade listor ger\n" "mer information om specifika funktioner.\n" #: src/main.c:688 msgid "Global:\n" msgstr "Globala flaggor:\n" #: src/main.c:689 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å avlusning\n" " -D, --define=NYCKEL[:VÄRDE] ta bort variabeln NYCKEL, eller sätt den till\n" " VÄRDE\n" #: src/main.c:698 #, 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" 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=NUM antal kolumner per ark (NUM > 0)\n" " --rows=NUM antal rader per ark (NUM > 0)\n" " --major=RIKTNING primär riktning att fylla i (RIKTNING=rows\n" " eller columns för rader respektive kolumner)\n" " -1, -2, ..., -9 fördefinierade teckenstorlekar och layouter " "för \n" " 1, .., 9 virtuella sidor\n" " -A, --file-align=LÄGE \"align\" separata filer enligt MODE\n" " (fill, rank, page, sheet eller ett tal)\n" " -j, --borders* rita ramar runt kolumner\n" " --margin[=NUM] definiera en inre marginal av storlek NUM\n" #: src/main.c:711 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:719 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 radnummer framför var NUM: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==NUM ange antal rader på en sida (teckenstorleken\n" " justeras)\n" " --l, --chars-per-line=NUM ange hur många kolumner som skrivs ut per sida\n" " (teckenstorleken justeras)\n" " -m, --catman behandla filen som en man-fil (samma som -L66)\n" " -T, --tab-size=NUM sätt tabulatoravståndet till NUM\n" " --non-printable-format=FMT ange hur icke skrivbara tecken skall skrivas\n" #: src/main.c:730 msgid "Headings:\n" msgstr "Sudhuvud och sidfot:\n" #: src/main.c:732 #, 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] TEXT kan innehålla särskilda %- och $-" "sekvenser\n" " --right-footer[=TEXT]\n" #: src/main.c:743 msgid "The TEXTs may use special escapes.\n" msgstr "TEXT-erna kan innehålla speciella metasekvenser.\n" #: src/main.c:748 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 teckenuppsättning 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" " --toc=TEXT skapa innehållsförteckning\n" " -Z, --delegate* delegera filer till ett annat program\n" #: src/main.c:760 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:767 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\n" " -G samma som --highlight-level=heavy\n" " --strip-level=NIVÅ nivå på bortrensning av kommentarer\n" #: src/main.c:776 #, 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=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" #: src/main.c:787 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:801 #, 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" msgstr "" "a2ps är gjort så att det normalt gör vad du vill, så lita på det.\n" "För att skriva ut innehållet i katalogen \"src\" snyggt " "medinnehållsförteckniing\n" "och skicka resultatet till skrivaren \"lw\",\n" " a2ps -P lw --toc src/*\n" "För att bearbeta filerna \"sample.ps\" och \"sample.html\" och visa " "resultatet,\n" " a2ps -P display sample.ps sample.html\n" "För att bearbeta en brevlåda med fyra sidor per ark,\n" " a2ps -=mail -4 mailbox\n" "För att skriva ut som en bok på standard-skrivaren, som klarar dubbelsidig\n" "utskrift,\n" " a2ps -=book paper.dvi.gz -d\n" #: src/main.c:822 #, fuzzy msgid "" "News, updates and documentation: visit http://www.gnu.org/software/a2ps/.\n" msgstr "" "För nyheter, uppdateringar och dokumentation besök\n" "http://www.inf.enst.fr/~demaille/a2ps/.\n" "\n" "Översättningen är gjord av Peter Nilsson .\n" #: src/main.c:824 msgid "Report bugs to .\n" msgstr "" "Rapportera fel till .\n" "Rapportera fel på översättningen till .\n" "Översättaren är medveten om att översättningen har brister. Kom gärna med\n" "konstruktiva synpunkter och tips på förbättringar!\n" #: src/main.c:942 #, 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-93 Miguel Santana\n" "Copyright (c) 1995-99 Akim Demaille, Miguel Santana" #: src/main.c:1173 msgid "Table of Content" msgstr "Innehållsförteckning" #: src/parsessh.y:236 #, 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:111 #, c-format msgid "unexpected character `%c'" msgstr "" #: src/sheets-map.l:211 lexppd.l:211 msgid "too many includes" msgstr "" #: src/sheets-map.l:296 src/sheets-map.l:303 #, fuzzy, c-format msgid "no key defined for `%s'" msgstr "kan inte hitta filen \"%s\"" #: src/select.c:122 src/ssheet.c:866 fonts.l:838 fonts.l:840 fonts.l:842 #: lib/pathwalk.c:328 lib/pathwalk.c:414 #, c-format msgid "cannot find file `%s'" msgstr "kan inte hitta filen \"%s\"" #: src/select.c:124 msgid "automatic style selection cancelled" msgstr "väljer ej stilmall automatiskt" #: src/ssheet.c:295 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "kan inte kompilera reguljärt uttryck \"%s\": %s" #: src/ssheet.c:974 src/ssheet.c:995 msgid "Known Style Sheets" msgstr "Kända stilmallar" #: src/ssheet.c:1461 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "kan inte hitta stilmallen \"%s\": använder enkel stilmall" #: src/sshread.c:453 #, c-format msgid "unknown encoding `%s', ignored" msgstr "okänd teckenuppsättning \"%s\", ignorerad" #: src/version-etc.c:38 msgid "Copyright (C) 1999 Free Software Foundation, Inc." msgstr "Copyright (C) 1999 Free Software Foundation, Inc." #: src/version-etc.c:60 #, c-format msgid "Written by %s.\n" msgstr "Utskrivet av %s.\n" #: src/version-etc.c:66 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 "" "Detta är fri programvara; se källkoden för kopieringsvillkor. Det finns\n" "INGEN garanti; inte ens för SÄLJBARHET eller LÄMPLIGHET FÖR NÅGOT SPECIELLT\n" "ÄNDAMÅL.\n" #: src/versions.c:133 #, c-format msgid "invalid version number `%s'" msgstr "felaktigt versionsnummer \"%s\"" #: lib/caret.c:43 msgid "space (i.e., ` ')" msgstr "mellanslag (d.v.s. \" \")" #: lib/caret.c:45 msgid "octal (i.e., `\\001' etc.)" msgstr "oktalt tal (\"\\001\" etc.)" #: lib/caret.c:47 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "hexadecimalt tal (\"\\x0a\" etc.)" #: lib/caret.c:49 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "cirkumflex (\"^C\", \"M-^C\" etc.)" #: lib/caret.c:51 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "emacs (\"C-c\", \"M-C-c\" etc.)" #: lib/caret.c:53 msgid "question-mark (i.e., `?')" msgstr "frågetecken (d.v.s. \"?\")" #: lib/closeout.c:71 lib/closeout.c:73 msgid "write error" msgstr "fel vid skrivning" #: confg.gperf:157 lib/encoding.c:638 #, c-format msgid "invalid option `%s'" msgstr "otillåten flagga \"%s\"" #: confg.gperf:224 confg.gperf:231 confg.gperf:238 #, c-format msgid "invalid definition for printer `%s': %s" msgstr "ogiltig definition för skrivaren \"%s\": %s" #: confg.gperf:229 confg.gperf:232 lib/printers.c:47 msgid "Unknown Printer" msgstr "Okänd skrivare" #: confg.gperf:236 confg.gperf:239 lib/printers.c:46 msgid "Default Printer" msgstr "Standardskrivare" #: confg.gperf:292 lib/options.c:697 #, c-format msgid "invalid variable identifier `%s'" msgstr "ogiltig variabelidentifierare \"%s\"" #: confg.gperf:321 #, c-format msgid "obsolete `%s' entry. Ignored" msgstr "\"%s\" obsolet. Ignorerad" #: lib/encoding.c:1114 lib/encoding.c:1135 msgid "Known Encodings" msgstr "Kända teckenuppsättningar" #: lib/faces.c:156 msgid "incomplete knowledge of faces" msgstr "otillräcklig kännedom om virtuella typsnitt" #: lib/filtdir.c:113 #, c-format msgid "cannot close directory `%s'" msgstr "kan inte stänga katalogen \"%s\"" #: lib/getnum.c:63 lib/getnum.c:121 lib/getnum.c:153 lib/getnum.c:221 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "ogiltigt argument \"%s\" för flaggan \"%s\"" #: lib/getnum.c:123 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "Tillåtna argument är heltal n så att: %s\n" #: lib/getnum.c:223 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "Tillåtna argument är flyttal f så att: %s\n" #: lib/jobs.c:308 #, c-format msgid "unknown encoding `%s'" msgstr "okänd teckenuppsättning \"%s\"" #: lib/madir.c:59 msgid "rows first" msgstr "rader först" #: lib/madir.c:62 msgid "columns first" msgstr "kolumner först" #: lib/media.c:173 #, c-format msgid "unknown medium `%s'" msgstr "okänt medium \"%s\"" #: lib/media.c:208 lib/media.c:237 msgid "Known Media" msgstr "Kända media" #: lib/media.c:211 msgid "Name" msgstr "Namn" #: lib/media.c:212 msgid "dimensions" msgstr "dimensioner" #: lib/metaseq.c:104 lib/metaseq.c:113 #, c-format msgid "Known Variables" msgstr "Kända metasekvenser (makron)" #: lib/metaseq.c:162 lib/metaseq.c:531 lib/metaseq.c:548 lib/metaseq.c:608 #: lib/metaseq.c:951 lib/metaseq.c:972 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%s: \"%c\" saknas för metasekvens %s%c" #: lib/metaseq.c:288 lib/metaseq.c:300 #, c-format msgid "Printed by %s" msgstr "Utskrivet av %s" #: lib/metaseq.c:298 #, c-format msgid "Printed by %s from %s" msgstr "Utskrivet av %s från %s" #: lib/metaseq.c:308 lib/metaseq.c:327 msgid "cannot get current working directory" msgstr "kan inte ta reda på aktuell katalog" #: lib/metaseq.c:341 lib/metaseq.c:534 lib/metaseq.c:563 lib/metaseq.c:652 #: lib/metaseq.c:954 lib/metaseq.c:987 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s: för långt argument till metasekvens %s" #: lib/metaseq.c:364 lib/metaseq.c:675 msgid "%b %d, %y" msgstr "%d %b %y" #: lib/metaseq.c:373 lib/metaseq.c:684 msgid "%A %B %d, %Y" msgstr "%Aen den %d %B %Y" #: lib/metaseq.c:419 lib/metaseq.c:448 lib/metaseq.c:491 lib/metaseq.c:724 #: lib/metaseq.c:808 lib/metaseq.c:867 lib/metaseq.c:922 lib/metaseq.c:1099 #: lib/metaseq.c:1234 lib/metaseq.c:1246 lib/metaseq.c:1289 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s: okänd \"%s\" metasekvens \"%c\" (%d)" #: lib/metaseq.c:426 lib/metaseq.c:815 #, c-format msgid "Page %d" msgstr "Sidan %d" #: lib/metaseq.c:431 lib/metaseq.c:826 #, c-format msgid "Page %d/%c" msgstr "Sidan %d/%c" #: lib/metaseq.c:593 lib/metaseq.c:1021 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "%s: otillåten avskiljare \"%s%c\" för metasekvens \"%s\"" #: lib/metaseq.c:601 lib/metaseq.c:611 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s: otillåtet argument för metasekvens %s%c" #: lib/metaseq.c:822 #, c-format msgid "Page %d/%d" msgstr "Siidan %d/%d" #: lib/metaseq.c:1266 msgid "output command" msgstr "utkommando" #: lib/options.c:302 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Försök med \"%s --help\" för mer information.\n" #: lib/output.c:466 #, c-format msgid "invalid face `%s'" msgstr "ogiltligt typsnitt \"%s\"" #: lib/output.c:538 #, c-format msgid "`%s' with no matching `%s'" msgstr "\"%s\" utan matchande \"%s\"" #: lib/ppd.c:108 msgid "Known Fonts" msgstr "Kända typsnitt" #: lib/ppd.c:111 msgid "" "\n" " None.\n" msgstr "" "\n" " Inga.\n" #: lib/ppd.c:149 lib/ppd.c:165 msgid "Known PostScript Printer Descriptions" msgstr "Kända PostScript-skrivarbeskrivningar" #: lib/prange.c:305 lib/prange.c:323 #, c-format msgid "invalid interval `%s'" msgstr "ogiltigt intervall: %s" #: lib/printers.c:396 lib/printers.c:413 #, c-format msgid "no command for the `%s' (%s%s)" msgstr "inget kommando för \"%s\" (%s%s)" #: lib/printers.c:429 msgid "sent to the standard output" msgstr "skickat till standard ut" #: lib/printers.c:430 msgid "sent to the default printer" msgstr "skickat till standardskrivaren" #: lib/printers.c:435 #, c-format msgid "saved into the file `%s'" msgstr "sparat på filen \"%s\"" #: lib/printers.c:436 #, c-format msgid "sent to the printer `%s'" msgstr "skickat till skrivaren \"%s\"" #: lib/printers.c:613 lib/printers.c:621 msgid "Known Outputs (Printers, etc.)" msgstr "Kända destinationer för utdata (skrivare etc.)" #: lib/prolog.c:98 lib/prolog.c:181 msgid "Known Prologues" msgstr "Kända prologer" #: lib/prolog.c:579 #, c-format msgid "font %f too big" msgstr "typsnittet %f för stort" #: lib/psgen.c:662 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "\"%s\" är en binär fil; utskriften avbruten" #: lib/quotearg.c:200 msgid "`" msgstr "" #: lib/quotearg.c:203 msgid "'" msgstr "" #: lib/userdata.c:129 msgid "user" msgstr "användare" #: lib/userdata.c:130 msgid "Unknown User" msgstr "Okänd användare" #: lib/useropt.c:75 #, c-format msgid "unknown user option `%s'" msgstr "okänd användarflagga \"%s\"" #: lib/useropt.c:86 lib/useropt.c:97 msgid "Known User Options" msgstr "Kända användarflaggor" #: lib/xbackupfile.c:105 lib/xmalloc.c:66 msgid "Memory exhausted" msgstr "Slut på minne" #: lib/xbackupfile.c:240 lib/xbackupfile.c:252 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "kan inte ändra namn på filen \"%s\" till \"%s\"." #: lib/xbackupfile.c:255 #, c-format msgid "restored file `%s'" msgstr "återskapad fil \"%s\"" #: lib/argmatch.c:159 #, fuzzy, c-format msgid "invalid argument %s for `%s'" msgstr "ogiltigt argument \"%s\" för flaggan \"%s\"" #: lib/argmatch.c:160 #, fuzzy, c-format msgid "ambiguous argument %s for `%s'" msgstr "tvetydigt argument \"%s\" för \"%s\"" #: lib/argmatch.c:178 #, c-format msgid "Valid arguments are:" msgstr "Tillåtna argument är:" #: lib/error.c:102 msgid "Unknown system error" msgstr "Okänt systemfel" #: lib/getopt.c:675 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: flaggan \"%s\" är tvetydig\n" #: lib/getopt.c:700 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: flaggan \"--%s\" tillåter inget argument\n" #: lib/getopt.c:705 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: flaggan \"%c%s\" tillåter inget argument\n" #: lib/getopt.c:723 lib/getopt.c:896 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: flaggan \"%s\" kräver argument\n" #: lib/getopt.c:752 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: okänd flagga \"--%s\"\n" #: lib/getopt.c:756 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: okänd flagga \"%c%s\"\n" #: lib/getopt.c:782 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: ogiltig flagga -- %c\n" #: lib/getopt.c:785 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: otillåten flagga -- %c\n" #: lib/getopt.c:815 lib/getopt.c:945 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: flaggan kräver argument -- %c\n" #: lib/getopt.c:862 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: flaggan \"-W %s\" är tvetydig\n" #: lib/getopt.c:880 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: flaggan \"-W %s\" tillåter inget argument\n" #, fuzzy #~ msgid "end of line in a %s" #~ msgstr "radslut i reguljärt uttryck" #~ msgid "end-of-line in regular expression" #~ msgstr "radslut i reguljärt uttryck" a2ps-4.14/po/pl.po0000644000175000017500000012366310735337370013241 0ustar mhattamhatta# Polskie komunikaty dla a2ps # Copyright (C) 1997, 1998 by Juliusz Chroboczek msgid "" msgstr "" "Project-Id-Version: a2ps 4.10\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-12-29 11:28+0800\n" "PO-Revision-Date: 1998-10-26 22:02+01:00\n" "Last-Translator: Juliusz Chroboczek \n" "Language-Team: Polish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-2\n" "Content-Transfer-Encoding: 8bit\n" #: src/buffer.c:68 msgid "any type" msgstr "jakikolwiek" #: src/delegate.c:137 confg.gperf:168 lib/encoding.c:530 lib/encoding.c:576 #: lib/encoding.c:616 lib/output.c:302 lib/pair_ht.c:296 lib/prolog.c:146 #, c-format msgid "missing argument for `%s'" msgstr "brakuje argumentu dla `%s'" #: src/delegate.c:260 lib/routines.c:160 lib/xbackupfile.c:248 #: lib/xbackupfile.c:276 lib/xbackupfile.c:284 #, c-format msgid "cannot create file `%s'" msgstr "nie mog³em utworzyæ pliku `%s'" #: src/delegate.c:269 src/select.c:193 lib/routines.c:190 lib/routines.c:196 #, c-format msgid "cannot open a pipe on `%s'" msgstr "nie mog³em otworzyæ potoku na `%s'" #: src/delegate.c:389 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "Delegacja `%s', z %s do %s\n" #: src/delegate.c:408 src/delegate.c:430 msgid "Applications configured for delegation" msgstr "Aplikacje skonfigurowane do delegacji" #: src/generate.c:88 #, c-format msgid "`%s' is a directory" msgstr "`%s' jest katalogiem" #: src/generate.c:96 src/main.c:560 src/main.c:582 confg.gperf:192 #: confg.gperf:355 lib/routines.c:154 #, c-format msgid "cannot open file `%s'" msgstr "nie mog³em otworzyæ pliku `%s'" #: src/generate.c:101 lib/xbackupfile.c:224 #, c-format msgid "cannot get informations on file `%s'" msgstr "nie mog³em przeczytaæ informacji o pliku `%s'" #: src/generate.c:168 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): 1 strona na 1 kartce]\n" #: src/generate.c:174 #, c-format msgid "[%s (%s): %d pages on 1 sheet]\n" msgstr "[%s (%s): %d stron na 1 kartce]\n" #: src/generate.c:181 #, c-format msgid "[%s (%s): %d pages on %d sheets]\n" msgstr "[%s (%s): %d stron na %d kartkach]\n" #: src/generate.c:208 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[Wszystkich: 1 strona na 1 kartce] %s\n" #: src/generate.c:212 #, c-format msgid "[Total: %d pages on 1 sheet] %s\n" msgstr "[Wszystkich: %d stron na 1 kartce] %s\n" #: src/generate.c:217 #, c-format msgid "[Total: %d pages on %d sheets] %s\n" msgstr "[Wszystkich: %d stron na %d kartkach] %s\n" #: src/generate.c:226 msgid "[1 line wrapped]\n" msgstr "" #: src/generate.c:229 #, fuzzy, c-format msgid "[%d lines wrapped]\n" msgstr "%d linii na stronê" #: src/generate.c:242 msgid "[No output produced]\n" msgstr "[Nic nie wytworzone]\n" #: src/generate.c:314 #, c-format msgid "%s, delegated to %s" msgstr "%s zadelegowane do %s" #: src/generate.c:322 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): niepowodzenie. Ignorowany]\n" #: src/generate.c:330 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (niedrukowalny): ignorowany]\n" #: src/generate.c:339 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (binarny): ignorowany]\n" #: src/generate.c:360 msgid "plain" msgstr "standard" #: lexssh.l:348 msgid "end-of-line in string constant" msgstr "koniec linii w ci±gu znaków" #: lexssh.l:415 src/sheets-map.l:153 src/sheets-map.l:192 #, fuzzy, c-format msgid "end of line inside a %s" msgstr "koniec linii w wyra¿eniu regularnym" #: src/main.c:203 #, c-format msgid "received signal %d: %s" msgstr "dosta³em sygna³ %d: %s" #: src/main.c:242 msgid "heavy" msgstr "wysoki" #: src/main.c:246 msgid "normal" msgstr "¶redni" #: src/main.c:250 msgid "none" msgstr "brak" #: src/main.c:324 src/main.c:328 msgid "yes" msgstr "tak" #: src/main.c:325 src/main.c:328 src/main.c:369 msgid "no" msgstr "nie" #: src/main.c:335 #, c-format msgid "Configuration status of %s %s\n" msgstr "Stan konfiguracyjny %s %s\n" #: src/main.c:339 src/main.c:697 msgid "Sheets:\n" msgstr "Strony:\n" #: src/main.c:340 #, 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" msgstr "" "Strony:\n" " domy¶lny papier = %s%s, %s\n" " rozmieszczenie na stronie = %d x %d, %s\n" " ramki = %s\n" " tryb zwarty = %s\n" " wewnêtrzny margines = %d\n" #: src/main.c:349 msgid "portrait" msgstr "papier pionowy" #: src/main.c:349 msgid "landscape" msgstr "papier poziomy" #: src/main.c:358 #, c-format msgid "%d characters per line" msgstr "%d znaków na liniê" #: src/main.c:361 #, c-format msgid "%d lines per page" msgstr "%d linii na stronê" #: src/main.c:364 #, c-format msgid "font size is %gpt" msgstr "rozmiar czcionki %gpt" #: src/main.c:373 msgid "each line" msgstr "ka¿d± liniê" #: src/main.c:377 #, c-format msgid "each %d lines" msgstr "co %d linii" #: src/main.c:380 src/main.c:718 msgid "Virtual pages:\n" msgstr "Strony wirtualne:\n" #: src/main.c:381 #, c-format msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %d\n" " non printable format = %s\n" msgstr "" " numerowanie linii = %s\n" " format = %s\n" " wielko¶æ tabulacji = %d\n" " format niedrukowalnych = %s\n" #: src/main.c:392 msgid "Headers:\n" msgstr "Nag³ówki:\n" #: src/main.c:393 #, 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:412 src/main.c:747 msgid "Input:\n" msgstr "Wej¶cie:\n" #: src/main.c:413 #, 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:438 src/main.c:504 msgid "selected automatically" msgstr "wybór automatyczny" #: src/main.c:441 src/main.c:766 msgid "Pretty-printing:\n" msgstr "Drukowanie z dekoracj±:\n" #: src/main.c:442 #, c-format msgid "" " style sheet = %s\n" " highlight level = %s\n" " strip level = %d\n" msgstr "" " styl = %s\n" " symbole graficzne = %s\n" " strip level = %d\n" #: src/main.c:462 msgid "never make backups" msgstr "nie rób kopii zapasowych" #: src/main.c:466 msgid "simple backups of every file" msgstr "prosta kopia zapasowa ka¿dego pliku" #: src/main.c:471 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:476 msgid "numbered backups of every file" msgstr "kopie numerowane ka¿dego pliku" #: src/main.c:480 src/main.c:775 msgid "Output:\n" msgstr "Wyj¶cie:\n" #: src/main.c:481 #, 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:494 src/main.c:786 msgid "PostScript:\n" msgstr "PostScript:\n" #: src/main.c:495 #, 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 = " msgstr "" " magic number = %s\n" " Opis drukarki (PPD) = %s\n" " domy¶lny PPD = %s\n" " format numeracji stron = %s\n" " liczba kopii = %d\n" " stron na kartkê = %s\n" " definicje `page device' = " #: src/main.c:515 #, c-format msgid " statusdict definitions = " msgstr " definicje `statusdict' = " #: src/main.c:518 #, c-format msgid " page prefeed = %s\n" msgstr " page prefeed = %s\n" #: src/main.c:527 msgid "Internals:\n" msgstr "Stan wewnêtrzny:\n" #: src/main.c:528 #, fuzzy, c-format msgid "" " verbosity level = %d\n" " file command = %s\n" " library path = \n" msgstr "" " poziom `verbosity' = %d\n" " komenda `file' = %s\n" " pliki tymczasowe = %s\n" " ¶cie¿ka do biblioteki = \n" #: src/main.c:653 #, 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" msgstr "" "Usage: %s [OPCJE]... PLIKI...\n" " lub: %s [OPCJE]...\n" "Drukuje PLIKI lub standartowe wej¶cie.\n" "Obowi±zkowe argumenty do d³ugich opcji s± te¿ obowi±zkowe przy krótkich " "opcjach.\n" "D³ugie opcje zaznaczone * wymagaj± argumentu typu tak/nie; odpowiednie\n" "krótkie opcje znacz± `tak'.\n" #: src/main.c:668 msgid "Tasks:\n" msgstr "" #: src/main.c:669 #, 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" msgstr "" " -V, --version poka¿ wersjê\n" " --help poka¿ tê pomoc\n" " --guess pokazuj domy¶lne typy PLIKÓW\n" " --list=TEMAT opisz dany TEMAT\n" "\n" "TEMAT mo¿e byæ dowolnym skrótem jednego z:\n" " * `defaults': domy¶lnie ustawione parametry\n" " * `features': krótka lista znanych mediów, systemów kodowania, styli itp.\n" " * `delegations', `encodings', `variables', `media',\n" " `ppd', `printers', `prologues', `style-sheets', `user-options': \n" " dok³adna lista.\n" #: src/main.c:680 msgid "" "After having performed the task, exit successfully. Detailed lists may\n" "provide additional help on specific features.\n" msgstr "" #: src/main.c:688 msgid "Global:\n" msgstr "Zachowanie globalne:\n" #: src/main.c:689 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 nic nie mów\n" " -v, --verbose[=STOPIEÑ] mów co robisz, w danym STOPNIU\n" " -=, --user-option=OPCJA u¿yj skrótu u¿ytkownika OPCJA\n" " --debug w³±cz `debugging'\n" " -D, --define=KLUCZ[:WARTO¦Æ] ustaw makro KLUCZ na podan± WARTO¦Æ\n" #: src/main.c:698 #, 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" msgstr "" " -M, --medium=NAZWA u¿yj medium NAZWA\n" " -r, --landscape papier poziomy\n" " -R, --portrait papier pionowy\n" " --columns=ILE liczba kolumn na stronê (ILE > 0)\n" " --rows=ILE liczba wierszy na stronê (ILE > 0)\n" " --major=KIERUNEK wype³niaj najpierw wiersze (rows) lub\n" " kolumny (columns)\n" " -1, -2, ..., -9 predefiniowane rozmieszczenia dla 1...9 stron " "wirtualnych\n" " -A, --file-align=TRYB sposób rozmieszczenia plików (fill, rank\n" " page, sheet albo liczba)\n" " -j, --borders* drukuj ramki wokó³ kolumn\n" " --margin[=ROZMIAR] wewnêtrzny margines danego ROZMIARU\n" #: src/main.c:711 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:719 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 drukuj numer linii co ILE linii\n" " -C to samo co --line-numbers=5\n" " -f, --fontsize=ROZMIAR u¿yj czcionki danego ROZMIARU do tekstu\n" " -L, --lines-per-page=ILE liczba linii na stronê wirtualn±\n" " -l, --chars-per-page=ILE liczba kolumn na stronê wirtualn±\n" " -m, --catman potraktuj plik jako stronê manuala (to samo co -" "L66)\n" " -T, --tabsize=ILE ustaw rozmiar tabulacji na ILE znaków\n" " --non-printable-format=FMT ustaw sposób drukowania niedrukowalnych znaków\n" #: src/main.c:730 msgid "Headings:\n" msgstr "Nag³ówki:\n" #: src/main.c:732 #, 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 bez nag³ówków\n" " -b, --header[=TEKST] ustaw nag³ówek ka¿dej strony\n" " -u, --underlay[=TEKST] wydrukuj TEKST jako t³o ka¿dej strony\n" " --center-title[=TEKST] ustaw tytu³ strony\n" " --left-title[=TEKST] ustaw lewy oraz prawy tytu³ strony\n" " --right-title[=TEKST]\n" " --left-footer[=TEKST] ustaw stopkê\n" " --footer[=TEKST] TEKST mo¿e u¿ywaæ dyrektyw $ i %\n" " --right-footer[=TEKST]\n" #: src/main.c:743 msgid "The TEXTs may use special escapes.\n" msgstr "" #: src/main.c:748 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] lista stron do drukowania\n" " -c, --truncate-lines* przycinaj d³ugie linie\n" " -i, --interpret* interpretuj znaki tab, bs i ff\n" " --end-of-line=TYP znak koñca linii (TYP: r, n, nr, rn, any)\n" " -X, --encoding=NAZWA u¿yj systemu kodowania wej¶ciowego NAZWA\n" " -t, --title=NAZWA ustaw nazwê zadania\n" " --stdin=NAZWA ustaw nazwê wej¶cia standartowego\n" " --print-anyway* drukuj równie¿ pliki binarne\n" " -Z, --delegate* deleguj pliki innym aplikacjom\n" " --toc[=TEKST] wygeneruj spis tre¶ci\n" #: src/main.c:760 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:767 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] drukuj z dekoracj± (u¿yj stylu JÊZYK)\n" " --highlight-level=POZIOM ustaw POZIOM 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:776 #, 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=PLIK drukuj do pliku PLIK. Je¶li PLIK jest `-',\n" " drukuj na standardowege wyj¶cie.\n" " --version-control=WORD nastaw kontrolê wersji\n" " --suffix=SUFFIX nastaw rozszerzenie plików zapasowych\n" " -P, --printer=NAZWA drukuj na drukarce NAZWA\n" " -d drukuj na domy¶lnej drukarce\n" #: src/main.c:787 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¿yj PLIK.pro jako prologu PostScript\n" " --ppd[=KLUCZ] wybór PPD: automatyczna lub KLUCZ\n" " -n, --copies=ILE drukuj ILE kopii ka¿dej strony\n" " -s, --sides=ILE liczba stron papieru (recto/recto-verso)\n" " -S, --setpagedevice=K[:V] prze¶lij definicjê `pagedevice'\n" " --statusdict=K[:[:]V] prze¶lij definicjê w `statusdict'\n" " -k, --page-prefeed w³±cz `page prefeed'\n" " -K, --no-page-prefeed wy³±cz `page prefeed'\n" #: src/main.c:801 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" msgstr "" #: src/main.c:822 #, fuzzy msgid "" "News, updates and documentation: visit http://www.gnu.org/software/a2ps/.\n" msgstr "" "Nowo¶ci, nowe wersje i dokumentacja s± dostêpne na http://www.inf.enst.fr/" "~demaille/a2ps/\n" #: src/main.c:824 #, fuzzy msgid "Report bugs to .\n" msgstr "Informacje o b³êdach i uwagi nale¿y kierowaæ do \n" #: src/main.c:942 #, 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" #: src/main.c:1173 msgid "Table of Content" msgstr "Spis tre¶ci" #: src/parsessh.y:236 #, c-format msgid "cannot process `%s' which requires a2ps version %s" msgstr "nie mogê przetworzyæ `%s' które wymaga a2ps w wersji %s" #: src/sheets-map.l:111 #, fuzzy, c-format msgid "unexpected character `%c'" msgstr "nieznana opcja `%c' (%d)" #: src/sheets-map.l:211 lexppd.l:211 msgid "too many includes" msgstr "" #: src/sheets-map.l:296 src/sheets-map.l:303 #, fuzzy, c-format msgid "no key defined for `%s'" msgstr "nie mogê znale¼æ pliku `%s'" #: src/select.c:122 src/ssheet.c:866 fonts.l:838 fonts.l:840 fonts.l:842 #: lib/pathwalk.c:328 lib/pathwalk.c:414 #, c-format msgid "cannot find file `%s'" msgstr "nie mogê znale¼æ pliku `%s'" #: src/select.c:124 msgid "automatic style selection cancelled" msgstr "automatyczny wybór stylu anulowany" #: src/ssheet.c:295 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "nie mog³em skompilowaæ wyra¿enie regularnego `%s': %s" #: src/ssheet.c:974 src/ssheet.c:995 msgid "Known Style Sheets" msgstr "Znane style" #: src/ssheet.c:1461 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "nie mog³em znale¼æ stylu `%s': u¿yto stylu prostego" #: src/sshread.c:453 #, c-format msgid "unknown encoding `%s', ignored" msgstr "nieznane kodowanie `%s', zignorowane" #: src/version-etc.c:38 msgid "Copyright (C) 1999 Free Software Foundation, Inc." msgstr "" #: src/version-etc.c:60 #, fuzzy, c-format msgid "Written by %s.\n" msgstr "Wydrukowa³ %s" #: src/version-etc.c:66 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 "" "Ten program jest wolny (`Free'); warunki kopiowania s± w ¼ród³ach.\n" "Program udostêpniony bez ¯ADNEJ gwarancji.\n" #: src/versions.c:133 #, c-format msgid "invalid version number `%s'" msgstr "niedozwolona wersja `%s'" #: lib/caret.c:43 msgid "space (i.e., ` ')" msgstr "spacja (` ')" #: lib/caret.c:45 msgid "octal (i.e., `\\001' etc.)" msgstr "ósemkowo (`\\001' itd.)" #: lib/caret.c:47 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "szesnastkowo (`\\x0a' itd.)" #: lib/caret.c:49 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "daszek (`^C', `M-^C' itd.)" #: lib/caret.c:51 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "emacs (`C-c', `M-C-c' itd.)" #: lib/caret.c:53 msgid "question-mark (i.e., `?')" msgstr "znak zapytania (`?')" #: lib/closeout.c:71 lib/closeout.c:73 msgid "write error" msgstr "" #: confg.gperf:157 lib/encoding.c:638 #, c-format msgid "invalid option `%s'" msgstr "b³êdna opcja `%s'" #: confg.gperf:224 confg.gperf:231 confg.gperf:238 #, c-format msgid "invalid definition for printer `%s': %s" msgstr "niepoprawna definicja drukarki `%s': %s" #: confg.gperf:229 confg.gperf:232 lib/printers.c:47 msgid "Unknown Printer" msgstr "Nieznana drukarka" #: confg.gperf:236 confg.gperf:239 lib/printers.c:46 msgid "Default Printer" msgstr "Domy¶lna drukarka" #: confg.gperf:292 lib/options.c:697 #, c-format msgid "invalid variable identifier `%s'" msgstr "niepoprawny identyfikator zmiennej `%s'" #: confg.gperf:321 #, c-format msgid "obsolete `%s' entry. Ignored" msgstr "linia `%s' przestarza³a. Zignorowana" #: lib/encoding.c:1114 lib/encoding.c:1135 msgid "Known Encodings" msgstr "Znane systemy kodowania" #: lib/faces.c:156 msgid "incomplete knowledge of faces" msgstr "niekompletna znajomo¶æ styli czcionek" #: lib/filtdir.c:113 #, c-format msgid "cannot close directory `%s'" msgstr "nie mog³em zamkn±æ katalogu `%s'" #: lib/getnum.c:63 lib/getnum.c:121 lib/getnum.c:153 lib/getnum.c:221 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "niepoprawny argument `%s' dla opcji `%s'" #: lib/getnum.c:123 #, 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" #: lib/getnum.c:223 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "Poprawnymi argumentami s± liczby rzeczywiste f, dla których: %s\n" #: lib/jobs.c:308 #, c-format msgid "unknown encoding `%s'" msgstr "nieznane kodowanie `%s'" #: lib/madir.c:59 msgid "rows first" msgstr "wiersze najpierw" #: lib/madir.c:62 msgid "columns first" msgstr "kolumny najpierw" #: lib/media.c:173 #, c-format msgid "unknown medium `%s'" msgstr "nieznane medium `%s'" #: lib/media.c:208 lib/media.c:237 msgid "Known Media" msgstr "Znane media" #: lib/media.c:211 msgid "Name" msgstr "Nazwa" #: lib/media.c:212 msgid "dimensions" msgstr "wymiary" #: lib/metaseq.c:104 lib/metaseq.c:113 #, c-format msgid "Known Variables" msgstr "Znane zmienne" #: lib/metaseq.c:162 lib/metaseq.c:531 lib/metaseq.c:548 lib/metaseq.c:608 #: lib/metaseq.c:951 lib/metaseq.c:972 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%s: brak '%c' do dyrektywy %s%c" #: lib/metaseq.c:288 lib/metaseq.c:300 #, c-format msgid "Printed by %s" msgstr "Wydrukowa³ %s" #: lib/metaseq.c:298 #, c-format msgid "Printed by %s from %s" msgstr "Wydrukowa³ %s z %s" #: lib/metaseq.c:308 lib/metaseq.c:327 msgid "cannot get current working directory" msgstr "nie mog³em otrzymaæ katalogu bie¿±cego" #: lib/metaseq.c:341 lib/metaseq.c:534 lib/metaseq.c:563 lib/metaseq.c:652 #: lib/metaseq.c:954 lib/metaseq.c:987 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s: za d³ugi argument dla dyrektywy %s" #: lib/metaseq.c:364 lib/metaseq.c:675 msgid "%b %d, %y" msgstr "%e.%m.%y" #: lib/metaseq.c:373 lib/metaseq.c:684 msgid "%A %B %d, %Y" msgstr "%A %e %B %Y" #: lib/metaseq.c:419 lib/metaseq.c:448 lib/metaseq.c:491 lib/metaseq.c:724 #: lib/metaseq.c:808 lib/metaseq.c:867 lib/metaseq.c:922 lib/metaseq.c:1099 #: lib/metaseq.c:1234 lib/metaseq.c:1246 lib/metaseq.c:1289 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s: w `%s' nieznana dyrektywa `%c' (%d)" #: lib/metaseq.c:426 lib/metaseq.c:815 #, c-format msgid "Page %d" msgstr "Strona %d" #: lib/metaseq.c:431 lib/metaseq.c:826 #, c-format msgid "Page %d/%c" msgstr "Strona %d/%c" #: lib/metaseq.c:593 lib/metaseq.c:1021 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "%s: niepoprawny separator `%s%c' do dyrektywy %s" #: lib/metaseq.c:601 lib/metaseq.c:611 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s: za d³ugi argument do dyrektywy %s%c" #: lib/metaseq.c:822 #, c-format msgid "Page %d/%d" msgstr "Strona %d/%d" #: lib/metaseq.c:1266 msgid "output command" msgstr "rozkaz wyj¶ciowy" #: lib/options.c:302 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Spróbuj `%s --help' ¿eby otrzymaæ wiêcej informacji\n" #: lib/output.c:466 #, c-format msgid "invalid face `%s'" msgstr "b³êdny styl czcionki `%s'" #: lib/output.c:538 #, c-format msgid "`%s' with no matching `%s'" msgstr "`%s' bez odpowiadaj±cego mu `%s'" #: lib/ppd.c:108 msgid "Known Fonts" msgstr "Znane fonty" #: lib/ppd.c:111 msgid "" "\n" " None.\n" msgstr "" "\n" " Brak.\n" #: lib/ppd.c:149 lib/ppd.c:165 msgid "Known PostScript Printer Descriptions" msgstr "Znane opisy drukarek (PPD)" #: lib/prange.c:305 lib/prange.c:323 #, c-format msgid "invalid interval `%s'" msgstr "niedozwolony przedzia³ `%s'" #: lib/printers.c:396 lib/printers.c:413 #, fuzzy, c-format msgid "no command for the `%s' (%s%s)" msgstr "brak domy¶lnej komendy dla nieznanej drukarki `%s'" #: lib/printers.c:429 msgid "sent to the standard output" msgstr "wys³ano na standardowe wyj¶cie" #: lib/printers.c:430 msgid "sent to the default printer" msgstr "wys³ano na domy¶ln± drukarkê" #: lib/printers.c:435 #, c-format msgid "saved into the file `%s'" msgstr "zapisano w pliku `%s'" #: lib/printers.c:436 #, c-format msgid "sent to the printer `%s'" msgstr "wys³ano do drukarki `%s'" #: lib/printers.c:613 lib/printers.c:621 msgid "Known Outputs (Printers, etc.)" msgstr "Znane cele wyj¶ciowe (drukarki itp.)" #: lib/prolog.c:98 lib/prolog.c:181 msgid "Known Prologues" msgstr "Znane prologi" #: lib/prolog.c:579 #, c-format msgid "font %f too big" msgstr "czcionka %f za du¿a" #: lib/psgen.c:662 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "`%s' jest plikiem binarnym, drukowanie anulowane" #: lib/quotearg.c:200 msgid "`" msgstr "" #: lib/quotearg.c:203 msgid "'" msgstr "" #: lib/userdata.c:129 msgid "user" msgstr "u¿ytkownik" #: lib/userdata.c:130 msgid "Unknown User" msgstr "Nieznany u¿ytkownik" #: lib/useropt.c:75 #, c-format msgid "unknown user option `%s'" msgstr "nieznana opcja u¿ytkownika `%s'" #: lib/useropt.c:86 lib/useropt.c:97 msgid "Known User Options" msgstr "Znane opcje u¿ytkownika" #: lib/xbackupfile.c:105 lib/xmalloc.c:66 msgid "Memory exhausted" msgstr "Pamiêæ wyczerpana" #: lib/xbackupfile.c:240 lib/xbackupfile.c:252 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "nie mog³em przemianowaæ pliku `%s' na `%s'" #: lib/xbackupfile.c:255 #, c-format msgid "restored file `%s'" msgstr "odtworzony plik `%s'" #: lib/argmatch.c:159 #, fuzzy, c-format msgid "invalid argument %s for `%s'" msgstr "niepoprawny argument `%s' dla opcji `%s'" #: lib/argmatch.c:160 #, fuzzy, c-format msgid "ambiguous argument %s for `%s'" msgstr "dwuznaczny argument `%s' dla opcji `%s'" #: lib/argmatch.c:178 #, c-format msgid "Valid arguments are:" msgstr "Poprawne argumenty:" #: lib/error.c:102 msgid "Unknown system error" msgstr "Nieznany b³±d systemowy" #: lib/getopt.c:675 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: opcja `%s' jest dwuznaczna\n" #: lib/getopt.c:700 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: opcja `--%s' nie mo¿e mieæ argumentu\n" #: lib/getopt.c:705 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: opcja `%c%s' nie mo¿e mieæ argumentu\n" #: lib/getopt.c:723 lib/getopt.c:896 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: opcja `%s' wymaga argumentu\n" #: lib/getopt.c:752 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: nieznana opcja `--%s'\n" #: lib/getopt.c:756 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: nieznana opcja `%c%s'\n" #: lib/getopt.c:782 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: niedozwolona opcja -- %c\n" #: lib/getopt.c:785 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: b³êdna opcja -- %c\n" #: lib/getopt.c:815 lib/getopt.c:945 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: opcja wymaga argumentu -- %c\n" #: lib/getopt.c:862 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: opcja: `-W %s' jest dwuznaczna\n" #: lib/getopt.c:880 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: opcja `-W %s' nie mo¿e mieæ argumentu\n" #, fuzzy #~ msgid "end of line in a %s" #~ msgstr "koniec linii w wyra¿eniu regularnym" #~ msgid "end-of-line in regular expression" #~ msgstr "koniec linii w wyra¿eniu regularnym" #, 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 "Zadañ (wynik pomy¶lny):\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 "" #~ "Ten program jest darmowy; mo¿esz rozprowadzaæ go i/lub modyfikowaæ " #~ "zachowuj±c\n" #~ "warunki Powszechnej Licencji Publicznej GNU (General Public Licence),\n" #~ "opublikowanej przez Free Software Foundation, w wersji 2 lub wy¿szej.\n" #~ "\n" #~ "program ten jest rozprowadzany w nadziei, ¿e bêdzie przydatny,\n" #~ "ale BEZ ¯ADNEJ GWARANCJI, nawet bez domy¶lnej gwarancji SPRZEDAWALNO¦CI\n" #~ "lub PRZYDATNO¦CI DO KONKRETNYCH ZASTOSOWAÑ. Szczegó³y znajdziesz\n" #~ "w Powszechnej Licencji Publicznej GNU.\n" #~ "\n" #~ "Powiniene¶ otrzymaæ kopiê Powszechnej Licencji Publicznej GNU wraz\n" #~ "z tym programem. Je¶li nie, napisz do Free Software Foundation,\n" #~ "Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" #~ msgid "" #~ "Written by and .\n" #~ msgstr "" #~ "Autorstwa oraz \n" #~ msgid "no default command for option `-d'" #~ msgstr "brak domy¶lnej komendy dla opcji `-d'" #~ msgid "pipe in %s\n" #~ msgstr "potok w %s\n" #~ msgid "save in %s\n" #~ msgstr "zapisuj w %s\n" #, fuzzy #~ msgid "%s: invalid argument `%s' for `%s'\n" #~ msgstr "niepoprawny argument `%s' dla opcji `%s'" #, fuzzy #~ msgid "invalid interval: %s" #~ msgstr "niedozwolony przedzia³ ca³kowity `%s'" #~ msgid "illegal integer interval: %s" #~ msgstr "niedozwolony przedzia³ ca³kowity `%s'" #, fuzzy #~ msgid "cannot find file %s" #~ msgstr "nie mog³em znale¼æ pliku `%s'" #, fuzzy #~ msgid "unrecognized font `%s'" #~ msgstr "nieznana czcionka `%s'" #, fuzzy #~ msgid "unrecognized face `%s'" #~ msgstr "nieznany styl czcionki `%s'" #, fuzzy #~ msgid "missing argument for %s" #~ msgstr "brakuj±cy argument dla dyrektywy `%s'" #, fuzzy #~ msgid "invalid variable identifier %s" #~ msgstr "niepoprawny identyfikator makra `%s'" #, fuzzy #~ msgid "cannot create file %s" #~ msgstr "nie mog³em utworzyæ pliku wyj¶ciowego `%s'" #, fuzzy #~ msgid "cannot open a pipe on %s" #~ msgstr "nie mog³em otworzyæ rury na `%s'" #, fuzzy #~ msgid "cannot open file %s" #~ msgstr "nie mog³em otwo¿yæ pliku `%s'" #, fuzzy #~ msgid "cannot open configuration file %s" #~ msgstr "nie mog³em otworzyæ pliku konfiguracyjnego `%s'" #~ msgid "encoding %s unknown" #~ msgstr "nieznane kodowanie %s" #~ msgid " library path = \n" #~ msgstr " ¶cie¿ka do bibliotek = \n" #~ msgid "user option `%s' not defined" #~ msgstr "niezdefiniowana opcja u¿ytkownika `%s'" #, fuzzy #~ msgid "illegal option: %s" #~ msgstr "niedozwolona opcja `%s'" #~ msgid "illegal option: `%s'" #~ msgstr "niedozwolona opcja `%s'" #~ msgid "" #~ "syntax error in option string `%s':\n" #~ "missing end of quotation: %c" #~ msgstr "" #~ "b³±d sk³adniowy w opcji `%s':\n" #~ "brak koñca cudzys³owa: %c" #, fuzzy #~ msgid "cannot backup and create file `%s'" #~ msgstr "nie mog³em utworzyæ pliku wyj¶ciowego `%s'" #~ msgid "wrong value for option %s: `%s'" #~ msgstr "z³a warto¶c opcji %s: `%s'" #~ msgid "Valid arguments are integers between %d and %d\n" #~ msgstr "Poprawnymi argumentami s± liczby ca³kowite w przedziale %d-%d\n" #~ msgid "Valid arguments are integers greater than %d\n" #~ msgstr "Poprawnymi argumentami s± liczby ca³kowite powy¿ej %d\n" #~ msgid "Valid arguments are lengths between %gpt and %gpt\n" #~ msgstr "Poprawnymi argumentami s± d³ugosci pomiêdzy %gpt a %gpt\n" #~ msgid "cannot find configuration file `%s'" #~ msgstr "nie mog³em znale¼æ pliku konfiguracyjnego `%s'" #~ msgid "Dynamic array `%s':\n" #~ msgstr "Tabela dynamiczna `%s':\n" #~ msgid "\tload: %d/%d (%2.1f%%)\n" #~ msgstr "\tload: %d/%d (%2.1f%%)\n" #~ msgid "Dynamic string:\n" #~ msgstr "Dynamiczny ci±g znaków:\n" #~ msgid "steady" #~ msgstr "sta³y" #~ msgid "linear" #~ msgstr "liniowy" #~ msgid "geometrical" #~ msgstr "geometryczny" #~ msgid "\tgrowth: %s, increment: %d\n" #~ msgstr "\twzrost: %s, inkrementacja: %d\n" #~ msgid "can't allocate %ld bytes for hash table: memory exhausted" #~ msgstr "" #~ "nie mo¿na zarezerwowaæ %ld znaków na tablicê rozproszon±: pamiêæ " #~ "wyczerpana" #~ msgid "Load=%ld/%ld=%.0f%%, " #~ msgstr "Load=%ld/%ld=%.0f%%, " #~ msgid "Rehash=%d, " #~ msgstr "Rehash=%d, " #~ msgid "Collisions=%ld/%ld=%.0f%%" #~ msgstr "Kolizje=%ld/%ld=%.0f%%" #~ msgid "Document title" #~ msgstr "tytu³ dokumentu" #~ msgid "Page label" #~ msgstr "Numer strony" #~ msgid "Valid arguments are floats greater than %.1f\n" #~ msgstr "Poprawnymi argumentami s± liczby powy¿ej %.1f\n" #~ msgid "free" #~ msgstr "wolne" #~ msgid " %-10s = save in %s\n" #~ msgstr " %-10s = zachowaj w %s\n" #~ msgid "water mark" #~ msgstr "t³o" #~ msgid "right header" #~ msgstr "prawy nag³ówek" #~ msgid "center footer" #~ msgstr "stopka centralna" #~ msgid "right footer" #~ msgstr "prawa stopka" #~ msgid "left footer" #~ msgstr "lewa stopka" #~ msgid "center title" #~ msgstr "tytu³ centralny" #~ msgid "right title" #~ msgstr "prawy tytu³" #~ msgid "left title" #~ msgstr "lewy tytu³" #~ msgid "General information on %s:\n" #~ msgstr "Informacja generalna o %s:\n" #~ msgid "" #~ " version = %s\n" #~ " verbosity level = %d\n" #~ " library path = \n" #~ msgstr "" #~ "Informacja generalna o %s:\n" #~ " wersja = %s\n" #~ " stopieñ `verbosity' = %d\n" #~ " ¶cie¿ka do bibliotek = \n" #~ msgid "found following options (argc=%d):\n" #~ msgstr "by³y nastêpuj±ce opcje (argc=%d):\n" #~ msgid "failure\n" #~ msgstr "niepowodzenie\n" #~ msgid "Walk through path\n" #~ msgstr "Eksploracja ¶cie¿ki\n" #~ msgid "Unkown Printer" #~ msgstr "Nieznana drukarka" #~ msgid "[%s (%s): 1 sheet]\n" #~ msgstr "[%s (%s): 1 strona]\n" #~ msgid "[%s (%s): %d sheets]\n" #~ msgstr "[%s (%s): %d stron na %d kartkach]\n" #~ msgid "%s: no closing `%s' for %s escape" #~ msgstr "%s: brak zamykaj±cego `%s' do dyrektywy %s" #~ msgid "%s: too long variable name for %s escape" #~ msgstr "%s: nazwa zmiennej za d³uga w dyrektywie %s" #~ 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" #~ 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 drukuj na drukarce NAME\n" #~ " -d drukuj na drukarce domy¶lnej\n" #~ " -s --sides=NUM ustaw ilo¶æ stron papieru (recto/recto-" #~ "verso)\n" #~ msgid "In the style %s, the keyword `%s' uses upper chars" #~ msgstr "W stylu %s s³owo kluczowe `%s' u¿ywa wielkich liter" #~ msgid "In the style %s, the sequence `%s-%s' uses upper chars" #~ msgstr "W stylu %s ci±g `%s-%s' u¿ywa wielkich liter" #~ msgid "in style %s, keyword `%s' is defined twice" #~ msgstr "W stylu %s s³owo kluczowe `%s' jest zdefiniowane dwa razy" #~ msgid "in style %s, operator `%s' is defined twice" #~ msgstr "W stylu %s s³owo kluczowe `%s' jest zdefiniowane dwa razy" #~ msgid "can't get current working directory" #~ msgstr "nie mog³em otrzymaæ katalogu domy¶lnego" #~ msgid "expansion of %s user string (`%s') is `%s'\n" #~ msgstr "rozwiniêcie ci±gu u¿ytkownika %s (\"%s\") jest \"%s\"\n" #~ msgid "cannot open `%s'" #~ msgstr "nie mog³em otwo¿yæ pliku \"%s\"" #~ msgid "error opening `%s'" #~ msgstr "b³±d przy otwieraniu pliku '%s' " #~ msgid "error getting file `%s' modification time" #~ msgstr "b³±d przy otrzymywaniu czasu ostatniej zmiany pliku \"%s\"" #~ msgid "cannot find file \"%s%s\"" #~ msgstr "nie mog³em znale¼æ pliku \"%s%s\"" #~ msgid "couldn't find system's configuration file `%s%c%s'" #~ msgstr "nie mog³em otworzyæ systemowego pliku konfiguracyjnego `%s%c%s'" #, fuzzy #~ msgid "unable to fork" #~ msgstr "nie mog³em otworzyæ rury" #~ msgid "error starting `/bin/sh -c %s'" #~ msgstr "b³±d przy startowaniu `/bin/sh -c %s'" #~ msgid "[Total: %d page on " #~ msgstr "[Wszystkich: %d strona na " #~ msgid "sheet" #~ msgstr "strona" #~ msgid "space" #~ msgstr "odstêp" #~ msgid "caret" #~ msgstr "daszek" #~ msgid "Known Media\n" #~ msgstr "Znane media\n" #~ msgid "Known languages (%d)" #~ msgstr "Znane jêzyki (%d)" #~ msgid "" #~ " In %s:\n" #~ "\t" #~ msgstr "" #~ " W %s:\n" #~ "\t" #~ msgid "rows" #~ msgstr "linii" #~ msgid "columns" #~ msgstr "kolumn" #~ msgid "path_walk() on path %s\n" #~ msgstr "path_walk() na ¶cie¿ce %s\n" #~ msgid "In the style %s, the symbol '%s' uses upper chars" #~ msgstr "W stylu %s symbol `%s' u¿ywa wielkich liter" #~ msgid "in style %s, symbol `%s' is defined twice" #~ msgstr "W stylu %s symbol `%s' jest zdefiniowane dwa razy" #~ msgid "in style %s, regular symbol `%s' is defined twice" #~ msgstr "W stylu %s symbol zyk³y `%s' jest zdefiniowane dwa razy" #~ msgid "in style %s, special symbol `%s' is defined twice" #~ msgstr "W stylu %s symbol specjalny `%s' jest zdefiniowane dwa razy" #~ msgid "not enough \\verb delimiters (%s) to print %s" #~ msgstr "za ma³o znaków ograniczaj±cych \\verb (%s) przy drukowaniu %s" #~ msgid "couldn't find prolog \"%s\"" #~ msgstr "nie mog³em znale¼æ prologu \"%s\"" #~ msgid "unknown" #~ msgstr "nieznane" a2ps-4.14/po/es.po0000644000175000017500000013117310735337365013234 0ustar mhattamhatta# Mensajes en castellano para a2ps. # Copyright (C) 1997, 98 Miguel Ángel Varó Giner # Miguel Ángel Varó Giner , 1998. # msgid "" msgstr "" "Project-Id-Version: a2ps 4.7.21\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-12-29 11:28+0800\n" "PO-Revision-Date: 1999-02-12 10:42+01:00\n" "Last-Translator: Miguel Ángel Varó Giner \n" "Language-Team: Spanish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8-bit\n" #: src/buffer.c:68 msgid "any type" msgstr "qualsea" #: src/delegate.c:137 confg.gperf:168 lib/encoding.c:530 lib/encoding.c:576 #: lib/encoding.c:616 lib/output.c:302 lib/pair_ht.c:296 lib/prolog.c:146 #, c-format msgid "missing argument for `%s'" msgstr "falta argumento para `%s'" #: src/delegate.c:260 lib/routines.c:160 lib/xbackupfile.c:248 #: lib/xbackupfile.c:276 lib/xbackupfile.c:284 #, c-format msgid "cannot create file `%s'" msgstr "no se puede crear el fichero `%s'" #: src/delegate.c:269 src/select.c:193 lib/routines.c:190 lib/routines.c:196 #, c-format msgid "cannot open a pipe on `%s'" msgstr "no se puede abrir una tubería en `%s'" #: src/delegate.c:389 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "Delegación `%s', de %s a %s\n" #: src/delegate.c:408 src/delegate.c:430 msgid "Applications configured for delegation" msgstr "Aplicaciones configuradas para la delegación" #: src/generate.c:88 #, c-format msgid "`%s' is a directory" msgstr "`%s' es un directorio" #: src/generate.c:96 src/main.c:560 src/main.c:582 confg.gperf:192 #: confg.gperf:355 lib/routines.c:154 #, c-format msgid "cannot open file `%s'" msgstr "imposible abrir el fichero '%s'" #: src/generate.c:101 lib/xbackupfile.c:224 #, c-format msgid "cannot get informations on file `%s'" msgstr "no se puede obtener información del fichero `%s'" #: src/generate.c:168 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): 1 página en 1 hoja]\n" #: src/generate.c:174 #, c-format msgid "[%s (%s): %d pages on 1 sheet]\n" msgstr "[%s (%s): %d páginas en 1 hoja]\n" #: src/generate.c:181 #, c-format msgid "[%s (%s): %d pages on %d sheets]\n" msgstr "[%s (%s): %d páginas en %d hojas]\n" #: src/generate.c:208 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[Total: 1 página en 1 hoja] %s\n" #: src/generate.c:212 #, c-format msgid "[Total: %d pages on 1 sheet] %s\n" msgstr "[Total: %d páginas en 1 hoja] %s\n" #: src/generate.c:217 #, c-format msgid "[Total: %d pages on %d sheets] %s\n" msgstr "[Total: %d páginas en %d hojas] %s\n" #: src/generate.c:226 msgid "[1 line wrapped]\n" msgstr "" #: src/generate.c:229 #, fuzzy, c-format msgid "[%d lines wrapped]\n" msgstr "%d líneas por página" #: src/generate.c:242 msgid "[No output produced]\n" msgstr "[No se ha producido salida]\n" #: src/generate.c:314 #, c-format msgid "%s, delegated to %s" msgstr "%s, delegado a %s" #: src/generate.c:322 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): ha fallado. Ignorado]\n" #: src/generate.c:330 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (no imprimible): ignorado]\n" #: src/generate.c:339 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (binario): ignorado]\n" #: src/generate.c:360 msgid "plain" msgstr "estándar" #: lexssh.l:348 msgid "end-of-line in string constant" msgstr "fin-de-línea en una cadena constante" #: lexssh.l:415 src/sheets-map.l:153 src/sheets-map.l:192 #, fuzzy, c-format msgid "end of line inside a %s" msgstr "fin-de-línea en expresión regular" #: src/main.c:203 #, c-format msgid "received signal %d: %s" msgstr "" #: src/main.c:242 msgid "heavy" msgstr "máximo" #: src/main.c:246 msgid "normal" msgstr "normal" #: src/main.c:250 msgid "none" msgstr "ninguno" #: src/main.c:324 src/main.c:328 msgid "yes" msgstr "sí" #: src/main.c:325 src/main.c:328 src/main.c:369 msgid "no" msgstr "no" #: src/main.c:335 #, c-format msgid "Configuration status of %s %s\n" msgstr "Estado de configuración de %s %s\n" #: src/main.c:339 src/main.c:697 msgid "Sheets:\n" msgstr "Hojas:\n" #: src/main.c:340 #, 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" msgstr "" " soporte = %s%s, %s\n" " disposición de páginas = %d x %d, %s\n" " bordes = %s\n" " alineamiento de fichero = %s\n" " margen interior = %d\n" #: src/main.c:349 msgid "portrait" msgstr "vertical" #: src/main.c:349 msgid "landscape" msgstr "apaisado" #: src/main.c:358 #, c-format msgid "%d characters per line" msgstr "%d caracteres por línea" #: src/main.c:361 #, c-format msgid "%d lines per page" msgstr "%d líneas por página" #: src/main.c:364 #, c-format msgid "font size is %gpt" msgstr "el tamaño del letra es %g puntos" #: src/main.c:373 msgid "each line" msgstr "cada línea" #: src/main.c:377 #, c-format msgid "each %d lines" msgstr "cada %d líneas" #: src/main.c:380 src/main.c:718 msgid "Virtual pages:\n" msgstr "Páginas virtuales:\n" #: src/main.c:381 #, c-format msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %d\n" " non printable format = %s\n" msgstr "" " numeración de líneas = %s\n" " formato = %s\n" " tamaño de tabulación = %d\n" " caracteres no imprimibles = %s\n" #: src/main.c:392 msgid "Headers:\n" msgstr "Cabeceras:\n" #: src/main.c:393 #, 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:412 src/main.c:747 msgid "Input:\n" msgstr "Entrada:\n" #: src/main.c:413 #, 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:438 src/main.c:504 msgid "selected automatically" msgstr "seleccionado automáticamente" #: src/main.c:441 src/main.c:766 msgid "Pretty-printing:\n" msgstr "Pretty-printing:\n" #: src/main.c:442 #, 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:462 msgid "never make backups" msgstr "nunca hacer copias de seguridad" #: src/main.c:466 msgid "simple backups of every file" msgstr "copias de seguridad simples para cada fichero" #: src/main.c:471 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" "copias de seguridad numeradas para ficheros ya numerados,\n" " y simples para los demás" #: src/main.c:476 msgid "numbered backups of every file" msgstr "copias de seguridad numeradas para cada fichero" #: src/main.c:480 src/main.c:775 msgid "Output:\n" msgstr "Salida:\n" #: src/main.c:481 #, 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 = %s\n" #: src/main.c:494 src/main.c:786 msgid "PostScript:\n" msgstr "PostScript:\n" #: src/main.c:495 #, 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 = " msgstr "" " magic number = %s\n" " Descripción de la Impresora (PPD) = %s\n" " PPD por defecto = %s\n" " formato del número de hoja = %s\n" " número de copias = %d\n" " caras por hoja = %s\n" " definiciones dispositivo página = " #: src/main.c:515 #, c-format msgid " statusdict definitions = " msgstr " definiciones statusdict = " #: src/main.c:518 #, c-format msgid " page prefeed = %s\n" msgstr " precarga del papel = %s\n" #: src/main.c:527 msgid "Internals:\n" msgstr "Detalles Internos:\n" #: src/main.c:528 #, fuzzy, c-format msgid "" " verbosity level = %d\n" " file command = %s\n" " library path = \n" msgstr "" " nivel de verbosidad = %d\n" " orden de fichero = %s\n" " directorio temporal = %s\n" " acceso a las librerías = \n" #: src/main.c:653 #, 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" msgstr "" "Uso: %s [OPCIONES]... [FICHEROS]...\n" " o: %s [OPCIONES]...\n" "Para imprimir FICHEROS, o imprimir a la salida estándar.\n" "Argumentos obligatorios para opciones largas lo son también para las\n" "cortas. Opciones largas marcadas con * requieren un argumento sí/no,\n" "las correspondientes opciones cortas suponen un `sí'.\n" #: src/main.c:668 msgid "Tasks:\n" msgstr "" #: src/main.c:669 #, 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" msgstr "" " -V, --version muestra versión y sale\n" " --help muestra esta página y termina\n" " --copyright muestra las derechos y condiciones de copia\n" " --guess muestra los FICHEROS del tipo elegido\n" " --list=CATEGORÏA muestra opciones de configuración (y valor)\n" "\n" "CATEGORÍA puede ser una abreviatura no ambigua de:\n" " * `defaults': configuración y valores por defecto,\n" " * `features': listado corto de hojas de estilo, soportes, etc.,\n" " * `delegations', `encodings', `variables', `media',\n" " `ppd', `printers', `prologues', `style-sheets', `user-options': \n" " listado detallado.\n" #: src/main.c:680 msgid "" "After having performed the task, exit successfully. Detailed lists may\n" "provide additional help on specific features.\n" msgstr "" #: src/main.c:688 msgid "Global:\n" msgstr "Global:\n" #: src/main.c:689 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] activar la verbosidad, o ponerla al NIVEL\n" " -=, --user-option=OPCIÓN usar la OPCIÓN abreviada del usuario\n" " --debug activa las funciones de depuración\n" " -D, --define=CLAVE[:VALOR] poner o quitar un VALOR a la CLAVE\n" #: src/main.c:698 #, 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" 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 (NUM > 0)\n" " --rows=NUM número de líneas por hoja (NUM > 0)\n" " --major=DIRECCIÓN rellena primero filas(row)/columnas(column)\n" " -1, -2, ..., -9 disposiciones predef. de páginas virtuales\n" " -A, --file-align=MODO alinea distintos ficheros según el MODO\n" " (fill, rank, page, sheet, o un número)\n" " -j, --borders* imprime bordes alrededor de las columnas\n" " --margin[=NUM] define el margen interior de tamaño NUM\n" #: src/main.c:711 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:719 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 el tipo de letra TAMAÑO (real)\n" " -L, --lines-per-page=NUM especifica las líneas por página\n" " -l, --chars-per-page=NUM especifica las columnas por página\n" " -m, --catman procesa el fichero como una página\n" " de ayuda (igual que -L66)\n" " -T, --tabsize=NUM tamaño de tabulación = NUM\n" " --non-printable-format=FMT indica como imprimir los caracteres\n" " no visibles\n" #: src/main.c:730 msgid "Headings:\n" msgstr "Cabeceras:\n" #: src/main.c:732 #, 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 sin encabezamiento\n" " -b, --header[=TEXTO] encabezamiento\n" " -u, --underlay[=TEXTO] imprime TEXTO debajo de cada página\n" " --center-title[=TEXTO] título de las páginas\n" " --left-title[=TEXTO] títulos izquierdo y derecho\n" " --right-title[=TEXTO]\n" " --left-footer[=TEXTO] pie de página\n" " --footer[=TEXTO] permite utilizar sec. de escape $ y %\n" " --right-footer[=TEXTO]\n" #: src/main.c:743 msgid "The TEXTs may use special escapes.\n" msgstr "" #: src/main.c:748 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:760 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:767 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 pretty-printing (con el estilo LENG)\n" " --highlight-level=NIVEL indica el NIVEL de color (none, normal, heavy)\n" " -g alias para --highlight-level=heavy\n" " --strip-level=NUM nivel de supresión de comentarios\n" #: src/main.c:776 #, 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=FICHERO guarda la salida en el FICHERO.\n" " Si FICHERO es '-', la redirige a la salida\n" " estándar.\n" " --version-control=PALABRA sobrescribe el control de versión actual\n" " --suffix=SUFIJO sobrescribe el sufijo de copia 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" #: src/main.c:787 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=NUM imprime en MODO `simplex' (o `1'), `duplex'\n" " (o `2'), `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:801 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" msgstr "" #: src/main.c:822 #, fuzzy msgid "" "News, updates and documentation: visit http://www.gnu.org/software/a2ps/.\n" msgstr "" "Noticias, actualizaciones y documentación: visita http://www.inf.enst.fr/" "~demaille/a2ps/\n" "Enviad comentarios sobre la traducción a mvaro@dlsi.ua.es\n" #: src/main.c:824 #, fuzzy msgid "Report bugs to .\n" msgstr "" "Informes de error a \n" "Informes sobre la traducción a \n" #: src/main.c:942 #, 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" #: src/main.c:1173 msgid "Table of Content" msgstr "Tabla de Contenidos" #: src/parsessh.y:236 #, 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:111 #, fuzzy, c-format msgid "unexpected character `%c'" msgstr "opción desconocida `%c' (%d)" #: src/sheets-map.l:211 lexppd.l:211 msgid "too many includes" msgstr "" #: src/sheets-map.l:296 src/sheets-map.l:303 #, fuzzy, c-format msgid "no key defined for `%s'" msgstr "no se puede encontrar el fichero `%s'" #: src/select.c:122 src/ssheet.c:866 fonts.l:838 fonts.l:840 fonts.l:842 #: lib/pathwalk.c:328 lib/pathwalk.c:414 #, c-format msgid "cannot find file `%s'" msgstr "no se puede encontrar el fichero `%s'" #: src/select.c:124 msgid "automatic style selection cancelled" msgstr "cancelada selección automática de estilo" #: src/ssheet.c:295 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "no se puede compilar la expresión regular `%s': %s" #: src/ssheet.c:974 src/ssheet.c:995 msgid "Known Style Sheets" msgstr "Hojas de Estilo Conocidas" #: src/ssheet.c:1461 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "no se puede encontrar hoja de estilo `%s': utilizando estilo estándar" #: src/sshread.c:453 #, c-format msgid "unknown encoding `%s', ignored" msgstr "codificación desconocida `%s', ignorada" #: src/version-etc.c:38 msgid "Copyright (C) 1999 Free Software Foundation, Inc." msgstr "" #: src/version-etc.c:60 #, fuzzy, c-format msgid "Written by %s.\n" msgstr "Impreso por %s" #: src/version-etc.c:66 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" #: src/versions.c:133 #, c-format msgid "invalid version number `%s'" msgstr "número de versión no válido `%s'" #: lib/caret.c:43 msgid "space (i.e., ` ')" msgstr "espacio (` ')" #: lib/caret.c:45 msgid "octal (i.e., `\\001' etc.)" msgstr "octal (`\\001', etc.)" #: lib/caret.c:47 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "hexadecimal (`\\x0a', etc.)" #: lib/caret.c:49 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "circunflejo (`^C', `M-^C', etc.)" #: lib/caret.c:51 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "emacs (`C-c', `M-C-c', etc.)" #: lib/caret.c:53 msgid "question-mark (i.e., `?')" msgstr "interrogación (`?')" #: lib/closeout.c:71 lib/closeout.c:73 msgid "write error" msgstr "" #: confg.gperf:157 lib/encoding.c:638 #, c-format msgid "invalid option `%s'" msgstr "opción no válida `%s'" #: confg.gperf:224 confg.gperf:231 confg.gperf:238 #, c-format msgid "invalid definition for printer `%s': %s" msgstr "definición no válida para la impresora `%s': %s" #: confg.gperf:229 confg.gperf:232 lib/printers.c:47 msgid "Unknown Printer" msgstr "Impresora Desconocida" #: confg.gperf:236 confg.gperf:239 lib/printers.c:46 msgid "Default Printer" msgstr "Impresora por defecto" #: confg.gperf:292 lib/options.c:697 #, c-format msgid "invalid variable identifier `%s'" msgstr "identificador de variable `%s' no vàlido" #: confg.gperf:321 #, c-format msgid "obsolete `%s' entry. Ignored" msgstr "entrada '%s' obsoleta. Ignorada" #: lib/encoding.c:1114 lib/encoding.c:1135 msgid "Known Encodings" msgstr "Codificaciones conocidas" #: lib/faces.c:156 msgid "incomplete knowledge of faces" msgstr "conocimiento incompleto de los estilos de caracteres" #: lib/filtdir.c:113 #, c-format msgid "cannot close directory `%s'" msgstr "imposible cerrar el directorio '%s'" #: lib/getnum.c:63 lib/getnum.c:121 lib/getnum.c:153 lib/getnum.c:221 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "argumento no válido `%s' para `%s'" #: lib/getnum.c:123 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "Los argumentos válidos son enteros n tal como: %s\n" #: lib/getnum.c:223 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "Los argumentos válidos son reales f tal como: %s\n" #: lib/jobs.c:308 #, c-format msgid "unknown encoding `%s'" msgstr "codificación desconocida `%s'" #: lib/madir.c:59 msgid "rows first" msgstr "primero filas" #: lib/madir.c:62 msgid "columns first" msgstr "primero columnas" #: lib/media.c:173 #, c-format msgid "unknown medium `%s'" msgstr "soporte `%s' desconocido" #: lib/media.c:208 lib/media.c:237 msgid "Known Media" msgstr "Soportes Conocidos" #: lib/media.c:211 msgid "Name" msgstr "Nombre" #: lib/media.c:212 msgid "dimensions" msgstr "dimensiones" #: lib/metaseq.c:104 lib/metaseq.c:113 #, c-format msgid "Known Variables" msgstr "Variables Conocidas" #: lib/metaseq.c:162 lib/metaseq.c:531 lib/metaseq.c:548 lib/metaseq.c:608 #: lib/metaseq.c:951 lib/metaseq.c:972 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%s: falta `%c' para la secuencia de escape %s%c" #: lib/metaseq.c:288 lib/metaseq.c:300 #, c-format msgid "Printed by %s" msgstr "Impreso por %s" #: lib/metaseq.c:298 #, c-format msgid "Printed by %s from %s" msgstr "Impreso por %s desde %s" #: lib/metaseq.c:308 lib/metaseq.c:327 msgid "cannot get current working directory" msgstr "no se puede determinar el directorio actual" #: lib/metaseq.c:341 lib/metaseq.c:534 lib/metaseq.c:563 lib/metaseq.c:652 #: lib/metaseq.c:954 lib/metaseq.c:987 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s: argumento demasiado largo para la secuencia de escape %s" #: lib/metaseq.c:364 lib/metaseq.c:675 msgid "%b %d, %y" msgstr "%d %b %y" #: lib/metaseq.c:373 lib/metaseq.c:684 msgid "%A %B %d, %Y" msgstr "%A %d %B %Y" #: lib/metaseq.c:419 lib/metaseq.c:448 lib/metaseq.c:491 lib/metaseq.c:724 #: lib/metaseq.c:808 lib/metaseq.c:867 lib/metaseq.c:922 lib/metaseq.c:1099 #: lib/metaseq.c:1234 lib/metaseq.c:1246 lib/metaseq.c:1289 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s: secuencia de escape \"%s%c\" (%d) desconocida" #: lib/metaseq.c:426 lib/metaseq.c:815 #, c-format msgid "Page %d" msgstr "Página %d" #: lib/metaseq.c:431 lib/metaseq.c:826 #, c-format msgid "Page %d/%c" msgstr "Página %d/%c" #: lib/metaseq.c:593 lib/metaseq.c:1021 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "%s: separador no válido `%s%c' para la secuencia de escape `%s'" #: lib/metaseq.c:601 lib/metaseq.c:611 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s: argumento no válido para la secuencia de escape %s%c" #: lib/metaseq.c:822 #, c-format msgid "Page %d/%d" msgstr "Página %d/%d" #: lib/metaseq.c:1266 msgid "output command" msgstr "orden de salida" #: lib/options.c:302 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Prueba `%s --help' para más información.\n" #: lib/output.c:466 #, c-format msgid "invalid face `%s'" msgstr "opción no válida `%s'" #: lib/output.c:538 #, c-format msgid "`%s' with no matching `%s'" msgstr "`%s' sin correspondiente `%s'" #: lib/ppd.c:108 msgid "Known Fonts" msgstr "Tipos de letra Conocidos" #: lib/ppd.c:111 msgid "" "\n" " None.\n" msgstr "" "\n" " Ninguna.\n" #: lib/ppd.c:149 lib/ppd.c:165 msgid "Known PostScript Printer Descriptions" msgstr "Descripciones de Impresora Postscript Conocidas" #: lib/prange.c:305 lib/prange.c:323 #, c-format msgid "invalid interval `%s'" msgstr "intervalo no válido `%s'" #: lib/printers.c:396 lib/printers.c:413 #, fuzzy, c-format msgid "no command for the `%s' (%s%s)" msgstr "no hay orden por defecto para la impresora desconocida `%s'" #: lib/printers.c:429 msgid "sent to the standard output" msgstr "enviado a la salida estándar" #: lib/printers.c:430 msgid "sent to the default printer" msgstr "enviado a la impresora por defecto" #: lib/printers.c:435 #, c-format msgid "saved into the file `%s'" msgstr "guardado en el fichero '%s'" #: lib/printers.c:436 #, c-format msgid "sent to the printer `%s'" msgstr "enviado a la impresora '%s'" #: lib/printers.c:613 lib/printers.c:621 msgid "Known Outputs (Printers, etc.)" msgstr "Destinos de salida conocidos (impresoras, etc.)" #: lib/prolog.c:98 lib/prolog.c:181 msgid "Known Prologues" msgstr "Prólogos conocidos" #: lib/prolog.c:579 #, c-format msgid "font %f too big" msgstr "el tipo de letra %f es demasiado grande" #: lib/psgen.c:662 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "`%s' es un fichero binario, impresión interrumpida" #: lib/quotearg.c:200 msgid "`" msgstr "" #: lib/quotearg.c:203 msgid "'" msgstr "" #: lib/userdata.c:129 msgid "user" msgstr "usuario" #: lib/userdata.c:130 msgid "Unknown User" msgstr "Usuario Desconocido" #: lib/useropt.c:75 #, c-format msgid "unknown user option `%s'" msgstr "opción de usuario desconocida `%s'" #: lib/useropt.c:86 lib/useropt.c:97 msgid "Known User Options" msgstr "Opciones de Usuario Conocidas" #: lib/xbackupfile.c:105 lib/xmalloc.c:66 msgid "Memory exhausted" msgstr "Memoria agotada" #: lib/xbackupfile.c:240 lib/xbackupfile.c:252 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "no se puede renombrar el fichero `%s' como `%s'" #: lib/xbackupfile.c:255 #, c-format msgid "restored file `%s'" msgstr "fichero restaurado `%s'" #: lib/argmatch.c:159 #, c-format msgid "invalid argument %s for `%s'" msgstr "argumento no válido %s para `%s'" #: lib/argmatch.c:160 #, fuzzy, c-format msgid "ambiguous argument %s for `%s'" msgstr "argumento ambiguo `%s' para `%s'" #: lib/argmatch.c:178 #, c-format msgid "Valid arguments are:" msgstr "Los argumentos válidos son:" #: lib/error.c:102 msgid "Unknown system error" msgstr "Error de sistema desconocido" #: lib/getopt.c:675 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: la opción `%s' es ambigua\n" #: lib/getopt.c:700 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: la opción `--%s' no permite un argumento\n" #: lib/getopt.c:705 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: la opción `%c%s' no permite un argumento\n" #: lib/getopt.c:723 lib/getopt.c:896 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: la opción `%s' precisa un argumento\n" #: lib/getopt.c:752 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: opción desconocida `--%s'\n" #: lib/getopt.c:756 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: opción desconocida `%c%s'\n" #: lib/getopt.c:782 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: opción ilegal -- %c\n" #: lib/getopt.c:785 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: opción no válida -- %c\n" #: lib/getopt.c:815 lib/getopt.c:945 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: la opción precisa un argumento -- %c\n" #: lib/getopt.c:862 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: la opción `-W %s' es ambigua\n" #: lib/getopt.c:880 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: la opción `-W %s' no permite un argumento\n" #, fuzzy #~ msgid "end of line in a %s" #~ msgstr "fin-de-línea en expresión regular" #~ msgid "end-of-line in regular expression" #~ msgstr "fin-de-línea en expresión 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 "Tareas (acaban con éxito):\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 es software libre; puede ser redistribuido y/o\n" #~ "modificado bajo los términos de la Licencia Pública General de\n" #~ "GNU tal y como se publica por la Free Software Foundation; bien\n" #~ "en su versión 2, o (a su elección) cualquier versión posterior.\n" #~ "\n" #~ "Este programa se distribuye con la esperanza de que sea útil,\n" #~ "pero SIN NINGUNA GARANTÍA; ni siquiera la garantía implícita de\n" #~ "COMERCIABILIDAD o IDONEIDAD PARA UN FIN DETERMINADO. Véase la\n" #~ "Licencia Pública General de GNU para más detalles.\n" #~ "\n" #~ "Usted debería haber recibido una copia de la Licencia Pública\n" #~ "General de GNU junto con este programa; en caso contrario, escriba\n" #~ "a la Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n" #~ "Boston, MA 02111-1307, EE.UU.\n" #~ msgid "" #~ "Written by and .\n" #~ msgstr "Escrito por y \n" #~ msgid "no default command for option `-d'" #~ msgstr "no hay orden por defecto para la opción `-d'" #~ msgid "pipe in %s\n" #~ msgstr "tubería en %s\n" #~ msgid "save in %s\n" #~ msgstr "salvar en %s\n" #~ msgid "%s: invalid argument `%s' for `%s'\n" #~ msgstr "%s: argumento no válido `%s' para `%s'\n" #, fuzzy #~ msgid "invalid interval: %s" #~ msgstr "intervalo entero no válido `%s'" #~ msgid "illegal integer interval: %s" #~ msgstr "intervalo entero ilegal: %s" #~ msgid "cannot find file %s" #~ msgstr "no se puede encontrar el fichero %s" #, fuzzy #~ msgid "unrecognized font `%s'" #~ msgstr "tipo de letra desconocida %s" #, fuzzy #~ msgid "unrecognized face `%s'" #~ msgstr "estilo de carácter desconocido %s" #~ msgid "missing argument for %s" #~ msgstr "falta argumento para %s" #~ msgid "invalid variable identifier %s" #~ msgstr "identificador de variable no válido %s" #~ msgid "cannot create file %s" #~ msgstr "no se puede crear el fichero %s" #~ msgid "cannot open a pipe on %s" #~ msgstr "no se puede abrir una tubería en %s" #~ msgid "cannot open file %s" #~ msgstr "no se puede abrir el fichero %s" #~ msgid "cannot open configuration file %s" #~ msgstr "no se puede abrir el fichero de configuración %s" #~ msgid "encoding %s unknown" #~ msgstr "codificación %s desconocida" #~ msgid "user option `%s' not defined" #~ msgstr "opción de usuario `%s' no definida" #, fuzzy #~ msgid "illegal option: %s" #~ msgstr "opción ilegal: `%s'" #~ msgid "illegal option: `%s'" #~ msgstr "opción ilegal: `%s'" #~ msgid "" #~ "syntax error in option string `%s':\n" #~ "missing end of quotation: %c" #~ msgstr "" #~ "error de sintaxis en la cadena de opción '%s':\n" #~ "falta el cierre: %c" #, fuzzy #~ msgid "cannot backup and create file `%s'" #~ msgstr "no se puede crear fichero de salida `%s'" #~ msgid "wrong value for option %s: `%s'" #~ msgstr "valor erroneo para la opción %s: '%s'" #~ msgid "Valid arguments are integers between %d and %d\n" #~ msgstr "Los argumentos válidos son enteros entre %d y %d\n" #~ msgid "Valid arguments are integers greater than %d\n" #~ msgstr "Los argumentos válidos son enteros mayores que %d\n" #, fuzzy #~ msgid "Valid arguments are lengths between %gpt and %gpt\n" #~ msgstr "Los argumentos válidos son enteros entre %d y %d\n" #~ msgid "cannot find configuration file `%s'" #~ msgstr "no se puede encontrar el fichero de configuración `%s'" #~ msgid "Dynamic array `%s':\n" #~ msgstr "Vector dinámico '%s':\n" #~ msgid "\tload: %d/%d (%2.1f%%)\n" #~ msgstr "\tCarga: %d/%d (%2.1f%%)\n" #~ msgid "Dynamic string:\n" #~ msgstr "Cadena dinámica:\n" #~ msgid "steady" #~ msgstr "fijo" #~ msgid "linear" #~ msgstr "lineal" #~ msgid "geometrical" #~ msgstr "geométrico" #~ msgid "\tgrowth: %s, increment: %d\n" #~ msgstr "\tcrecimiento: %s, incremento: %d\n" #~ msgid "can't allocate %ld bytes for hash table: memory exhausted" #~ msgstr "" #~ "no se pueden reservar %ld octetos para la tabla de dispersión: memoria " #~ "agotada" #~ msgid "Load=%ld/%ld=%.0f%%, " #~ msgstr "Carga=%ld/%ld=%.0f%%, " #~ msgid "Rehash=%d, " #~ msgstr "2a dispersión=%d, " #~ msgid "Collisions=%ld/%ld=%.0f%%" #~ msgstr "Colisiones=%ld/%ld=%.0f%%" #, fuzzy #~ msgid "Document title" #~ msgstr "título central" #, fuzzy #~ msgid "Valid arguments are floats greater than %.1f\n" #~ msgstr "Los argumentos válidos son enteros mayores que %d\n" #~ msgid "free" #~ msgstr "libre" #, fuzzy #~ msgid " %-10s = save in %s\n" #~ msgstr " %-20s = guarda en %s\n" #~ msgid "delegating command" #~ msgstr "orden delegada" #~ msgid "water mark" #~ msgstr "marca de agua" #~ msgid "right header" #~ msgstr "encabezamiento derecho" #~ msgid "center footer" #~ msgstr "pie de página central" #~ msgid "right footer" #~ msgstr "pie de página derecho" #~ msgid "left footer" #~ msgstr "pie de página izquierdo" #~ msgid "center title" #~ msgstr "título central" #~ msgid "right title" #~ msgstr "título derecho" #~ msgid "left title" #~ msgstr "título izquierdo" #, fuzzy #~ msgid "General information on %s:\n" #~ msgstr "no se puede obtener información del fichero `%s'" #~ msgid "found following options (argc=%d):\n" #~ msgstr "encontradas las siguientes opciones (argc=%d):\n" #~ msgid "failure\n" #~ msgstr "fallo\n" #~ msgid "Walk through path\n" #~ msgstr "Caminas por el camino\n" #, fuzzy #~ msgid "Unkown Printer" #~ msgstr "Impresora desconocida" #~ msgid "syntax error in fonts(s) `%s'" #~ msgstr "error de sintaxis en los tipos de letra '%s'" #~ msgid "cannot launch `%s' (delegation `%s')" #~ msgstr "no se puede empezar '%s' (delegación '%s')" #~ msgid "delegation %s did not create the file" #~ msgstr "la delegación %s no ha creado el fichero" #~ msgid "delegation %s failed and exited with status %d" #~ msgstr "la delegación %s ha fallado y salido con estado %d" #~ msgid "delegation %s failed" #~ msgstr "la delegación %s ha fallado" #~ msgid "%s: no closing ')' for %s escape" #~ msgstr "%s: falta ')' para la secuencia de escape %s" #~ msgid "%s: too long variable name for %s escape" #~ msgstr "" #~ "%s: nombre de variable demasiado largo para la secuencia de escape %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=NOMBRE imprime a la impresora NOMBRE\n" #~ " -d imprime por la impresora por defecto\n" #~ " -s --sides=NUM número de caras por hoja (1 o 2)\n" #, fuzzy #~ msgid "In the style %s, the keyword `%s' uses upper chars" #~ msgstr "En el estilo %s, la palabra clave '%s' utiliza mayúsculas" #, fuzzy #~ msgid "In the style %s, the sequence `%s-%s' uses upper chars" #~ msgstr "En el estilo %s, la secuencia '%s-%s' utiliza mayúsculas" #~ msgid "in style %s, keyword `%s' is defined twice" #~ msgstr "en el estilo %s, la palabra clave `%s' está definida dos veces" #, fuzzy #~ msgid "in style %s, operator `%s' is defined twice" #~ msgstr "en el estilo %s, la palabra clave `%s' está definida dos veces" #~ msgid "can't get current working directory" #~ msgstr "no se puede determinar el directorio actual" #, fuzzy #~ msgid "expansion of %s user string (`%s') is `%s'\n" #~ msgstr "la expansión de la cadena de usuario %s (\"%s\") es \"%s\"\n" #, fuzzy #~ msgid "cannot open `%s'" #~ msgstr "imposible abrir el fichero \"%s\"" #~ msgid "error opening `%s'" #~ msgstr "error abriendo `%s'" #, fuzzy #~ msgid "error getting file `%s' modification time" #~ msgstr "error obteniendo la fecha de modificación del fichero \"%s\"" #, fuzzy #~ msgid "cannot find file \"%s%s\"" #~ msgstr "no se puede encontrar el fichero \"%s\"" #, fuzzy #~ msgid "couldn't find system's configuration file `%s%c%s'" #~ msgstr "no se puede abrir el fichero de configuración `%s%c%s'" #, fuzzy #~ msgid "unable to fork" #~ msgstr "imposible abrir una tuberia" #~ msgid "error starting `/bin/sh -c %s'" #~ msgstr "error al iniciar `/bin/sh -c %s'" #~ msgid "[Total: %d page on " #~ msgstr "[Total: %d página en " #~ msgid "sheet" #~ msgstr "hoja" #~ msgid "space" #~ msgstr "espacio" #~ msgid "caret" #~ msgstr "circunflejo" #, fuzzy #~ msgid "Known Media\n" #~ msgstr "Soportes conocidos (%d)\n" #~ msgid "Known languages (%d)" #~ msgstr "Lenguajes conocidos (%d)" #~ msgid "" #~ " In %s:\n" #~ "\t" #~ msgstr "" #~ " En %s:\n" #~ "\t" #~ msgid "rows" #~ msgstr "filas" #~ msgid "columns" #~ msgstr "columnas" #~ msgid "path_walk() on path %s\n" #~ msgstr "path_walk() en el camimo %s\n" #~ msgid "In the style %s, the symbol '%s' uses upper chars" #~ msgstr "En el estilo %s, el símbolo '%s' utiliza mayúsculas" #, fuzzy #~ msgid "in style %s, symbol `%s' is defined twice" #~ msgstr "en el estilo %s, el símbolo regular `%s' está definido dos veces" #~ msgid "in style %s, regular symbol `%s' is defined twice" #~ msgstr "en el estilo %s, el símbolo regular `%s' está definido dos veces" #~ msgid "in style %s, special symbol `%s' is defined twice" #~ msgstr "en el estilo %s, el símbolo especial `%s' está definido dos veces" #~ msgid "not enough \\verb delimiters (%s) to print %s" #~ msgstr "insuficientes delimitadores \\verb (%s) para imprimir %s" #~ msgid "unknown" #~ msgstr "desconocido" #~ msgid "couldn't find prolog \"%s\"" #~ msgstr "no se puede encontrar el prólogo \"%s\"" #~ msgid "language %s unknown" #~ msgstr "lenguaje %s desconocido" #~ msgid "illegal language: `%s'" #~ msgstr "lenguaje ilegal: `%s'" #~ msgid "Bold" #~ msgstr "Negrita" #~ msgid "fnmatch failed on file \"%s\" and pattern \"%s\": %s" #~ msgstr "fnmatch falló en el fichero \"%s\" y en el patrón \"%s\": %s" #~ msgid "illegal language: %s in line %d of configuration file `%s'" #~ msgstr "lenguaje ilegal: %s, línea %d del fichero de configuración `%s'" #~ msgid "illegal option: %s in line %d of configuration file `%s'" #~ msgstr "opción ilegal: %s, línea %d del fichero de configuración `%s'" #~ msgid "Print service\n" #~ msgstr "Servicio de impresión\n" #~ msgid "" #~ " lpr command = %s\n" #~ " option = %s\n" #~ " option for printer = %s\n" #~ " default = %s\n" #~ msgstr "" #~ " orden lpr = %s\n" #~ " opción = %s\n" #~ " opción de impresora = %s\n" #~ " por defecto = %s\n" #~ msgid "2-sided" #~ msgstr "2 caras" #~ msgid "1-sided" #~ msgstr "1 cara" #~ msgid " print services not compiled in\n" #~ msgstr " servicios de impresión no compilados en\n" #~ msgid "page" #~ msgstr "página" #~ msgid "pages" #~ msgstr "páginas" a2ps-4.14/po/nl.gmo0000644000175000017500000006205710735337367013410 0ustar mhattamhattaÞ•°œï Ø Ù%ã/ ü9r6A©|ëFh!¯EѠ丂p !‘ ³ EÒ °!OÉ! " &"0"G"Y"m"$‡"¬",Æ" ó",#A#%_#,…#-²# à#&$#($!L$n$Ž$®$v°$&'%òN%A'1`'’'¢'Â' Ë' Õ'à' è'ô' ( ((%;(a(q(„(—(§(¸(½(Æ( Î( Ù( ä(ñ( ))#')K)T)e)#m) ‘)—Ÿ*&7+^+ n+{+++-¼+ê+ÿ+¯,¿,Ï,!ã,-%-C-`-x-•-§-"½- à-. .'".J.^.y.˜.#¡.Å.*á. /$//:/$j/$/´/Ï/2å/080 X0 f0 q0 0!‰0«0Ã0â0ò01 1*1H1e1'„1¬1¾1Ô1 è1 2 %2/2I2\2_2~2–2›2¢2\Á23<3V3e3k3t3Ž3¥3 ¸3Ã3Ü3ó34(4D4a4s4…4Ÿ4µ4Ô4è45 55d5 {6#…6©8o¹;Õ)>rÿ? rA!|DpžGWIØgIó@J—4K|ÌK#IL mL`ŽLØïL^ÈM 'N3N{ ~‘N%_‰ 9b 7f0 €U,Lž¨&°.<”¬kŸMTxG§Ic4jXs«Z 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 -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 = %d sides per sheet = %s page device definitions = medium = %s%s, %s page layout = %d x %d, %s borders = %s file alignment = %s interior margin = %d number lines = %s format = %s tabulation size = %d 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 = %d file command = %s library path = %A %B %d, %Y%b %d, %y%d characters per line%d lines per page%s, delegated to %s%s: illegal option -- %c %s: invalid argument for %s%c escape%s: invalid option -- %c %s: invalid separator `%s%c' for `%s' escape%s: missing `%c' for %s%c escape%s: option `%c%s' doesn't allow an argument %s: option `%s' is ambiguous %s: option `%s' requires an argument %s: option `--%s' doesn't allow an argument %s: option `-W %s' doesn't allow an argument %s: option `-W %s' is ambiguous %s: option requires an argument -- %c %s: too long argument for %s escape%s: unknown `%s' escape `%c' (%d)%s: unrecognized option `%c%s' %s: unrecognized option `--%s' 'After having performed the task, exit successfully. Detailed lists may provide additional help on specific features. Applications configured for delegationBy 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 Copyright (C) 1999 Free Software Foundation, Inc.Default PrinterDelegation `%s', from %s to %s Global: Headers: Headings: Input: Internals: Known EncodingsKnown FontsKnown MediaKnown Outputs (Printers, etc.)Known PostScript Printer DescriptionsKnown ProloguesKnown Style SheetsKnown User OptionsKnown VariablesMemory exhaustedNameOutput: Page %dPage %d/%cPage %d/%dPostScript: Pretty-printing: Printed by %sPrinted by %s from %sReport bugs to . Sheets: Table of ContentTasks: 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.). This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Try `%s --help' for more information. Unknown PrinterUnknown UserUnknown system errorValid arguments are floats f such that: %s Valid arguments are integers n such that: %s Valid arguments are: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. Written by %s. [%d lines wrapped] [%s (%s): %d pages on %d sheets] [%s (%s): %d pages on 1 sheet] [%s (%s): 1 page on 1 sheet] [%s (%s): failed. Ignored] [%s (binary): ignored] [%s (unprintable): ignored] [1 line wrapped] [No output produced] [Total: %d pages on %d sheets] %s [Total: %d 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'ambiguous argument %s for `%s'any typeautomatic style selection cancelledcannot close directory `%s'cannot compile regular expression `%s': %scannot create file `%s'cannot find file `%s'cannot find style sheet `%s': using plain stylecannot get current working directorycannot get informations on file `%s'cannot open a pipe on `%s'cannot open file `%s'cannot process `%s' which requires a2ps version %scannot rename file `%s' as `%s'caret (i.e., `^C', `M-^C' etc.)columns firstdimensionseach %d lineseach lineemacs (i.e., `C-c', `M-C-c' etc.)end of line inside a %send-of-line in string constantfont %f too bigfont size is %gptheavyhexadecimal (i.e., `\x0a' etc.)incomplete knowledge of facesinvalid argument %s for `%s'invalid argument `%s' for `%s'invalid definition for printer `%s': %sinvalid face `%s'invalid interval `%s'invalid option `%s'invalid variable identifier `%s'invalid version number `%s'landscapemissing argument for `%s'never make backupsnono command for the `%s' (%s%s)no key defined for `%s'nonenormalnumbered backups of every filenumbered backups of files already numbered, and simple of othersobsolete `%s' entry. Ignoredoctal (i.e., `\001' etc.)output commandplainportraitquestion-mark (i.e., `?')received signal %d: %srestored file `%s'rows firstsaved into the file `%s'selected automaticallysent to the default printersent to the printer `%s'sent to the standard outputsimple backups of every filespace (i.e., ` ')too many includesunexpected character `%c'unknown encoding `%s'unknown encoding `%s', ignoredunknown medium `%s'unknown user option `%s'userwrite erroryesProject-Id-Version: a2ps 4.13b Report-Msgid-Bugs-To: POT-Creation-Date: 2007-12-29 11:28+0800 PO-Revision-Date: 2007-09-30 22:49+0200 Last-Translator: Benno Schulenberg Language-Team: Dutch MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Generator: KBabel 1.11.4 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 versie-informatie tonen --help deze hulptekst tonen --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: delegations, encodings, features, media, 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 voorgedefiniëerde 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 -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 = %d zijdes per blad = %s pagina-apparaat-definities = papierformaat = %s%s, %s virtuele lay-out = %d x %d (%s) marges = %s bestandsuitlijning = %s binnenmarge = %d regelnummers = %s formaat = %s tabulatiebreedte = %d 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 = %d bestandsopdracht = %s bibliothekenzoekpad = %A %d %B %Y%d %b %y%d tekens per regel%d regels per pagina%s, gedelegeerd naar %s%s: ongeldige optie -- %c %s: ongeldig argument voor stuurcode '%s%c'%s: ongeldige optie -- %c %s: ongeldig scheidingsteken '%s%c' voor stuurcode '%s'%s: ontbrekende '%c' in '%s%c'-stuurcodereeks%s: optie '%c%s' staat geen argument toe %s: optie '%s' is niet eenduidig %s: optie '%s' vereist een argument %s: optie '--%s' staat geen argument toe %s: optie '-W %s' staat geen argument toe %s: optie '-W %s' is niet eenduidig %s: optie vereist een argument -- %c %s: argument voor '%s'-stuurcodereeks is te lang%s: onbekende '%s'-stuurcodereeks '%c' (%d)%s: onbekende optie '%c%s' %s: onbekende optie '--%s' ’Nadat een taak afgerond is, wordt succesvol afgesloten. Gedetailleerde lijsten verschaffen soms meer informatie over specifieke mogelijkheden. Programma's waarnaar gedelegeerd kan wordenStandaard 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 folder.dvi.gz -d Configuratiestatus van %s %s Copyright (C) 1999 Free Software Foundation, Inc.StandaardprinterDelegatie '%s', van %s naar %s Globaal: Randversierselen: Paginakoppen: Invoer: Interne werking: Bekende coderingenBekende lettertypenBekende papierformatenBekende uitvoerapparaten (printers, enz.)Bekende PostScript-printeromschrijvingenBekende prologenBekende stijlbestandenBekende gebruikeroptiesBekende variabelenOnvoldoende geheugen beschikbaarNaamUitvoer: Pagina %dPagina %d/%cPagina %d/%dPostScript: Fraai printen: Afgedrukt door %sAfgedrukt door %s vanaf %sRapporteer gebreken in het programma aan . Bladen: InhoudsopgaveTaken: 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. Dit is vrije software; zie de programmatekst voor de kopieervoorwaarden. Er is GEEN garantie; zelfs niet voor VERKOOPBAARHEID of GESCHIKTHEID VOOR EEN BEPAALD DOEL. Typ '%s --help' voor meer informatie. Onbekende printerOnbekende gebruikerOnbekende systeemfoutGeldige argumenten zijn drijvende-komma-getallen 'f' waarvoor geldt: %s Geldige argumenten zijn gehele getallen 'n' waarvoor geldt: %s Geldige argumenten zijn: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. Geschreven door %s. [%d afgebroken regels] [%s (%s): %d pagina's op %d bladen] [%s (%s): %d pagina's op 1 blad] [%s (%s): 1 pagina op 1 blad] [%s (%s): is mislukt -- genegeerd] [%s (binair) -- genegeerd] [%s (onafdrukbaar) -- genegeerd] [1 afgebroken regel] [Geen uitvoer geproduceerd] [Totaal: %d pagina's op %d bladen] %s [Totaal: %d 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'argument '%s' bij optie '%s' is niet eenduidigwillekeurigautomatische stijlkeuze is geannuleerdkan map '%s' niet sluitenkan reguliere expressie '%s' niet compileren: %skan bestand '%s' niet aanmakenkan bestand '%s' niet vindenkan stijlbestand '%s' niet vinden -- gewone stijl wordt gebruiktkan huidige map niet bepalenkan geen informatie over bestand '%s' verkrijgenkan geen pijp openen op '%s'kan bestand '%s' niet openenkan '%s' niet verwerken; dit vereist versie %s van 'a2ps'kan bestand '%s' niet hernoemen naar '%s'dakje ('^C', 'M-^C' enz.)kolommen eerstafmetingenom de %d regelselke regelemacs ('C-c', 'M-C-c' enz.)regeleinde binnen een %sregeleindeteken in tekstconstantelettertype %f is te grootgroote van lettertype is %gptsterkhexadecimaal ('\x0a' enz.)niet genoeg bekend over uiterlijkongeldig argument '%s' bij optie '%s'ongeldig argument '%s' van optie '%s'ongeldige definitie voor printer '%s': %songeldig uiterlijk '%s'ongeldig interval '%s'ongeldige optie '%s'ongeldige variabelenaam '%s'ongeldig versienummer '%s'landschapontbrekend argument voor '%s'nooit backups makenneegeen opdracht voor de '%s' (%s%s)geen sleutel gedefinieerd voor '%s'geennormaalgenummerde backups van ieder bestandgenummerde backups van reeds genummerde bestanden, en simpele van anderenverouderd item '%s' -- genegeerdoctaal ('\001' enz.)uitvoeropdrachtgewoonportretvraagteken ('?')signaal %d ontvangen: %sbestand '%s' is hersteldregels eerstin bestand '%s' opgeslagenautomatisch geselecteerdnaar de standaardprinter gestuurdnaar printer '%s' gestuurdnaar standaarduitvoer gestuurdsimpele backups van ieder bestandspatie (' ')te veel insluitingen ('includes')onverwacht teken '%c'onbekende codering '%s'onbekende codering '%s' -- genegeerdonbekend papierformaat '%s'onbekende gebruikeroptie '%s'gebruikerschrijffoutjaa2ps-4.14/po/pl.gmo0000644000175000017500000004212510735337370013376 0ustar mhattamhattaÞ•—ÔÓŒ Ø Ù %ã / A9F{!ÂEä *äË‚°p3!¤ÆEå°+ Ü éó 0$Jo,‰ ¶,×%",H-u £&Ä#ë!1Q&q˜·Çç ð ú  ) 5A%`†–©¼ÌÝâë ó þ  (6LU—f&þ% 5B+W-ƒ±Æ!Öø 6 S k ˆ "ž Á â '!)!=!X!#a!…!*¡!Ì!ä!/ú!$*"$O"t""2¥"Ø"ø" # &# 1# ?#!I#k#Š#š#¬#²#Ò#ð#'$7$I$_$ s$”$ °$º$Ô$ç$ê$ï$ö$\%r%%ª%¹%¿%È%â%ù% &&0&G&c&|&˜&µ&Ç&Ý&ü&')'.'F2' y(ƒ(å*:ƒ,M¾- 0x'1Ø 1äy2¼^3x4!”4¶4WÒ4à*5 66 636F6\6'z6¢60º6ë6) 757 U7)v7* 7#Ë7!ï7&8'88`8{8%–8¼8×8é89 9 &9 19;9M9 e9 q9$}9¢9 ½9 Ë9×9 ï9ý9: : : ): 6: C:P: i:w:Š: “:nŸ:4;C;U;i;@;>Â;<<#(< L< m<&Ž<µ<!Ñ<ó<) =&3=&Z=0=²= Ç= è="ô= >58>n>>3©>&Ý>-?"2?U?7t?*¬?×?ò?@ @ @#@?@[@o@…@Œ@%§@(Í@'ö@A8ATA'fAŽA§A¶AÑAêAîAóAúASB%mB“BªB»BÄBÓBèBÿBC%C;CNCkC„C#£C ÇCÔC$ìCD&D FDQD+ %Qsiz1pŽy:KŠ\wt/R8‡OSXHL Y‰@T7•(3;)$]UWIac2`>|h,Vm#g?E Cˆ—„kvb_N“Z-… <4’=G”"‚ju!MFn56.{oƒ*JŒPx‘e&}€^~†l9[ArDBqd‹ 0f–' 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 -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 -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 = %d sides per sheet = %s page device definitions = medium = %s%s, %s page layout = %d x %d, %s borders = %s file alignment = %s interior margin = %d number lines = %s format = %s tabulation size = %d 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 %A %B %d, %Y%b %d, %y%d characters per line%d lines per page%s, delegated to %s%s: illegal option -- %c %s: invalid argument for %s%c escape%s: invalid option -- %c %s: invalid separator `%s%c' for `%s' escape%s: missing `%c' for %s%c escape%s: option `%c%s' doesn't allow an argument %s: option `%s' is ambiguous %s: option `%s' requires an argument %s: option `--%s' doesn't allow an argument %s: option `-W %s' doesn't allow an argument %s: option `-W %s' is ambiguous %s: option requires an argument -- %c %s: too long argument for %s escape%s: unknown `%s' escape `%c' (%d)%s: unrecognized option `%c%s' %s: unrecognized option `--%s' Applications configured for delegationConfiguration status of %s %s Default PrinterDelegation `%s', from %s to %s Global: Headers: Headings: Input: Internals: Known EncodingsKnown FontsKnown MediaKnown Outputs (Printers, etc.)Known PostScript Printer DescriptionsKnown ProloguesKnown Style SheetsKnown User OptionsKnown VariablesMemory exhaustedNameOutput: Page %dPage %d/%cPage %d/%dPostScript: Pretty-printing: Printed by %sPrinted by %s from %sSheets: Table of ContentThis is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Try `%s --help' for more information. Unknown PrinterUnknown UserUnknown system errorValid arguments are floats f such that: %s Valid arguments are integers n such that: %s Valid arguments are:Virtual pages: [%s (%s): %d pages on %d sheets] [%s (%s): %d pages on 1 sheet] [%s (%s): 1 page on 1 sheet] [%s (%s): failed. Ignored] [%s (binary): ignored] [%s (unprintable): ignored] [No output produced] [Total: %d pages on %d sheets] %s [Total: %d 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'any typeautomatic style selection cancelledcannot close directory `%s'cannot compile regular expression `%s': %scannot create file `%s'cannot find file `%s'cannot find style sheet `%s': using plain stylecannot get current working directorycannot get informations on file `%s'cannot open a pipe on `%s'cannot open file `%s'cannot process `%s' which requires a2ps version %scannot rename file `%s' as `%s'caret (i.e., `^C', `M-^C' etc.)columns firstdimensionseach %d lineseach lineemacs (i.e., `C-c', `M-C-c' etc.)end-of-line in string constantfont %f too bigfont size is %gptheavyhexadecimal (i.e., `\x0a' etc.)incomplete knowledge of facesinvalid argument `%s' for `%s'invalid definition for printer `%s': %sinvalid face `%s'invalid interval `%s'invalid option `%s'invalid variable identifier `%s'invalid version number `%s'landscapemissing argument for `%s'never make backupsnononenormalnumbered backups of every filenumbered backups of files already numbered, and simple of othersobsolete `%s' entry. Ignoredoctal (i.e., `\001' etc.)output commandplainportraitquestion-mark (i.e., `?')received signal %d: %srestored file `%s'rows firstsaved into the file `%s'selected automaticallysent to the default printersent to the printer `%s'sent to the standard outputsimple backups of every filespace (i.e., ` ')unknown encoding `%s'unknown encoding `%s', ignoredunknown medium `%s'unknown user option `%s'useryesProject-Id-Version: a2ps 4.10 Report-Msgid-Bugs-To: POT-Creation-Date: 2007-12-29 11:28+0800 PO-Revision-Date: 1998-10-26 22:02+01:00 Last-Translator: Juliusz Chroboczek Language-Team: Polish MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-2 Content-Transfer-Encoding: 8bit Brak. --line-numbers=ILE drukuj numer linii co ILE linii -C to samo co --line-numbers=5 -f, --fontsize=ROZMIAR u¿yj czcionki danego ROZMIARU do tekstu -L, --lines-per-page=ILE liczba linii na stronê wirtualn± -l, --chars-per-page=ILE liczba kolumn na stronê wirtualn± -m, --catman potraktuj plik jako stronê manuala (to samo co -L66) -T, --tabsize=ILE ustaw rozmiar tabulacji na ILE znaków --non-printable-format=FMT ustaw sposób drukowania niedrukowalnych znaków --prologue=PLIK u¿yj PLIK.pro jako prologu PostScript --ppd[=KLUCZ] wybór PPD: automatyczna lub KLUCZ -n, --copies=ILE drukuj ILE kopii ka¿dej strony -s, --sides=ILE liczba stron papieru (recto/recto-verso) -S, --setpagedevice=K[:V] prze¶lij definicjê `pagedevice' --statusdict=K[:[:]V] prze¶lij definicjê w `statusdict' -k, --page-prefeed w³±cz `page prefeed' -K, --no-page-prefeed wy³±cz `page prefeed' -E, --pretty-print[=JÊZYK] drukuj z dekoracj± (u¿yj stylu JÊZYK) --highlight-level=POZIOM ustaw POZIOM dekoracji POZIOM jest jednym z none, normal lub heavy -g to samo co --highlight-level=heavy --strip-level=ILE poziom eliminacji komentarzy -a, --pages[=ZAKRES] lista stron do drukowania -c, --truncate-lines* przycinaj d³ugie linie -i, --interpret* interpretuj znaki tab, bs i ff --end-of-line=TYP znak koñca linii (TYP: r, n, nr, rn, any) -X, --encoding=NAZWA u¿yj systemu kodowania wej¶ciowego NAZWA -t, --title=NAZWA ustaw nazwê zadania --stdin=NAZWA ustaw nazwê wej¶cia standartowego --print-anyway* drukuj równie¿ pliki binarne -Z, --delegate* deleguj pliki innym aplikacjom --toc[=TEKST] wygeneruj spis tre¶ci -q, --quiet, --silent nic nie mów -v, --verbose[=STOPIEÑ] mów co robisz, w danym STOPNIU -=, --user-option=OPCJA u¿yj skrótu u¿ytkownika OPCJA --debug w³±cz `debugging' -D, --define=KLUCZ[:WARTO¦Æ] ustaw makro KLUCZ 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 magic number = %s Opis drukarki (PPD) = %s domy¶lny PPD = %s format numeracji stron = %s liczba kopii = %d stron na kartkê = %s definicje `page device' = Strony: domy¶lny papier = %s%s, %s rozmieszczenie na stronie = %d x %d, %s ramki = %s tryb zwarty = %s wewnêtrzny margines = %d numerowanie linii = %s format = %s wielko¶æ tabulacji = %d format niedrukowalnych = %s page prefeed = %s definicje `statusdict' = styl = %s symbole graficzne = %s strip level = %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 %A %e %B %Y%e.%m.%y%d znaków na liniê%d linii na stronê%s zadelegowane do %s%s: niedozwolona opcja -- %c %s: za d³ugi argument do dyrektywy %s%c%s: b³êdna opcja -- %c %s: niepoprawny separator `%s%c' do dyrektywy %s%s: brak '%c' do dyrektywy %s%c%s: opcja `%c%s' nie mo¿e mieæ argumentu %s: opcja `%s' jest dwuznaczna %s: opcja `%s' wymaga argumentu %s: opcja `--%s' nie mo¿e mieæ argumentu %s: opcja `-W %s' nie mo¿e mieæ argumentu %s: opcja: `-W %s' jest dwuznaczna %s: opcja wymaga argumentu -- %c %s: za d³ugi argument dla dyrektywy %s%s: w `%s' nieznana dyrektywa `%c' (%d)%s: nieznana opcja `%c%s' %s: nieznana opcja `--%s' Aplikacje skonfigurowane do delegacjiStan konfiguracyjny %s %s Domy¶lna drukarkaDelegacja `%s', z %s do %s Zachowanie globalne: Nag³ówki: Nag³ówki: Wej¶cie: Stan wewnêtrzny: Znane systemy kodowaniaZnane fontyZnane mediaZnane cele wyj¶ciowe (drukarki itp.)Znane opisy drukarek (PPD)Znane prologiZnane styleZnane opcje u¿ytkownikaZnane zmiennePamiêæ wyczerpanaNazwaWyj¶cie: Strona %dStrona %d/%cStrona %d/%dPostScript: Drukowanie z dekoracj±: Wydrukowa³ %sWydrukowa³ %s z %sStrony: Spis tre¶ciTen program jest wolny (`Free'); warunki kopiowania s± w ¼ród³ach. Program udostêpniony bez ¯ADNEJ gwarancji. Spróbuj `%s --help' ¿eby otrzymaæ wiêcej informacji Nieznana drukarkaNieznany u¿ytkownikNieznany b³±d systemowyPoprawnymi argumentami s± liczby rzeczywiste f, dla których: %s Poprawnymi argumentami s± liczby ca³kowite n, dla których: %s Poprawne argumenty:Strony wirtualne: [%s (%s): %d stron na %d kartkach] [%s (%s): %d stron na 1 kartce] [%s (%s): 1 strona na 1 kartce] [%s (%s): niepowodzenie. Ignorowany] [%s (binarny): ignorowany] [%s (niedrukowalny): ignorowany] [Nic nie wytworzone] [Wszystkich: %d stron na %d kartkach] %s [Wszystkich: %d 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'jakikolwiekautomatyczny wybór stylu anulowanynie mog³em zamkn±æ katalogu `%s'nie mog³em skompilowaæ wyra¿enie regularnego `%s': %snie mog³em utworzyæ pliku `%s'nie mogê znale¼æ pliku `%s'nie mog³em znale¼æ stylu `%s': u¿yto stylu prostegonie mog³em otrzymaæ katalogu bie¿±cegonie mog³em przeczytaæ informacji o pliku `%s'nie mog³em otworzyæ potoku na `%s'nie mog³em otworzyæ pliku `%s'nie mogê przetworzyæ `%s' które wymaga a2ps w wersji %snie mog³em przemianowaæ pliku `%s' na `%s'daszek (`^C', `M-^C' itd.)kolumny najpierwwymiaryco %d liniika¿d± liniêemacs (`C-c', `M-C-c' itd.)koniec linii w ci±gu znakówczcionka %f za du¿arozmiar czcionki %gptwysokiszesnastkowo (`\x0a' itd.)niekompletna znajomo¶æ styli czcionekniepoprawny argument `%s' dla opcji `%s'niepoprawna definicja drukarki `%s': %sb³êdny styl czcionki `%s'niedozwolony przedzia³ `%s'b³êdna opcja `%s'niepoprawny identyfikator zmiennej `%s'niedozwolona wersja `%s'papier poziomybrakuje argumentu dla `%s'nie rób kopii zapasowychniebrak¶rednikopie numerowane ka¿dego plikukopie numerowane plików ponumerowanych, i proste innychlinia `%s' przestarza³a. Zignorowanaósemkowo (`\001' itd.)rozkaz wyj¶ciowystandardpapier pionowyznak zapytania (`?')dosta³em sygna³ %d: %sodtworzony plik `%s'wiersze najpierwzapisano w pliku `%s'wybór automatycznywys³ano na domy¶ln± drukarkêwys³ano do drukarki `%s'wys³ano na standardowe wyj¶cieprosta kopia zapasowa ka¿dego plikuspacja (` ')nieznane kodowanie `%s'nieznane kodowanie `%s', zignorowanenieznane medium `%s'nieznana opcja u¿ytkownika `%s'u¿ytkowniktaka2ps-4.14/po/da.po0000644000175000017500000006131410735337365013210 0ustar mhattamhatta# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Free Software Foundation, Inc. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: a2ps 4.10.3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-12-29 11:28+0800\n" "PO-Revision-Date: 1998-06-18 12:00+02:00\n" "Last-Translator: full name \n" "Language-Team: Danish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8-bit\n" #: src/buffer.c:68 #, fuzzy msgid "any type" msgstr "mange til en" #: src/delegate.c:137 confg.gperf:168 lib/encoding.c:530 lib/encoding.c:576 #: lib/encoding.c:616 lib/output.c:302 lib/pair_ht.c:296 lib/prolog.c:146 #, fuzzy, c-format msgid "missing argument for `%s'" msgstr "Flertydigt tegnsæt \"%s\"" #: src/delegate.c:260 lib/routines.c:160 lib/xbackupfile.c:248 #: lib/xbackupfile.c:276 lib/xbackupfile.c:284 #, fuzzy, c-format msgid "cannot create file `%s'" msgstr "Kan ikke kontrollere %s automatisk" #: src/delegate.c:269 src/select.c:193 lib/routines.c:190 lib/routines.c:196 #, fuzzy, c-format msgid "cannot open a pipe on `%s'" msgstr "Kan ikke kontrollere %s automatisk" #: src/delegate.c:389 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "" #: src/delegate.c:408 src/delegate.c:430 msgid "Applications configured for delegation" msgstr "" #: src/generate.c:88 #, c-format msgid "`%s' is a directory" msgstr "" #: src/generate.c:96 src/main.c:560 src/main.c:582 confg.gperf:192 #: confg.gperf:355 lib/routines.c:154 #, fuzzy, c-format msgid "cannot open file `%s'" msgstr "Kan ikke kontrollere %s automatisk" #: src/generate.c:101 lib/xbackupfile.c:224 #, fuzzy, c-format msgid "cannot get informations on file `%s'" msgstr "Kan ikke kontrollere %s automatisk" #: src/generate.c:168 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "" #: src/generate.c:174 #, c-format msgid "[%s (%s): %d pages on 1 sheet]\n" msgstr "" #: src/generate.c:181 #, c-format msgid "[%s (%s): %d pages on %d sheets]\n" msgstr "" #: src/generate.c:208 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "" #: src/generate.c:212 #, c-format msgid "[Total: %d pages on 1 sheet] %s\n" msgstr "" #: src/generate.c:217 #, c-format msgid "[Total: %d pages on %d sheets] %s\n" msgstr "" #: src/generate.c:226 msgid "[1 line wrapped]\n" msgstr "" #: src/generate.c:229 #, c-format msgid "[%d lines wrapped]\n" msgstr "" #: src/generate.c:242 msgid "[No output produced]\n" msgstr "" #: src/generate.c:314 #, c-format msgid "%s, delegated to %s" msgstr "" #: src/generate.c:322 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "" #: src/generate.c:330 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "" #: src/generate.c:339 #, c-format msgid "[%s (binary): ignored]\n" msgstr "" #: src/generate.c:360 msgid "plain" msgstr "" #: lexssh.l:348 msgid "end-of-line in string constant" msgstr "" #: lexssh.l:415 src/sheets-map.l:153 src/sheets-map.l:192 #, c-format msgid "end of line inside a %s" msgstr "" #: src/main.c:203 #, c-format msgid "received signal %d: %s" msgstr "" #: src/main.c:242 msgid "heavy" msgstr "" #: src/main.c:246 msgid "normal" msgstr "" #: src/main.c:250 msgid "none" msgstr "" #: src/main.c:324 src/main.c:328 msgid "yes" msgstr "" #: src/main.c:325 src/main.c:328 src/main.c:369 msgid "no" msgstr "" #: src/main.c:335 #, c-format msgid "Configuration status of %s %s\n" msgstr "" #: src/main.c:339 src/main.c:697 msgid "Sheets:\n" msgstr "" #: src/main.c:340 #, 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" msgstr "" #: src/main.c:349 msgid "portrait" msgstr "" #: src/main.c:349 msgid "landscape" msgstr "" #: src/main.c:358 #, c-format msgid "%d characters per line" msgstr "" #: src/main.c:361 #, c-format msgid "%d lines per page" msgstr "" #: src/main.c:364 #, c-format msgid "font size is %gpt" msgstr "" #: src/main.c:373 msgid "each line" msgstr "" #: src/main.c:377 #, c-format msgid "each %d lines" msgstr "" #: src/main.c:380 src/main.c:718 msgid "Virtual pages:\n" msgstr "" #: src/main.c:381 #, c-format msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %d\n" " non printable format = %s\n" msgstr "" #: src/main.c:392 msgid "Headers:\n" msgstr "" #: src/main.c:393 #, 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:412 src/main.c:747 msgid "Input:\n" msgstr "" #: src/main.c:413 #, 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:438 src/main.c:504 msgid "selected automatically" msgstr "" #: src/main.c:441 src/main.c:766 msgid "Pretty-printing:\n" msgstr "" #: src/main.c:442 #, c-format msgid "" " style sheet = %s\n" " highlight level = %s\n" " strip level = %d\n" msgstr "" #: src/main.c:462 msgid "never make backups" msgstr "" #: src/main.c:466 msgid "simple backups of every file" msgstr "" #: src/main.c:471 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" #: src/main.c:476 msgid "numbered backups of every file" msgstr "" #: src/main.c:480 src/main.c:775 msgid "Output:\n" msgstr "" #: src/main.c:481 #, c-format msgid "" " destination = %s\n" " version control = %s\n" " backup suffix = %s\n" msgstr "" #: src/main.c:494 src/main.c:786 msgid "PostScript:\n" msgstr "" #: src/main.c:495 #, 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 = " msgstr "" #: src/main.c:515 #, c-format msgid " statusdict definitions = " msgstr "" #: src/main.c:518 #, c-format msgid " page prefeed = %s\n" msgstr "" #: src/main.c:527 msgid "Internals:\n" msgstr "" #: src/main.c:528 #, c-format msgid "" " verbosity level = %d\n" " file command = %s\n" " library path = \n" msgstr "" #: src/main.c:653 #, 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" msgstr "" #: src/main.c:668 msgid "Tasks:\n" msgstr "" #: src/main.c:669 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" msgstr "" #: src/main.c:680 msgid "" "After having performed the task, exit successfully. Detailed lists may\n" "provide additional help on specific features.\n" msgstr "" #: src/main.c:688 msgid "Global:\n" msgstr "" #: src/main.c:689 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:698 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" msgstr "" #: src/main.c:711 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:719 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:730 msgid "Headings:\n" msgstr "" #: src/main.c:732 #, 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:743 msgid "The TEXTs may use special escapes.\n" msgstr "" #: src/main.c:748 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:760 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:767 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:776 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:787 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:801 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" msgstr "" #: src/main.c:822 msgid "" "News, updates and documentation: visit http://www.gnu.org/software/a2ps/.\n" msgstr "" #: src/main.c:824 #, fuzzy msgid "Report bugs to .\n" msgstr "" "\n" "Rapportér fejl til .\n" #: src/main.c:942 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 "" #: src/main.c:1173 msgid "Table of Content" msgstr "" #: src/parsessh.y:236 #, c-format msgid "cannot process `%s' which requires a2ps version %s" msgstr "" #: src/sheets-map.l:111 #, c-format msgid "unexpected character `%c'" msgstr "" #: src/sheets-map.l:211 lexppd.l:211 msgid "too many includes" msgstr "" #: src/sheets-map.l:296 src/sheets-map.l:303 #, fuzzy, c-format msgid "no key defined for `%s'" msgstr "Kan ikke kontrollere %s automatisk" #: src/select.c:122 src/ssheet.c:866 fonts.l:838 fonts.l:840 fonts.l:842 #: lib/pathwalk.c:328 lib/pathwalk.c:414 #, fuzzy, c-format msgid "cannot find file `%s'" msgstr "Kan ikke kontrollere %s automatisk" #: src/select.c:124 msgid "automatic style selection cancelled" msgstr "" #: src/ssheet.c:295 #, fuzzy, c-format msgid "cannot compile regular expression `%s': %s" msgstr "Kan ikke kontrollere %s automatisk" #: src/ssheet.c:974 src/ssheet.c:995 msgid "Known Style Sheets" msgstr "" #: src/ssheet.c:1461 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "" #: src/sshread.c:453 #, fuzzy, c-format msgid "unknown encoding `%s', ignored" msgstr "Ukendt tegnsæt \"%s\"" #: src/version-etc.c:38 msgid "Copyright (C) 1999 Free Software Foundation, Inc." msgstr "" #: src/version-etc.c:60 #, c-format msgid "Written by %s.\n" msgstr "" #: src/version-etc.c:66 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 er fri software; se kopieringsbetingelserne i kildeteksten. Der " "gives\n" "INGEN garanti; end ikke for SALGBARHED eller ANVENDELIGHED TIL ET GIVET " "FORMÅL.\n" #: src/versions.c:133 #, fuzzy, c-format msgid "invalid version number `%s'" msgstr "Flertydigt tegnsæt \"%s\"" #: lib/caret.c:43 msgid "space (i.e., ` ')" msgstr "" #: lib/caret.c:45 msgid "octal (i.e., `\\001' etc.)" msgstr "" #: lib/caret.c:47 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "" #: lib/caret.c:49 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "" #: lib/caret.c:51 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "" #: lib/caret.c:53 msgid "question-mark (i.e., `?')" msgstr "" #: lib/closeout.c:71 lib/closeout.c:73 msgid "write error" msgstr "" #: confg.gperf:157 lib/encoding.c:638 #, fuzzy, c-format msgid "invalid option `%s'" msgstr "Flertydigt tegnsæt \"%s\"" #: confg.gperf:224 confg.gperf:231 confg.gperf:238 #, c-format msgid "invalid definition for printer `%s': %s" msgstr "" #: confg.gperf:229 confg.gperf:232 lib/printers.c:47 msgid "Unknown Printer" msgstr "" #: confg.gperf:236 confg.gperf:239 lib/printers.c:46 msgid "Default Printer" msgstr "" #: confg.gperf:292 lib/options.c:697 #, fuzzy, c-format msgid "invalid variable identifier `%s'" msgstr "Flertydigt tegnsæt \"%s\"" #: confg.gperf:321 #, c-format msgid "obsolete `%s' entry. Ignored" msgstr "" #: lib/encoding.c:1114 lib/encoding.c:1135 msgid "Known Encodings" msgstr "" #: lib/faces.c:156 msgid "incomplete knowledge of faces" msgstr "" #: lib/filtdir.c:113 #, c-format msgid "cannot close directory `%s'" msgstr "" #: lib/getnum.c:63 lib/getnum.c:121 lib/getnum.c:153 lib/getnum.c:221 #, fuzzy, c-format msgid "invalid argument `%s' for `%s'" msgstr "Flertydigt tegnsæt \"%s\"" #: lib/getnum.c:123 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "" #: lib/getnum.c:223 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "" #: lib/jobs.c:308 #, fuzzy, c-format msgid "unknown encoding `%s'" msgstr "Ukendt tegnsæt \"%s\"" #: lib/madir.c:59 msgid "rows first" msgstr "" #: lib/madir.c:62 msgid "columns first" msgstr "" #: lib/media.c:173 #, fuzzy, c-format msgid "unknown medium `%s'" msgstr "Ukendt sekvens \"%s\"" #: lib/media.c:208 lib/media.c:237 msgid "Known Media" msgstr "" #: lib/media.c:211 msgid "Name" msgstr "" #: lib/media.c:212 msgid "dimensions" msgstr "" #: lib/metaseq.c:104 lib/metaseq.c:113 #, c-format msgid "Known Variables" msgstr "" #: lib/metaseq.c:162 lib/metaseq.c:531 lib/metaseq.c:548 lib/metaseq.c:608 #: lib/metaseq.c:951 lib/metaseq.c:972 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "" #: lib/metaseq.c:288 lib/metaseq.c:300 #, c-format msgid "Printed by %s" msgstr "" #: lib/metaseq.c:298 #, c-format msgid "Printed by %s from %s" msgstr "" #: lib/metaseq.c:308 lib/metaseq.c:327 msgid "cannot get current working directory" msgstr "" #: lib/metaseq.c:341 lib/metaseq.c:534 lib/metaseq.c:563 lib/metaseq.c:652 #: lib/metaseq.c:954 lib/metaseq.c:987 #, c-format msgid "%s: too long argument for %s escape" msgstr "" #: lib/metaseq.c:364 lib/metaseq.c:675 msgid "%b %d, %y" msgstr "" #: lib/metaseq.c:373 lib/metaseq.c:684 msgid "%A %B %d, %Y" msgstr "" #: lib/metaseq.c:419 lib/metaseq.c:448 lib/metaseq.c:491 lib/metaseq.c:724 #: lib/metaseq.c:808 lib/metaseq.c:867 lib/metaseq.c:922 lib/metaseq.c:1099 #: lib/metaseq.c:1234 lib/metaseq.c:1246 lib/metaseq.c:1289 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "" #: lib/metaseq.c:426 lib/metaseq.c:815 #, c-format msgid "Page %d" msgstr "" #: lib/metaseq.c:431 lib/metaseq.c:826 #, c-format msgid "Page %d/%c" msgstr "" #: lib/metaseq.c:593 lib/metaseq.c:1021 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "" #: lib/metaseq.c:601 lib/metaseq.c:611 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "" #: lib/metaseq.c:822 #, c-format msgid "Page %d/%d" msgstr "" #: lib/metaseq.c:1266 msgid "output command" msgstr "" #: lib/options.c:302 #, fuzzy, c-format msgid "Try `%s --help' for more information.\n" msgstr "Prøv \"%s %s\" for mere information.\n" #: lib/output.c:466 #, fuzzy, c-format msgid "invalid face `%s'" msgstr "Flertydigt tegnsæt \"%s\"" #: lib/output.c:538 #, c-format msgid "`%s' with no matching `%s'" msgstr "" #: lib/ppd.c:108 msgid "Known Fonts" msgstr "" #: lib/ppd.c:111 msgid "" "\n" " None.\n" msgstr "" #: lib/ppd.c:149 lib/ppd.c:165 msgid "Known PostScript Printer Descriptions" msgstr "" #: lib/prange.c:305 lib/prange.c:323 #, fuzzy, c-format msgid "invalid interval `%s'" msgstr "Flertydigt tegnsæt \"%s\"" #: lib/printers.c:396 lib/printers.c:413 #, c-format msgid "no command for the `%s' (%s%s)" msgstr "" #: lib/printers.c:429 msgid "sent to the standard output" msgstr "" #: lib/printers.c:430 msgid "sent to the default printer" msgstr "" #: lib/printers.c:435 #, c-format msgid "saved into the file `%s'" msgstr "" #: lib/printers.c:436 #, c-format msgid "sent to the printer `%s'" msgstr "" #: lib/printers.c:613 lib/printers.c:621 msgid "Known Outputs (Printers, etc.)" msgstr "" #: lib/prolog.c:98 lib/prolog.c:181 msgid "Known Prologues" msgstr "" #: lib/prolog.c:579 #, c-format msgid "font %f too big" msgstr "" #: lib/psgen.c:662 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "" #: lib/quotearg.c:200 msgid "`" msgstr "" #: lib/quotearg.c:203 msgid "'" msgstr "" #: lib/userdata.c:129 msgid "user" msgstr "" #: lib/userdata.c:130 #, fuzzy msgid "Unknown User" msgstr "Ukendt sekvens \"%s\"" #: lib/useropt.c:75 #, fuzzy, c-format msgid "unknown user option `%s'" msgstr "Ukendt sekvens \"%s\"" #: lib/useropt.c:86 lib/useropt.c:97 msgid "Known User Options" msgstr "" #: lib/xbackupfile.c:105 lib/xmalloc.c:66 msgid "Memory exhausted" msgstr "" #: lib/xbackupfile.c:240 lib/xbackupfile.c:252 #, fuzzy, c-format msgid "cannot rename file `%s' as `%s'" msgstr "Kan ikke kontrollere %s automatisk" #: lib/xbackupfile.c:255 #, fuzzy, c-format msgid "restored file `%s'" msgstr "Kan ikke kontrollere %s automatisk" #: lib/argmatch.c:159 #, fuzzy, c-format msgid "invalid argument %s for `%s'" msgstr "Flertydigt tegnsæt \"%s\"" #: lib/argmatch.c:160 #, fuzzy, c-format msgid "ambiguous argument %s for `%s'" msgstr "Flertydigt tegnsæt \"%s\"" #: lib/argmatch.c:178 #, c-format msgid "Valid arguments are:" msgstr "" #: lib/error.c:102 msgid "Unknown system error" msgstr "" #: lib/getopt.c:675 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "" #: lib/getopt.c:700 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "" #: lib/getopt.c:705 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "" #: lib/getopt.c:723 lib/getopt.c:896 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "" #: lib/getopt.c:752 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "" #: lib/getopt.c:756 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "" #: lib/getopt.c:782 #, c-format msgid "%s: illegal option -- %c\n" msgstr "" #: lib/getopt.c:785 #, c-format msgid "%s: invalid option -- %c\n" msgstr "" #: lib/getopt.c:815 lib/getopt.c:945 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "" #: lib/getopt.c:862 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "" #: lib/getopt.c:880 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "" #~ 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 "" #~ "Dette program er fri software; du må redistribuere det og/eller " #~ "modificere\n" #~ "det under betingelserne givet i GNU General Public License som publiceret " #~ "af\n" #~ "Free Software Foundation; enten version 3, eller (efter dit valg) en " #~ "senere\n" #~ "version.\n" #~ "\n" #~ "Dette program distribueres i håbet om, at det vil være nyttigt, men UDEN\n" #~ "NOGEN GARANTI; end ikke en underforstået garanti for SALGBARHED eller\n" #~ "ANVENDELIGHED TIL ET GIVET FORMÅL. Se GNU General Public License for\n" #~ "flere detaljer.\n" #~ "\n" #~ "Du skulle have modtaget en kopi af GNU General Public License sammen med\n" #~ "dette program; hvis ikke, så skriv til Free Software Foundation, Inc.,\n" #~ "59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" #, fuzzy #~ msgid "%s: invalid argument `%s' for `%s'\n" #~ msgstr "Flertydigt tegnsæt \"%s\"" #, fuzzy #~ msgid "invalid interval: %s" #~ msgstr "Flertydigt tegnsæt \"%s\"" #, fuzzy #~ msgid "cannot find file %s" #~ msgstr "Kan ikke kontrollere %s automatisk" #, fuzzy #~ msgid "missing argument for %s" #~ msgstr "Flertydigt tegnsæt \"%s\"" #, fuzzy #~ msgid "invalid variable identifier %s" #~ msgstr "Flertydigt tegnsæt \"%s\"" #, fuzzy #~ msgid "cannot create file %s" #~ msgstr "Kan ikke kontrollere %s automatisk" #, fuzzy #~ msgid "cannot open a pipe on %s" #~ msgstr "Kan ikke kontrollere %s automatisk" #, fuzzy #~ msgid "cannot open file %s" #~ msgstr "Kan ikke kontrollere %s automatisk" #, fuzzy #~ msgid "cannot open configuration file %s" #~ msgstr "Kan ikke kontrollere %s automatisk" #, fuzzy #~ msgid "encoding %s unknown" #~ msgstr "Oversætter %s..." a2ps-4.14/po/fr.po0000644000175000017500000013342010735337366013232 0ustar mhattamhatta# Messages français pour a2ps. # Copyright (c) 1997-2000 Akim Demaille, Miguel Santana # Akim Demaille msgid "" msgstr "" "Project-Id-Version: a2ps 4.13\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-12-29 11:28+0800\n" "PO-Revision-Date: 2002-09-16 15:52+0200\n" "Last-Translator: Akim Demaille \n" "Language-Team: French \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8-bit\n" #: src/buffer.c:68 msgid "any type" msgstr "n'importe quel type classique" #: src/delegate.c:137 confg.gperf:168 lib/encoding.c:530 lib/encoding.c:576 #: lib/encoding.c:616 lib/output.c:302 lib/pair_ht.c:296 lib/prolog.c:146 #, c-format msgid "missing argument for `%s'" msgstr "argument manquant pour « %s »" #: src/delegate.c:260 lib/routines.c:160 lib/xbackupfile.c:248 #: lib/xbackupfile.c:276 lib/xbackupfile.c:284 #, c-format msgid "cannot create file `%s'" msgstr "impossible de créer le fichier « %s »" #: src/delegate.c:269 src/select.c:193 lib/routines.c:190 lib/routines.c:196 #, c-format msgid "cannot open a pipe on `%s'" msgstr "impossible d'ouvrir un tube sur « %s »" #: src/delegate.c:389 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "Délégation « %s », de %s à %s\n" #: src/delegate.c:408 src/delegate.c:430 msgid "Applications configured for delegation" msgstr "Applications configurées pour déléguer" #: src/generate.c:88 #, c-format msgid "`%s' is a directory" msgstr "« %s » est un répertoire" #: src/generate.c:96 src/main.c:560 src/main.c:582 confg.gperf:192 #: confg.gperf:355 lib/routines.c:154 #, c-format msgid "cannot open file `%s'" msgstr "impossible d'ouvrir le fichier « %s »" #: src/generate.c:101 lib/xbackupfile.c:224 #, c-format msgid "cannot get informations on file `%s'" msgstr "impossible d'obtenir les caractéristiques du fichier « %s »" #: src/generate.c:168 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s) : 1 page sur 1 feuille]\n" #: src/generate.c:174 #, c-format msgid "[%s (%s): %d pages on 1 sheet]\n" msgstr "[%s (%s) : %d pages sur 1 feuille]\n" #: src/generate.c:181 #, c-format msgid "[%s (%s): %d pages on %d sheets]\n" msgstr "[%s (%s) : %d pages sur %d feuilles]\n" #: src/generate.c:208 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[Total : 1 page sur 1 feuille] %s\n" #: src/generate.c:212 #, c-format msgid "[Total: %d pages on 1 sheet] %s\n" msgstr "[Total : %d pages sur 1 feuille] %s\n" #: src/generate.c:217 #, c-format msgid "[Total: %d pages on %d sheets] %s\n" msgstr "[Total : %d pages sur %d feuilles] %s\n" #: src/generate.c:226 msgid "[1 line wrapped]\n" msgstr "Une ligne enroulée\n" #: src/generate.c:229 #, c-format msgid "[%d lines wrapped]\n" msgstr "[%d lignes enroulées]\n" #: src/generate.c:242 msgid "[No output produced]\n" msgstr "[Rien n'a été produit]\n" #: src/generate.c:314 #, c-format msgid "%s, delegated to %s" msgstr "%s, délégué à %s" #: src/generate.c:322 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s) : échec. Ignoré]\n" #: src/generate.c:330 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (pas imprimable) : ignoré]\n" #: src/generate.c:339 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (binaire) : ignoré]\n" #: src/generate.c:360 msgid "plain" msgstr "standard" #: lexssh.l:348 msgid "end-of-line in string constant" msgstr "fin de ligne dans une chaîne" #: lexssh.l:415 src/sheets-map.l:153 src/sheets-map.l:192 #, c-format msgid "end of line inside a %s" msgstr "fin de ligne dans un %s" #: src/main.c:203 #, c-format msgid "received signal %d: %s" msgstr "signal %d reçu: %s" #: src/main.c:242 msgid "heavy" msgstr "maximum" #: src/main.c:246 msgid "normal" msgstr "normal" #: src/main.c:250 msgid "none" msgstr "nul" #: src/main.c:324 src/main.c:328 msgid "yes" msgstr "oui" #: src/main.c:325 src/main.c:328 src/main.c:369 msgid "no" msgstr "non" #: src/main.c:335 #, c-format msgid "Configuration status of %s %s\n" msgstr "Paramètres de configuration de %s %s\n" #: src/main.c:339 src/main.c:697 msgid "Sheets:\n" msgstr "Feuilles :\n" #: src/main.c:340 #, 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" msgstr "" " médium = %s%s, %s\n" " disposition des pages = %d x %d, %s\n" " cadre = %s\n" " alignement des fichiers = %s\n" " marge intérieure = %d\n" #: src/main.c:349 msgid "portrait" msgstr "portrait" #: src/main.c:349 msgid "landscape" msgstr "paysage" #: src/main.c:358 #, c-format msgid "%d characters per line" msgstr "%d caractères par ligne" #: src/main.c:361 #, c-format msgid "%d lines per page" msgstr "%d lignes par page" #: src/main.c:364 #, c-format msgid "font size is %gpt" msgstr "police taille %gpt" #: src/main.c:373 msgid "each line" msgstr "chaque ligne" #: src/main.c:377 #, c-format msgid "each %d lines" msgstr "toutes les %d lignes" #: src/main.c:380 src/main.c:718 msgid "Virtual pages:\n" msgstr "Pages virtuelles :\n" #: src/main.c:381 #, c-format msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %d\n" " non printable format = %s\n" msgstr "" " numérotation des lignes = %s\n" " format = %s\n" " taille de la tabulation = %d\n" " caractères non imprimables = %s\n" #: src/main.c:392 msgid "Headers:\n" msgstr "Marqueurs de page :\n" #: src/main.c:393 #, 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 gauche = %s\n" " titre de page = %s\n" " titre droit = %s\n" " aquarelle = %s\n" #: src/main.c:412 src/main.c:747 msgid "Input:\n" msgstr "Entrée :\n" #: src/main.c:413 #, 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 "" " couper les lignes = %s\n" " interpréter tab, ff et bs = %s\n" " caractère de fin de ligne = %s\n" " codage = %s\n" " titre du document = %s\n" " prologue = %s\n" " imprimer les binaires = %s\n" " déléguer = %s\n" #: src/main.c:438 src/main.c:504 msgid "selected automatically" msgstr "sélection automatique" #: src/main.c:441 src/main.c:766 msgid "Pretty-printing:\n" msgstr "Enluminure des sources :\n" #: src/main.c:442 #, c-format msgid "" " style sheet = %s\n" " highlight level = %s\n" " strip level = %d\n" msgstr "" " feuille de style = %s\n" " niveau d'enluminure = %s\n" " suppression des commentaires = %d\n" #: src/main.c:462 msgid "never make backups" msgstr "jamais de sauvegarde" #: src/main.c:466 msgid "simple backups of every file" msgstr "sauvegarde simple de chaque fichier" #: src/main.c:471 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" "sauvegarde numérotée des fichiers déjà numérotés,\n" " et simple des autres" #: src/main.c:476 msgid "numbered backups of every file" msgstr "sauvegarde numérotée de tous les fichiers" #: src/main.c:480 src/main.c:775 msgid "Output:\n" msgstr "Sortie :\n" #: src/main.c:481 #, 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 d'archivage = %s\n" #: src/main.c:494 src/main.c:786 msgid "PostScript:\n" msgstr "PostScript :\n" #: src/main.c:495 #, 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 = " msgstr "" " entête PostScript = %s\n" " description de l'imprimante (PPD) = %s\n" " PPD par défaut = %s\n" " format des noms de pages = %s\n" " nombre de copies = %d\n" " nombre de faces par feuille = %s\n" " définitions page device = " #: src/main.c:515 #, c-format msgid " statusdict definitions = " msgstr " définitions statusdict = " #: src/main.c:518 #, c-format msgid " page prefeed = %s\n" msgstr " pré-chargement du papier = %s\n" #: src/main.c:527 msgid "Internals:\n" msgstr "Internes :\n" #: src/main.c:528 #, c-format msgid "" " verbosity level = %d\n" " file command = %s\n" " library path = \n" msgstr "" " niveau de verbosité = %d\n" " appel de file(1) = %s\n" " accès aux bibliothèques =\n" #: src/main.c:653 #, 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" msgstr "" "Usage : %s [OPTION]... [FICHIER]...\n" "\n" "Convertir les FICHIERS ou l'entrée standard en PostScript\n" "\n" "Un argument obligatoire pour une option longue, l'est aussi pour la courte.\n" "Les options longues marquées d'un * nécessitent un argument oui/non, les\n" "options courtes correspondantes les positionnent à « oui ».\n" #: src/main.c:668 msgid "Tasks:\n" msgstr "Tâches :\n" #: src/main.c:669 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" msgstr "" " --version afficher la version\n" " --help afficher ce message d'aide\n" " --guess afficher les langages devinés des FICHIERS\n" " --which fichiers de la bibliothèque nommés FICHIERS\n" " --glob fichiers de la bibliothèque appariés avec FICHIERS\n" " --list=defaults afficher les paramètres par défaut\n" " --list=SUJET rapport détailler sur le SUJET (delegations, encodings,\n" " features, variables, media, ppd, printers, prologues,\n" " style-sheets, user-options)\n" #: src/main.c:680 msgid "" "After having performed the task, exit successfully. Detailed lists may\n" "provide additional help on specific features.\n" msgstr "" "Une fois la tâche accomplie, quitter avec succès. Les listes\n" "détaillées peuvent apporter de l'aide sur certaines fonctionnalités.\n" #: src/main.c:688 msgid "Global:\n" msgstr "Global :\n" #: src/main.c:689 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 pas de messages\n" " -v, --verbose[=NIVEAU] régler le NIVEAU de verbosité\n" " -=, --user-option=OPTION utiliser le raccourci OPTION\n" " --debug enclencher le code de déverminage\n" " -D, --define=CLÉ[:VALEUR] effacer la variable CLÉ ou lui affecter VALEUR\n" #: src/main.c:698 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" msgstr "" " -M, --medium=NOM utiliser le papier de format NOM\n" " -r, --landscape impression en paysage\n" " -R, --portrait impression en portrait\n" " --columns=NB nombre de colonnes de pages virtuelles\n" " --rows=NB nombre de lignes de pages virtuelles\n" " --major=DIR remplir d'abord les (DIR=) colonnes, ou les lignes\n" " -1, -2, ..., -9 dispositions prédéfinies pour 1 .. 9 pages " "virtuelles\n" " -A, --file-align=MODE séparer les fichiers selon le MODE (fill, rank, " "page,\n" " sheet, ou un nombre)\n" " -j, --borders* imprimer des cadres autour des pages\n" " --margin=NB taille de la marge intérieure\n" #: src/main.c:711 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 changent plusieurs paramètres primitifs pour\n" "définir des dispositions prédéfinies avec 80 colonnes. Par conséquent\n" "l'ordre importe : `-R -f40 -2' est équivalent à `-2'. Pour modifier\n" "la disposition, utiliser `-2Rf40', ou composer des options primitives\n" "(`--columns', `--font-size' etc.).\n" #: src/main.c:719 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=NB numéroter les lignes de NB en NB\n" " -C alias de --line-numbers=5\n" " -f, --font-size=TAILLE définir la TAILLE de la police du corps de " "texte\n" " -L, --lines-per-page=NB changer la police pour avoir NB lignes/" "virtuelle\n" " -l, --chars-per-line=NB changer la police pour avoir NB colonnes/" "virtuelle\n" " -m, --catman formatter comme une page de manuel (alias de -" "L66)\n" " -T, --tabsize=NUM taille des tabulations\n" " --non-printable-format=FMT spécifier l'impression des caractères inconnus\n" #: src/main.c:730 msgid "Headings:\n" msgstr "Marqueurs de page :\n" #: src/main.c:732 #, 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 pas d'entêtes\n" " -b, --header[=TEXTE] entête\n" " -u, --underlay[=TEXTE] aquarelle\n" " --center-title[=TEXTE] titre des pages\n" " --left-title[=TEXTE] titres gauche et droit\n" " --right-title[=TEXTE]\n" " --left-footer[=TEXTE] pieds de pages\n" " --footer[=TEXTE]\n" " --right-footer[=TEXTE]\n" #: src/main.c:743 msgid "The TEXTs may use special escapes.\n" msgstr "Les TEXTES peuvent utiliser les séquences d'échappement.\n" #: src/main.c:748 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[=SÉLECTION] sélectionner les pages à imprimer\n" " -c, --truncate-lines* tronquer les lignes trop longues\n" " -i, --interpret* interpréter les caractères tab, bs and ff\n" " --end-of-line=TYPE spécifier les fins de lignes (r, n, rn, nr, " "any)\n" " -X, --encoding=NOM codage NOM\n" " -t, --title=NOM NOM du document\n" " --stdin=NOM donner un NOM de fichier à l'entrée standard\n" " --prologue=FICHIER utiliser FICHIER.pro comme prologue PostScript\n" " --print-anyway* imprimer aussi les binaires\n" " -Z, --delegate* déléguer le traitement de certains fichiers\n" " --toc[=TEXTE] produire la table des matières TEXTE\n" #: src/main.c:760 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 "" "Lorsque les délégations sont activées, a2ps peut sous-traiter le traitement\n" "de certains fichiers, comme le PostScript, PDF, HTML etc., à d'autres\n" "applications.\n" #: src/main.c:767 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] enluminer (pour le langage LANG)\n" " --highlight-level=NIVEAU niveau d'enluminure des sources\n" " NIVEAU peut-être none, normal ou heavy\n" " -g alias pour --highlight-level=heavy\n" " --strip-level=NB niveau de suppression des commentaires\n" #: src/main.c:776 #, 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=FICHIER sauver dans FICHIER. Si FICHIER est `-', \n" " diriger sur la sortie standard\n" " --version-control=MOT écraser le contrôle de version usuel par le " "MOT\n" " --suffix=SUFFIXE écraser le suffixe usuel d'archivage\n" " par le SUFFIXE\n" " -P, --printer=NOM envoyer à l'imprimante NOM\n" " -d envoyer à l'imprimante par défaut\n" #: src/main.c:787 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 utiliser FICHIER.pro comme prologue PostScript\n" " --ppd[=CLÉ] sélection automatique, ou choisir le PPD CLÉ\n" " -n, --copies=NUM nombre de copies de chaque page\n" " -s, --sides=MODE imprimer en MODE « simplex » (ou « 1 »), « duplex " "»\n" " (ou « 2 »), ou « tumble »\n" " -S, --setpagedevice=C[:V] définition « page device » de C à V\n" " --statusdict=C[:[:]V] définition « statusdict » de C à V\n" " -k, --page-prefeed autoriser le pré-chargement de papier\n" " -K, --no-page-prefeed désactiver le pré-chargement\n" #: src/main.c:801 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" msgstr "" "Par défault, a2ps est réglé pour faire ce que vous espérez, alors faites-" "lui\n" "confiance. Pour embellir le contenu du répertoire « src » plus une table " "des\n" "matières et envoyer le résultat à l'imprimante « imp »,\n" "\n" " $ a2ps -P imp --toc src/*\n" "\n" "Pour traiter les fichiers « bof.ps » and « tralala.html » et afficher le\n" "résultat,\n" "\n" " $ a2ps -P display bof.ps tralala.html\n" "\n" "Pour imprimer une boîte-aux-lettres en 4 minipages,\n" "\n" " $ a2ps -=mail -4 mailbox\n" "\n" "Pour imprimer en livret sur l'imprimante par défaut, qui supporte le\n" "recto-verso,\n" "\n" " $ a2ps -=book paper.dvi.gz -d\n" #: src/main.c:822 #, fuzzy msgid "" "News, updates and documentation: visit http://www.gnu.org/software/a2ps/.\n" msgstr "" "Mises à jour, informations et documentations sont disponibles sur\n" " http://www.inf.enst.fr/~demaille/a2ps/\n" #: src/main.c:824 msgid "Report bugs to .\n" msgstr "" "Envoyez vos rapports de bogues et vos commentaires à \n" #: src/main.c:942 #, 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" #: src/main.c:1173 msgid "Table of Content" msgstr "Sommaire" #: src/parsessh.y:236 #, c-format msgid "cannot process `%s' which requires a2ps version %s" msgstr "impossible de traiter « %s » qui nécessite a2ps version %s" #: src/sheets-map.l:111 #, c-format msgid "unexpected character `%c'" msgstr "caractère « %c » inattendu" #: src/sheets-map.l:211 lexppd.l:211 msgid "too many includes" msgstr "trop d'inclusions" #: src/sheets-map.l:296 src/sheets-map.l:303 #, c-format msgid "no key defined for `%s'" msgstr "pas de clé définie pour « %s »" #: src/select.c:122 src/ssheet.c:866 fonts.l:838 fonts.l:840 fonts.l:842 #: lib/pathwalk.c:328 lib/pathwalk.c:414 #, c-format msgid "cannot find file `%s'" msgstr "impossible de trouver le fichier « %s »" #: src/select.c:124 msgid "automatic style selection cancelled" msgstr "sélection automatique des styles annulée" #: src/ssheet.c:295 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "impossible de compiler l'expression régulière « %s » : %s" #: src/ssheet.c:974 src/ssheet.c:995 msgid "Known Style Sheets" msgstr "Feuilles de style" #: src/ssheet.c:1461 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "" "impossible de trouver la feuille de style « %s »: sélection du style standard" #: src/sshread.c:453 #, c-format msgid "unknown encoding `%s', ignored" msgstr "codage « %s » inconnu, ignoré" #: src/version-etc.c:38 msgid "Copyright (C) 1999 Free Software Foundation, Inc." msgstr "Copyright (C) 1999 Free Software Foundation, Inc." #: src/version-etc.c:60 #, c-format msgid "Written by %s.\n" msgstr "Écrit par %s.\n" #: src/version-etc.c:66 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 programme est un logiciel libre ; voir les sources pour les conditions " "de\n" "reproduction. Il n'y a AUCUNE GARANTIE ; pas même la garantie implicite " "qu'il\n" "est DE QUALITÉ LOYALE ET MARCHANDE ou APPROPRIÉ POUR UN BUT PARTICULIER.\n" #: src/versions.c:133 #, c-format msgid "invalid version number `%s'" msgstr "numéro de version illégal « %s »" #: lib/caret.c:43 msgid "space (i.e., ` ')" msgstr "« space » (i.e., ` ')" #: lib/caret.c:45 msgid "octal (i.e., `\\001' etc.)" msgstr "octal (i.e., « \\001 » etc.)" #: lib/caret.c:47 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "hexadécimal (i.e., « \\x0a » etc.)" #: lib/caret.c:49 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "caret (i.e., « ^C », « M-^C » etc.)" #: lib/caret.c:51 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "emacs (i.e., « C-c », « M-C-c » etc.)" #: lib/caret.c:53 msgid "question-mark (i.e., `?')" msgstr "« question-mark » (i.e., « ? »)" #: lib/closeout.c:71 lib/closeout.c:73 msgid "write error" msgstr "erreur d'écriture" #: confg.gperf:157 lib/encoding.c:638 #, c-format msgid "invalid option `%s'" msgstr "option invalide « %s »" #: confg.gperf:224 confg.gperf:231 confg.gperf:238 #, c-format msgid "invalid definition for printer `%s': %s" msgstr "définition de l'imprimante « %s » invalide : %s" #: confg.gperf:229 confg.gperf:232 lib/printers.c:47 msgid "Unknown Printer" msgstr "Imprimante inconnue" #: confg.gperf:236 confg.gperf:239 lib/printers.c:46 msgid "Default Printer" msgstr "Imprimante par défaut" #: confg.gperf:292 lib/options.c:697 #, c-format msgid "invalid variable identifier `%s'" msgstr "nom de variable « %s » invalide" #: confg.gperf:321 #, c-format msgid "obsolete `%s' entry. Ignored" msgstr "champ « %s » obsolète. Ignoré" #: lib/encoding.c:1114 lib/encoding.c:1135 msgid "Known Encodings" msgstr "Codages connus" #: lib/faces.c:156 msgid "incomplete knowledge of faces" msgstr "connaissance des styles de caractères incomplète" #: lib/filtdir.c:113 #, c-format msgid "cannot close directory `%s'" msgstr "impossible de fermer le répertoire « %s »" #: lib/getnum.c:63 lib/getnum.c:121 lib/getnum.c:153 lib/getnum.c:221 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "argument invalide « %s » pour « %s »" #: lib/getnum.c:123 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "Les arguments valides sont les entiers n tel que : %s\n" #: lib/getnum.c:223 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "Les arguments valides sont les réels f tels que : %s\n" #: lib/jobs.c:308 #, c-format msgid "unknown encoding `%s'" msgstr "codage « %s » inconnu" #: lib/madir.c:59 msgid "rows first" msgstr "d'abord en ligne" #: lib/madir.c:62 msgid "columns first" msgstr "d'abord en colonne" #: lib/media.c:173 #, c-format msgid "unknown medium `%s'" msgstr "médium « %s » inconnu" #: lib/media.c:208 lib/media.c:237 msgid "Known Media" msgstr "Média connus" #: lib/media.c:211 msgid "Name" msgstr "Nom" #: lib/media.c:212 msgid "dimensions" msgstr "dimensions" #: lib/metaseq.c:104 lib/metaseq.c:113 #, c-format msgid "Known Variables" msgstr "Variables connues" #: lib/metaseq.c:162 lib/metaseq.c:531 lib/metaseq.c:548 lib/metaseq.c:608 #: lib/metaseq.c:951 lib/metaseq.c:972 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%s: « %c » manquant pour la méta séquence %s%c" #: lib/metaseq.c:288 lib/metaseq.c:300 #, c-format msgid "Printed by %s" msgstr "Imprimé par %s" #: lib/metaseq.c:298 #, c-format msgid "Printed by %s from %s" msgstr "Imprimé par %s depuis %s" #: lib/metaseq.c:308 lib/metaseq.c:327 msgid "cannot get current working directory" msgstr "impossible de déterminer le répertoire courant" #: lib/metaseq.c:341 lib/metaseq.c:534 lib/metaseq.c:563 lib/metaseq.c:652 #: lib/metaseq.c:954 lib/metaseq.c:987 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s : argument trop long pour la méta séquence %s" #: lib/metaseq.c:364 lib/metaseq.c:675 msgid "%b %d, %y" msgstr "%d %b %y" #: lib/metaseq.c:373 lib/metaseq.c:684 msgid "%A %B %d, %Y" msgstr "%A %d %B %Y" #: lib/metaseq.c:419 lib/metaseq.c:448 lib/metaseq.c:491 lib/metaseq.c:724 #: lib/metaseq.c:808 lib/metaseq.c:867 lib/metaseq.c:922 lib/metaseq.c:1099 #: lib/metaseq.c:1234 lib/metaseq.c:1246 lib/metaseq.c:1289 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s : méta séquence « %s%c » (%d) inconnue" #: lib/metaseq.c:426 lib/metaseq.c:815 #, c-format msgid "Page %d" msgstr "Page %d" #: lib/metaseq.c:431 lib/metaseq.c:826 #, c-format msgid "Page %d/%c" msgstr "Page %d/%c" #: lib/metaseq.c:593 lib/metaseq.c:1021 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "%s : séparateur invalide « %s%c » pour la méta séquence « %s »" #: lib/metaseq.c:601 lib/metaseq.c:611 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s : argument invalide pour la méta séquence « %s%c »" #: lib/metaseq.c:822 #, c-format msgid "Page %d/%d" msgstr "Page %d/%d" #: lib/metaseq.c:1266 msgid "output command" msgstr "commande de sortie" #: lib/options.c:302 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Taper « %s --help » pour de l'aide.\n" #: lib/output.c:466 #, c-format msgid "invalid face `%s'" msgstr "face invalide « %s »" #: lib/output.c:538 #, c-format msgid "`%s' with no matching `%s'" msgstr "« %s » sans « %s » correspondant" #: lib/ppd.c:108 msgid "Known Fonts" msgstr "Codages connus" #: lib/ppd.c:111 msgid "" "\n" " None.\n" msgstr "" "\n" " Aucune\n" #: lib/ppd.c:149 lib/ppd.c:165 msgid "Known PostScript Printer Descriptions" msgstr "Descriptions d'Imprimantes PostScript (PPD) connues" #: lib/prange.c:305 lib/prange.c:323 #, c-format msgid "invalid interval `%s'" msgstr "intervalle « %s » invalide" #: lib/printers.c:396 lib/printers.c:413 #, c-format msgid "no command for the `%s' (%s%s)" msgstr "pas de commande définie pour l'imprimante « %s » (%s%s)" #: lib/printers.c:429 msgid "sent to the standard output" msgstr "envoyé sur la sortie standard" #: lib/printers.c:430 msgid "sent to the default printer" msgstr "envoyé à l'imprimante par défaut" #: lib/printers.c:435 #, c-format msgid "saved into the file `%s'" msgstr "enregistré dans le fichier « %s »" #: lib/printers.c:436 #, c-format msgid "sent to the printer `%s'" msgstr "envoyé à l'imprimante « %s »" #: lib/printers.c:613 lib/printers.c:621 msgid "Known Outputs (Printers, etc.)" msgstr "Sorties connues (imprimantes, etc.)" #: lib/prolog.c:98 lib/prolog.c:181 msgid "Known Prologues" msgstr "Prologues connus" #: lib/prolog.c:579 #, c-format msgid "font %f too big" msgstr "taille de la police trop grosse: %f" #: lib/psgen.c:662 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "« %s » est un fichier binaire : impression annulée" #: lib/quotearg.c:200 msgid "`" msgstr "«" #: lib/quotearg.c:203 msgid "'" msgstr "»" #: lib/userdata.c:129 msgid "user" msgstr "utilisateur" #: lib/userdata.c:130 msgid "Unknown User" msgstr "Utilisateur Inconnu" #: lib/useropt.c:75 #, c-format msgid "unknown user option `%s'" msgstr "raccourci d'options « %s » inconnu" #: lib/useropt.c:86 lib/useropt.c:97 msgid "Known User Options" msgstr "Raccourcis d'options connus" #: lib/xbackupfile.c:105 lib/xmalloc.c:66 msgid "Memory exhausted" msgstr "plus de mémoire disponible" #: lib/xbackupfile.c:240 lib/xbackupfile.c:252 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "impossible de renommer le fichier « %s » en « %s »" #: lib/xbackupfile.c:255 #, c-format msgid "restored file `%s'" msgstr "fichier « %s » restauré" #: lib/argmatch.c:159 #, c-format msgid "invalid argument %s for `%s'" msgstr "argument invalide %s pour « %s »" #: lib/argmatch.c:160 #, c-format msgid "ambiguous argument %s for `%s'" msgstr "argument « %s » ambigu pour « %s »" #: lib/argmatch.c:178 #, c-format msgid "Valid arguments are:" msgstr "Les arguments valides sont :" #: lib/error.c:102 msgid "Unknown system error" msgstr "erreur système inconnue" #: lib/getopt.c:675 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s : l'option « %s » est ambigüe\n" #: lib/getopt.c:700 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s : l'option « --%s » n'attend pas d'argument\n" #: lib/getopt.c:705 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s : l'option « %c%s » n'attend pas d'argument\n" #: lib/getopt.c:723 lib/getopt.c:896 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s : l'option « %s » nécessite un argument\n" #: lib/getopt.c:752 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s : l'option « --%s » est inconnue\n" #: lib/getopt.c:756 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s : l'option « %c%s » est inconnue\n" #: lib/getopt.c:782 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s : option illégale -- %c\n" #: lib/getopt.c:785 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s : option invalide -- %c\n" #: lib/getopt.c:815 lib/getopt.c:945 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s : l'option -- %c nécessite un argument\n" #: lib/getopt.c:862 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s : l'option « -W %s » est ambigüe\n" #: lib/getopt.c:880 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s : l'option « -W %s » n'attend pas d'argument\n" #, fuzzy #~ msgid "end of line in a %s" #~ msgstr "fin de ligne dans une règle de reconnaissance de fichier" #~ msgid "end-of-line in regular expression" #~ msgstr "fin de ligne dans une expression régulière" #~ msgid "" #~ "Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana\n" #~ "Copyright (c) 1995, 96, 97, 98, 99 Akim Demaille, Miguel Santana" #~ msgstr "" #~ "Copyright © 1988, 89, 90, 91, 92, 93 Miguel Santana\n" #~ "Copyright © 1995, 96, 97, 98, 99 Akim Demaille, Miguel Santana" #~ msgid "Tasks (exit successfully):\n" #~ msgstr "Tâches (quitter avec succès) :\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 "" #~ "Ce programme est un logiciel libre ; vous pouvez le redistribuer ou le\n" #~ "modifier selon les termes de la License Publique Générale de GNU, " #~ "publiée\n" #~ "par la Free Software Foundation (soit la version 3 ou soit, à votre\n" #~ "discrétion, toute version ultérieure).\n" #~ "\n" #~ "Ce programme est distribué pour être utile, mais SANS AUCUNE GARANTIE ;\n" #~ "sans même la garantie implicite qu'il est DE QUALITE LOYALE ET MARCHANDE\n" #~ "ou APPROPRIÉ POUR UN BUT PARTICULIER. Voir la Licence Publique Générale\n" #~ "de GNU pour plus de détails.\n" #~ "\n" #~ "Vous devriez avoir reçu copie de la Licence Publique Générale de GNU\n" #~ "avec ce programme ; sinon, écrire à la Free Software Foundation, Inc.,\n" #~ "59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" #~ msgid "" #~ "Written by and .\n" #~ msgstr "Écrit par et \n" #~ msgid "no default command for option `-d'" #~ msgstr "pas de commande associée à l'option « -d »" #~ msgid "pipe in %s\n" #~ msgstr "passer en tube dans %s\n" #~ msgid "save in %s\n" #~ msgstr "sauver dans %s\n" #, fuzzy #~ msgid "%s: invalid argument `%s' for `%s'\n" #~ msgstr "argument invalide « %s » pour « %s »" #, fuzzy #~ msgid "invalid interval: %s" #~ msgstr "interval illégal : « %s »" #~ msgid "illegal integer interval: %s" #~ msgstr "interval illégal : « %s »" #~ msgid "cannot find file %s" #~ msgstr "impossible de trouver le fichier %s" #~ msgid "unrecognized font `%s'" #~ msgstr "police de caractères « %s » inconnue" #~ msgid "unrecognized face `%s'" #~ msgstr "style de caractère « %s » inconnu" #~ msgid "missing argument for %s" #~ msgstr "argument manquant pour %s" #~ msgid "invalid variable identifier %s" #~ msgstr "nom de variable invalide %s" #~ msgid "cannot create file %s" #~ msgstr "impossible de créer le fichier %s" #~ msgid "cannot open a pipe on %s" #~ msgstr "impossible d'ouvrir un tube sur %s" #~ msgid "cannot open file %s" #~ msgstr "impossible d'ouvrir le fichier %s" #~ msgid "cannot open configuration file %s" #~ msgstr "impossible d'ouvrir le fichier de configuration %s" #~ msgid "encoding %s unknown" #~ msgstr "codage %s inconnu" #~ msgid " library path = \n" #~ msgstr " accès aux bibliothèques =\n" #~ msgid "user option `%s' not defined" #~ msgstr "racourci d'option « %s » inconnu" #, fuzzy #~ msgid "illegal option: %s" #~ msgstr "option illégale : « %s »" #~ msgid "illegal option: `%s'" #~ msgstr "option illégale : « %s »" #~ msgid "" #~ "syntax error in option string `%s':\n" #~ "missing end of quotation: %c" #~ msgstr "" #~ "erreur de syntaxe de la chaîne d'options « %s »:\n" #~ "il manque la fermeture : « %c »" #, fuzzy #~ msgid "cannot backup and create file `%s'" #~ msgstr "impossible de créer le fichier « %s »" #~ msgid "wrong value for option %s: `%s'" #~ msgstr "mauvais argument pour l'option %s : « %s »" #~ msgid "Valid arguments are integers between %d and %d\n" #~ msgstr "Les arguments valides sont les entiers compris entre %d et %d\n" #~ msgid "Valid arguments are integers greater than %d\n" #~ msgstr "Les arguments valides sont les entiers supérieurs à %d\n" #~ msgid "Valid arguments are lengths between %gpt and %gpt\n" #~ msgstr "" #~ "Les arguments valides sont les longueurs comprises entre %gpt et %gpt\n" #~ msgid "cannot find configuration file `%s'" #~ msgstr "impossible de trouver le fichier de configuration « %s »" #~ msgid "Dynamic array `%s':\n" #~ msgstr "Tableau dynamique « %s » :\n" #~ msgid "\tload: %d/%d (%2.1f%%)\n" #~ msgstr "\tcharge: %d/%d (%2.1f%%)\n" #~ msgid "Dynamic string:\n" #~ msgstr "Chaîne dynamique :\n" #~ msgid "steady" #~ msgstr "constante" #~ msgid "linear" #~ msgstr "linéaire" #~ msgid "geometrical" #~ msgstr "géométrique" #~ msgid "\tgrowth: %s, increment: %d\n" #~ msgstr "\tincrémentation : %s, incrément : %d\n" #~ msgid "can't allocate %ld bytes for hash table: memory exhausted" #~ msgstr "" #~ "impossible d'allouer %ld octets pour la table de dispersion : plus de " #~ "mémoire disponible" #~ msgid "Load=%ld/%ld=%.0f%%, " #~ msgstr "Charge=%ld/%ld=%.0f%%, " #~ msgid "Rehash=%d, " #~ msgstr "Seconde dispersion=%d, " #~ msgid "Collisions=%ld/%ld=%.0f%%" #~ msgstr "Collisions=%ld/%ld=%.0f%%" #~ msgid "Document title" #~ msgstr "titre du document" #~ msgid "Page label" #~ msgstr "Nom de page" #~ msgid "free" #~ msgstr "libre" #~ msgid " %-10s = save in %s\n" #~ msgstr " %-10s = sauver dans %s\n" #~ msgid "delegating command" #~ msgstr "commande de délégation" #~ msgid "water mark" #~ msgstr "aquarelle" #~ msgid "right header" #~ msgstr "entête droite" #~ msgid "center footer" #~ msgstr "pied de page central" #~ msgid "right footer" #~ msgstr "pied de page droit" #~ msgid "left footer" #~ msgstr "pied de page gauche" #~ msgid "center title" #~ msgstr "titre" #~ msgid "right title" #~ msgstr "titre droit" #~ msgid "left title" #~ msgstr "titre droit" #~ msgid "General information on %s:\n" #~ msgstr "Information générale sur %s :\n" #~ msgid "" #~ " version = %s\n" #~ " verbosity level = %d\n" #~ " library path = \n" #~ msgstr "" #~ " version = %s\n" #~ " niveau de verbosité = %d\n" #~ " accès aux bibliothèques =\n" #~ msgid "found following options (argc=%d):\n" #~ msgstr "les options rencontrées (argc=%d) sont :\n" #~ msgid "failure\n" #~ msgstr "échec\n" #~ msgid "Walk through path\n" #~ msgstr "Traversée du chemin\n" #~ msgid "Unkown Printer" #~ msgstr "Imprimante inconnue" #~ msgid "syntax error in fonts(s) `%s'" #~ msgstr "erreur de syntaxe pour la (les) font(es) « %s »" #~ msgid "cannot launch `%s' (delegation `%s')" #~ msgstr "impossible de lancer « %s » (délégation « %s »)" #~ msgid "delegation %s did not create the file" #~ msgstr "le délégué %s n'a pas créé le fichier" #~ msgid "delegation %s failed and exited with status %d" #~ msgstr "le délégué %s a échoué avec l'état %d" #~ msgid "delegation %s failed" #~ msgstr "le délégué %s a échoué" #~ msgid "%s: no closing `%s' for %s escape" #~ msgstr "%s : « %s » manquante dans la méta séquence %s" #~ msgid "%s: too long variable name for %s escape" #~ msgstr "%s : nom de variable trop long pour une méta séquence %s" #~ 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 envoyer à l'imprimante NOM\n" #~ " -d envoyer à l'imprimante par défaut\n" #~ " -s, --sides=NUM nombre de faces par feuille (recto/recto-" #~ "verso)\n" #~ msgid "subcontract command" #~ msgstr "commande de sous traitance" #~ msgid "Known subcontractors" #~ msgstr "Sous traitants connus" #~ msgid "In the style %s, the keyword `%s' uses upper chars" #~ msgstr "Dans le style %s, le mot clé « %s » comporte des majuscules" #~ msgid "In the style %s, the sequence `%s-%s' uses upper chars" #~ msgstr "Dans le style %s, la séquence « %s-%s » comporte des majuscules" #~ msgid "in style %s, keyword `%s' is defined twice" #~ msgstr "Dans le style %s, le mot clé « %s » est défini plusieurs fois" #~ msgid "in style %s, operator `%s' is defined twice" #~ msgstr "dans le style %s, l'opérateur « %s » est défini plusieurs fois" #~ msgid "can't get current working directory" #~ msgstr "impossible de déterminer le répertoire courant" #~ msgid "expansion of %s user string (`%s') is `%s'\n" #~ msgstr "l'expansion de la chaîne (contexte: %s) « %s » est « %s »\n" #~ msgid "error opening `%s'" #~ msgstr "erreur à l'ouverture de « %s »" #~ msgid "error getting file `%s' modification time" #~ msgstr "erreur à la saisie de la date de modification de « %s »" #~ msgid "cannot find file \"%s%s\"" #~ msgstr "impossible de trouver le fichier « %s%s »" #~ msgid "[%s (pass-through): sent as is to output]\n" #~ msgstr "[%s (pass-through) : envoyé sans modifications]\n" #~ msgid "couldn't find system's configuration file `%s%c%s'" #~ msgstr "impossible d'ouvrir le fichier de configuration maître « %s%c%s »" #~ msgid "unable to fork" #~ msgstr "impossible de créer un nouveau processus" #~ msgid "error starting `/bin/sh -c %s'" #~ msgstr "erreur à l'exécution de « /bin/sh -c %s »" #~ msgid "[Total: %d page on " #~ msgstr "[Total : %d page sur " #~ msgid "sheet" #~ msgstr "feuille" #~ msgid "Dynamic array \"%s\" (@%p):\n" #~ msgstr "Tableau dynamic « %s » (@%p) :\n" #~ msgid "invalid size for dynamic array \"%s\": %d" #~ msgstr "taille invalide pour le tableau dynamique « %s » : %d" #~ msgid "invalid increment for dynamic array \"%s\": %d" #~ msgstr "incrément invalide pour le tableau dynamique « %s » : %d" #~ msgid "space" #~ msgstr "espace" #~ msgid "caret" #~ msgstr "caret" #~ msgid "files of type: " #~ msgstr "les fichiers du type : " #~ msgid "Known Media\n" #~ msgstr "Média connus\n" #~ msgid "Known languages (%d)" #~ msgstr "Langages connus (%d)" #~ msgid "" #~ " In %s:\n" #~ "\t" #~ msgstr "" #~ " Dans %s :\n" #~ "\t" #~ msgid "rows" #~ msgstr "ligne" #~ msgid "columns" #~ msgstr "colonne" #~ msgid "path_walk() on path %s\n" #~ msgstr "path_walk() sur le chemin %s\n" #~ msgid "In the style %s, the symbol '%s' uses upper chars" #~ msgstr "Dans le style %s, le symbole « %s » comporte des majuscules" #~ msgid "in style %s, symbol `%s' is defined twice" #~ msgstr "dans le style %s, le symbole « %s » est défini plusieurs fois" #~ msgid "in style %s, regular symbol `%s' is defined twice" #~ msgstr "" #~ "Dans le style %s, le symbole régulier « %s » est défini plusieurs fois" #~ msgid "in style %s, special symbol `%s' is defined twice" #~ msgstr "" #~ "dans le style %s, le symbole spécial « %s » est défini plusieurs fois" #~ msgid "not enough \\verb delimiters (%s) to print %s" #~ msgstr "pas assez de délimiteurs (%s) \\verb pour imprimer %s" #~ msgid "couldn't find prolog \"%s\"" #~ msgstr "impossible de trouver le prologue « %s »" #~ msgid "unknown" #~ msgstr "inconnu" #~ msgid "language %s unknown" #~ msgstr "langage « %s » inconnu" #~ msgid "illegal language: `%s'" #~ msgstr "langage illégal: « %s »" #~ msgid "Bold" #~ msgstr "Gras" #~ msgid "fnmatch failed on file \"%s\" and pattern \"%s\": %s" #~ msgstr "fnmatch a échoué sur le fichier \"%s\" et le motif \"%s\" : %s" #~ msgid "illegal language: %s in line %d of configuration file `%s'" #~ msgstr "" #~ "langage inconnu : « %s » à la ligne %d du fichier de configuration « %s »" #~ msgid "illegal option: %s in line %d of configuration file `%s'" #~ msgstr "" #~ "option illégale : « %s » à la ligne %d du fichier de configuration « %s »" #~ msgid "Print service\n" #~ msgstr "Service d'impression\n" a2ps-4.14/po/quot.sed0000644000175000017500000000023110735337263013735 0ustar mhattamhattas/"\([^"]*\)"/“\1â€/g s/`\([^`']*\)'/‘\1’/g s/ '\([^`']*\)' / ‘\1’ /g s/ '\([^`']*\)'$/ ‘\1’/g s/^'\([^`']*\)' /‘\1’ /g s/“â€/""/g a2ps-4.14/po/en@boldquot.header0000644000175000017500000000247110735337263015706 0ustar mhattamhatta# 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 # http://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.14/po/ca.po0000644000175000017500000013066610735337365013216 0ustar mhattamhatta# Missatges en català per a a2ps. # Copyright (c) 1997, 98 Miquel Àngel Varó i Giner # Miquel Àngel Varó i Giner , 1998. # msgid "" msgstr "" "Project-Id-Version: a2ps 4.7.21\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-12-29 11:28+0800\n" "PO-Revision-Date: 1999-01-11 15:57+01:00\n" "Last-Translator: Miquel Àngel Varó i Giner \n" "Language-Team: Catalan \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8-bit\n" #: src/buffer.c:68 msgid "any type" msgstr "qualsevol" #: src/delegate.c:137 confg.gperf:168 lib/encoding.c:530 lib/encoding.c:576 #: lib/encoding.c:616 lib/output.c:302 lib/pair_ht.c:296 lib/prolog.c:146 #, c-format msgid "missing argument for `%s'" msgstr "falta argument per a `%s'" #: src/delegate.c:260 lib/routines.c:160 lib/xbackupfile.c:248 #: lib/xbackupfile.c:276 lib/xbackupfile.c:284 #, c-format msgid "cannot create file `%s'" msgstr "no es pot crear el fitxer `%s'" #: src/delegate.c:269 src/select.c:193 lib/routines.c:190 lib/routines.c:196 #, c-format msgid "cannot open a pipe on `%s'" msgstr "no es pot obrir una canonada en `%s'" #: src/delegate.c:389 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "Delegació `%s', de %s a %s\n" #: src/delegate.c:408 src/delegate.c:430 msgid "Applications configured for delegation" msgstr "Aplicacions configurades per a la delegació" #: src/generate.c:88 #, c-format msgid "`%s' is a directory" msgstr "`%s' es un directori" #: src/generate.c:96 src/main.c:560 src/main.c:582 confg.gperf:192 #: confg.gperf:355 lib/routines.c:154 #, c-format msgid "cannot open file `%s'" msgstr "impossible obrir el fitxer '%s'" #: src/generate.c:101 lib/xbackupfile.c:224 #, c-format msgid "cannot get informations on file `%s'" msgstr "no es pot obtenir informació del fitxer `%s'" #: src/generate.c:168 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): 1 pàgina en 1 full]\n" #: src/generate.c:174 #, c-format msgid "[%s (%s): %d pages on 1 sheet]\n" msgstr "[%s (%s): %d pàgines en 1 full]\n" #: src/generate.c:181 #, c-format msgid "[%s (%s): %d pages on %d sheets]\n" msgstr "[%s (%s): %d pàgines en %d fulls]\n" #: src/generate.c:208 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[Total: 1 pàgina en 1 full] %s\n" #: src/generate.c:212 #, c-format msgid "[Total: %d pages on 1 sheet] %s\n" msgstr "[Total: %d pàgines en 1 full] %s\n" #: src/generate.c:217 #, c-format msgid "[Total: %d pages on %d sheets] %s\n" msgstr "[Total: %d pàgines en %d fulls] %s\n" #: src/generate.c:226 msgid "[1 line wrapped]\n" msgstr "" #: src/generate.c:229 #, fuzzy, c-format msgid "[%d lines wrapped]\n" msgstr "%d línies per pàgina" #: src/generate.c:242 msgid "[No output produced]\n" msgstr "[No s'ha produit eixida]\n" #: src/generate.c:314 #, c-format msgid "%s, delegated to %s" msgstr "%s, delegat a %s" #: src/generate.c:322 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): ha fallat. Ignorat]\n" #: src/generate.c:330 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (no imprimible): ignorat]\n" #: src/generate.c:339 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (binari): ignorat]\n" #: src/generate.c:360 msgid "plain" msgstr "estàndard" #: lexssh.l:348 msgid "end-of-line in string constant" msgstr "final-de-línia en una constant de cadena" #: lexssh.l:415 src/sheets-map.l:153 src/sheets-map.l:192 #, fuzzy, c-format msgid "end of line inside a %s" msgstr "final-de-línia en una expressió regular" #: src/main.c:203 #, c-format msgid "received signal %d: %s" msgstr "" #: src/main.c:242 msgid "heavy" msgstr "màxim" #: src/main.c:246 msgid "normal" msgstr "normal" #: src/main.c:250 msgid "none" msgstr "cap" #: src/main.c:324 src/main.c:328 msgid "yes" msgstr "sí" #: src/main.c:325 src/main.c:328 src/main.c:369 msgid "no" msgstr "no" #: src/main.c:335 #, c-format msgid "Configuration status of %s %s\n" msgstr "Estat de la configuració de %s %s\n" #: src/main.c:339 src/main.c:697 msgid "Sheets:\n" msgstr "Fulls:\n" #: src/main.c:340 #, 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" msgstr "" " suport = %s%s, %s\n" " disposició de pàgines = %d x %d, %s\n" " vores = %s\n" " alineament de fitxers = %s\n" " marge interior = %d\n" #: src/main.c:349 msgid "portrait" msgstr "vertical" #: src/main.c:349 msgid "landscape" msgstr "apaïsat" #: src/main.c:358 #, c-format msgid "%d characters per line" msgstr "%d caràcters per línia" #: src/main.c:361 #, c-format msgid "%d lines per page" msgstr "%d línies per pàgina" #: src/main.c:364 #, c-format msgid "font size is %gpt" msgstr "la grandària de la lletra es %g punts" #: src/main.c:373 msgid "each line" msgstr "cada línia" #: src/main.c:377 #, c-format msgid "each %d lines" msgstr "cada %d línies" #: src/main.c:380 src/main.c:718 msgid "Virtual pages:\n" msgstr "Pàgines virtuals:\n" #: src/main.c:381 #, c-format msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %d\n" " non printable format = %s\n" msgstr "" " numeració de línies = %s\n" " format = %s\n" " longitud de tabulació = %d\n" " caràcters no imprimibles = %s\n" #: src/main.c:392 msgid "Headers:\n" msgstr "Encapçalaments:\n" #: src/main.c:393 #, 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 "" " encapçalament = %s\n" " peu de pàgina esquerre = %s\n" " peu de pàgina = %s\n" " peu de pàgina dret = %s\n" " títol esquerre = %s\n" " títol central = %s\n" " títol dret = %s\n" " marca d'aigua = %s\n" #: src/main.c:412 src/main.c:747 msgid "Input:\n" msgstr "Entrada:\n" #: src/main.c:413 #, 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 línies = %s\n" " interpretar tab, ff i bs = %s\n" " final de línia = %s\n" " codificació = %s\n" " títol del document = %s\n" " pròleg = %s\n" " imprimir els binaris = %s\n" " delegacions = %s\n" #: src/main.c:438 src/main.c:504 msgid "selected automatically" msgstr "seleccionat automàticament" #: src/main.c:441 src/main.c:766 msgid "Pretty-printing:\n" msgstr "Pretty-printing:\n" #: src/main.c:442 #, 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:462 msgid "never make backups" msgstr "mai fer còpies de seguretat" #: src/main.c:466 msgid "simple backups of every file" msgstr "còpies de seguretat simples de cada fitxer" #: src/main.c:471 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" "còpies de seguretat numerades de fitxers ja numerats,\n" " i simples dels altres" #: src/main.c:476 msgid "numbered backups of every file" msgstr "còpies de seguretat numerades de cada fitxer" #: src/main.c:480 src/main.c:775 msgid "Output:\n" msgstr "Eixida:\n" #: src/main.c:481 #, 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 còpies = %s\n" #: src/main.c:494 src/main.c:786 msgid "PostScript:\n" msgstr "PostScript:\n" #: src/main.c:495 #, 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 = " msgstr "" " magic number = %s\n" " Descripció d'Impressora (PPD) = %s\n" " PPD implícita = %s\n" " format del número de pàgina = %s\n" " nombre de còpies = %d\n" " cares per full = %s\n" " def. pàgina del dispositiu = " #: src/main.c:515 #, c-format msgid " statusdict definitions = " msgstr " definicions statusdict = " #: src/main.c:518 #, c-format msgid " page prefeed = %s\n" msgstr " precàrrega del paper = %s\n" #: src/main.c:527 msgid "Internals:\n" msgstr "Detalls interns:\n" #: src/main.c:528 #, fuzzy, c-format msgid "" " verbosity level = %d\n" " file command = %s\n" " library path = \n" msgstr "" " nivell de comentaris = %d\n" " ordre de fitxer = %s\n" " directori temporal = %s\n" " accés a les llibreries = \n" #: src/main.c:653 #, 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" msgstr "" "Ús: %s [OPCIONS]... [FITXERS]...\n" " o: %s [OPCIONS]...\n" "Per a imprimir FITXERS, o imprimir per l'eixida estàndard.\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:668 msgid "Tasks:\n" msgstr "" #: src/main.c:669 #, 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" msgstr "" " -V, --version mostra versió i acaba\n" " --help mostra aquesta ajuda i acaba\n" " --copyright mostra els drets i condicions de còpia\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 implícits,\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:680 msgid "" "After having performed the task, exit successfully. Detailed lists may\n" "provide additional help on specific features.\n" msgstr "" #: src/main.c:688 msgid "Global:\n" msgstr "Global:\n" #: src/main.c:689 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:698 #, 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" msgstr "" " -M, --medium=NOM utilitza el suport d'eixida NOM\n" " -r, --landscape imprimeix en apaïsat\n" " -R, --portrait imprimeix en vertical\n" " --columns=NOMBRE NOMBRE de columnes per full (NOMBRE > 0)\n" " --rows=NOMBRE NOMBRE de línies per full (NOMBRE > 0)\n" " --major=DIRECCIÓ ompli primer files(row)/columnes(column)\n" " -1, -2, ..., -9 disposicions predef. de pàgines virtuals\n" " -A, --file-align=MODE alinea diversos fitxers segons el MODE\n" " (fill, rank, sheet, o un número)\n" " -j, --borders* imprimeix les vores de les columnes\n" " --margin[=GRAND] defineix marge interior de grandària GRAND\n" #: src/main.c:711 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:719 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 línies\n" " -C igual que --line-numbers=5\n" " -f, --fontsize=GRANDÀRIA utilitza el tipus de lletra GRANDÀRIA (real)\n" " -L, --lines-per-page=NOM indica les línies per pàgina\n" " -l, --chars-per-line=NOM indica les columnes per pàgina\n" " -m, --catman processa el fitxer com una pàgina\n" " d'ajuda (igual que -L66)\n" " -T, --tabsize=NOM longitud de tabulació = NOM\n" " --non-printable-format=FMT indica com s'imprimeixen els caràcters\n" " no visibles\n" #: src/main.c:730 msgid "Headings:\n" msgstr "Encapçalaments:\n" #: src/main.c:732 #, 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 encapçalaments\n" " -b, --header[=TEXT] posa encapçalament\n" " -u, --underlay[=TEXT] imprimeix TEXT davall de cada pàgina\n" " --center-title[=TEXT] posa TEXT com a títol de pàgina\n" " --left-title[=TEXT] títols esquerre i dret\n" " --right-title[=TEXT] \n" " --left-footer[=TEXT] peu de pàgina\n" " --footer[=TEXT] permet usar seqüències d'escapament $ i %\n" " --right-footer[=TEXT]\n" #: src/main.c:743 msgid "The TEXTs may use special escapes.\n" msgstr "" #: src/main.c:748 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 pàgines a imprimir\n" " -c, --truncate-lines* trunca les línies llarges\n" " -i, --interpret* interpreta els tab, bs i ff\n" " --end-of-line=TIPUS especifica el caràcter de final de línia\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 estàndard\n" " --print-anyway força la impressió binària\n" " -Z, --delegate* delega fitxers a altres aplicacions\n" " --toc[=TEXT] genera una taula de continguts\n" #: src/main.c:760 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:767 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:776 #, 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" " estàndard.\n" " --version-control=PARAULA sobrescriu el control de versió usual\n" " --suffix=SUFIX sobrescriu el sufix de còpies usual\n" " -P, --printer=NOM envia l'eixida a la impressora NOM\n" " -d envia l'eixida a la impressora implícita\n" #: src/main.c:787 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 pròleg PostScript\n" " --ppd[=CLAU] selecció automàtica del PPD o el posa a CLAU\n" " -n, --copies=NOM imprimeix NOM còpies de cada pàgina\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 pàgina\n" " a l'eixida\n" " --statusdict=K[:[:]V] passa la definició statusdict a l'eixida\n" " -k, --page-prefeed activa la precàrrega de paper\n" " -K, --no-page-prefeed desactiva la precàrrega de paper\n" #: src/main.c:801 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" msgstr "" #: src/main.c:822 #, fuzzy msgid "" "News, updates and documentation: visit http://www.gnu.org/software/a2ps/.\n" msgstr "" "Notícies, actualizacions documentació: visiteu http://www.inf.enst.fr/" "~demaille/a2ps/\n" "Envieu comentaris sobre la traducció a \n" #: src/main.c:824 #, fuzzy msgid "Report bugs to .\n" msgstr "" "Informes d'error a \n" "Informes sobre la traducció a \n" #: src/main.c:942 #, 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" #: src/main.c:1173 msgid "Table of Content" msgstr "Taula de Continguts" #: src/parsessh.y:236 #, 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:111 #, fuzzy, c-format msgid "unexpected character `%c'" msgstr "opció desconeguda: `%c' (%d)" #: src/sheets-map.l:211 lexppd.l:211 msgid "too many includes" msgstr "" #: src/sheets-map.l:296 src/sheets-map.l:303 #, fuzzy, c-format msgid "no key defined for `%s'" msgstr "no es pot trobar el fitxer `%s'" #: src/select.c:122 src/ssheet.c:866 fonts.l:838 fonts.l:840 fonts.l:842 #: lib/pathwalk.c:328 lib/pathwalk.c:414 #, c-format msgid "cannot find file `%s'" msgstr "no es pot trobar el fitxer `%s'" #: src/select.c:124 msgid "automatic style selection cancelled" msgstr "cancel.lada selecció d'estil automàtica" #: src/ssheet.c:295 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "no es pot compilar l'expressió regular `%s': %s" #: src/ssheet.c:974 src/ssheet.c:995 msgid "Known Style Sheets" msgstr "Fulls d'Estil Coneguts" #: src/ssheet.c:1461 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "no es pot trobar el full d'estil `%s': usant l'estil implícit" #: src/sshread.c:453 #, c-format msgid "unknown encoding `%s', ignored" msgstr "codificació desconeguda `%s', ignorada" #: src/version-etc.c:38 msgid "Copyright (C) 1999 Free Software Foundation, Inc." msgstr "" #: src/version-etc.c:60 #, fuzzy, c-format msgid "Written by %s.\n" msgstr "Imprés per %s" #: src/version-etc.c:66 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" #: src/versions.c:133 #, c-format msgid "invalid version number `%s'" msgstr "número de versió `%s' no vàlid" #: lib/caret.c:43 msgid "space (i.e., ` ')" msgstr "espai (` ')" #: lib/caret.c:45 msgid "octal (i.e., `\\001' etc.)" msgstr "octal (`\\001',...)" #: lib/caret.c:47 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "hexadecimal (`\\x0a',...)" #: lib/caret.c:49 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "circumflex (`^C', `M-^C',...)" #: lib/caret.c:51 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "emacs (`C-c', `M-C-c',...)" #: lib/caret.c:53 msgid "question-mark (i.e., `?')" msgstr "signe d'interrogació (`?')" #: lib/closeout.c:71 lib/closeout.c:73 msgid "write error" msgstr "" #: confg.gperf:157 lib/encoding.c:638 #, c-format msgid "invalid option `%s'" msgstr "opció no vàlida `%s'" #: confg.gperf:224 confg.gperf:231 confg.gperf:238 #, c-format msgid "invalid definition for printer `%s': %s" msgstr "definició no vàlida per a la impressora `%s': %s" #: confg.gperf:229 confg.gperf:232 lib/printers.c:47 msgid "Unknown Printer" msgstr "Impressora Desconeguda" #: confg.gperf:236 confg.gperf:239 lib/printers.c:46 msgid "Default Printer" msgstr "Impressora Implícita" #: confg.gperf:292 lib/options.c:697 #, c-format msgid "invalid variable identifier `%s'" msgstr "identificador de variable `%s' no vàlid" #: confg.gperf:321 #, c-format msgid "obsolete `%s' entry. Ignored" msgstr "entrada obsoleta '%s'. Ignorada" #: lib/encoding.c:1114 lib/encoding.c:1135 msgid "Known Encodings" msgstr "Codificacions Conegudes" #: lib/faces.c:156 msgid "incomplete knowledge of faces" msgstr "coneiximent incomplet dels estils de caràcters" #: lib/filtdir.c:113 #, c-format msgid "cannot close directory `%s'" msgstr "no es pot tancar el directori `%s'" #: lib/getnum.c:63 lib/getnum.c:121 lib/getnum.c:153 lib/getnum.c:221 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "argument no vàlid `%s' per a `%s'" #: lib/getnum.c:123 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "Els arguments vàlids son sensers n tal com: %s\n" #: lib/getnum.c:223 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "Els arguments vàlids son reals f tal com: %s\n" #: lib/jobs.c:308 #, c-format msgid "unknown encoding `%s'" msgstr "codificació desconeguda `%s', ignorada" #: lib/madir.c:59 msgid "rows first" msgstr "files primer" #: lib/madir.c:62 msgid "columns first" msgstr "columnes primer" #: lib/media.c:173 #, c-format msgid "unknown medium `%s'" msgstr "suport `%s' desconegut" #: lib/media.c:208 lib/media.c:237 msgid "Known Media" msgstr "Suport Conegut" #: lib/media.c:211 msgid "Name" msgstr "Nom" #: lib/media.c:212 msgid "dimensions" msgstr "dimensions" #: lib/metaseq.c:104 lib/metaseq.c:113 #, c-format msgid "Known Variables" msgstr "Variables Conegudes" #: lib/metaseq.c:162 lib/metaseq.c:531 lib/metaseq.c:548 lib/metaseq.c:608 #: lib/metaseq.c:951 lib/metaseq.c:972 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%s: falta `%c' per a la seqüència d'escapament %s%c" #: lib/metaseq.c:288 lib/metaseq.c:300 #, c-format msgid "Printed by %s" msgstr "Imprés per %s" #: lib/metaseq.c:298 #, c-format msgid "Printed by %s from %s" msgstr "Imprés per %s des de %s" #: lib/metaseq.c:308 lib/metaseq.c:327 msgid "cannot get current working directory" msgstr "no es pot determinar el directori actual" #: lib/metaseq.c:341 lib/metaseq.c:534 lib/metaseq.c:563 lib/metaseq.c:652 #: lib/metaseq.c:954 lib/metaseq.c:987 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s: argument massa llarg per a la seqüència d'escapament %s" #: lib/metaseq.c:364 lib/metaseq.c:675 msgid "%b %d, %y" msgstr "%d %b %y" #: lib/metaseq.c:373 lib/metaseq.c:684 msgid "%A %B %d, %Y" msgstr "%A %d %B %Y" #: lib/metaseq.c:419 lib/metaseq.c:448 lib/metaseq.c:491 lib/metaseq.c:724 #: lib/metaseq.c:808 lib/metaseq.c:867 lib/metaseq.c:922 lib/metaseq.c:1099 #: lib/metaseq.c:1234 lib/metaseq.c:1246 lib/metaseq.c:1289 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s: seqüència d'escapament \"%s%c\" (%d) desconeguda" #: lib/metaseq.c:426 lib/metaseq.c:815 #, c-format msgid "Page %d" msgstr "Pàgina %d" #: lib/metaseq.c:431 lib/metaseq.c:826 #, c-format msgid "Page %d/%c" msgstr "Pàgina %d/%c" #: lib/metaseq.c:593 lib/metaseq.c:1021 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "%s: separador no válid `%s%c' per a la seqüència d'escapament `%s'" #: lib/metaseq.c:601 lib/metaseq.c:611 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s: argument no válid per a la seqüència d'escapament %s%c" #: lib/metaseq.c:822 #, c-format msgid "Page %d/%d" msgstr "Pàgina %d/%d" #: lib/metaseq.c:1266 msgid "output command" msgstr "ordre d'eixida" #: lib/options.c:302 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Prova `%s --help' per a més informació.\n" #: lib/output.c:466 #, c-format msgid "invalid face `%s'" msgstr "opció no vàlida `%s'" #: lib/output.c:538 #, c-format msgid "`%s' with no matching `%s'" msgstr "`%s' sense corresponent `%s'" #: lib/ppd.c:108 msgid "Known Fonts" msgstr "Tipus de Lletra Coneguts" #: lib/ppd.c:111 msgid "" "\n" " None.\n" msgstr "" "\n" " Cap.\n" #: lib/ppd.c:149 lib/ppd.c:165 msgid "Known PostScript Printer Descriptions" msgstr "Descripcions d'Impressores PostScript Conegudes" #: lib/prange.c:305 lib/prange.c:323 #, c-format msgid "invalid interval `%s'" msgstr "interval `%s' no vàlid" #: lib/printers.c:396 lib/printers.c:413 #, fuzzy, c-format msgid "no command for the `%s' (%s%s)" msgstr "no hi ha ordre implícita per a la impressora desconeguda `%s'" #: lib/printers.c:429 msgid "sent to the standard output" msgstr "enviat a l'eixida estàndard" #: lib/printers.c:430 msgid "sent to the default printer" msgstr "enviat a la impressora implícita" #: lib/printers.c:435 #, c-format msgid "saved into the file `%s'" msgstr "guardat al fitxer `%s'" #: lib/printers.c:436 #, c-format msgid "sent to the printer `%s'" msgstr "enviat a la impressora `%s'" #: lib/printers.c:613 lib/printers.c:621 msgid "Known Outputs (Printers, etc.)" msgstr "Eixides Conegudes (Impressores, etc.)" #: lib/prolog.c:98 lib/prolog.c:181 msgid "Known Prologues" msgstr "Pròlegs Coneguts" #: lib/prolog.c:579 #, c-format msgid "font %f too big" msgstr "el tipus de lletra %f és massa gran" #: lib/psgen.c:662 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "`%s' és un fitxer binari, impressió interrompuda" #: lib/quotearg.c:200 msgid "`" msgstr "" #: lib/quotearg.c:203 msgid "'" msgstr "" #: lib/userdata.c:129 msgid "user" msgstr "usuari" #: lib/userdata.c:130 msgid "Unknown User" msgstr "Usuari Desconegut" #: lib/useropt.c:75 #, c-format msgid "unknown user option `%s'" msgstr "opció d'usuari `%s' desconeguda" #: lib/useropt.c:86 lib/useropt.c:97 msgid "Known User Options" msgstr "Opcions d'Usuari Conegudes" #: lib/xbackupfile.c:105 lib/xmalloc.c:66 msgid "Memory exhausted" msgstr "Memòria esgotada" #: lib/xbackupfile.c:240 lib/xbackupfile.c:252 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "no es pot renombrar el fitxer `%s' com %s" #: lib/xbackupfile.c:255 #, c-format msgid "restored file `%s'" msgstr "fitxer restaurat `%s'" #: lib/argmatch.c:159 #, c-format msgid "invalid argument %s for `%s'" msgstr "argument no vàlid %s per a `%s'" #: lib/argmatch.c:160 #, fuzzy, c-format msgid "ambiguous argument %s for `%s'" msgstr "argument ambigu `%s' per a `%s'" #: lib/argmatch.c:178 #, c-format msgid "Valid arguments are:" msgstr "Els arguments vàlids són:" #: lib/error.c:102 msgid "Unknown system error" msgstr "Error de sistema desconegut" #: lib/getopt.c:675 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: l'opció `%s' és ambigua\n" #: lib/getopt.c:700 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: l'opció `--%s' no permet un argument\n" #: lib/getopt.c:705 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: l'opció `%c%s' no permet un argument\n" #: lib/getopt.c:723 lib/getopt.c:896 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: l'opció `%s' necessita un argument\n" #: lib/getopt.c:752 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: opció desconeguda `--%s'\n" #: lib/getopt.c:756 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: opció desconeguda `%c%s'\n" #: lib/getopt.c:782 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: opció il.legal -- %c\n" #: lib/getopt.c:785 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: opció no vàlida -- %c\n" #: lib/getopt.c:815 lib/getopt.c:945 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: l'opció necessita un argument -- %c\n" #: lib/getopt.c:862 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: l'opció `-W %s' és ambigua\n" #: lib/getopt.c:880 #, 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-línia en una expressió regular" #~ msgid "end-of-line in regular expression" #~ msgstr "final-de-línia 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 and .\n" #~ msgstr "Escrit pet i \n" #~ msgid "no default command for option `-d'" #~ msgstr "no hi ha ordre implícita 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 vàlid `%s' per a `%s'\n" #, fuzzy #~ msgid "invalid interval: %s" #~ msgstr "interval senser `%s' no vàlid" #~ 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 caràcter %s desconegut" #~ msgid "missing argument for %s" #~ msgstr "falta argument per a %s" #~ msgid "invalid variable identifier %s" #~ msgstr "identificador de variable %s no vàlid" #~ 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 vàlids son sensers entre %d i %d\n" #~ msgid "Valid arguments are integers greater than %d\n" #~ msgstr "Els arguments vàlids son sensers majors que %d\n" #, fuzzy #~ msgid "Valid arguments are lengths between %gpt and %gpt\n" #~ msgstr "Els arguments vàlids son sensers entre %d i %d\n" #~ msgid "cannot find configuration file `%s'" #~ msgstr "no és pot trobar el fitxer de configuració `%s'" #~ msgid "Dynamic array `%s':\n" #~ msgstr "Vector dinàmic '%s':\n" #~ msgid "\tload: %d/%d (%2.1f%%)\n" #~ msgstr "\tcàrrega: %d/%d (%2.1f%%)\n" #~ msgid "Dynamic string:\n" #~ msgstr "Cadena dinàmica:\n" #~ msgid "steady" #~ msgstr "fix" #~ msgid "linear" #~ msgstr "lineal" #~ msgid "geometrical" #~ msgstr "geomètric" #~ 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ó: memòria " #~ "esgotada" #~ msgid "Load=%ld/%ld=%.0f%%, " #~ msgstr "Càrrega=%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 "títol central" #, fuzzy #~ msgid "Valid arguments are floats greater than %.1f\n" #~ msgstr "Els arguments vàlids 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 "encapçalament dret" #~ msgid "center footer" #~ msgstr "peu de pàgina central" #~ msgid "right footer" #~ msgstr "peu de pàgina dret" #~ msgid "left footer" #~ msgstr "peu de pàgina esquerre" #~ msgid "center title" #~ msgstr "títol central" #~ msgid "right title" #~ msgstr "títol dret" #~ msgid "left title" #~ msgstr "títol 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 següents 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 seqüència d'escapament %s" #~ msgid "%s: too long variable name for %s escape" #~ msgstr "%s: nom de variable massa llarg per a la seqüència 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 estàndard\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 majúscules" #, fuzzy #~ msgid "In the style %s, the sequence `%s-%s' uses upper chars" #~ msgstr "En el estil %s, la seqüència '%s-%s' utilitza majúscules" #~ 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 pàgina 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 trajectòria %s\n" #~ msgid "In the style %s, the symbol '%s' uses upper chars" #~ msgstr "En el estil %s, el símbol '%s' utilitza majúscules" #, fuzzy #~ msgid "in style %s, symbol `%s' is defined twice" #~ msgstr "en l'estil %s, el símbol regular `%s' està definit dues vegades" #~ msgid "in style %s, regular symbol `%s' is defined twice" #~ msgstr "en l'estil %s, el símbol regular `%s' està definit dues vegades" #~ msgid "in style %s, special symbol `%s' is defined twice" #~ msgstr "en l'estil %s, el símbol 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 pròleg \"%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, línia %d del fitxer de configuració `%s'" #~ msgid "illegal option: %s in line %d of configuration file `%s'" #~ msgstr "opció il.legal: %s, línia %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 "pàgina" #~ msgid "pages" #~ msgstr "pàgines" a2ps-4.14/po/remove-potcdate.sin0000644000175000017500000000066010735337263016067 0ustar mhattamhatta# Sed script that remove the POT-Creation-Date line in the header entry # from a POT file. # # 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.14/po/cs.po0000644000175000017500000011323610735337365013232 0ustar mhattamhatta# Czech translation of the GNU a2ps. # Copyright (C) 1998 Free Software Foundation, Inc. # Jiøí Pavlovský , 1998. msgid "" msgstr "" "Project-Id-Version: a2ps 4.12\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-12-29 11:28+0800\n" "PO-Revision-Date: 1999-10-10 21:42+0200\n" "Last-Translator: Jiøí Pavlovský \n" "Language-Team: Czech \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-2\n" "Content-Transfer-Encoding: 8bit\n" #: src/buffer.c:68 msgid "any type" msgstr "jakýkoliv typ" #: src/delegate.c:137 confg.gperf:168 lib/encoding.c:530 lib/encoding.c:576 #: lib/encoding.c:616 lib/output.c:302 lib/pair_ht.c:296 lib/prolog.c:146 #, c-format msgid "missing argument for `%s'" msgstr "chybí argument pro `%s'" #: src/delegate.c:260 lib/routines.c:160 lib/xbackupfile.c:248 #: lib/xbackupfile.c:276 lib/xbackupfile.c:284 #, c-format msgid "cannot create file `%s'" msgstr "soubor `%s' nelze vytvoøit" #: src/delegate.c:269 src/select.c:193 lib/routines.c:190 lib/routines.c:196 #, c-format msgid "cannot open a pipe on `%s'" msgstr "rouru do `%s' nelze otevøít" #: src/delegate.c:389 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "Pøedání `%s', od %s do %s\n" #: src/delegate.c:408 src/delegate.c:430 msgid "Applications configured for delegation" msgstr "Aplikace urèené k pøedávání úloh" #: src/generate.c:88 #, c-format msgid "`%s' is a directory" msgstr "`%s' je adresáø" #: src/generate.c:96 src/main.c:560 src/main.c:582 confg.gperf:192 #: confg.gperf:355 lib/routines.c:154 #, c-format msgid "cannot open file `%s'" msgstr "soubor `%s' nelze otevøít" #: src/generate.c:101 lib/xbackupfile.c:224 #, c-format msgid "cannot get informations on file `%s'" msgstr "informace o souboru `%s' nelze získat" #: src/generate.c:168 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): poèet stran/listù: 1/1]\n" #: src/generate.c:174 #, c-format msgid "[%s (%s): %d pages on 1 sheet]\n" msgstr "[%s (%s): poèet stran/listù: %d/1]\n" #: src/generate.c:181 #, c-format msgid "[%s (%s): %d pages on %d sheets]\n" msgstr "[%s (%s): poèet stran/listù: %d/%d]\n" #: src/generate.c:208 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[Celkem: poèet stran/listù: 1/1] %s\n" #: src/generate.c:212 #, c-format msgid "[Total: %d pages on 1 sheet] %s\n" msgstr "[Celkem: poèet stran/listù: %d/1] %s\n" #: src/generate.c:217 #, c-format msgid "[Total: %d pages on %d sheets] %s\n" msgstr "[Celkem: poèet stran/listù: %d/%d] %s\n" #: src/generate.c:226 msgid "[1 line wrapped]\n" msgstr "" #: src/generate.c:229 #, fuzzy, c-format msgid "[%d lines wrapped]\n" msgstr "øádkù na stránku - %d" #: src/generate.c:242 msgid "[No output produced]\n" msgstr "[®ádný výstup nebyl vytvoøen]\n" #: src/generate.c:314 #, c-format msgid "%s, delegated to %s" msgstr "%s pøedáno ke zpracování %s" #: src/generate.c:322 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): neuspìlo. Ignorováno]\n" #: src/generate.c:330 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (netisknutelné): Ignorováno]\n" #: src/generate.c:339 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (binární data): ignorováno]\n" #: src/generate.c:360 msgid "plain" msgstr "prostý" #: lexssh.l:348 msgid "end-of-line in string constant" msgstr "neukonèená øetìzcová konstanta" #: lexssh.l:415 src/sheets-map.l:153 src/sheets-map.l:192 #, fuzzy, c-format msgid "end of line inside a %s" msgstr "neukonèený regulární výraz" #: src/main.c:203 #, c-format msgid "received signal %d: %s" msgstr "obdr¾en signál %d: %s" #: src/main.c:242 msgid "heavy" msgstr "maximální (heavy)" #: src/main.c:246 msgid "normal" msgstr "bì¾ná (normal)" #: src/main.c:250 msgid "none" msgstr "¾ádná (none)" #: src/main.c:324 src/main.c:328 msgid "yes" msgstr "ano" #: src/main.c:325 src/main.c:328 src/main.c:369 msgid "no" msgstr "ne" #: src/main.c:335 #, c-format msgid "Configuration status of %s %s\n" msgstr "Aktuální konfigurace %s %s\n" #: src/main.c:339 src/main.c:697 msgid "Sheets:\n" msgstr "Listy:\n" #: src/main.c:340 #, 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" msgstr "" " médium = %s%s, %s\n" " rozvr¾ení stránky = %d x %d, %s\n" " rámeèky = %s\n" " tisk oddìlených souborù = %s\n" " vnitøní okraj = %d\n" #: src/main.c:349 msgid "portrait" msgstr "na vý¹ku" #: src/main.c:349 msgid "landscape" msgstr "na ¹íøku" #: src/main.c:358 #, c-format msgid "%d characters per line" msgstr "znakù na øádek - %d" #: src/main.c:361 #, c-format msgid "%d lines per page" msgstr "øádkù na stránku - %d" #: src/main.c:364 #, c-format msgid "font size is %gpt" msgstr "velikost písma je %gpt" #: src/main.c:373 msgid "each line" msgstr "ka¾dý øádek" #: src/main.c:377 #, c-format msgid "each %d lines" msgstr "ka¾dý %d. øádek" #: src/main.c:380 src/main.c:718 msgid "Virtual pages:\n" msgstr "Virtuální stránky:\n" #: src/main.c:381 #, c-format msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %d\n" " non printable format = %s\n" msgstr "" " èíslování øádkù = %s\n" " formát = %s\n" " velikost tabulátoru = %d\n" " netisknutelné znaky = %s\n" #: src/main.c:392 msgid "Headers:\n" msgstr "Hlavièky:\n" #: src/main.c:393 #, 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:412 src/main.c:747 msgid "Input:\n" msgstr "Vstup:\n" #: src/main.c:413 #, 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" " titul dokumentu = %s\n" " prolog = %s\n" " tisk binárních dat = %s\n" " pøedávání úloh = %s\n" #: src/main.c:438 src/main.c:504 msgid "selected automatically" msgstr "automatická volba" #: src/main.c:441 src/main.c:766 msgid "Pretty-printing:\n" msgstr "Tisk stylù:\n" #: src/main.c:442 #, 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:462 msgid "never make backups" msgstr "¾ádné zálo¾ní kopie" #: src/main.c:466 msgid "simple backups of every file" msgstr "jednoduché zálo¾ní kopie ka¾dého souboru" #: src/main.c:471 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:476 msgid "numbered backups of every file" msgstr "èíslované zálo¾ní kopie v¹ech souborù" #: src/main.c:480 src/main.c:775 msgid "Output:\n" msgstr "Výstup:\n" #: src/main.c:481 #, 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:494 src/main.c:786 msgid "PostScript:\n" msgstr "PostScript:\n" #: src/main.c:495 #, 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 = " msgstr "" " magické èíslo = %s\n" " popis tiskárny (PPD) = %s\n" " implicitní PPD = %s\n" " formát èísla stránky = %s\n" " poèet kopií = %d\n" " stran na list = %s\n" " nastavení stránkového zaøízení = " #: src/main.c:515 #, c-format msgid " statusdict definitions = " msgstr " nastavení 'statusdict' = " #: src/main.c:518 #, c-format msgid " page prefeed = %s\n" msgstr " 'page prefeed' = %s\n" #: src/main.c:527 msgid "Internals:\n" msgstr "Interní nastavení:\n" #: src/main.c:528 #, c-format msgid "" " verbosity level = %d\n" " file command = %s\n" " library path = \n" msgstr "" " úroveò výpisu hlá¹ek = %d\n" " pøíkaz pro vyvolání file = %s\n" " cesta ke knihovnám = \n" #: src/main.c:653 #, 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" msgstr "" "Pou¾ití: %s [PØEPÍNAÈ]... [SOUBOR]...\n" "\n" "Pøevádí SOUBOR(y) nebo standardní vstup do PostScriptu.\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:668 msgid "Tasks:\n" msgstr "Úlohy:\n" #: src/main.c:669 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" msgstr "" " --version vypí¹e oznaèení verze programu\n" " --help vypí¹e tuto nápovìdu\n" " --guess vypí¹e pøedpokládaný typ SOUBORÙ\n" " --which vypí¹e úplnou cestu k zadaným knihovním\n" " SOUBORÙM\n" " --glob vypí¹e úplnou cestu ke knihovním SOUBORÙM\n" " vyhovujícím vzoru\n" " --list=defaults vypí¹e implicitní nastavení a parametry\n" " --list=TÉMA vypí¹e informace o TÉMATU (delegations,\n" " encodings, features, variables, media, " "ppd\n" " printers, prologues, style-sheets,\n" " user-options\n" #: src/main.c:680 msgid "" "After having performed the task, exit successfully. Detailed lists may\n" "provide additional help on specific features.\n" msgstr "" "Úloha byla úspì¹nì dokonèena. Nápovìdu ke konkrétním tématùm poskytne\n" "podrobný výpis.\n" #: src/main.c:688 msgid "Global:\n" msgstr "V¹eobecná nastavení:\n" #: src/main.c:689 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Ò] úroveò výpisu hlá¹ek zapnuta, nebo " "nastavena\n" " na ÚROVEÒ\n" " -=, --user-option=ZKRATKA pou¾ije u¾ivatelem definovanou ZKRATKU\n" " --debug pou¾ije ladící funkce\n" " -D, --define=KLÍÈ[:HODNOTA] zru¹í nebo nastaví promìnnou K na hodnotu " "H\n" #: src/main.c:698 #, 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" msgstr "" " -M, --medium=JMÉNO pou¾ije výstupní médium JMÉNO\n" " -r, --landscape tiskne stránky na ¹íøku\n" " -R, --portrait tiskne 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 nastaví ZPÙSOB (fill, rank, page, sheet " "èi\n" " number) tisku oddìlených souborù\n" " -j, --borders* tiskne rámeèky kolem sloupcù\n" " --margin[=VELIKOST] nastaví VELIKOST vnitøních okrajù\n" #: src/main.c:711 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:719 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 pøezdívka pro --line-numbers=5\n" " -f, --font-size=VELIKOST VELIKOST (float) písma pro hlavní text\n" " -L, --lines-per-page=POÈET pøepoèítá písmo, aby tiskl POÈET øádkù na\n" " stránku\n" " -l, --chars-per-line=POÈET pøepoèítá písmo, aby tiskl POÈET sloupcù\n" " na stránku\n" " -m, --catman zpracuje SOUBOR jako man (stejné jako -" "L66)\n" " -T, --tabsize=VELIKOST nastaví VELIKOST tabulátoru\n" " --non-printable-format=FMT nastaví zpùsob zpracování netisknutelných\n" " znakù\n" #: src/main.c:730 msgid "Headings:\n" msgstr "Hlavièky:\n" #: src/main.c:732 #, 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:743 msgid "The TEXTs may use special escapes.\n" msgstr "Vstup mù¾e pou¾ívat zvlá¹tní øídící znaky.\n" #: src/main.c:748 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] zvolí stránky k vyti¹tìní\n" " -c, --truncate-lines* oøezává dlouhé øádky\n" " -i, --interpret* interpretace tab, bs a ff znakù\n" " --end-of-line=TYP nastaví znak eol (TYP:r, n, nr, rn, any)\n" " -X, --encoding=JMÉNO pou¾ije vstupní kódování JMÉNO\n" " -t, --title=JMÉNO nastaví JMÉNO úlohy\n" " --stdin=SOUBOR ète SOUBOR ze standardního vstupu\n" " --print-anyway* tiskne také binární data\n" " -Z, --delegate* pøedá soubory ke zpracování jiné aplikaci\n" " --toc[=TEXT] vytvoøí obsah\n" #: src/main.c:760 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:767 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] zapne tisk stylù ( = STYL)\n" " --highlight-level=ÚROVEÒ nastaví ÚROVEÒ zvýrazòování pøi tisku " "stylù\n" " ÚROVEÒ mù¾e být none, normal nebo heavy\n" " -g alias pro --highlight-level=heavy\n" " --strip-level=ÚROVEÒ ÚROVEÒ oøezávání komentáøù\n" #: src/main.c:776 #, 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=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ØÍPONU\n" " -P, --printer=JMÉNO výstup na tiskárnu JMÉNO\n" " -d výstup na implicitní tiskárnu\n" #: src/main.c:787 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¾í SOUBOR.pro jako PostScriptový " "prolog\n" " --ppd[=KLÍÈ] automatická volba PPD nebo nastaví na " "KLÍÈ\n" " -n, --copies=POÈET vytiskne POÈET kopií ka¾dé stránky\n" " -s, --sides=RE®IM poèet stran na papír (`1' èi `simplex',\n" " `2' èi `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] po¹le na výstup nastavení stránkového\n" " zaøízení\n" " --statusdict=K[:[:]V] po¹le na výstup nastavení 'statusdict'\n" " -k, --page-prefeed zapne 'page prefeed'\n" " -K, --no-page-prefeed vypne 'page prefeed'\n" #: src/main.c:801 #, 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" msgstr "" "Normálnì mù¾ete a2ps vìøit, ¾e udìlá pøesnì to, co chcete. Obsah adresáøe\n" "`src' a obsah pomocí stylù vytisknete na tiskárbì `lw' pomocí:\n" " a2ps -P lw --toc src/*\n" "Soubory`sample.ps' a `sample.html' zpracujete a zobrazíte pomocí:\n" " a2ps -P display sample.ps sample.html\n" "Po¹tovní schránku zpracujete pomocí:\n" " a2ps -=mail -4 mailbox\n" "Kní¾ku na implicitní, duplexní, tiskárnì vytisknete pomocí:\n" " a2ps -=book paper.dvi.gz -d\n" # / #: src/main.c:822 #, fuzzy 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/\n" "Pøipomínky k pøekladu zasílejte na adresu (èesky).\n" #: src/main.c:824 msgid "Report bugs to .\n" msgstr "" "Chyby v programu oznamujte na adrese (pouze anglicky).\n" "Pøipomínky k pøekladu zasílejte na adresu (èesky).\n" #: src/main.c:942 #, 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-93 Miguel Santana\n" "Copyright (c) 1995-99 Akim Demaille, Miguel Santana" #: src/main.c:1173 msgid "Table of Content" msgstr "Obsah" #: src/parsessh.y:236 #, c-format msgid "cannot process `%s' which requires a2ps version %s" msgstr "`%s' nelze zpracovat - vy¾aduje a2ps verze %s" #: src/sheets-map.l:111 #, c-format msgid "unexpected character `%c'" msgstr "" #: src/sheets-map.l:211 lexppd.l:211 msgid "too many includes" msgstr "" #: src/sheets-map.l:296 src/sheets-map.l:303 #, fuzzy, c-format msgid "no key defined for `%s'" msgstr "soubor `%s' nelze najít" #: src/select.c:122 src/ssheet.c:866 fonts.l:838 fonts.l:840 fonts.l:842 #: lib/pathwalk.c:328 lib/pathwalk.c:414 #, c-format msgid "cannot find file `%s'" msgstr "soubor `%s' nelze najít" #: src/select.c:124 msgid "automatic style selection cancelled" msgstr "automatická volba stylù vypnuta" #: src/ssheet.c:295 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "regulární výraz `%s' nelze zkompilovat: %s" #: src/ssheet.c:974 src/ssheet.c:995 msgid "Known Style Sheets" msgstr "Pøipravené styly (jazyky)" #: src/ssheet.c:1461 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "styl `%s' nelze najít: pou¾it prostý styl" #: src/sshread.c:453 #, c-format msgid "unknown encoding `%s', ignored" msgstr "neznámé kódování `%s', ignorováno" #: src/version-etc.c:38 msgid "Copyright (C) 1999 Free Software Foundation, Inc." msgstr "Copyright (C) 1999 Free Software Foundation, Inc." #: src/version-etc.c:60 #, c-format msgid "Written by %s.\n" msgstr "Napsal %s.\n" #: src/version-etc.c:66 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 volné programové vybavení. Podmínky kopírování a roz¹iøování\n" "naleznete ve zdrojových textech. Tento program je BEZ ZÁRUKY; dokonce i bez\n" "záruky PRODEJNOSTI nebo VHODNOSTI PRO NÌJAKÝ KONKRÉTNÍ ÚÈEL.\n" #: src/versions.c:133 #, c-format msgid "invalid version number `%s'" msgstr "neplatné èíslo verze `%s'" #: lib/caret.c:43 msgid "space (i.e., ` ')" msgstr "mezera (i.e. ` ')" #: lib/caret.c:45 msgid "octal (i.e., `\\001' etc.)" msgstr "osmièkovì (i.e. `\\001' etc.)" #: lib/caret.c:47 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "¹estnáctkovì (i.e. `\\x0a' etc.)" #: lib/caret.c:49 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "karet (i.e. `^C', `M-^C' etc.)" #: lib/caret.c:51 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "emacs (i.e. `C-c', M-C-c' etc.)" #: lib/caret.c:53 msgid "question-mark (i.e., `?')" msgstr "otazník (i.e. `?')" #: lib/closeout.c:71 lib/closeout.c:73 msgid "write error" msgstr "chyba zápisu" #: confg.gperf:157 lib/encoding.c:638 #, c-format msgid "invalid option `%s'" msgstr "neznámý pøepínaè `%s'" #: confg.gperf:224 confg.gperf:231 confg.gperf:238 #, c-format msgid "invalid definition for printer `%s': %s" msgstr "neplatná definice pro tiskárnu `%s': %s" #: confg.gperf:229 confg.gperf:232 lib/printers.c:47 msgid "Unknown Printer" msgstr "neznámá tiskárna" #: confg.gperf:236 confg.gperf:239 lib/printers.c:46 msgid "Default Printer" msgstr "implicitní tiskárna" #: confg.gperf:292 lib/options.c:697 #, c-format msgid "invalid variable identifier `%s'" msgstr "neplatné u¾ití promìnné `%s'" #: confg.gperf:321 #, c-format msgid "obsolete `%s' entry. Ignored" msgstr "zastaralá volba `%s'. Ignorováno." #: lib/encoding.c:1114 lib/encoding.c:1135 msgid "Known Encodings" msgstr "Pøipravená kódování" #: lib/faces.c:156 msgid "incomplete knowledge of faces" msgstr "nejsou známy v¹echny tváøe" #: lib/filtdir.c:113 #, c-format msgid "cannot close directory `%s'" msgstr "adresáø `%s' nelze zavøít" #: lib/getnum.c:63 lib/getnum.c:121 lib/getnum.c:153 lib/getnum.c:221 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "neplatný argument `%s' pro pøepínaè `%s'" #: lib/getnum.c:123 #, 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" #: lib/getnum.c:223 #, 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" #: lib/jobs.c:308 #, c-format msgid "unknown encoding `%s'" msgstr "neznámé kódování `%s'" #: lib/madir.c:59 msgid "rows first" msgstr "nejdøíve øádky" #: lib/madir.c:62 msgid "columns first" msgstr "nejdøíve sloupce" #: lib/media.c:173 #, c-format msgid "unknown medium `%s'" msgstr "neznámé médium `%s'" #: lib/media.c:208 lib/media.c:237 msgid "Known Media" msgstr "Pøipravená média" #: lib/media.c:211 msgid "Name" msgstr "Jméno" #: lib/media.c:212 msgid "dimensions" msgstr "rozmìry" #: lib/metaseq.c:104 lib/metaseq.c:113 #, c-format msgid "Known Variables" msgstr "Pøipravené promìnné" #: lib/metaseq.c:162 lib/metaseq.c:531 lib/metaseq.c:548 lib/metaseq.c:608 #: lib/metaseq.c:951 lib/metaseq.c:972 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%s: chybí `%c' pro øídící znak %s%c" #: lib/metaseq.c:288 lib/metaseq.c:300 #, c-format msgid "Printed by %s" msgstr "Vytiskl %s" #: lib/metaseq.c:298 #, c-format msgid "Printed by %s from %s" msgstr "Vytiskl %s z %s" #: lib/metaseq.c:308 lib/metaseq.c:327 msgid "cannot get current working directory" msgstr "souèasný pracovní adresáø nelze urèit" #: lib/metaseq.c:341 lib/metaseq.c:534 lib/metaseq.c:563 lib/metaseq.c:652 #: lib/metaseq.c:954 lib/metaseq.c:987 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s: pøíli¹ dlouhý argument pro øídící znak %s" #: lib/metaseq.c:364 lib/metaseq.c:675 msgid "%b %d, %y" msgstr "%d.%m. %y" #: lib/metaseq.c:373 lib/metaseq.c:684 msgid "%A %B %d, %Y" msgstr "%A %d.%B %Y" #: lib/metaseq.c:419 lib/metaseq.c:448 lib/metaseq.c:491 lib/metaseq.c:724 #: lib/metaseq.c:808 lib/metaseq.c:867 lib/metaseq.c:922 lib/metaseq.c:1099 #: lib/metaseq.c:1234 lib/metaseq.c:1246 lib/metaseq.c:1289 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s: pro `%s' není øídící znak `%c' (%d) definován" #: lib/metaseq.c:426 lib/metaseq.c:815 #, c-format msgid "Page %d" msgstr "Stránka %d" #: lib/metaseq.c:431 lib/metaseq.c:826 #, c-format msgid "Page %d/%c" msgstr "Stránka %d/%c" #: lib/metaseq.c:593 lib/metaseq.c:1021 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "%s: neplatný separátor `%s%c' pro øídící znak `%s'" #: lib/metaseq.c:601 lib/metaseq.c:611 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s: neplatný argument pro øídící znak %s%c" #: lib/metaseq.c:822 #, c-format msgid "Page %d/%d" msgstr "Stránka %d/%d" #: lib/metaseq.c:1266 msgid "output command" msgstr "výstupní pøíkaz" #: lib/options.c:302 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Více informací získáte pøíkazem `%s --help'.\n" #: lib/output.c:466 #, c-format msgid "invalid face `%s'" msgstr "neznámý pøepínaè `%s'" #: lib/output.c:538 #, c-format msgid "`%s' with no matching `%s'" msgstr "`%s' bez odpovídajícího `%s'" #: lib/ppd.c:108 msgid "Known Fonts" msgstr "Pøipravená písma" #: lib/ppd.c:111 msgid "" "\n" " None.\n" msgstr "" "\n" " ®ádná.\n" #: lib/ppd.c:149 lib/ppd.c:165 msgid "Known PostScript Printer Descriptions" msgstr "Pøipravené popisy tiskáren" #: lib/prange.c:305 lib/prange.c:323 #, c-format msgid "invalid interval `%s'" msgstr "nepovolený interval `%s'" #: lib/printers.c:396 lib/printers.c:413 #, c-format msgid "no command for the `%s' (%s%s)" msgstr "¾ádný pøíkaz pro `%s' (%s%s)" #: lib/printers.c:429 msgid "sent to the standard output" msgstr "posláno na standardní výstup" #: lib/printers.c:430 msgid "sent to the default printer" msgstr "posláno na implicitní tiskárnu" #: lib/printers.c:435 #, c-format msgid "saved into the file `%s'" msgstr "ulo¾eno do souboru `%s'" #: lib/printers.c:436 #, c-format msgid "sent to the printer `%s'" msgstr "posláno na tiskárnu `%s'" #: lib/printers.c:613 lib/printers.c:621 msgid "Known Outputs (Printers, etc.)" msgstr "Pøipravené výstupní cíle (tiskárny apod.)" #: lib/prolog.c:98 lib/prolog.c:181 msgid "Known Prologues" msgstr "Pøipravené prology" #: lib/prolog.c:579 #, c-format msgid "font %f too big" msgstr "písmo %f je pøíli¹ veliké" #: lib/psgen.c:662 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "`%s' je binární soubor, tisk ukonèen" #: lib/quotearg.c:200 msgid "`" msgstr "" #: lib/quotearg.c:203 msgid "'" msgstr "" #: lib/userdata.c:129 msgid "user" msgstr "u¾ivatel" #: lib/userdata.c:130 msgid "Unknown User" msgstr "neznámý u¾ivatel" #: lib/useropt.c:75 #, c-format msgid "unknown user option `%s'" msgstr "neznámá u¾ivatelsky definovaná zkratka `%s'" #: lib/useropt.c:86 lib/useropt.c:97 msgid "Known User Options" msgstr "Pøipravené u¾ivatelsky definované zkratky" #: lib/xbackupfile.c:105 lib/xmalloc.c:66 msgid "Memory exhausted" msgstr "Není volná pamì»" #: lib/xbackupfile.c:240 lib/xbackupfile.c:252 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "soubor `%s' nelze pøejmenovat na `%s'" #: lib/xbackupfile.c:255 #, c-format msgid "restored file `%s'" msgstr "soubor `%s' obnoven" #: lib/argmatch.c:159 #, c-format msgid "invalid argument %s for `%s'" msgstr "neplatný argument %s pro pøepínaè `%s'" #: lib/argmatch.c:160 #, fuzzy, c-format msgid "ambiguous argument %s for `%s'" msgstr "nejednoznaèný argument `%s' pro pøepínaè `%s'" #: lib/argmatch.c:178 #, c-format msgid "Valid arguments are:" msgstr "Platné argumenty jsou:" #: lib/error.c:102 msgid "Unknown system error" msgstr "Neznámá systémová chyba" #: lib/getopt.c:675 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: pøepínaè `%s' není jednoznaèný\n" #: lib/getopt.c:700 #, 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" #: lib/getopt.c:705 #, 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" #: lib/getopt.c:723 lib/getopt.c:896 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: pøepínaè `%s' vy¾aduje argument\n" #: lib/getopt.c:752 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: neznámý pøepínaè `--%s'\n" #: lib/getopt.c:756 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: neznámý pøepínaè `%c%s'\n" #: lib/getopt.c:782 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: neznámý pøepínaè -- %c\n" #: lib/getopt.c:785 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: neznámý pøepínaè -- %c\n" #: lib/getopt.c:815 lib/getopt.c:945 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: pøepínaè vy¾aduje argument -- %c\n" #: lib/getopt.c:862 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: pøepínaè `-W %s' není jednoznaèný\n" #: lib/getopt.c:880 #, 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" #, fuzzy #~ msgid "end of line in a %s" #~ msgstr "neukonèený regulární výraz" #~ msgid "end-of-line in regular expression" #~ msgstr "neukonèený regulární výraz" #~ msgid "" #~ "Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana\n" #~ "Copyright (c) 1995, 96, 97, 98, 99 Akim Demaille, Miguel Santana" #~ msgstr "" #~ "Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana\n" #~ "Copyright (c) 1995, 96, 97, 98, 99 Akim Demaille, Miguel Santana" #~ msgid "Tasks (exit successfully):\n" #~ msgstr "Úlohy (úspì¹né zakonèení):\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 "" #~ " Tento program je volné programové vybavení; mù¾ete jej ¹íøit a " #~ "modifikovat\n" #~ "podle ustanovení Obecné veøejné licence GNU, vydávané Free Software " #~ "Foundation;\n" #~ "a to buï verze 2 této licence anebo (podle va¹eho uvá¾ení), kterékoli " #~ "pozdìj¹í\n" #~ "verze.\n" #~ "\n" #~ " Tento program je roz¹iøován v nadìji, ¾e bude u¾iteèný, av¹ak BEZ " #~ "JAKÉKOLI\n" #~ "ZÁRUKY; neposkytují se ani odvozené záruky PRODEJNOSTI anebo VHODNOSTI " #~ "PRO\n" #~ "NÌJAKÝ KONKRÉTNÍ ÚÈEL. Dal¹í podrobnosti najdete v Obecné veøejné licenci " #~ "GNU.\n" #~ "\n" #~ " Kopie Obecné veøejné licence GNU mìla být dodána spolu s tímto " #~ "programem;\n" #~ "pokud se tak nestalo, napi¹te o ni Free Software Foundation, Inc.,\n" #~ "59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" #~ "\n" # / #~ msgid "" #~ "Written by and .\n" #~ msgstr "Autoøi: a \n" #~ msgid "no default command for option `-d'" #~ msgstr "pro pøepínaè `-d' není implicitní pøíkaz" #~ msgid "pipe in %s\n" #~ msgstr "posláno rourou programu %s\n" #~ msgid "save in %s\n" #~ msgstr "ulo¾eno jako %s\n" #~ msgid "%s: invalid argument `%s' for `%s'\n" #~ msgstr "%s: neplatný argument `%s' pro pøepínaè `%s'\n" #~ msgid "invalid interval: %s" #~ msgstr "nepovolený interval `%s'" #~ msgid "illegal integer interval: %s" #~ msgstr "nepovolený interval celých èísel: %s" #~ msgid "cannot find file %s" #~ msgstr "soubor %s nelze najít" #~ msgid "unrecognized font `%s'" #~ msgstr "neznámé písmo `%s'" #~ msgid "unrecognized face `%s'" #~ msgstr "neznámá tváø `%s'" #~ msgid "missing argument for %s" #~ msgstr "chybí argument pro %s" #~ msgid "invalid variable identifier %s" #~ msgstr "neplatné u¾ití promìnné %s" #~ msgid "cannot create file %s" #~ msgstr "soubor %s nelze vytvoøit" #~ msgid "cannot open a pipe on %s" #~ msgstr "rouru do %s nelze otevøít" #~ msgid "cannot open file %s" #~ msgstr "soubor %s nelze otevøít" #~ msgid "cannot open configuration file %s" #~ msgstr "konfiguraèní soubor %s nelze otevøít" #~ msgid "encoding %s unknown" #~ msgstr "neznámé kódování %s" #~ msgid " library path = \n" #~ msgstr " cesta ke knihovnám =\n" #~ msgid "user option `%s' not defined" #~ msgstr "neznámá u¾ivatelsky definovaná zkratka `%s'" #~ msgid "illegal option: %s" #~ msgstr "volba %s není platná" #~ msgid "illegal option: `%s'" #~ msgstr "volba `%s' není platná" a2ps-4.14/po/a2ps.pot0000644000175000017500000005251410735337364013656 0ustar mhattamhatta# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Free Software Foundation, Inc. # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-12-29 11:28+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #: src/buffer.c:68 msgid "any type" msgstr "" #: src/delegate.c:137 confg.gperf:168 lib/encoding.c:530 lib/encoding.c:576 #: lib/encoding.c:616 lib/output.c:302 lib/pair_ht.c:296 lib/prolog.c:146 #, c-format msgid "missing argument for `%s'" msgstr "" #: src/delegate.c:260 lib/routines.c:160 lib/xbackupfile.c:248 #: lib/xbackupfile.c:276 lib/xbackupfile.c:284 #, c-format msgid "cannot create file `%s'" msgstr "" #: src/delegate.c:269 src/select.c:193 lib/routines.c:190 lib/routines.c:196 #, c-format msgid "cannot open a pipe on `%s'" msgstr "" #: src/delegate.c:389 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "" #: src/delegate.c:408 src/delegate.c:430 msgid "Applications configured for delegation" msgstr "" #: src/generate.c:88 #, c-format msgid "`%s' is a directory" msgstr "" #: src/generate.c:96 src/main.c:560 src/main.c:582 confg.gperf:192 #: confg.gperf:355 lib/routines.c:154 #, c-format msgid "cannot open file `%s'" msgstr "" #: src/generate.c:101 lib/xbackupfile.c:224 #, c-format msgid "cannot get informations on file `%s'" msgstr "" #: src/generate.c:168 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "" #: src/generate.c:174 #, c-format msgid "[%s (%s): %d pages on 1 sheet]\n" msgstr "" #: src/generate.c:181 #, c-format msgid "[%s (%s): %d pages on %d sheets]\n" msgstr "" #: src/generate.c:208 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "" #: src/generate.c:212 #, c-format msgid "[Total: %d pages on 1 sheet] %s\n" msgstr "" #: src/generate.c:217 #, c-format msgid "[Total: %d pages on %d sheets] %s\n" msgstr "" #: src/generate.c:226 msgid "[1 line wrapped]\n" msgstr "" #: src/generate.c:229 #, c-format msgid "[%d lines wrapped]\n" msgstr "" #: src/generate.c:242 msgid "[No output produced]\n" msgstr "" #: src/generate.c:314 #, c-format msgid "%s, delegated to %s" msgstr "" #: src/generate.c:322 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "" #: src/generate.c:330 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "" #: src/generate.c:339 #, c-format msgid "[%s (binary): ignored]\n" msgstr "" #: src/generate.c:360 msgid "plain" msgstr "" #: lexssh.l:348 msgid "end-of-line in string constant" msgstr "" #: lexssh.l:415 src/sheets-map.l:153 src/sheets-map.l:192 #, c-format msgid "end of line inside a %s" msgstr "" #: src/main.c:203 #, c-format msgid "received signal %d: %s" msgstr "" #: src/main.c:242 msgid "heavy" msgstr "" #: src/main.c:246 msgid "normal" msgstr "" #: src/main.c:250 msgid "none" msgstr "" #: src/main.c:324 src/main.c:328 msgid "yes" msgstr "" #: src/main.c:325 src/main.c:328 src/main.c:369 msgid "no" msgstr "" #: src/main.c:335 #, c-format msgid "Configuration status of %s %s\n" msgstr "" #: src/main.c:339 src/main.c:697 msgid "Sheets:\n" msgstr "" #: src/main.c:340 #, 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" msgstr "" #: src/main.c:349 msgid "portrait" msgstr "" #: src/main.c:349 msgid "landscape" msgstr "" #: src/main.c:358 #, c-format msgid "%d characters per line" msgstr "" #: src/main.c:361 #, c-format msgid "%d lines per page" msgstr "" #: src/main.c:364 #, c-format msgid "font size is %gpt" msgstr "" #: src/main.c:373 msgid "each line" msgstr "" #: src/main.c:377 #, c-format msgid "each %d lines" msgstr "" #: src/main.c:380 src/main.c:718 msgid "Virtual pages:\n" msgstr "" #: src/main.c:381 #, c-format msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %d\n" " non printable format = %s\n" msgstr "" #: src/main.c:392 msgid "Headers:\n" msgstr "" #: src/main.c:393 #, 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:412 src/main.c:747 msgid "Input:\n" msgstr "" #: src/main.c:413 #, 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:438 src/main.c:504 msgid "selected automatically" msgstr "" #: src/main.c:441 src/main.c:766 msgid "Pretty-printing:\n" msgstr "" #: src/main.c:442 #, c-format msgid "" " style sheet = %s\n" " highlight level = %s\n" " strip level = %d\n" msgstr "" #: src/main.c:462 msgid "never make backups" msgstr "" #: src/main.c:466 msgid "simple backups of every file" msgstr "" #: src/main.c:471 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" #: src/main.c:476 msgid "numbered backups of every file" msgstr "" #: src/main.c:480 src/main.c:775 msgid "Output:\n" msgstr "" #: src/main.c:481 #, c-format msgid "" " destination = %s\n" " version control = %s\n" " backup suffix = %s\n" msgstr "" #: src/main.c:494 src/main.c:786 msgid "PostScript:\n" msgstr "" #: src/main.c:495 #, 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 = " msgstr "" #: src/main.c:515 #, c-format msgid " statusdict definitions = " msgstr "" #: src/main.c:518 #, c-format msgid " page prefeed = %s\n" msgstr "" #: src/main.c:527 msgid "Internals:\n" msgstr "" #: src/main.c:528 #, c-format msgid "" " verbosity level = %d\n" " file command = %s\n" " library path = \n" msgstr "" #: src/main.c:653 #, 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" msgstr "" #: src/main.c:668 msgid "Tasks:\n" msgstr "" #: src/main.c:669 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" msgstr "" #: src/main.c:680 msgid "" "After having performed the task, exit successfully. Detailed lists may\n" "provide additional help on specific features.\n" msgstr "" #: src/main.c:688 msgid "Global:\n" msgstr "" #: src/main.c:689 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:698 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" msgstr "" #: src/main.c:711 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:719 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:730 msgid "Headings:\n" msgstr "" #: src/main.c:732 #, 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:743 msgid "The TEXTs may use special escapes.\n" msgstr "" #: src/main.c:748 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:760 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:767 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:776 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:787 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:801 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" msgstr "" #: src/main.c:822 msgid "" "News, updates and documentation: visit http://www.gnu.org/software/a2ps/.\n" msgstr "" #: src/main.c:824 msgid "Report bugs to .\n" msgstr "" #: src/main.c:942 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 "" #: src/main.c:1173 msgid "Table of Content" msgstr "" #: src/parsessh.y:236 #, c-format msgid "cannot process `%s' which requires a2ps version %s" msgstr "" #: src/sheets-map.l:111 #, c-format msgid "unexpected character `%c'" msgstr "" #: src/sheets-map.l:211 lexppd.l:211 msgid "too many includes" msgstr "" #: src/sheets-map.l:296 src/sheets-map.l:303 #, c-format msgid "no key defined for `%s'" msgstr "" #: src/select.c:122 src/ssheet.c:866 fonts.l:838 fonts.l:840 fonts.l:842 #: lib/pathwalk.c:328 lib/pathwalk.c:414 #, c-format msgid "cannot find file `%s'" msgstr "" #: src/select.c:124 msgid "automatic style selection cancelled" msgstr "" #: src/ssheet.c:295 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "" #: src/ssheet.c:974 src/ssheet.c:995 msgid "Known Style Sheets" msgstr "" #: src/ssheet.c:1461 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "" #: src/sshread.c:453 #, c-format msgid "unknown encoding `%s', ignored" msgstr "" #: src/version-etc.c:38 msgid "Copyright (C) 1999 Free Software Foundation, Inc." msgstr "" #: src/version-etc.c:60 #, c-format msgid "Written by %s.\n" msgstr "" #: src/version-etc.c:66 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 "" #: src/versions.c:133 #, c-format msgid "invalid version number `%s'" msgstr "" #: lib/caret.c:43 msgid "space (i.e., ` ')" msgstr "" #: lib/caret.c:45 msgid "octal (i.e., `\\001' etc.)" msgstr "" #: lib/caret.c:47 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "" #: lib/caret.c:49 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "" #: lib/caret.c:51 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "" #: lib/caret.c:53 msgid "question-mark (i.e., `?')" msgstr "" #: lib/closeout.c:71 lib/closeout.c:73 msgid "write error" msgstr "" #: confg.gperf:157 lib/encoding.c:638 #, c-format msgid "invalid option `%s'" msgstr "" #: confg.gperf:224 confg.gperf:231 confg.gperf:238 #, c-format msgid "invalid definition for printer `%s': %s" msgstr "" #: confg.gperf:229 confg.gperf:232 lib/printers.c:47 msgid "Unknown Printer" msgstr "" #: confg.gperf:236 confg.gperf:239 lib/printers.c:46 msgid "Default Printer" msgstr "" #: confg.gperf:292 lib/options.c:697 #, c-format msgid "invalid variable identifier `%s'" msgstr "" #: confg.gperf:321 #, c-format msgid "obsolete `%s' entry. Ignored" msgstr "" #: lib/encoding.c:1114 lib/encoding.c:1135 msgid "Known Encodings" msgstr "" #: lib/faces.c:156 msgid "incomplete knowledge of faces" msgstr "" #: lib/filtdir.c:113 #, c-format msgid "cannot close directory `%s'" msgstr "" #: lib/getnum.c:63 lib/getnum.c:121 lib/getnum.c:153 lib/getnum.c:221 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "" #: lib/getnum.c:123 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "" #: lib/getnum.c:223 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "" #: lib/jobs.c:308 #, c-format msgid "unknown encoding `%s'" msgstr "" #: lib/madir.c:59 msgid "rows first" msgstr "" #: lib/madir.c:62 msgid "columns first" msgstr "" #: lib/media.c:173 #, c-format msgid "unknown medium `%s'" msgstr "" #: lib/media.c:208 lib/media.c:237 msgid "Known Media" msgstr "" #: lib/media.c:211 msgid "Name" msgstr "" #: lib/media.c:212 msgid "dimensions" msgstr "" #: lib/metaseq.c:104 lib/metaseq.c:113 #, c-format msgid "Known Variables" msgstr "" #: lib/metaseq.c:162 lib/metaseq.c:531 lib/metaseq.c:548 lib/metaseq.c:608 #: lib/metaseq.c:951 lib/metaseq.c:972 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "" #: lib/metaseq.c:288 lib/metaseq.c:300 #, c-format msgid "Printed by %s" msgstr "" #: lib/metaseq.c:298 #, c-format msgid "Printed by %s from %s" msgstr "" #: lib/metaseq.c:308 lib/metaseq.c:327 msgid "cannot get current working directory" msgstr "" #: lib/metaseq.c:341 lib/metaseq.c:534 lib/metaseq.c:563 lib/metaseq.c:652 #: lib/metaseq.c:954 lib/metaseq.c:987 #, c-format msgid "%s: too long argument for %s escape" msgstr "" #: lib/metaseq.c:364 lib/metaseq.c:675 msgid "%b %d, %y" msgstr "" #: lib/metaseq.c:373 lib/metaseq.c:684 msgid "%A %B %d, %Y" msgstr "" #: lib/metaseq.c:419 lib/metaseq.c:448 lib/metaseq.c:491 lib/metaseq.c:724 #: lib/metaseq.c:808 lib/metaseq.c:867 lib/metaseq.c:922 lib/metaseq.c:1099 #: lib/metaseq.c:1234 lib/metaseq.c:1246 lib/metaseq.c:1289 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "" #: lib/metaseq.c:426 lib/metaseq.c:815 #, c-format msgid "Page %d" msgstr "" #: lib/metaseq.c:431 lib/metaseq.c:826 #, c-format msgid "Page %d/%c" msgstr "" #: lib/metaseq.c:593 lib/metaseq.c:1021 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "" #: lib/metaseq.c:601 lib/metaseq.c:611 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "" #: lib/metaseq.c:822 #, c-format msgid "Page %d/%d" msgstr "" #: lib/metaseq.c:1266 msgid "output command" msgstr "" #: lib/options.c:302 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "" #: lib/output.c:466 #, c-format msgid "invalid face `%s'" msgstr "" #: lib/output.c:538 #, c-format msgid "`%s' with no matching `%s'" msgstr "" #: lib/ppd.c:108 msgid "Known Fonts" msgstr "" #: lib/ppd.c:111 msgid "" "\n" " None.\n" msgstr "" #: lib/ppd.c:149 lib/ppd.c:165 msgid "Known PostScript Printer Descriptions" msgstr "" #: lib/prange.c:305 lib/prange.c:323 #, c-format msgid "invalid interval `%s'" msgstr "" #: lib/printers.c:396 lib/printers.c:413 #, c-format msgid "no command for the `%s' (%s%s)" msgstr "" #: lib/printers.c:429 msgid "sent to the standard output" msgstr "" #: lib/printers.c:430 msgid "sent to the default printer" msgstr "" #: lib/printers.c:435 #, c-format msgid "saved into the file `%s'" msgstr "" #: lib/printers.c:436 #, c-format msgid "sent to the printer `%s'" msgstr "" #: lib/printers.c:613 lib/printers.c:621 msgid "Known Outputs (Printers, etc.)" msgstr "" #: lib/prolog.c:98 lib/prolog.c:181 msgid "Known Prologues" msgstr "" #: lib/prolog.c:579 #, c-format msgid "font %f too big" msgstr "" #: lib/psgen.c:662 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "" #: lib/quotearg.c:200 msgid "`" msgstr "" #: lib/quotearg.c:203 msgid "'" msgstr "" #: lib/userdata.c:129 msgid "user" msgstr "" #: lib/userdata.c:130 msgid "Unknown User" msgstr "" #: lib/useropt.c:75 #, c-format msgid "unknown user option `%s'" msgstr "" #: lib/useropt.c:86 lib/useropt.c:97 msgid "Known User Options" msgstr "" #: lib/xbackupfile.c:105 lib/xmalloc.c:66 msgid "Memory exhausted" msgstr "" #: lib/xbackupfile.c:240 lib/xbackupfile.c:252 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "" #: lib/xbackupfile.c:255 #, c-format msgid "restored file `%s'" msgstr "" #: lib/argmatch.c:159 #, c-format msgid "invalid argument %s for `%s'" msgstr "" #: lib/argmatch.c:160 #, c-format msgid "ambiguous argument %s for `%s'" msgstr "" #: lib/argmatch.c:178 #, c-format msgid "Valid arguments are:" msgstr "" #: lib/error.c:102 msgid "Unknown system error" msgstr "" #: lib/getopt.c:675 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "" #: lib/getopt.c:700 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "" #: lib/getopt.c:705 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "" #: lib/getopt.c:723 lib/getopt.c:896 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "" #: lib/getopt.c:752 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "" #: lib/getopt.c:756 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "" #: lib/getopt.c:782 #, c-format msgid "%s: illegal option -- %c\n" msgstr "" #: lib/getopt.c:785 #, c-format msgid "%s: invalid option -- %c\n" msgstr "" #: lib/getopt.c:815 lib/getopt.c:945 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "" #: lib/getopt.c:862 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "" #: lib/getopt.c:880 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "" a2ps-4.14/po/POTFILES.in0000644000175000017500000000221610604330160014012 0ustar mhattamhatta# List of files which containing translatable strings. -*- ksh -*- # # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98, 99 Akim Demaille, Miguel Santana # Package source files src/buffer.c src/delegate.c src/generate.c src/lexssh.c src/long-options.c src/main.c # src/parsessh.c src/parsessh.y # src/sheets-map.c src/sheets-map.l src/select.c src/ssheet.c src/sshread.c src/version-etc.c src/versions.c # a2ps own files lib/caret.c lib/closeout.c lib/confg.c #lib/darray.c #lib/dstring.c lib/encoding.c lib/faces.c lib/filtdir.c # Here we don't put fonts.l, because gettext dies on a pattern with " lib/fonts.c lib/getnum.c lib/jobs.c lib/lexppd.c lib/madir.c lib/media.c lib/metaseq.c lib/options.c lib/output.c lib/pair_ht.c lib/parseppd.c lib/pathwalk.c lib/ppd.c lib/prange.c lib/printers.c lib/prolog.c lib/psgen.c lib/quotearg.c lib/routines.c # lib/title.c uses __attribute__(Spec) lib/tterm.c lib/userdata.c lib/useropt.c lib/xbackupfile.c # These are GNU standard files lib/argmatch.c lib/error.c lib/getopt.c lib/hashtab.c # Uses L_(): lib/strtol.c # Doesn't use the same string as us: lib/obstack.c lib/xmalloc.c a2ps-4.14/po/tr.po0000644000175000017500000010727610735337371013256 0ustar mhattamhatta# Turkish messages for a2ps # Copyright (C) 1997 # H. Turgut Uyar , 1997. # msgid "" msgstr "" "Project-Id-Version: a2ps 4.9\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-12-29 11:28+0800\n" "PO-Revision-Date: 2002-03-25 18:17+0100\n" "Last-Translator: H. Turgut Uyar \n" "Language-Team: Turkish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-9\n" "Content-Transfer-Encoding: 8-bit\n" # src/buffer.c:61 #: src/buffer.c:68 msgid "any type" msgstr "her tip" #: src/delegate.c:137 confg.gperf:168 lib/encoding.c:530 lib/encoding.c:576 #: lib/encoding.c:616 lib/output.c:302 lib/pair_ht.c:296 lib/prolog.c:146 #, c-format msgid "missing argument for `%s'" msgstr "`%s' için eksik argüman" #: src/delegate.c:260 lib/routines.c:160 lib/xbackupfile.c:248 #: lib/xbackupfile.c:276 lib/xbackupfile.c:284 #, c-format msgid "cannot create file `%s'" msgstr "`%s' dosyasý yaratýlamýyor" #: src/delegate.c:269 src/select.c:193 lib/routines.c:190 lib/routines.c:196 #, c-format msgid "cannot open a pipe on `%s'" msgstr "`%s' üzerinde pipe açýlamýyor" #: src/delegate.c:389 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "Üstlenici `%s', %s -> %s\n" #: src/delegate.c:408 src/delegate.c:430 msgid "Applications configured for delegation" msgstr "Üstlenici olarak ayarlanan uygulamalar" #: src/generate.c:88 #, c-format msgid "`%s' is a directory" msgstr "`%s' bir dizin" #: src/generate.c:96 src/main.c:560 src/main.c:582 confg.gperf:192 #: confg.gperf:355 lib/routines.c:154 #, c-format msgid "cannot open file `%s'" msgstr "`%s' dosyasý açýlamýyor" #: src/generate.c:101 lib/xbackupfile.c:224 #, c-format msgid "cannot get informations on file `%s'" msgstr "`%s' dosyasý ile ilgili bilgi alýnamýyor" #: src/generate.c:168 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): 1 sayfa / 1 kaðýt]\n" #: src/generate.c:174 #, c-format msgid "[%s (%s): %d pages on 1 sheet]\n" msgstr "[%s (%s): %d sayfa / 1 kaðýt]\n" #: src/generate.c:181 #, c-format msgid "[%s (%s): %d pages on %d sheets]\n" msgstr "[%s (%s): %d sayfa / %d kaðýt]\n" #: src/generate.c:208 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[Toplam: 1 sayfa / 1 kaðýt] %s\n" #: src/generate.c:212 #, c-format msgid "[Total: %d pages on 1 sheet] %s\n" msgstr "[Toplam: %d sayfa / 1 kaðýt] %s\n" #: src/generate.c:217 #, c-format msgid "[Total: %d pages on %d sheets] %s\n" msgstr "[Toplam: %d sayfa / %d kaðýt] %s\n" #: src/generate.c:226 msgid "[1 line wrapped]\n" msgstr "" #: src/generate.c:229 #, fuzzy, c-format msgid "[%d lines wrapped]\n" msgstr "bir sayfaya %d satýr" #: src/generate.c:242 msgid "[No output produced]\n" msgstr "[Çýktý üretilmedi]\n" #: src/generate.c:314 #, c-format msgid "%s, delegated to %s" msgstr "%s, %s uygulamasýna devredildi" #: src/generate.c:322 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): baþarýsýz. Gözardý edildi]\n" #: src/generate.c:330 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (basýlamaz): gözardý edildi]\n" #: src/generate.c:339 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (ikili): gözardý edildi]\n" #: src/generate.c:360 msgid "plain" msgstr "sade" #: lexssh.l:348 msgid "end-of-line in string constant" msgstr "katar sabitinde satýr-sonu" #: lexssh.l:415 src/sheets-map.l:153 src/sheets-map.l:192 #, fuzzy, c-format msgid "end of line inside a %s" msgstr "düzgün deyimde satýr-sonu" #: src/main.c:203 #, c-format msgid "received signal %d: %s" msgstr "%d iþareti alýndý: %s" #: src/main.c:242 msgid "heavy" msgstr "çok" #: src/main.c:246 msgid "normal" msgstr "normal" #: src/main.c:250 msgid "none" msgstr "yok" #: src/main.c:324 src/main.c:328 msgid "yes" msgstr "evet" #: src/main.c:325 src/main.c:328 src/main.c:369 msgid "no" msgstr "hayýr" #: src/main.c:335 #, c-format msgid "Configuration status of %s %s\n" msgstr "%s için ayar durumu %s\n" #: src/main.c:339 src/main.c:697 msgid "Sheets:\n" msgstr "Kaðýtlar:\n" #: src/main.c:340 #, 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" msgstr "" " ortam = %s%s, %s\n" " sayfa düzeni = %d x %d, %s\n" " kenarlar = %s\n" " dosya hizalama = %s\n" " iç kenar aralýðý = %d\n" #: src/main.c:349 msgid "portrait" msgstr "boyuna" #: src/main.c:349 msgid "landscape" msgstr "enine" #: src/main.c:358 #, c-format msgid "%d characters per line" msgstr "bir satýra %d karakter" #: src/main.c:361 #, c-format msgid "%d lines per page" msgstr "bir sayfaya %d satýr" #: src/main.c:364 #, c-format msgid "font size is %gpt" msgstr "yazýtipi boyu: %gpt" #: src/main.c:373 msgid "each line" msgstr "her satýr" #: src/main.c:377 #, c-format msgid "each %d lines" msgstr "her %d satýr" #: src/main.c:380 src/main.c:718 msgid "Virtual pages:\n" msgstr "Sanal sayfalar:\n" #: src/main.c:381 #, c-format msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %d\n" " non printable format = %s\n" msgstr "" " satýr numaralama = %s\n" " format = %s\n" " tab boyu = %d\n" " basýlamaz format = %s\n" #: src/main.c:392 msgid "Headers:\n" msgstr "Üstyazýlar:\n" #: src/main.c:393 #, 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 baþlýk = %s\n" " orta baþlýk = %s\n" " sað baþlýk = %s\n" " dipyazý = %s\n" #: src/main.c:412 src/main.c:747 msgid "Input:\n" msgstr "Girdi:\n" #: src/main.c:413 #, 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 "" " satýrlarý kýrp = %s\n" " yorumla = %s\n" " satýr sonu = %s\n" " kodlama = %s\n" " belge baþlýðý = %s\n" " giriþ = %s\n" " yine de bas = %s\n" " üstlenici = %s\n" #: src/main.c:438 src/main.c:504 msgid "selected automatically" msgstr "kendiliðinden seçildi" #: src/main.c:441 src/main.c:766 msgid "Pretty-printing:\n" msgstr "Süslü-basým:\n" #: src/main.c:442 #, c-format msgid "" " style sheet = %s\n" " highlight level = %s\n" " strip level = %d\n" msgstr "" " stil dosyasý = %s\n" " renklendirme düzeyi = %s\n" " ayýklama düzeyi = %d\n" #: src/main.c:462 msgid "never make backups" msgstr "asla yedek alma" #: src/main.c:466 msgid "simple backups of every file" msgstr "her dosyanýn basit yedeðini al" #: src/main.c:471 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" "numaralý dosyalarýn numaralý,\n" " diðerlerinin basit yedeklerini al" #: src/main.c:476 msgid "numbered backups of every file" msgstr "her dosyanýn numaralý yedeðini al" #: src/main.c:480 src/main.c:775 msgid "Output:\n" msgstr "Çýktý:\n" #: src/main.c:481 #, c-format msgid "" " destination = %s\n" " version control = %s\n" " backup suffix = %s\n" msgstr "" " varýþ = %s\n" " sürüm denetimi = %s\n" " yedek soneki = %s\n" #: src/main.c:494 src/main.c:786 msgid "PostScript:\n" msgstr "PostScript:\n" #: src/main.c:495 #, 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 = " msgstr "" " büyülü numara = %s\n" " Yazýcý Betimlemesi (PPD) = %s\n" " öntanýmlý PPD = %s\n" " sayfa etiketi formatý = %s\n" " kopya sayýsý = %d\n" " kaðýt yüzü sayýsý = %s\n" " sayfa aygýtý tanýmlarý = " #: src/main.c:515 #, c-format msgid " statusdict definitions = " msgstr " statusdict tanýmlarý = " #: src/main.c:518 #, c-format msgid " page prefeed = %s\n" msgstr " sayfa önbesleme = %s\n" #: src/main.c:527 msgid "Internals:\n" msgstr "Ýç Ayrýntýlar:\n" #: src/main.c:528 #, fuzzy, c-format msgid "" " verbosity level = %d\n" " file command = %s\n" " library path = \n" msgstr "" " ayrýntý düzeyi = %d\n" " dosya komutu = %s\n" " geçici dizin = %s\n" " kitaplýk yolu = \n" #: src/main.c:653 #, 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" msgstr "" "Kullaným: %s [SEÇENEKLER]... DOSYALAR...\n" " ya da: %s [SEÇENEKLER]...\n" "DOSYALAR'ý ya da standart giriþi basmak için.\n" "Uzun seçeneklerin zorunlu argümanlarý kýsa seçeneklerde de zorunludur.\n" " * ile iþaretlenmiþ uzun seçenekler bir evet/hayýr argümaný isterler,\n" "bunlara karþý düþen kýsa seçenekler 'evet' anlamýna gelir.\n" #: src/main.c:668 msgid "Tasks:\n" msgstr "" #: src/main.c:669 #, 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" msgstr "" " -V, --version sürüm numarasýný göster\n" " --help bu yardým sayfasýný göster\n" " --copyright telif bilgilerini göster\n" " --guess tahmin edilen dosya tiplerini göster\n" " --list=KONU KONU ile ilgili bir rapor ver\n" "\n" "KONU aþaðýdakilerden birinin yeterli bir kýsaltmasý olabilir:\n" " * `defaults': öntanýmlý ayarlar ve parametreler,\n" " * `features': desteklenen ortamlar, kodlamalar v.b.'nin kýsa listesi,\n" " * `delegations', `encodings', `variables', `media',\n" " `ppd', `printers', `prologues', `style-sheets', `user-options': \n" " ayrýntýlý liste.\n" #: src/main.c:680 msgid "" "After having performed the task, exit successfully. Detailed lists may\n" "provide additional help on specific features.\n" msgstr "" #: src/main.c:688 msgid "Global:\n" msgstr "Genel:\n" #: src/main.c:689 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 gerçekten sessiz ol\n" " -v, --verbose[=DÜZEY] geveze kipe geç ya da DÜZEY olarak ayarla\n" " -=, --user-option=SEÇENEK kullanýcý tanýmlý SEÇENEK kestirmesini " "kullan\n" " --debug hata ayýklama yeteneklerini aç\n" " -D, --define=ANAHTAR[:DEÐER] ANAHTAR deðiþkenini sil ya da DEÐER ata\n" #: src/main.c:698 #, 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" msgstr "" " -M, --medium=ÝSÝM ÝSÝM çýktý ortamýný kullan\n" " -r, --landscape enine kipte bas\n" " -R, --portrait boyuna kipte bas\n" " --columns=SAYI bir kaðýttaki sütun sayýsý (SAYI > 0)\n" " --rows=SAYI bir kaðýttaki satýr sayýsý (SAYI > 0)\n" " --major=YÖN önce (YÖN=)satýrlarý, ya da sütunlarý doldur\n" " -1, -2, ..., -9 1, ..., 9 sanal sayfa için önceden tanýmlý\n" " yazýtipi boylarý ve sayfa düzenleri\n" " -A, --file-align=KÝP ayrý dosyalarý KÝP'e göre (fill, rank, page,\n" " sheet ya da bir sayý) hizala -j, --borders* " "sütunlarýn çevresine kenar çiz\n" " --margin[=SAYI] SAYI boyunda bir iç kenar aralýðý tanýmla\n" #: src/main.c:711 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:719 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 satýrýn önüne satýr numarasý ekle\n" " -C --line-numbers=5 yerine geçer\n" " -f, --font-size=BOY metin için BOY (float) yazýtipini kullan\n" " -L, --lines-per-page=SAYI her sanal sayfaya SAYI satýr basýlacak\n" " þekilde yazýtipini ölçekle\n" " -l, --chars-per-line=SAYI her sanal sayfaya SAYI sütun basýlacak\n" " þekilde yazýtipini ölçekle\n" " -m, --catman dosyayý man sayfasý olarak iþle (-L66 ile " "ayný)\n" " -T, --tabsize=SAYI tab boyuna SAYI deðerini ver\n" " --non-printable-format=FMT basýlamaz karakterlerin nasýl basýlacaðýný\n" " belirt\n" #: src/main.c:730 msgid "Headings:\n" msgstr "Baþlýklar:\n" #: src/main.c:732 #, 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 sayfa üstyazýsý yok\n" " -b, --header[=METÝN] sayfa üstyazýsýný ayarla\n" " -u, --underlay[=METÝN] her sayfanýn altýna METÝN yazýsýný bas\n" " --center-title[=METÝN] sayfa baþlýðýna METÝN deðerini ver\n" " --left-title[=METÝN] sol ve sað baþlýklara METÝN deðerini ver\n" " --right-title[=METÝN]\n" " --left-footer[=METÝN] sayfa altyazýlarýna METÝN deðerini ver\n" " --footer[=METÝN] METÝN yazýsýnda özel $ ve % kaçýþ dizgeleri\n" " --right-footer[=METÝN] bulunabilir\n" #: src/main.c:743 msgid "The TEXTs may use special escapes.\n" msgstr "" #: src/main.c:748 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] basýlacak sayfalarý seç\n" " -c, --truncate-lines* uzun satýrlarý kýrp\n" " -i, --interpret* tab, bs ve ff karakterlerini yorumla\n" " --end-of-line=TÝP satýr-sonu karakterini belirt (TÝP: r, n, nr,\n" " rn, any)\n" " -X, --encoding=ÝSÝM ÝSÝM giriþ kodlamasýný kullan\n" " -t, --title=ÝSÝM iþe isim ver\n" " --stdin=ÝSÝM standart giriþ dosyasýna isim ver\n" " --print-anyway* ikili düzende basmayý zorla\n" " -Z, --delegate* dosyalarý baþka bir uygulamaya devret\n" " --toc[=METÝN] içindekiler bölümü oluþtur\n" #: src/main.c:760 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:767 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[=DÝL] süslü-basýmý aç (stili DÝL olarak ayarla)\n" " --highlight-level=DÜZEY süslü-basým renklendirme DÜZEYini ayarla\n" " DÜZEY none, normal ya da heavy olabilir\n" " -g --highlight-level=heavy ile ayný\n" " --strip-level=NUM yorum ayýklama düzeyi\n" #: src/main.c:776 #, 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=DOSYA çýktýyý DOSYA dosyasýna ver. DOSYA `-' ise\n" " çýktýyý standart çýkýþa ver.\n" " --verson-control=SÖZCÜK sürüm denetimini deðiþtir\n" " --suffix=SONEK yedek sonekini deðiþtir\n" " -P, --printer=ÝSÝM çýktýyý ÝSÝM yazýcýsýna yolla\n" " -d çýktýyý öntanýmlý yazýcýya yolla\n" #: src/main.c:787 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 dosyasýný PostScript giriþi olarak " "al\n" " --ppd[=ANAHTAR] PPD'yi kendin seç [ya da ANAHTAR deðerini ver]\n" " -n, --copies=SAYI her sayfadan SAYI kopya bas\n" " -s, --sides=KÝP duplex KÝP'e geç (`1' ya da `simplex',\n" " `2' ya da `duplex', `tumble'\n" " -S, --setpagedevice=K[:V] çýktýya bir sayfa aygýtý tanýmý geçir\n" " --statusdict=K[:[:]V] çýktýya bir statusdict tanýmý geçir\n" " -k, --page-prefeed sayfa önbeslemesine izin ver\n" " -K, --no-page-prefeed sayfa önbeslemesi iznini kaldýr\n" #: src/main.c:801 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" msgstr "" #: src/main.c:822 #, fuzzy msgid "" "News, updates and documentation: visit http://www.gnu.org/software/a2ps/.\n" msgstr "" "Haberler, güncellemeler ve belgeleme için adres: http://www.inf.enst.fr/" "~demaille/a2ps/\n" "Çeviriyle ilgili önerilerinizi adresine yollayýn.\n" #: src/main.c:824 #, fuzzy msgid "Report bugs to .\n" msgstr "Hata raporlarýný adresine yollayýn.\n" #: src/main.c:942 #, 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" #: src/main.c:1173 msgid "Table of Content" msgstr "Ýçindekiler" #: src/parsessh.y:236 #, c-format msgid "cannot process `%s' which requires a2ps version %s" msgstr "`%s' iþlenemiyor, a2ps %s sürümü gerekli" #: src/sheets-map.l:111 #, c-format msgid "unexpected character `%c'" msgstr "" #: src/sheets-map.l:211 lexppd.l:211 msgid "too many includes" msgstr "" #: src/sheets-map.l:296 src/sheets-map.l:303 #, fuzzy, c-format msgid "no key defined for `%s'" msgstr "`%s' dosyasý bulunamýyor" #: src/select.c:122 src/ssheet.c:866 fonts.l:838 fonts.l:840 fonts.l:842 #: lib/pathwalk.c:328 lib/pathwalk.c:414 #, c-format msgid "cannot find file `%s'" msgstr "`%s' dosyasý bulunamýyor" #: src/select.c:124 msgid "automatic style selection cancelled" msgstr "kendiliðinden stil seçimi kapatýldý" #: src/ssheet.c:295 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "`%s' düzgün deyimi derlenemiyor: %s" #: src/ssheet.c:974 src/ssheet.c:995 msgid "Known Style Sheets" msgstr "Tanýnan Stil Dosyalarý" #: src/ssheet.c:1461 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "`%s' stil dosyasý bulunamýyor: sade stil kullanýlýyor" #: src/sshread.c:453 #, c-format msgid "unknown encoding `%s', ignored" msgstr "tanýnmayan kodlama: `%s', gözardý edildi" #: src/version-etc.c:38 msgid "Copyright (C) 1999 Free Software Foundation, Inc." msgstr "" #: src/version-etc.c:60 #, fuzzy, c-format msgid "Written by %s.\n" msgstr "Basan: %s" #: src/version-etc.c:66 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 "" #: src/versions.c:133 #, c-format msgid "invalid version number `%s'" msgstr "geçersiz sürüm numarasý `%s'" #: lib/caret.c:43 msgid "space (i.e., ` ')" msgstr "boþluk (yani ` ')" #: lib/caret.c:45 msgid "octal (i.e., `\\001' etc.)" msgstr "sekizli (yani `\\001' gibi)" #: lib/caret.c:47 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "onaltýlý (yani `\\x0a' gibi)" #: lib/caret.c:49 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "þapka (yani `^C', `M-^C' gibi)" #: lib/caret.c:51 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "emacs (yani `C-c', `M-C-c' gibi)" #: lib/caret.c:53 msgid "question-mark (i.e., `?')" msgstr "soru iþareti (yani `?')" #: lib/closeout.c:71 lib/closeout.c:73 msgid "write error" msgstr "" #: confg.gperf:157 lib/encoding.c:638 #, c-format msgid "invalid option `%s'" msgstr "geçersiz seçenek `%s'" #: confg.gperf:224 confg.gperf:231 confg.gperf:238 #, c-format msgid "invalid definition for printer `%s': %s" msgstr "`%s' yazýcýsý için hatalý tanýmlama: %s" #: confg.gperf:229 confg.gperf:232 lib/printers.c:47 msgid "Unknown Printer" msgstr "Tanýnmayan Yazýcý" #: confg.gperf:236 confg.gperf:239 lib/printers.c:46 msgid "Default Printer" msgstr "Öntanýmlý Yazýcý" #: confg.gperf:292 lib/options.c:697 #, c-format msgid "invalid variable identifier `%s'" msgstr "geçersiz deðiþken adý `%s'" #: confg.gperf:321 #, c-format msgid "obsolete `%s' entry. Ignored" msgstr "`%s' kaydý artýk anlamsýz. Gözardý edildi" #: lib/encoding.c:1114 lib/encoding.c:1135 msgid "Known Encodings" msgstr "Tanýnan kodlamalar" #: lib/faces.c:156 msgid "incomplete knowledge of faces" msgstr "yüzler hakkýnda yetersiz bilgi" #: lib/filtdir.c:113 #, c-format msgid "cannot close directory `%s'" msgstr "`%s' dizini kapatýlamýyor" #: lib/getnum.c:63 lib/getnum.c:121 lib/getnum.c:153 lib/getnum.c:221 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "`%2$s' için geçersiz argüman `%1$s'" #: lib/getnum.c:123 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "Geçerli argümanlar %s kuralýna uyan n tamsayýlarýdýr\n" #: lib/getnum.c:223 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "Geçerli argümanlar %s kuralýna uyan f gerçel sayýlarýdýr\n" #: lib/jobs.c:308 #, c-format msgid "unknown encoding `%s'" msgstr "tanýnmayan kodlama: `%s'" #: lib/madir.c:59 msgid "rows first" msgstr "önce satýrlar" #: lib/madir.c:62 msgid "columns first" msgstr "önce sütunlar" #: lib/media.c:173 #, c-format msgid "unknown medium `%s'" msgstr "tanýnmayan ortam `%s'" #: lib/media.c:208 lib/media.c:237 msgid "Known Media" msgstr "Tanýnan ortamlar" #: lib/media.c:211 msgid "Name" msgstr "Ýsim" #: lib/media.c:212 msgid "dimensions" msgstr "boyutlar" #: lib/metaseq.c:104 lib/metaseq.c:113 #, c-format msgid "Known Variables" msgstr "Bilinen Macro Meta Sequence'lar" #: lib/metaseq.c:162 lib/metaseq.c:531 lib/metaseq.c:548 lib/metaseq.c:608 #: lib/metaseq.c:951 lib/metaseq.c:972 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%1$s: %3$s%4$c kaçýþ dizgesinde `%2$c' eksik" #: lib/metaseq.c:288 lib/metaseq.c:300 #, c-format msgid "Printed by %s" msgstr "Basan: %s" #: lib/metaseq.c:298 #, c-format msgid "Printed by %s from %s" msgstr "Basan: %s, Yer: %s" #: lib/metaseq.c:308 lib/metaseq.c:327 msgid "cannot get current working directory" msgstr "bulunulan dizin öðrenilemiyor" #: lib/metaseq.c:341 lib/metaseq.c:534 lib/metaseq.c:563 lib/metaseq.c:652 #: lib/metaseq.c:954 lib/metaseq.c:987 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s: %s kaçýþ dizgesi için çok uzun argüman" #: lib/metaseq.c:364 lib/metaseq.c:675 msgid "%b %d, %y" msgstr "%d %b %y" #: lib/metaseq.c:373 lib/metaseq.c:684 msgid "%A %B %d, %Y" msgstr "%d %B %Y, %A" #: lib/metaseq.c:419 lib/metaseq.c:448 lib/metaseq.c:491 lib/metaseq.c:724 #: lib/metaseq.c:808 lib/metaseq.c:867 lib/metaseq.c:922 lib/metaseq.c:1099 #: lib/metaseq.c:1234 lib/metaseq.c:1246 lib/metaseq.c:1289 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s: tanýnmayan `%s' kaçýþ dizgesinde `%c' (%d)" #: lib/metaseq.c:426 lib/metaseq.c:815 #, c-format msgid "Page %d" msgstr "Sayfa %d" #: lib/metaseq.c:431 lib/metaseq.c:826 #, c-format msgid "Page %d/%c" msgstr "Sayfa %d/%c" #: lib/metaseq.c:593 lib/metaseq.c:1021 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "%1$s: `%4$s' kaçýþ dizgesi için `%2$s%3$c' ayýrýcýsý hatalý" #: lib/metaseq.c:601 lib/metaseq.c:611 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s: %s%c kaçýþ dizgesi için hatalý argüman" #: lib/metaseq.c:822 #, c-format msgid "Page %d/%d" msgstr "Sayfa %d/%d" #: lib/metaseq.c:1266 msgid "output command" msgstr "çýktý komutu" #: lib/options.c:302 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Daha çok bilgi almak için `%s --help' komutunu deneyin.\n" #: lib/output.c:466 #, c-format msgid "invalid face `%s'" msgstr "geçersiz yüz `%s'" #: lib/output.c:538 #, c-format msgid "`%s' with no matching `%s'" msgstr "`%s' için karþýlýk olan bir `%s' yok" #: lib/ppd.c:108 msgid "Known Fonts" msgstr "Tanýnan Yazýtipleri" #: lib/ppd.c:111 msgid "" "\n" " None.\n" msgstr "" "\n" " Yok.\n" #: lib/ppd.c:149 lib/ppd.c:165 msgid "Known PostScript Printer Descriptions" msgstr "Tanýnan PostScript Yazýcý Betimlemeleri (PPD)" #: lib/prange.c:305 lib/prange.c:323 #, c-format msgid "invalid interval `%s'" msgstr "geçersiz aralýk %s" #: lib/printers.c:396 lib/printers.c:413 #, fuzzy, c-format msgid "no command for the `%s' (%s%s)" msgstr "tanýnmayan `%s' yazýcýsý için öntanýmlý bir komut yok" #: lib/printers.c:429 msgid "sent to the standard output" msgstr "standart çýkýþa gönderildi" #: lib/printers.c:430 msgid "sent to the default printer" msgstr "öntanýmlý yazýcýya gönderildi" #: lib/printers.c:435 #, c-format msgid "saved into the file `%s'" msgstr "`%s' dosyasýna yazýldý" #: lib/printers.c:436 #, c-format msgid "sent to the printer `%s'" msgstr "`%s' yazýcýsýna gönderildi" #: lib/printers.c:613 lib/printers.c:621 msgid "Known Outputs (Printers, etc.)" msgstr "Tanýnan çýktý varýþlarý (yazýcýlar v.b.)" #: lib/prolog.c:98 lib/prolog.c:181 msgid "Known Prologues" msgstr "Tanýnan giriþler" #: lib/prolog.c:579 #, c-format msgid "font %f too big" msgstr "%f yazýtipi çok büyük" #: lib/psgen.c:662 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "`%s' ikili bir dosya, basma iþlemi býrakýldý" #: lib/quotearg.c:200 msgid "`" msgstr "" #: lib/quotearg.c:203 msgid "'" msgstr "" #: lib/userdata.c:129 msgid "user" msgstr "kullanýcý" #: lib/userdata.c:130 msgid "Unknown User" msgstr "Tanýnmayan Kullanýcý" #: lib/useropt.c:75 #, c-format msgid "unknown user option `%s'" msgstr "tanýnmayan kullanýcý seçeneði `%s'" #: lib/useropt.c:86 lib/useropt.c:97 msgid "Known User Options" msgstr "Tanýnan kullanýcý seçenekleri" #: lib/xbackupfile.c:105 lib/xmalloc.c:66 msgid "Memory exhausted" msgstr "Bellek tükendi" #: lib/xbackupfile.c:240 lib/xbackupfile.c:252 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "`%s' dosyasýnýn adý `%s' olarak deðiþtirilemiyor" #: lib/xbackupfile.c:255 #, c-format msgid "restored file `%s'" msgstr "`%s' dosyasý kurtarýldý" #: lib/argmatch.c:159 #, fuzzy, c-format msgid "invalid argument %s for `%s'" msgstr "`%s' seçeneði için hatalý argüman `%s'" #: lib/argmatch.c:160 #, fuzzy, c-format msgid "ambiguous argument %s for `%s'" msgstr "`%2$s' seçeneði için belirsiz argüman `%1$s'" #: lib/argmatch.c:178 #, c-format msgid "Valid arguments are:" msgstr "Geçerli argümanlar:" #: lib/error.c:102 msgid "Unknown system error" msgstr "Tanýnmayan sistem hatasý" #: lib/getopt.c:675 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: `%s' seçeneði belirsiz\n" #: lib/getopt.c:700 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: `--%s' seçeneðine argüman verilemez\n" #: lib/getopt.c:705 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: `%c%s' seçeneðine argüman verilemez\n" #: lib/getopt.c:723 lib/getopt.c:896 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: `%s' seçeneðine argüman verilmeli\n" #: lib/getopt.c:752 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: tanýnmayan seçenek `--%s'\n" #: lib/getopt.c:756 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: tanýnmayan seçenek `%c%s'\n" #: lib/getopt.c:782 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: geçersiz seçenek -- %c\n" #: lib/getopt.c:785 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: hatalý seçenek -- %c\n" #: lib/getopt.c:815 lib/getopt.c:945 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: seçeneðe bir argüman verilmeli -- %c\n" #: lib/getopt.c:862 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: `-W %s' seçeneði belirsiz\n" #: lib/getopt.c:880 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: `-W %s' seçeneðine argüman verilemez\n" #, fuzzy #~ msgid "end of line in a %s" #~ msgstr "düzgün deyimde satýr-sonu" #~ msgid "end-of-line in regular expression" #~ msgstr "düzgün deyimde satýr-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 (baþarýyla sona erdi):\n" #~ msgid "" #~ "Written by and .\n" #~ msgstr "Yazanlar: ve \n" #~ msgid "no default command for option `-d'" #~ msgstr "`-d' seçeneði için öntanýmlý 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' seçeneði için hatalý argüman `%s'" #, fuzzy #~ msgid "invalid interval: %s" #~ msgstr "geçersiz seçenek aralýðý: %s" #~ msgid "illegal integer interval: %s" #~ msgstr "geçersiz seçenek aralýðý: %s" #, fuzzy #~ msgid "cannot find file %s" #~ msgstr "`%s' dosyasý bulunamýyor" #, fuzzy #~ msgid "unrecognized font `%s'" #~ msgstr "tanýnmayan yazýtipi: `%s'" #, fuzzy #~ msgid "unrecognized face `%s'" #~ msgstr "tanýnmayan yüz: `%s'" #, fuzzy #~ msgid "missing argument for %s" #~ msgstr "`%s' için eksik argüman" #, fuzzy #~ msgid "invalid variable identifier %s" #~ msgstr "hatalý makro belirteci `%s'" #, fuzzy #~ msgid "cannot create file %s" #~ msgstr "`%s' dosyasý yaratýlamýyor" #, fuzzy #~ msgid "cannot open a pipe on %s" #~ msgstr "`%s' üzerinde pipe açýlamýyor" #, fuzzy #~ msgid "cannot open file %s" #~ msgstr "`%s' dosyasý açýlamýyor" #, fuzzy #~ msgid "cannot open configuration file %s" #~ msgstr "`%s' ayar dosyasý açýlamýyor" #~ msgid "encoding %s unknown" #~ msgstr "%s kodlamasý tanýnmýyor" #~ msgid " library path = \n" #~ msgstr " arþiv yolu = \n" #~ msgid "user option `%s' not defined" #~ msgstr "`%s' kullanýcý seçeneði tanýmlý deðil" #, fuzzy #~ msgid "illegal option: %s" #~ msgstr "geçersiz seçenek: `%s'" #~ msgid "illegal option: `%s'" #~ msgstr "geçersiz seçenek: `%s'" #~ msgid "" #~ "syntax error in option string `%s':\n" #~ "missing end of quotation: %c" #~ msgstr "" #~ "`%s' seçenek katarýnda yazým hatasý:\n" #~ "açýlan týrnak kapatýlmamýþ: %c" #, fuzzy #~ msgid "cannot backup and create file `%s'" #~ msgstr "`%s' dosyasý yaratýlamýyor" #~ msgid "wrong value for option %s: `%s'" #~ msgstr "%s seçeneði için yanlýþ deðer: `%s'" #~ msgid "Valid arguments are integers between %d and %d\n" #~ msgstr "Geçerli argümanlar %d ile %d arasýndaki tamsayýlardýr\n" #~ msgid "Valid arguments are integers greater than %d\n" #~ msgstr "Geçerli argümanlar %d sayýsýndan büyük olan tamsayýlardýr\n" #~ msgid "Valid arguments are lengths between %gpt and %gpt\n" #~ msgstr "Geçerli argümanlar %gpt ile %gpt arasýndaki uzunluklardýr\n" #~ msgid "cannot find configuration file `%s'" #~ msgstr "`%s' ayar dosyasý bulunamýyor" #~ msgid "Dynamic array `%s':\n" #~ msgstr "Dinamik dizi `%s':\n" #~ msgid "\tload: %d/%d (%2.1f%%)\n" #~ msgstr "\tyükle: %d/%d (%2.1f%%)\n" #~ msgid "Dynamic string:\n" #~ msgstr "Dinamik katar:\n" #~ msgid "steady" #~ msgstr "sabit" #~ msgid "linear" #~ msgstr "çizgisel" #~ msgid "geometrical" #~ msgstr "geometrik" #~ msgid "\tgrowth: %s, increment: %d\n" #~ msgstr "\tbüyüme: %s, artýþ: %d\n" #~ msgid "can't allocate %ld bytes for hash table: memory exhausted" #~ msgstr "Hash tablosu için %ld sekizli ayrýlamýyor: bellek tükendi" #~ msgid "Load=%ld/%ld=%.0f%%, " #~ msgstr "Yükle=%ld/%ld=%.0f%%, " #~ msgid "Rehash=%d, " #~ msgstr "Rehash=%d, " #~ msgid "Collisions=%ld/%ld=%.0f%%" #~ msgstr "Çakýþmalar=%ld/%ld=%.0f%%" #~ msgid "Document title" #~ msgstr "Belge baþlýðý" #~ msgid "Page label" #~ msgstr "Sayfa etiketi" a2ps-4.14/po/ko.po0000644000175000017500000012250510735337367013237 0ustar mhattamhatta# a2ps-4.10 Korean po file # Copyright (C) 1997 Free Software Foundation, Inc. # CHOI Junho , 1998. # msgid "" msgstr "" "Project-Id-Version: a2ps-4.10.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-12-29 11:28+0800\n" "PO-Revision-Date: 1999-01-24 13:02+01:00\n" "Last-Translator: CHOI Junho \n" "Language-Team: Korean \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=EUC-KR\n" "Content-Transfer-Encoding: 8bit\n" #: src/buffer.c:68 msgid "any type" msgstr "¸ðµç Á¾·ù" #: src/delegate.c:137 confg.gperf:168 lib/encoding.c:530 lib/encoding.c:576 #: lib/encoding.c:616 lib/output.c:302 lib/pair_ht.c:296 lib/prolog.c:146 #, fuzzy, c-format msgid "missing argument for `%s'" msgstr "`%s'ÀÇ Àμö ¾øÀ½" #: src/delegate.c:260 lib/routines.c:160 lib/xbackupfile.c:248 #: lib/xbackupfile.c:276 lib/xbackupfile.c:284 #, fuzzy, c-format msgid "cannot create file `%s'" msgstr "Ãâ·Â ÆÄÀÏ `%s'À» ¸¸µé ¼ö ¾ø½À´Ï´Ù" #: src/delegate.c:269 src/select.c:193 lib/routines.c:190 lib/routines.c:196 #, fuzzy, c-format msgid "cannot open a pipe on `%s'" msgstr "`%s'ÀÇ ÆÄÀÌÇÁ¸¦ ¿­ ¼ö ¾ø½À´Ï´Ù" #: src/delegate.c:389 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "À§ÀÓ `%s': %s¿¡¼­ %s·Î\n" #: src/delegate.c:408 src/delegate.c:430 msgid "Applications configured for delegation" msgstr "¾îÇø®ÄÉÀ̼ÇÀº À§ÀÓ ¼³Á¤ÀÌ µÇ¾ú½À´Ï´Ù" #: src/generate.c:88 #, fuzzy, c-format msgid "`%s' is a directory" msgstr "`%s'´Â µð·ºÅ丮ÀÔ´Ï´Ù" #: src/generate.c:96 src/main.c:560 src/main.c:582 confg.gperf:192 #: confg.gperf:355 lib/routines.c:154 #, c-format msgid "cannot open file `%s'" msgstr "ÆÄÀÏ `%s'À» ¿­ ¼ö ¾ø½À´Ï´Ù" #: src/generate.c:101 lib/xbackupfile.c:224 #, fuzzy, c-format msgid "cannot get informations on file `%s'" msgstr "ÆÄÀÏ `%s'ÀÇ Á¤º¸¸¦ ¾òÀ» ¼ö ¾ø½À´Ï´Ù" #: src/generate.c:168 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): 1 ÆäÀÌÁö/1 Àå]\n" #: src/generate.c:174 #, c-format msgid "[%s (%s): %d pages on 1 sheet]\n" msgstr "[%s (%s): %d ÆäÀÌÁö/1 Àå]\n" #: src/generate.c:181 #, c-format msgid "[%s (%s): %d pages on %d sheets]\n" msgstr "[%s (%s): %d ÆäÀÌÁö/%d Àå]\n" #: src/generate.c:208 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[ÇÕ°è: 1 ÆäÀÌÁö/1 Àå] %s\n" #: src/generate.c:212 #, c-format msgid "[Total: %d pages on 1 sheet] %s\n" msgstr "[ÇÕ°è: %d ÆäÀÌÁö/1Àå] %s\n" #: src/generate.c:217 #, c-format msgid "[Total: %d pages on %d sheets] %s\n" msgstr "[ÇÕ°è: %d ÆäÀÌÁö/%d Àå] %s\n" #: src/generate.c:226 msgid "[1 line wrapped]\n" msgstr "" #: src/generate.c:229 #, fuzzy, c-format msgid "[%d lines wrapped]\n" msgstr "ÆäÀÌÁö´ç %d°³ Çà" #: src/generate.c:242 msgid "[No output produced]\n" msgstr "[Ãâ·Â ¾øÀ½]\n" #: src/generate.c:314 #, c-format msgid "%s, delegated to %s" msgstr "%s, %s·Î À§ÀÓ" #: src/generate.c:322 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): ½ÇÆÐ. ¹«½ÃÇÔ]\n" #: src/generate.c:330 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (Ãâ·ÂºÒ°¡´É): ¹«½ÃÇÔ]\n" #: src/generate.c:339 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (¹ÙÀ̳ʸ®): ¹«½ÃÇÔ]\n" #: src/generate.c:360 msgid "plain" msgstr "º¸Åë" #: lexssh.l:348 msgid "end-of-line in string constant" msgstr "¹®ÀÚ¿­ »ó¼ö ¾È¿¡¼­ ÇàÀÇ ³¡" #: lexssh.l:415 src/sheets-map.l:153 src/sheets-map.l:192 #, fuzzy, c-format msgid "end of line inside a %s" msgstr "Á¤±Ô½Ä¿¡¼­ ÇàÀÇ ³¡" #: src/main.c:203 #, c-format msgid "received signal %d: %s" msgstr "" #: src/main.c:242 msgid "heavy" msgstr "°í±Þ" #: src/main.c:246 msgid "normal" msgstr "º¸Åë" #: src/main.c:250 msgid "none" msgstr "¾øÀ½" #: src/main.c:324 src/main.c:328 msgid "yes" msgstr "¿¹" #: src/main.c:325 src/main.c:328 src/main.c:369 msgid "no" msgstr "¾Æ´Ï¿À" #: src/main.c:335 #, c-format msgid "Configuration status of %s %s\n" msgstr "%sÀÇ ¼³Á¤ »óȲ %s\n" #: src/main.c:339 src/main.c:697 msgid "Sheets:\n" msgstr "Àå:\n" #: src/main.c:340 #, 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" msgstr "" " ±âº» Á¾ÀÌ = %s%s\n" " ÆäÀÌÁö´ç ·¹À̾ƿô = %d x %d (%s, %s)\n" " °¡ÀåÀÚ¸® = %s\n" " ¾ÐÃà ¸ðµå = %s\n" " ¾ÈÂÊ ¿©¹é = %d\n" #: src/main.c:349 msgid "portrait" msgstr "¼¼·Î³Ð°Ô" #: src/main.c:349 msgid "landscape" msgstr "°¡·Î³Ð°Ô" #: src/main.c:358 #, c-format msgid "%d characters per line" msgstr "Çà´ç %d°³ ¹®ÀÚ" #: src/main.c:361 #, c-format msgid "%d lines per page" msgstr "ÆäÀÌÁö´ç %d°³ Çà" #: src/main.c:364 #, c-format msgid "font size is %gpt" msgstr "±Û²Ã Å©±â´Â %gpt" #: src/main.c:373 msgid "each line" msgstr "°¢ Çà" #: src/main.c:377 #, c-format msgid "each %d lines" msgstr "°¢ %d°³ Çà" #: src/main.c:380 src/main.c:718 msgid "Virtual pages:\n" msgstr "°¡»ó ÆäÀÌÁö:\n" #: src/main.c:381 #, fuzzy, c-format msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %d\n" " non printable format = %s\n" msgstr "" " Çà¹øÈ£ = %s\n" " Çü½Ä = %s\n" " ÅÇ Å©±â = %d\n" " ÀμâÇÒ ¼ö ¾ø´Â Çü½Ä = %s\n" #: src/main.c:392 msgid "Headers:\n" msgstr "¸Ó¸´¸»:\n" #: src/main.c:393 #, 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:412 src/main.c:747 msgid "Input:\n" msgstr "ÀÔ·Â:\n" #: src/main.c:413 #, 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:438 src/main.c:504 msgid "selected automatically" msgstr "ÀÚµ¿ÀûÀ¸·Î ¼±ÅõǾú½À´Ï´Ù" #: src/main.c:441 src/main.c:766 msgid "Pretty-printing:\n" msgstr "Ãâ·Â ²Ù¹Ì±â:\n" #: src/main.c:442 #, 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:462 msgid "never make backups" msgstr "¹é¾÷À» ¸¸µéÁö ¾Ê´Â´Ù" #: src/main.c:466 msgid "simple backups of every file" msgstr "¸ðµç ÆÄÀÏÀÇ °£´ÜÇÑ ¹é¾÷À» ¸¸µç´Ù" #: src/main.c:471 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" "¹øÈ£°¡ ÁÖ¾îÁø ¹é¾÷ÀÌ ÀÖÀ¸¸é ¹øÈ£¸¦ ÁÖ°í, ±×·¸Áö ¾ÊÀ¸¸é\n" " ´Ü¼øÇÏ°Ô ÇÕ´Ï´Ù" #: src/main.c:476 msgid "numbered backups of every file" msgstr "¸ðµç ÆÄÀÏÀÇ ¹øÈ£°¡ ÁÖ¾îÁø ¹é¾÷" #: src/main.c:480 src/main.c:775 msgid "Output:\n" msgstr "Ãâ·Â:\n" #: src/main.c:481 #, 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:494 src/main.c:786 msgid "PostScript:\n" msgstr "Æ÷½ºÆ®½ºÅ©¸³Æ®:\n" #: src/main.c:495 #, 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 = " msgstr "" " ¸ÅÁ÷ ¹øÈ£ = %s\n" " ÇÁ¸°ÅÍ ¼³¸í (PPD) = %s\n" " ±âº» PPD = %s\n" " ÆäÀÌÁö ·¹ÀÌºí Æ÷¸Ë = %s\n" " º¹»çº» ¼ö = %d\n" " Àå´ç ¸é¼ö = %d\n" " ÆäÀÌÁö ÀåÄ¡ Á¤ÀÇ = " #: src/main.c:515 #, c-format msgid " statusdict definitions = " msgstr " statusdict Á¤ÀÇ = " #: src/main.c:518 #, c-format msgid " page prefeed = %s\n" msgstr " ÆäÀÌÁö ¹Ì¸® ¹èÃâ = %s\n" #: src/main.c:527 msgid "Internals:\n" msgstr "³»ºÎ:\n" #: src/main.c:528 #, fuzzy, c-format msgid "" " verbosity level = %d\n" " file command = %s\n" " library path = \n" msgstr "" " Ãâ·Â ¼öÁØ = %d\n" " ÆÄÀÏ ¸í·É = %s\n" " Àӽà µð·ºÅ丮 = %s\n" #: src/main.c:653 #, 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" msgstr "" "»ç¿ë¹ý: %s [OPTIONS]... [FILES]...\n" " ¶Ç´Â: %s [OPTIONS]...\n" "FILES¸¦ Ãâ·ÂÇϰųª Ç¥ÁØ Ãâ·ÂÀ» Ãâ·ÂÇÕ´Ï´Ù.\n" "±ä À̸§ ¿É¼ÇÀÇ ÇʼöÀûÀÎ Àμö´Â ªÀº À̸§ ¿É¼Ç¿¡µµ ÇÊ¿äÇÕ´Ï´Ù.\n" "*·Î Ç¥½ÃµÈ ±ä À̸§ ¿É¼ÇÀº ¿¹/¾Æ´Ï¿À(yes/no) Àμö°¡ ÇÊ¿äÇϸç,\n" "´ëÀÀÇϴ ªÀº À̸§ ¿É¼ÇÀº `¿¹(yes)'¸¦ ÀǹÌÇÕ´Ï´Ù.\n" #: src/main.c:668 msgid "Tasks:\n" msgstr "" #: src/main.c:669 #, 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" 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:680 msgid "" "After having performed the task, exit successfully. Detailed lists may\n" "provide additional help on specific features.\n" msgstr "" #: src/main.c:688 msgid "Global:\n" msgstr "Àü¿ª:\n" #: src/main.c:689 #, 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:698 #, 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" 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:711 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:719 #, 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:730 msgid "Headings:\n" msgstr "¸Ó¸´¸»:\n" #: src/main.c:732 #, 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:743 msgid "The TEXTs may use special escapes.\n" msgstr "" #: src/main.c:748 #, 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:760 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:767 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:776 #, 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:787 #, 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:801 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" msgstr "" #: src/main.c:822 #, 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·Î Çϼ¼¿ä\n" #: src/main.c:824 #, fuzzy msgid "Report bugs to .\n" msgstr "¹ö±× ¸®Æ÷Æ®´Â ·Î º¸³» ÁÖ¼¼¿ä\n" #: src/main.c:942 #, 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" #: src/main.c:1173 msgid "Table of Content" msgstr "Â÷·Ê" #: src/parsessh.y:236 #, c-format msgid "cannot process `%s' which requires a2ps version %s" msgstr "a2ps ¹öÀü %s¸¦ ÇÊ¿ä·Î ÇÏ´Â `%s'¸¦ ó¸®ÇÒ ¼ö ¾ø½À´Ï´Ù" #: src/sheets-map.l:111 #, fuzzy, c-format msgid "unexpected character `%c'" msgstr "À߸øµÈ ¿É¼Ç: `%c' (%d)" #: src/sheets-map.l:211 lexppd.l:211 msgid "too many includes" msgstr "" #: src/sheets-map.l:296 src/sheets-map.l:303 #, fuzzy, c-format msgid "no key defined for `%s'" msgstr "ÆÄÀÏ `%s%s'À» ãÀ» ¼ö ¾ø½À´Ï´Ù" #: src/select.c:122 src/ssheet.c:866 fonts.l:838 fonts.l:840 fonts.l:842 #: lib/pathwalk.c:328 lib/pathwalk.c:414 #, fuzzy, c-format msgid "cannot find file `%s'" msgstr "ÆÄÀÏ `%s%s'À» ãÀ» ¼ö ¾ø½À´Ï´Ù" #: src/select.c:124 msgid "automatic style selection cancelled" msgstr "ÀÚµ¿ ½ºÅ¸ÀÏ ¼±ÅÃÀº Ãë¼ÒµÇ¾ú½À´Ï´Ù" #: src/ssheet.c:295 #, fuzzy, c-format msgid "cannot compile regular expression `%s': %s" msgstr "Á¤±Ô½Ä `%s'¸¦ ÄÄÆÄÀÏÇÒ ¼ö ¾ø½À´Ï´Ù: %s" #: src/ssheet.c:974 src/ssheet.c:995 #, fuzzy msgid "Known Style Sheets" msgstr "¾Ë·ÁÁø ½ºÅ¸ÀÏ ½ÃÆ® (¾ð¾î)" #: src/ssheet.c:1461 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "½ºÅ¸ÀÏ ½ÃÆ® `%s'¸¦ ãÀ» ¼ö ¾ø½À´Ï´Ù: º¸Åë ½ºÅ¸ÀÏÀ» »ç¿ëÇÕ´Ï´Ù" #: src/sshread.c:453 #, fuzzy, c-format msgid "unknown encoding `%s', ignored" msgstr "¾Ë ¼ö ¾ø´Â ÀÎÄÚµù: `%s', ¹«½ÃÇÕ´Ï´Ù" #: src/version-etc.c:38 msgid "Copyright (C) 1999 Free Software Foundation, Inc." msgstr "" #: src/version-etc.c:60 #, fuzzy, c-format msgid "Written by %s.\n" msgstr "%s°¡ Ãâ·Â" #: src/version-etc.c:66 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" #: src/versions.c:133 #, fuzzy, c-format msgid "invalid version number `%s'" msgstr "À߸øµÈ ¹öÀü ¹øÈ£: `%s'" #: lib/caret.c:43 msgid "space (i.e., ` ')" msgstr "°ø¹é (¿¹> ` ')" #: lib/caret.c:45 msgid "octal (i.e., `\\001' etc.)" msgstr "8Áø¼ö (¿¹> `\\001' µîµî.)" #: lib/caret.c:47 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "16Áø¼ö (¿¹> `\\x0a' µîµî.)" #: lib/caret.c:49 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "Á¦¾î¹®ÀÚ (¿¹> `^C', `M-^C' µîµî.)" #: lib/caret.c:51 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "emacs (¿¹> `C-c', `M-C-c' µîµî.)" #: lib/caret.c:53 msgid "question-mark (i.e., `?')" msgstr "Àǹ®ºÎÈ£ (¿¹> `?')" #: lib/closeout.c:71 lib/closeout.c:73 msgid "write error" msgstr "" #: confg.gperf:157 lib/encoding.c:638 #, fuzzy, c-format msgid "invalid option `%s'" msgstr "%s: À߸øµÈ ¿É¼Ç -- %c\n" #: confg.gperf:224 confg.gperf:231 confg.gperf:238 #, c-format msgid "invalid definition for printer `%s': %s" msgstr "ÇÁ¸°ÅÍ `%s'¿¡ ´ëÇÑ À߸øµÈ Á¤ÀÇ: %s" #: confg.gperf:229 confg.gperf:232 lib/printers.c:47 msgid "Unknown Printer" msgstr "¾Ë ¼ö ¾ø´Â ÇÁ¸°ÅÍ" #: confg.gperf:236 confg.gperf:239 lib/printers.c:46 msgid "Default Printer" msgstr "±âº» ÇÁ¸°ÅÍ" #: confg.gperf:292 lib/options.c:697 #, fuzzy, c-format msgid "invalid variable identifier `%s'" msgstr "À߸øµÈ ¸ÅÅ©·Î ½Äº°ÀÚ: `%s'" #: confg.gperf:321 #, c-format msgid "obsolete `%s' entry. Ignored" msgstr "»ç¿ëÇÏÁö ¾Ê´Â `%s' ¿£Æ®¸®. ¹«½ÃÇÕ´Ï´Ù" #: lib/encoding.c:1114 lib/encoding.c:1135 msgid "Known Encodings" msgstr "¾Ë·ÁÁø ÀÎÄÚµù" #: lib/faces.c:156 msgid "incomplete knowledge of faces" msgstr "ÆùÆ® ¸ð¾ç¿¡ ´ëÇØ ºÒ¿ÏÀüÇÏ°Ô ¾Ë°í ÀÖ½À´Ï´Ù" #: lib/filtdir.c:113 #, c-format msgid "cannot close directory `%s'" msgstr "µð·ºÅ丮 `%s'¸¦ ´ÝÀ» ¼ö ¾ø½À´Ï´Ù" #: lib/getnum.c:63 lib/getnum.c:121 lib/getnum.c:153 lib/getnum.c:221 #, fuzzy, c-format msgid "invalid argument `%s' for `%s'" msgstr "À߸øµÈ Àμö `%s'°¡ ¿É¼Ç `%s'¿¡ »ç¿ë" #: lib/getnum.c:123 #, fuzzy, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "¿Ã¹Ù¸¥ Àμö´Â %d ÀÌÇÏÀÇ Á¤¼öÀÔ´Ï´Ù\n" #: lib/getnum.c:223 #, fuzzy, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "¿Ã¹Ù¸¥ Àμö´Â %d ÀÌÇÏÀÇ Á¤¼öÀÔ´Ï´Ù\n" #: lib/jobs.c:308 #, fuzzy, c-format msgid "unknown encoding `%s'" msgstr "¾Ë ¼ö ¾ø´Â ÀÎÄÚµù: `%s', ¹«½ÃÇÕ´Ï´Ù" #: lib/madir.c:59 msgid "rows first" msgstr "Çà ¸ÕÀú" #: lib/madir.c:62 msgid "columns first" msgstr "¿­ ¸ÕÀú" #: lib/media.c:173 #, fuzzy, c-format msgid "unknown medium `%s'" msgstr "¾Ë ¼ö ¾ø´Â ¸Åü `%s'" #: lib/media.c:208 lib/media.c:237 msgid "Known Media" msgstr "¾Ë·ÁÁø ¸Åü" #: lib/media.c:211 msgid "Name" msgstr "À̸§" #: lib/media.c:212 msgid "dimensions" msgstr "Â÷¿ø" #: lib/metaseq.c:104 lib/metaseq.c:113 #, c-format msgid "Known Variables" msgstr "¾Ë·ÁÁø ¸ÅÅ©·Î ¸ÞŸ ½ÃÄö½º" #: lib/metaseq.c:162 lib/metaseq.c:531 lib/metaseq.c:548 lib/metaseq.c:608 #: lib/metaseq.c:951 lib/metaseq.c:972 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%s: `%c'°¡ ¿¡½ºÄÉÀÌÇÁ %s%c¿¡ ºüÁ³½À´Ï´Ù" #: lib/metaseq.c:288 lib/metaseq.c:300 #, c-format msgid "Printed by %s" msgstr "%s°¡ Ãâ·Â" #: lib/metaseq.c:298 #, c-format msgid "Printed by %s from %s" msgstr "%s°¡ %s¿¡¼­ Ãâ·Â" #: lib/metaseq.c:308 lib/metaseq.c:327 msgid "cannot get current working directory" msgstr "ÇöÀç ÀÛ¾÷ µð·ºÅ丮¸¦ ¾òÀ» ¼ö ¾ø½À´Ï´Ù" #: lib/metaseq.c:341 lib/metaseq.c:534 lib/metaseq.c:563 lib/metaseq.c:652 #: lib/metaseq.c:954 lib/metaseq.c:987 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s: ¿¡½ºÄÉÀÌÇÁ %s¿¡ ³Ê¹« ±ä Àμö" #: lib/metaseq.c:364 lib/metaseq.c:675 msgid "%b %d, %y" msgstr "%y³â %b %dÀÏ" #: lib/metaseq.c:373 lib/metaseq.c:684 msgid "%A %B %d, %Y" msgstr "%Y³â %B %dÀÏ %A" #: lib/metaseq.c:419 lib/metaseq.c:448 lib/metaseq.c:491 lib/metaseq.c:724 #: lib/metaseq.c:808 lib/metaseq.c:867 lib/metaseq.c:922 lib/metaseq.c:1099 #: lib/metaseq.c:1234 lib/metaseq.c:1246 lib/metaseq.c:1289 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s: ¾Ë ¼ö ¾ø´Â `%s' ¿¡½ºÄÉÀÌÇÁ `%c' (%d)" #: lib/metaseq.c:426 lib/metaseq.c:815 #, c-format msgid "Page %d" msgstr "%dÂÊ" #: lib/metaseq.c:431 lib/metaseq.c:826 #, c-format msgid "Page %d/%c" msgstr "%d/%cÂÊ" #: lib/metaseq.c:593 lib/metaseq.c:1021 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "%s: À߸øµÈ ºÐ¸®ÀÚ `%s%c'°¡ ¿¡½ºÄÉÀÌÇÁ `%s'¿¡ »ç¿ë" #: lib/metaseq.c:601 lib/metaseq.c:611 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s: ¿¡½ºÄÉÀÌÇÁ %s%c¿¡ À߸øµÈ Àμö" #: lib/metaseq.c:822 #, c-format msgid "Page %d/%d" msgstr "%d/%dÂÊ" #: lib/metaseq.c:1266 msgid "output command" msgstr "Ãâ·Â ¸í·É" #: lib/options.c:302 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "´õ ¸¹Àº Á¤º¸¸¦ ¾òÀ¸·¯¸é `%s --help'¸í·ÉÀ» ÇϽʽÿÀ.\n" #: lib/output.c:466 #, fuzzy, c-format msgid "invalid face `%s'" msgstr "%s: À߸øµÈ ¿É¼Ç -- %c\n" #: lib/output.c:538 #, c-format msgid "`%s' with no matching `%s'" msgstr "`%s'¿Í ¸Â´Â `%s'ÀÌ ¾ø½À´Ï´Ù" #: lib/ppd.c:108 #, fuzzy msgid "Known Fonts" msgstr "¾Ë·ÁÁø ÀÎÄÚµù" #: lib/ppd.c:111 msgid "" "\n" " None.\n" msgstr "" #: lib/ppd.c:149 lib/ppd.c:165 msgid "Known PostScript Printer Descriptions" msgstr "" #: lib/prange.c:305 lib/prange.c:323 #, fuzzy, c-format msgid "invalid interval `%s'" msgstr "À߸øµÈ Á¤¼ö ¹üÀ§: %s" #: lib/printers.c:396 lib/printers.c:413 #, fuzzy, c-format msgid "no command for the `%s' (%s%s)" msgstr "¾Ë ¼ö ¾ø´Â ÇÁ¸°ÅÍ `%s'¿¡ ´ëÇÑ ±âº» ¸í·ÉÀÌ ¾ø½À´Ï´Ù" #: lib/printers.c:429 msgid "sent to the standard output" msgstr "Ç¥ÁØ Ãâ·ÂÀ¸·Î º¸³À´Ï´Ù" #: lib/printers.c:430 msgid "sent to the default printer" msgstr "±âº» ÇÁ¸°ÅÍ·Î º¸³À´Ï´Ù" #: lib/printers.c:435 #, c-format msgid "saved into the file `%s'" msgstr "ÆÄÀÏ `%s'·Î ÀúÀåÇÕ´Ï´Ù" #: lib/printers.c:436 #, c-format msgid "sent to the printer `%s'" msgstr "ÇÁ¸°ÅÍ `%s'·Î º¸³À´Ï´Ù" #: lib/printers.c:613 lib/printers.c:621 msgid "Known Outputs (Printers, etc.)" msgstr "¾Ë·ÁÁø Ãâ·Â ¹æÇâ(ÇÁ¸°ÅÍ µîµî)" #: lib/prolog.c:98 lib/prolog.c:181 msgid "Known Prologues" msgstr "¾Ë·ÁÁø ¼­¹®" #: lib/prolog.c:579 #, c-format msgid "font %f too big" msgstr "ÆùÆ® %f´Â ³Ê¹« Å®´Ï´Ù" #: lib/psgen.c:662 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "`%s' ´Â ÀÌÁø ÆÄÀÏÀÔ´Ï´Ù. Ãâ·ÂÀ» Áß´ÜÇÕ´Ï´Ù" #: lib/quotearg.c:200 msgid "`" msgstr "" #: lib/quotearg.c:203 msgid "'" msgstr "" #: lib/userdata.c:129 msgid "user" msgstr "»ç¿ëÀÚ" #: lib/userdata.c:130 msgid "Unknown User" msgstr "¾Ë ¼ö ¾ø´Â »ç¿ëÀÚ" #: lib/useropt.c:75 #, fuzzy, c-format msgid "unknown user option `%s'" msgstr "¾Ë·ÁÁø »ç¿ëÀÚ ¿É¼Ç" #: lib/useropt.c:86 lib/useropt.c:97 msgid "Known User Options" msgstr "¾Ë·ÁÁø »ç¿ëÀÚ ¿É¼Ç" #: lib/xbackupfile.c:105 lib/xmalloc.c:66 msgid "Memory exhausted" msgstr "¸Þ¸ð¸®°¡ ¸ðÀÚ¶ø´Ï´Ù" #: lib/xbackupfile.c:240 lib/xbackupfile.c:252 #, fuzzy, c-format msgid "cannot rename file `%s' as `%s'" msgstr "ÆÄÀÏ `%s'ÀÇ À̸§À» `%s'·Î ¹Ù²Ü ¼ö ¾ø½À´Ï´Ù" #: lib/xbackupfile.c:255 #, fuzzy, c-format msgid "restored file `%s'" msgstr "Ãâ·Â ÆÄÀÏ `%s'À» ¸¸µé ¼ö ¾ø½À´Ï´Ù" #: lib/argmatch.c:159 #, fuzzy, c-format msgid "invalid argument %s for `%s'" msgstr "À߸øµÈ Àμö `%s'°¡ ¿É¼Ç `%s'¿¡ »ç¿ë" #: lib/argmatch.c:160 #, fuzzy, c-format msgid "ambiguous argument %s for `%s'" msgstr "¾Ö¸ÅÇÑ Àμö `%s'°¡ ¿É¼Ç `%s'¿¡ »ç¿ë" #: lib/argmatch.c:178 #, c-format msgid "Valid arguments are:" msgstr "¿Ã¹Ù¸¥ Àμö´Â:" #: lib/error.c:102 msgid "Unknown system error" msgstr "¾Ë ¼ö ¾ø´Â ½Ã½ºÅÛ ¿¡·¯" #: lib/getopt.c:675 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: ¿É¼Ç `%s'Àº ¾Ö¸ÅÇÕ´Ï´Ù\n" #: lib/getopt.c:700 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: ¿É¼Ç `--%s'Àº Àμö°¡ ¾ø½À´Ï´Ù\n" #: lib/getopt.c:705 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: ¿É¼Ç `%c%s'Àº Àμö°¡ ¾ø½À´Ï´Ù\n" #: lib/getopt.c:723 lib/getopt.c:896 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: ¿É¼Ç `%s'Àº Àμö°¡ ÇÊ¿äÇÕ´Ï´Ù\n" #: lib/getopt.c:752 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: ÀνÄÇÒ ¼ö ¾ø´Â ¿É¼Ç `--%s'\n" #: lib/getopt.c:756 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: ÀνÄÇÒ ¼ö ¾ø´Â ¿É¼Ç `%c%s'\n" #: lib/getopt.c:782 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: À߸øµÈ ¿É¼Ç -- %c\n" #: lib/getopt.c:785 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: À߸øµÈ ¿É¼Ç -- %c\n" #: lib/getopt.c:815 lib/getopt.c:945 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: ¿É¼ÇÀº Àμö°¡ ÇÊ¿äÇÕ´Ï´Ù -- %c\n" #: lib/getopt.c:862 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: ¿É¼Ç `-W %s'Àº ¾Ö¸ÅÇÕ´Ï´Ù\n" #: lib/getopt.c:880 #, 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 and .\n" #~ msgstr "" #~ "¿Í °¡ ÀÛ¼ºÇÏ¿´½À´Ï´Ù.\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 "Dynamic array `%s':\n" #~ msgstr "µ¿Àû ¹è¿­ `%s':\n" #~ msgid "\tload: %d/%d (%2.1f%%)\n" #~ msgstr "\tÀбâ: %d/%d (%2.1f%%)\n" #~ msgid "Dynamic string:\n" #~ msgstr "µ¿Àû ¹®ÀÚ¿­:\n" #~ 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.14/po/ru.gmo0000644000175000017500000006252410735337370013416 0ustar mhattamhattaÞ•°œï Ø Ù%ã/ ü9r6A©|ëFh!¯EѠ丂p !‘ ³ EÒ °!OÉ! " &"0"G"Y"m"$‡"¬",Æ" ó",#A#%_#,…#-²# à#&$#($!L$n$Ž$®$v°$&'%òN%A'1`'’'¢'Â' Ë' Õ'à' è'ô' ( ((%;(a(q(„(—(§(¸(½(Æ( Î( Ù( ä(ñ( ))#')K)T)e)#m) ‘)—Ÿ*&7+^+ n+{+++-¼+ê+ÿ+¯,¿,Ï,!ã,-%-C-`-x-•-§-"½- à-. .'".J.^.y.˜.#¡.Å.*á. /$//:/$j/$/´/Ï/2å/080 X0 f0 q0 0!‰0«0Ã0â0ò01 1*1H1e1'„1¬1¾1Ô1 è1 2 %2/2I2\2_2~2–2›2¢2\Á23<3V3e3k3t3Ž3¥3 ¸3Ã3Ü3ó34(4D4a4s4…4Ÿ4µ4Ô4è45 55:5 Q6Ù\6Ë691<Î4>@¡Ad¶DáG]ýHð[ILJ›bKpþK'oL—LQ¶LðMRùM LNYNbNuNŠNN>ºNùNHO;[O4—OÌO1éO4P5PP†P2¦PCÙPBQ`Q}QšQ…œQ0"R.SR‚T1 TÒTçT U U U,U=UTUhUyU-ŒU&ºUáUùU V4VIVZV^V pV|V‹V šV§V ¼VÇV?×VW W*WG3W"{WÞX@bY£Y·YÐYKíY>9ZxZŽZ¹¥Z _[l["€["£[!Æ[1è[\!8\Z\n\$…\#ª\"Î\ñ\.ó\"]":]"]]€]+“]¿]7ß]^4^@O^2^+Ã^ ï^_:-_)h_.’_Á_Ñ_Ù_ é_"÷_`',`T`m`†`,`!º`Ü`ú`&aAaZaua&ˆa¯a ÊaØa$óabb8b Sb_b*gbi’b$üb'!cIcXc `clc„cšc±cÀcÕc!êc d&d+Edqdƒd›d±d(Ìdõd&e 6e CeQe- „^‡F"—}=VK‹d¯ª\2+?@*¤ˆ¢8YOJog–ƒŽm’R6Hny]¥!;P3® šp˜ŠWAra5¡Qhz­$[)t‚DEŒ`£v'¦Cu|:œ1(B™q“©w•Si…›†/ #el>{ ~‘N%_‰ 9b 7f0 €U,Lž¨&°.<”¬kŸMTxG§Ic4jXs«Z 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 -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 = %d sides per sheet = %s page device definitions = medium = %s%s, %s page layout = %d x %d, %s borders = %s file alignment = %s interior margin = %d number lines = %s format = %s tabulation size = %d 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 = %d file command = %s library path = %A %B %d, %Y%b %d, %y%d characters per line%d lines per page%s, delegated to %s%s: illegal option -- %c %s: invalid argument for %s%c escape%s: invalid option -- %c %s: invalid separator `%s%c' for `%s' escape%s: missing `%c' for %s%c escape%s: option `%c%s' doesn't allow an argument %s: option `%s' is ambiguous %s: option `%s' requires an argument %s: option `--%s' doesn't allow an argument %s: option `-W %s' doesn't allow an argument %s: option `-W %s' is ambiguous %s: option requires an argument -- %c %s: too long argument for %s escape%s: unknown `%s' escape `%c' (%d)%s: unrecognized option `%c%s' %s: unrecognized option `--%s' 'After having performed the task, exit successfully. Detailed lists may provide additional help on specific features. Applications configured for delegationBy 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 Copyright (C) 1999 Free Software Foundation, Inc.Default PrinterDelegation `%s', from %s to %s Global: Headers: Headings: Input: Internals: Known EncodingsKnown FontsKnown MediaKnown Outputs (Printers, etc.)Known PostScript Printer DescriptionsKnown ProloguesKnown Style SheetsKnown User OptionsKnown VariablesMemory exhaustedNameOutput: Page %dPage %d/%cPage %d/%dPostScript: Pretty-printing: Printed by %sPrinted by %s from %sReport bugs to . Sheets: Table of ContentTasks: 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.). This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Try `%s --help' for more information. Unknown PrinterUnknown UserUnknown system errorValid arguments are floats f such that: %s Valid arguments are integers n such that: %s Valid arguments are: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. Written by %s. [%d lines wrapped] [%s (%s): %d pages on %d sheets] [%s (%s): %d pages on 1 sheet] [%s (%s): 1 page on 1 sheet] [%s (%s): failed. Ignored] [%s (binary): ignored] [%s (unprintable): ignored] [1 line wrapped] [No output produced] [Total: %d pages on %d sheets] %s [Total: %d 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'ambiguous argument %s for `%s'any typeautomatic style selection cancelledcannot close directory `%s'cannot compile regular expression `%s': %scannot create file `%s'cannot find file `%s'cannot find style sheet `%s': using plain stylecannot get current working directorycannot get informations on file `%s'cannot open a pipe on `%s'cannot open file `%s'cannot process `%s' which requires a2ps version %scannot rename file `%s' as `%s'caret (i.e., `^C', `M-^C' etc.)columns firstdimensionseach %d lineseach lineemacs (i.e., `C-c', `M-C-c' etc.)end of line inside a %send-of-line in string constantfont %f too bigfont size is %gptheavyhexadecimal (i.e., `\x0a' etc.)incomplete knowledge of facesinvalid argument %s for `%s'invalid argument `%s' for `%s'invalid definition for printer `%s': %sinvalid face `%s'invalid interval `%s'invalid option `%s'invalid variable identifier `%s'invalid version number `%s'landscapemissing argument for `%s'never make backupsnono command for the `%s' (%s%s)no key defined for `%s'nonenormalnumbered backups of every filenumbered backups of files already numbered, and simple of othersobsolete `%s' entry. Ignoredoctal (i.e., `\001' etc.)output commandplainportraitquestion-mark (i.e., `?')received signal %d: %srestored file `%s'rows firstsaved into the file `%s'selected automaticallysent to the default printersent to the printer `%s'sent to the standard outputsimple backups of every filespace (i.e., ` ')too many includesunexpected character `%c'unknown encoding `%s'unknown encoding `%s', ignoredunknown medium `%s'unknown user option `%s'userwrite erroryesProject-Id-Version: a2ps 4.12j Report-Msgid-Bugs-To: POT-Creation-Date: 2007-12-29 11:28+0800 PO-Revision-Date: 2000-01-27 23:28+03:00 Last-Translator: Dmitry S. Sivachenko Language-Team: Russian MIME-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Transfer-Encoding: 8bit ðÕÓÔÏ. --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* ÕÓÅËÁÔØ ÄÌÉÎÎÙÅ ÓÔÒÏËÉ -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[=ôåëóô] ÓÏÚÄÁÔØ ÏÇÌÁ×ÌÅÎÉÅ -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 ËÏÌÉÞÅÓÔ×Ï ËÏÐÉÊ = %d ÞÉÓÌÏ ÓÔÏÒÏÎ ÎÁ ÌÉÓÔÅ = %s ÏÐÒÅÄÅÌÅÎÉÑ ÕÓÔÒÏÊÓÔ×Á ÓÔÒÁÎÉÃÙ = ÂÕÍÁÇÁ ÐÏ ÕÍÏÌÞÁÎÉÀ = %s%s, %s ÒÁÓËÌÁÄËÁ ÌÉÓÔÁ = %d x %d, %s ÒÁÍËÉ = %s ×ÙÒÁ×ÎÉ×ÁÎÉÅ ÆÁÊÌÁ = %s ×ÎÕÔÒÅÎÎÑÑ ÇÒÁÎÉÃÁ = %d ÎÏÍÅÒÁ ÓÔÒÏË = %s ÆÏÒÍÁÔ = %s ÛÁÇ ÔÁÂÕÌÑÃÉÉ = %d ÎÅÐÅÞÁÔÁÅÍÙÊ ÆÏÒÍÁÔ = %s ÐÒÅÄ×ÁÒÉÔÅÌØÎÁÑ ÐÏÄÁÞÁ ÓÔÒÁÎÉÃÙ = %s ÏÐÒÅÄÅÌÅÎÉÑ statusdict = ÎÁÂÏÒ ÓÔÉÌÅÊ = %s ÕÒÏ×ÅÎØ ×ÙÄÅÌÅÎÉÑ = %s ÕÒÏ×ÅÎØ ÕÓÅÞÅÎÉÑ = %d ÕÓÅÞÅÎÉÅ ÓÔÒÏË = %s ÉÎÔÅÒÐÒÅÔÁÃÉÑ = %s ËÏÎÅà ÓÔÒÏËÉ = %s ËÏÄÉÒÏ×ËÁ = %s ÚÁÇÏÌÏ×ÏË ÄÏËÕÍÅÎÔÁ = %s ××ÏÄÎÁÑ ÞÁÓÔØ = %s ÐÅÞÁÔÁÔØ ×ÓÅÇÄÁ = %s ÄÅÌÅÇÉÒÏ×ÁÎÉÅ = %s ÕÒÏ×ÅÎØ ÐÏÄÒÏÂÎÏÓÔÉ = %d ËÏÍÁÎÄÁ file = %s ÂÉÂÌÉÏÔÅË ÐÕÔÅÊ = %d %B %Y, %A%d %b %y%d ÚÎÁËÏ× × ÓÔÒÏËÅ%d ÓÔÒÏË ÎÁ ÓÔÒÁÎÉÃÅ%s, ÄÅÌÅÇÉÒÏ×ÁÎ %s%s: ÎÅÄÏÐÕÓÔÉÍÙÊ ËÌÀÞ -- %c %s: ÎÅ×ÅÒÎÙÊ ÁÒÇÕÍÅÎÔ ÄÌÑ ÜËÒÁÎÉÒÕÀÝÅÊ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ %s%c%s: ÎÅ×ÅÒÎÙÊ ËÌÀÞ -- %c %s: ÎÅ×ÅÒÎÙÊ ÒÁÚÄÅÌÉÔÅÌØ `%s%c' ÄÌÑ ÜËÒÁÎÉÒÕÀÝÅÊ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ `%s'%s: ÐÒÏÐÕÝÅÎÏ `%c' ÄÌÑ ÜËÒÁÎÉÒÕÀÝÅÊ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ %s%c%s: ËÌÀÞ `%c%s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÂÅÚ ÁÒÇÕÍÅÎÔÁ %s: ÎÅÏÄÎÏÚÎÁÞÎÙÊ ËÌÀÞ `%s' %s: ËÌÀÞ `%s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ Ó ÁÒÇÕÍÅÎÔÏÍ %s: ËÌÀÞ `--%s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÂÅÚ ÁÒÇÕÍÅÎÔÁ %s: ËÌÀÞ `-W %s' ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ ÂÅÚ ÁÒÇÕÍÅÎÔÁ %s: ÎÅÏÄÎÏÚÎÁÞÎÙÊ ËÌÀÞ `-W %s' %s: ËÌÀÞ ÄÏÌÖÅÎ ÉÓÐÏÌØÚÏ×ÁÔØÓÑ Ó ÁÒÇÕÍÅÎÔÏÍ -- %c %s: ÓÌÉÛËÏÍ ÄÌÉÎÎÙÊ ÁÒÇÕÍÅÎÔ ÄÌÑ ÜËÒÁÎÉÒÕÀÝÅÊ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ %s%s: ÎÅÉÚ×ÅÓÔÎÙÊ `%s' ËÏÄ ÜËÒÁÎÉÒÕÀÝÅÊ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ `%c' (%d)%s: ÎÅÉÚ×ÅÓÔÎÙÊ ËÌÀÞ `%c%s' %s: ÎÅÉÚ×ÅÓÔÎÙÊ ËÌÀÞ `--%s' 'ðÏÓÌÅ ×ÙÐÏÌÎÅÎÉÑ ÚÁÄÁÞÉ, ÕÓÐÅÛÎÏ ÚÁ×ÅÒÛÉÔØÓÑ. ðÏÄÒÏÂÎÙÊ ÓÐÉÓÏË ÍÏÖÅÔ ÐÒÅÄÏÓÔÁ×ÉÔØ ÄÏÐÏÌÎÉÔÅÌØÎÕÀ ÐÏÍÏÝØ ÐÏ ËÏÎËÒÅÔÎÙÍ ×ÏÚÍÏÖÎÏÓÔÑÍ. ðÒÉÌÏÖÅÎÉÑ, ÓËÏÎÆÉÇÕÒÉÒÏ×ÁÎÎÙÅ ÄÌÑ ÄÅÌÅÇÉÒÏ×ÁÎÉÑðÏ ÕÍÏÌÞÁÎÉÀ, 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 Copyright (C) 1999 Free Software Foundation, Inc.ðÒÉÎÔÅÒ ÐÏ ÕÍÏÌÞÁÎÉÀäÅÌÅÇÉÒÏ×ÁÎÉÅ `%s', ÏÔ %s Ë %s çÌÏÂÁÌØÎÙÅ: úÁÇÏÌÏ×ËÉ: úÁÇÏÌÏ×ËÉ: ÷ÈÏÄÎÙÅ ÄÁÎÎÙÅ: ÷ÎÕÔÒÅÎÎÉÅ ÐÁÒÁÍÅÔÒÙ: éÚ×ÅÓÔÎÙÅ ËÏÄÉÒÏ×ËÉéÚ×ÅÓÔÎÙÅ ÛÒÉÆÔÙéÚ×ÅÓÔÎÙÅ ÎÏÓÉÔÅÌÉéÚ×ÅÓÔÎÙÅ ÕÓÔÒÏÊÓÔ×Á ×Ù×ÏÄÁ (ÐÒÉÎÔÅÒÙ É Ô.Ä.)éÚ×ÅÓÔÎÙÅ ÏÐÉÓÁÎÉÑ PostScript-ÐÒÉÎÔÅÒÁéÚ×ÅÓÔÎÙÅ ××ÏÄÎÙÅ ÞÁÓÔÉéÚ×ÅÓÔÎÙÅ ÓÔÉÌÅ×ÙÅ ÎÁÂÏÒÙéÚ×ÅÓÔÎÙÅ ÐÏÌØÚÏ×ÁÔÅÌØÓËÉÅ ËÌÀÞÉéÚ×ÅÓÔÎÙÅ ÐÅÒÅÍÅÎÎÙÅðÁÍÑÔØ ÉÓÞÅÒÐÁÎÁéÍÑ÷ÙÈÏÄÎÙÅ ÄÁÎÎÙÅ: óÔÒÁÎÉÃÁ %dóÔÒÁÎÉÃÁ %d/%cóÔÒÁÎÉÃÁ %d/%dPostScript: óÔÒÕËÔÕÒÎÁÑ ÐÅÞÁÔØ: ðÅÞÁÔÁÌ %sðÅÞÁÔÁÌ %s Ó %sï ÏÛÉÂËÁÈ × ÐÒÏÇÒÁÍÍÅ ÓÏÏÂÝÁÊÔÅ ÐÏ ÁÄÒÅÓÕ . ìÉÓÔÙ: óÏÄÅÒÖÁÎÉÅúÁÄÁÞÉ: ôåëóôÙ ÍÏÇÕÔ ÉÓÐÏÌØÚÏ×ÁÔØ ÓÐÅÃÉÁÌØÎÙÅ ÜËÒÁÎÉÒÕÀÝÉÅ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ. ëÌÀÞÉ -1.. -9 ×ÌÉÑÀÔ ÎÁ ÎÅËÏÔÏÒÙÅ ÏÓÎÏ×ÎÙÅ ÐÁÒÁÍÅÔÒÙ ÄÌÑ ÕÓÔÁÎÏ×ËÉ ÐÒÅÄÏÐÒÅÄÅÌÅÎÎÙÈ ÒÁÓËÌÁÄÏË Ó 80 ËÏÌÏÎËÁÍÉ. ôÁËÉÍ ÏÂÒÁÚÏÍ, ÐÏÒÑÄÏË ×ÁÖÅÎ: `-R -f40 -2' ÜË×É×ÁÌÅÎÔÎÏ `-2'. äÌÑ ÉÚÍÅÎÅÎÉÑ ÒÁÓËÌÁÄËÉ, ÉÓÐÏÌØÚÕÊÔÅ `-2Rf40', ÉÌÉ ËÏÍÂÉÎÉÒÕÊÔÅ ÐÒÏÓÔÙÅ ËÌÀÞÉ (`--columns', `--font-size', É Ô.Ä.). üÔÏ Ó×ÏÂÏÄÎÏÅ ÐÒÏÇÒÁÍÍÎÏÅ ÏÂÅÓÐÅÞÅÎÉÅ; ÕÓÌÏ×ÉÑ ËÏÐÉÒÏ×ÁÎÉÑ ÐÒÉ×ÅÄÅÎÙ × ÉÓÈÏÄÎÙÈ ÔÅËÓÔÁÈ ÐÒÏÇÒÁÍÍÙ. îÅÔ îéëáëéè ÇÁÒÁÎÔÉÊ; ÄÁÖÅ ÇÁÒÁÎÔÉÉ ëïííåòþåóëïê ãåîîïóôé ÉÌÉ ðòéçïäîïóôé äìñ ëïîëòåôîïê ãåìé. ðÏÐÒÏÂÕÊÔÅ `%s --help' ÄÌÑ ÐÏÌÕÞÅÎÉÑ ÄÏÐÏÌÎÉÔÅÌØÎÏÊ ÉÎÆÏÒÍÁÃÉÉ. îÅÉÚ×ÅÓÔÎÙÊ ÐÒÉÎÔÅÒîÅÉÚ×ÅÓÔÎÙÊ ÐÏÌØÚÏ×ÁÔÅÌØîÅÉÚ×ÅÓÔÎÁÑ ÓÉÓÔÅÍÎÁÑ ÏÛÉÂËÁðÒÁ×ÉÌØÎÙÍÉ ÁÒÇÕÍÅÎÔÁÍÉ Ñ×ÌÑÀÔÓÑ ÞÉÓÌÁ Ó ÐÌÁ×ÁÀÝÅÊ ÔÏÞËÏÊ f, ÔÁËÉÅ ËÁË: %s ðÒÁ×ÉÌØÎÙÍÉ ÁÒÇÕÍÅÎÔÁÍÉ Ñ×ÌÑÀÔÓÑ ÃÅÌÙÅ ÞÉÓÌÁ n, ÔÁËÉÅ ËÁË: %s ðÒÁ×ÉÌØÎÙÅ ÁÒÇÕÍÅÎÔÙ:÷ÉÒÔÕÁÌØÎÙÅ ÓÔÒÁÎÉÃÙ: ðÒÉ ×ËÌÀÞÅÎÎÏÍ ÄÅÌÅÇÉÒÏ×ÁÎÉÉ, a2ps ÍÏÖÅÔ ÉÓÐÏÌØÚÏ×ÁÔØ ÄÒÕÇÉÅ ÐÒÉÌÏÖÅÎÉÑ ÄÌÑ ÏÂÒÁÂÏÔËÉ ÆÁÊÌÏ×, ËÏÔÏÒÙÅ ÎÅ ÄÏÌÖÎÙ ÐÅÞÁÔÁÔØÓÑ × ÎÅÏÂÒÁÂÏÔÁÎÎÏÍ ×ÉÄÅ, ÎÁÐÒÉÍÅÒ HTML, PostScript, PDF, É Ô.Ä. îÁÐÉÓÁÌ %s. [%d ÓÔÒÏË ÕÓÅÞÅÎÏ] [%s (%s): ÓÔÒÁÎÉÃ: %d, ÌÉÓÔÏ×: %d [%s (%s): %d ÓÔÒÁÎÉÃÙ ÎÁ 1 ÌÉÓÔÅ] [%s (%s): 1 ÓÔÒÁÎÉÃÁ ÎÁ 1 ÌÉÓÔÅ] [%s (%s): ÚÁ×ÅÒÛÉÌÓÑ Ó ÏÛÉÂËÏÊ. ðÒÏÉÇÎÏÒÉÒÏ×ÁÎÏ] [%s (Ä×ÏÉÞÎÙÊ): ÉÇÎÏÒÉÒÏ×ÁÎ] [%s (ÎÅÐÅÞÁÔÁÅÍÙÊ): ÉÇÎÏÒÉÒÏ×ÁÎ] [1 ÓÔÒÏËÁ ÕÓÅÞÅÎÁ] [÷ÙÈÏÄÎÏÊ ÐÏÔÏË ÐÕÓÔ] [÷ÓÅÇÏ: ÓÔÒÁÎÉÃ: %d, ÌÉÓÔÏ×: %d] %s [÷ÓÅÇÏ: %d ÓÔÒÁÎÉÃÙ ÎÁ 1 ÌÉÓÔÅ] %s [÷ÓÅÇÏ: 1 ÓÔÒÁÎÉÃÁ ÎÁ 1 ÌÉÓÔÅ] %s ``%s' Ñ×ÌÑÅÔÓÑ Ä×ÏÉÞÎÙÍ ÆÁÊÌÏÍ, ÐÅÞÁÔØ ÐÒÅÒ×ÁÎÁ`%s' Ñ×ÌÑÅÔÓÑ ËÁÔÁÌÏÇÏÍ`%s' ÎÅ ÉÍÅÅÔ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÊ `%s'ÎÅÏÄÎÏÚÎÁÞÎÙÊ ÁÒÇÕÍÅÎÔ %s ÄÌÑ `%s'ÐÒÏÉÚ×ÏÌØÎÏÇÏ ÔÉÐÁÒÅÖÉÍ Á×ÔÏÍÁÔÉÞÅÓËÏÇÏ ×ÙÂÏÒÁ ÓÔÉÌÅÊ ÏÔÍÅÎÅÎÎÅ ÕÄÁÅÔÓÑ ÚÁËÒÙÔØ ËÁÔÁÌÏÇ `%s'ÎÅ ÕÄÁÅÔÓÑ ÓËÏÍÐÉÌÉÒÏ×ÁÔØ ÒÅÇÕÌÑÒÎÏÅ ×ÙÒÁÖÅÎÉÅ `%s': %sÎÅ ÕÄÁÅÔÓÑ ÓÏÚÄÁÔØ ÆÁÊÌ `%s'ÎÅ ÕÄÁÅÔÓÑ ÎÁÊÔÉ ÆÁÊÌ `%s'ÎÅ ÕÄÁÅÔÓÑ ÎÁÊÔÉ ÓÔÉÌÅ×ÏÊ ÎÁÂÏÒ `%s': ÉÓÐÏÌØÚÕÅÔÓÑ ÐÒÏÓÔÏÊ ÓÔÉÌØÎÅ ÕÄÁÅÔÓÑ ÐÏÌÕÞÉÔØ ÉÍÑ ÔÅËÕÝÅÇÏ ÒÁÂÏÞÅÇÏ ËÁÔÁÌÏÇÁÎÅ ÕÄÁÅÔÓÑ ÐÏÌÕÞÉÔØ ÉÎÆÏÒÍÁÃÉÀ Ï ÆÁÊÌÅ `%s'ÎÅ ÕÄÁÅÔÓÑ ÏÔËÒÙÔØ ËÁÎÁÌ ÎÁ `%s'ÎÅ ÕÄÁÅÔÓÑ ÏÔËÒÙÔØ ÆÁÊÌ `%s'ÎÅ ÕÄÁÅÔÓÑ ÏÂÒÁÂÏÔÁÔØ `%s', ËÏÔÏÒÙÊ ÔÒÅÂÕÅÔ a2ps ×ÅÒÓÉÉ %sÎÅ ÕÄÁÅÔÓÑ ÐÅÒÅÉÍÅÎÏ×ÁÔØ ÆÁÊÌ `%s' × `%s'ÕÐÒÁ×ÌÑÀÝÉÅ ÓÉÍ×ÏÌÙ (Ô.Å. `^C', `M-^C' É Ô.Ä.)ÓÎÁÞÁÌÁ ÓÔÏÌÂÃÙÒÁÚÍÅÒÙËÁÖÄÙÅ %d ÓÔÒÏËËÁÖÄÁÑ ÓÔÒÏËÁemacs (Ô.Å. `C-c', `M-C-c' É Ô.Ä.)ËÏÎÅà ÓÔÒÏËÉ × %sËÏÎÅà ÓÔÒÏËÉ ×ÎÕÔÒÉ ÓÔÒÏËÏ×ÏÊ ËÏÎÓÔÁÎÔÙÛÒÉÆÔ %f ÓÌÉÛËÏÍ ÂÏÌØÛÏÊÒÁÚÍÅÒ ÛÒÉÆÔÁ ÒÁ×ÅÎ %gptÖÉÒÎÙÊÛÅÓÔÎÁÄÃÁÔÅÒÉÞÎÏÅ ÞÉÓÌÏ (Ô.Å. `\x0a' É Ô.Ä.)ÎÅÐÏÌÎÁÑ ÉÎÆÏÒÍÁÃÉÑ Ï ÎÁÞÅÒÔÁÎÉÑÈÎÅ×ÅÒÎÙÊ ÁÒÇÕÍÅÎÔ %s ÄÌÑ `%s'ÎÅ×ÅÒÎÙÊ ÁÒÇÕÍÅÎÔ `%s' ÄÌÑ `%s'ÎÅ×ÅÒÎÏÅ ÏÐÒÅÄÅÌÅÎÉÅ ÐÒÉÎÔÅÒÁ `%s': %sÎÅ×ÅÒÎÏÅ ÎÁÞÅÒÔÁÎÉÅ `%s'ÎÅÄÏÐÕÓÔÉÍÙÊ ÉÎÔÅÒ×ÁÌ `%s'ÎÅ×ÅÒÎÙÊ ËÌÀÞ `%s'ÎÅ×ÅÒÎÙÊ ÉÄÅÎÔÉÆÉËÁÔÏÒ ÐÅÒÅÍÅÎÎÏÊ `%s'ÎÅ×ÅÒÎÙÊ ÎÏÍÅÒ ×ÅÒÓÉÉ `%s'ÇÏÒÉÚÏÎÔÁÌØÎÏÐÒÏÐÕÝÅÎ ÁÒÇÕÍÅÎÔ ÄÌÑ `%s'ÎÉËÏÇÄÁ ÎÅ ÓÏÚÄÁ×ÁÔØ ÒÅÚÅÒ×ÎÙÅ ËÏÐÉÉÎÅÔÎÅÔ ËÏÍÁÎÄÙ ÄÌÑ `%s' (%s%s)ÎÅ ÏÐÒÅÄÅÌÅÎ ËÌÀÞ ÄÌÑ `%s'ÍÉÎÉÍÁÌØÎÙÊÏÂÙÞÎÙÊÎÕÍÅÒÏ×ÁÎÎÙÅ ÒÅÚÅÒ×ÎÙÅ ËÏÐÉÉ ËÁÖÄÏÇÏ ÆÁÊÌÁîÕÍÅÒÏ×ÁÎÎÙÅ ËÏÐÉÉ ÄÌÑ ÕÖÅ ÐÒÏÎÕÍÅÒÏ×ÁÎÎÙÈ ÆÁÊÌÏ×, É ÐÒÏÓÔÏÅ ÒÅÚÅÒ×ÎÏÅ ËÏÐÉÒÏ×ÁÎÉÅ ÄÌÑ ÏÓÔÁÌØÎÙÈÕÓÔÁÒÅ×ÛÁÑ ÚÁÐÉÓØ `%s'. éÇÎÏÒÉÒÏ×ÁÎÁ×ÏÓØÍÅÒÉÞÎÏÅ ÞÉÓÌÏ (Ô.Å. `\001' É Ô.Ä.)ËÏÍÁÎÄÁ ×Ù×ÏÄÁÐÒÏÓÔÏÊ×ÅÒÔÉËÁÌØÎÏÚÎÁË ×ÏÐÒÏÓÁ (Ô.Å. `?')ÐÏÌÕÞÅÎ ÓÉÇÎÁÌ %d: %sÆÁÊÌ `%s' ×ÏÓÓÔÁÎÏ×ÌÅÎÓÎÁÞÁÌÁ ÓÔÒÏËÉÓÏÈÒÁÎÅÎ × ÆÁÊÌ `%s'×ÙÂÒÁÎ Á×ÔÏÍÁÔÉÞÅÓËÉÏÔÐÒÁ×ÌÅÎ ÎÁ ÐÒÉÎÔÅÒ ÐÏ ÕÍÏÌÞÁÎÉÀÏÔÐÒÁ×ÌÅÎ ÎÁ ÐÒÉÎÔÅÒ `%s'ÏÔÐÒÁ×ÌÅÎ ÎÁ ÓÔÁÎÄÁÒÔÎÙÊ ×Ù×ÏÄÐÒÏÓÔÏÅ ÒÅÚÅÒ×ÎÏÅ ËÏÐÉÒÏ×ÁÎÉÅ ËÁÖÄÏÇÏ ÆÁÊÌÁÐÒÏÂÅÌ (Ô.Å. ` ')ÓÌÉÛËÏÍ ÍÎÏÇÏ ×ËÌÀÞÅÎÉÊÎÅÏÖÉÄÁÎÎÙÊ ÚÎÁË `%c'ÎÅÉÚ×ÅÓÔÎÁÑ ËÏÄÉÒÏ×ËÁ `%s'ÎÅÉÚ×ÅÓÔÎÁÑ ËÏÄÉÒÏ×ËÁ `%s', ÉÇÎÏÒÉÒÏ×ÁÎÁÎÅÉÚ×ÅÓÔÎÙÊ ÎÏÓÉÔÅÌØ `%s'ÎÅÉÚ×ÅÓÔÎÙÊ ÐÏÌØÚÏ×ÁÔÅÌØÓËÉÊ ËÌÀÞ `%s'ÐÏÌØÚÏ×ÁÔÅÌØÏÛÉÂËÁ ÚÁÐÉÓÉÄÁa2ps-4.14/po/no.po0000644000175000017500000007207410735337367013247 0ustar mhattamhatta# Norwegian Messages for a2ps # Copyright (C) 1998 Free Software Foundation, Inc. # Jon Ross , 1998 msgid "" msgstr "" "Project-Id-Version: a2ps 4.12\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-12-29 11:28+0800\n" "PO-Revision-Date: 1999-02-11 17:50+01:00\n" "Last-Translator: Jon Ross \n" "Language-Team: Norwegian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8-bit\n" #: src/buffer.c:68 msgid "any type" msgstr "alle typer" #: src/delegate.c:137 confg.gperf:168 lib/encoding.c:530 lib/encoding.c:576 #: lib/encoding.c:616 lib/output.c:302 lib/pair_ht.c:296 lib/prolog.c:146 #, c-format msgid "missing argument for `%s'" msgstr "det mangler argument efter `%s'" #: src/delegate.c:260 lib/routines.c:160 lib/xbackupfile.c:248 #: lib/xbackupfile.c:276 lib/xbackupfile.c:284 #, c-format msgid "cannot create file `%s'" msgstr "kan ikke opprete filen `%s'" #: src/delegate.c:269 src/select.c:193 lib/routines.c:190 lib/routines.c:196 #, c-format msgid "cannot open a pipe on `%s'" msgstr "kan ikke opprette et rør på `%s'" #: src/delegate.c:389 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "Delegering `%s', fra %s til %s\n" #: src/delegate.c:408 src/delegate.c:430 msgid "Applications configured for delegation" msgstr "Applikasjoner konfigurert for delegering" #: src/generate.c:88 #, c-format msgid "`%s' is a directory" msgstr "`%s' er en katalog" #: src/generate.c:96 src/main.c:560 src/main.c:582 confg.gperf:192 #: confg.gperf:355 lib/routines.c:154 #, c-format msgid "cannot open file `%s'" msgstr "kan ikke åpne filen `%s'" #: src/generate.c:101 lib/xbackupfile.c:224 #, c-format msgid "cannot get informations on file `%s'" msgstr "kan ikke innhente informasjon om filen `%s'" #: src/generate.c:168 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): 1 side på 1 ark]\n" #: src/generate.c:174 #, c-format msgid "[%s (%s): %d pages on 1 sheet]\n" msgstr "[%s (%s): %d sider på 1 ark]\n" #: src/generate.c:181 #, c-format msgid "[%s (%s): %d pages on %d sheets]\n" msgstr "[%s (%s): %d sider på %d ark]\n" #: src/generate.c:208 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[Totalt: 1 side på 1 ark] %s\n" #: src/generate.c:212 #, c-format msgid "[Total: %d pages on 1 sheet] %s\n" msgstr "[Totalt: %d sider på 1 ark] %s\n" #: src/generate.c:217 #, c-format msgid "[Total: %d pages on %d sheets] %s\n" msgstr "[Totalt: %d sider på %d ark] %s\n" #: src/generate.c:226 msgid "[1 line wrapped]\n" msgstr "" #: src/generate.c:229 #, fuzzy, c-format msgid "[%d lines wrapped]\n" msgstr "%d linjer per side" #: src/generate.c:242 msgid "[No output produced]\n" msgstr "[Ikke noe data produsert]\n" #: src/generate.c:314 #, c-format msgid "%s, delegated to %s" msgstr "%s, delegert til %s" #: src/generate.c:322 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): feilet. Ignorert]\n" #: src/generate.c:330 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (ikke utskrivbar): ignorert]\n" #: src/generate.c:339 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (binær): ignorert]\n" #: src/generate.c:360 msgid "plain" msgstr "enkel" #: lexssh.l:348 msgid "end-of-line in string constant" msgstr "end-of-line i strengkonstant" #: lexssh.l:415 src/sheets-map.l:153 src/sheets-map.l:192 #, fuzzy, c-format msgid "end of line inside a %s" msgstr "end-of-line i regulært uttrykk" #: src/main.c:203 #, c-format msgid "received signal %d: %s" msgstr "mottok signal %d: %s" #: src/main.c:242 msgid "heavy" msgstr "kraftig" #: src/main.c:246 msgid "normal" msgstr "normal" #: src/main.c:250 msgid "none" msgstr "ikke" #: src/main.c:324 src/main.c:328 msgid "yes" msgstr "ja" #: src/main.c:325 src/main.c:328 src/main.c:369 msgid "no" msgstr "nei" #: src/main.c:335 #, c-format msgid "Configuration status of %s %s\n" msgstr "Konfigurasjonsstatus for %s %s\n" #: src/main.c:339 src/main.c:697 msgid "Sheets:\n" msgstr "Ark:\n" #: src/main.c:340 #, 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" msgstr "" " medium = %s%s, %s\n" " layout per side = %d x %d %s\n" " rammer = %s\n" " fil alignment = %s\n" " marg på innside = %d\n" #: src/main.c:349 msgid "portrait" msgstr "stående (portrait)" #: src/main.c:349 msgid "landscape" msgstr "liggende (landscape)" #: src/main.c:358 #, c-format msgid "%d characters per line" msgstr "%d tegn per linje" #: src/main.c:361 #, c-format msgid "%d lines per page" msgstr "%d linjer per side" #: src/main.c:364 #, c-format msgid "font size is %gpt" msgstr "fontstørrelse er %g punkter" #: src/main.c:373 msgid "each line" msgstr "hver linje" #: src/main.c:377 #, c-format msgid "each %d lines" msgstr "hver av %d linjer" #: src/main.c:380 src/main.c:718 msgid "Virtual pages:\n" msgstr "Virituelle sider:\n" #: src/main.c:381 #, c-format msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %d\n" " non printable format = %s\n" msgstr "" " nummerer linjer = %s\n" " formater = %s\n" " tabulatorstørrelse = %d\n" " format for ikke-skrivbare tegn = %s\n" #: src/main.c:392 msgid "Headers:\n" msgstr "Headere:\n" #: src/main.c:393 #, 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:412 src/main.c:747 msgid "Input:\n" msgstr "Input:\n" #: src/main.c:413 #, 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:438 src/main.c:504 msgid "selected automatically" msgstr "valgt automatisk" #: src/main.c:441 src/main.c:766 msgid "Pretty-printing:\n" msgstr "Pen utskrift:\n" #: src/main.c:442 #, 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:462 msgid "never make backups" msgstr "aldri ta sikkerhetskopi" #: src/main.c:466 msgid "simple backups of every file" msgstr "enkel sikkerhetskopi av hver fil" #: src/main.c:471 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:476 msgid "numbered backups of every file" msgstr "nummerert sikkerhetskopi av hver fil" #: src/main.c:480 src/main.c:775 msgid "Output:\n" msgstr "Utdata:\n" #: src/main.c:481 #, 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:494 src/main.c:786 msgid "PostScript:\n" msgstr "PostScript:\n" #: src/main.c:495 #, 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 = " msgstr "" " magic number = %s\n" " skriverbeskrivelse (PPD) = %s\n" " default PPD = %s\n" " sidemerkingsformat = %s\n" " antall kopier = %d\n" " sider per ark = %s\n" " \"page device\" definisjoner = " #: src/main.c:515 #, c-format msgid " statusdict definitions = " msgstr " \"statusdict\" definisjoner =" #: src/main.c:518 #, c-format msgid " page prefeed = %s\n" msgstr " formating av sider = %s\n" #: src/main.c:527 msgid "Internals:\n" msgstr "Internde detaljer:\n" #: src/main.c:528 #, fuzzy, c-format msgid "" " verbosity level = %d\n" " file command = %s\n" " library path = \n" msgstr "" " bable-nivå (verbose) = %d\n" " file-kommando = %s\n" " katalog for temporære filer = %s\n" " sti til bibliotek = \n" #: src/main.c:653 #, 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" msgstr "" "Bruk: %s [OPSJONER]... FILER...\n" " eller: %s [OPSJONER]...\n" "for å skrive ut FILER eller for å skrite ut standard in.\n" "Obligatoriske argumenter til lange opsjoner er obligatoriske for korte og.\n" "Lange opsjoner merket med * må ha \"yes\" eller \"no\" som argument.\n" "korte opsjoner betyr `yes'.\n" #: src/main.c:668 msgid "Tasks:\n" msgstr "" #: src/main.c:669 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" msgstr "" #: src/main.c:680 msgid "" "After having performed the task, exit successfully. Detailed lists may\n" "provide additional help on specific features.\n" msgstr "" #: src/main.c:688 msgid "Global:\n" msgstr "Global:\n" #: src/main.c:689 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 holde kjeft\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:698 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" msgstr "" #: src/main.c:711 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:719 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:730 msgid "Headings:\n" msgstr "Overskrifter:\n" #: src/main.c:732 #, 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:743 msgid "The TEXTs may use special escapes.\n" msgstr "" #: src/main.c:748 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:760 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:767 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:776 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:787 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:801 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" msgstr "" #: src/main.c:822 #, 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" #: src/main.c:824 #, fuzzy msgid "Report bugs to .\n" msgstr "Rapporter feil til \n" #: src/main.c:942 #, 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" #: src/main.c:1173 msgid "Table of Content" msgstr "Innholdsfortegnelse" #: src/parsessh.y:236 #, 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:111 #, c-format msgid "unexpected character `%c'" msgstr "" #: src/sheets-map.l:211 lexppd.l:211 msgid "too many includes" msgstr "" #: src/sheets-map.l:296 src/sheets-map.l:303 #, fuzzy, c-format msgid "no key defined for `%s'" msgstr "finner ikke filen `%s%s'" #: src/select.c:122 src/ssheet.c:866 fonts.l:838 fonts.l:840 fonts.l:842 #: lib/pathwalk.c:328 lib/pathwalk.c:414 #, fuzzy, c-format msgid "cannot find file `%s'" msgstr "finner ikke filen `%s%s'" #: src/select.c:124 msgid "automatic style selection cancelled" msgstr "automatisk mal-valg kanselert" #: src/ssheet.c:295 #, fuzzy, c-format msgid "cannot compile regular expression `%s': %s" msgstr "klarer ikke å tolke det regulære uttrykket `%s': %s" #: src/ssheet.c:974 src/ssheet.c:995 msgid "Known Style Sheets" msgstr "Kjente maler (språk)" #: src/ssheet.c:1461 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "finner ikke mal `%s': bruker standard mal" #: src/sshread.c:453 #, c-format msgid "unknown encoding `%s', ignored" msgstr "ukjent tegnkoding: `%s', ignorert" #: src/version-etc.c:38 msgid "Copyright (C) 1999 Free Software Foundation, Inc." msgstr "" #: src/version-etc.c:60 #, fuzzy, c-format msgid "Written by %s.\n" msgstr "Skrevet ut av %s" #: src/version-etc.c:66 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 "" #: src/versions.c:133 #, c-format msgid "invalid version number `%s'" msgstr "ulovlig versjonsnummer `%s'" #: lib/caret.c:43 msgid "space (i.e., ` ')" msgstr "blank (` ')" #: lib/caret.c:45 msgid "octal (i.e., `\\001' etc.)" msgstr "oktalt (f.eks '\\001' etc.)" #: lib/caret.c:47 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "hexadesimalt (f.eks `\\x0a' etc.)" #: lib/caret.c:49 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "" #: lib/caret.c:51 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "emacs (f.eks `C-c', `M-C-c' etc.)" #: lib/caret.c:53 msgid "question-mark (i.e., `?')" msgstr "spørsmålstegn (`?')" #: lib/closeout.c:71 lib/closeout.c:73 msgid "write error" msgstr "" #: confg.gperf:157 lib/encoding.c:638 #, fuzzy, c-format msgid "invalid option `%s'" msgstr "%s: ugyldig opsjon -- %c" #: confg.gperf:224 confg.gperf:231 confg.gperf:238 #, c-format msgid "invalid definition for printer `%s': %s" msgstr "ugyldig printerdefinisjon `%s': %s" #: confg.gperf:229 confg.gperf:232 lib/printers.c:47 msgid "Unknown Printer" msgstr "Ukjent skriver" #: confg.gperf:236 confg.gperf:239 lib/printers.c:46 msgid "Default Printer" msgstr "Standard skriver" #: confg.gperf:292 lib/options.c:697 #, c-format msgid "invalid variable identifier `%s'" msgstr "ulovlig variabel identifkator `%s'" #: confg.gperf:321 #, c-format msgid "obsolete `%s' entry. Ignored" msgstr "Ignorerer innslaget `%s' fordi det er foreldet/ugyldig" #: lib/encoding.c:1114 lib/encoding.c:1135 msgid "Known Encodings" msgstr "" #: lib/faces.c:156 msgid "incomplete knowledge of faces" msgstr "" #: lib/filtdir.c:113 #, c-format msgid "cannot close directory `%s'" msgstr "klarer ikke å lukke katalogen `%s'" #: lib/getnum.c:63 lib/getnum.c:121 lib/getnum.c:153 lib/getnum.c:221 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "ulovlig argument `%s' for `%s'" #: lib/getnum.c:123 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "Lovlige argumenter er heltall n så : %s\n" #: lib/getnum.c:223 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "Lovlige argumenter er flyttall f så: %s\n" #: lib/jobs.c:308 #, c-format msgid "unknown encoding `%s'" msgstr "ukjent tegnkoding: `%s'" #: lib/madir.c:59 msgid "rows first" msgstr "rader først" #: lib/madir.c:62 msgid "columns first" msgstr "kolonner først" #: lib/media.c:173 #, c-format msgid "unknown medium `%s'" msgstr "ukjent media `%s'" #: lib/media.c:208 lib/media.c:237 msgid "Known Media" msgstr "" #: lib/media.c:211 msgid "Name" msgstr "Navn" #: lib/media.c:212 msgid "dimensions" msgstr "dimensjoner" #: lib/metaseq.c:104 lib/metaseq.c:113 #, c-format msgid "Known Variables" msgstr "Kjente Variabler" #: lib/metaseq.c:162 lib/metaseq.c:531 lib/metaseq.c:548 lib/metaseq.c:608 #: lib/metaseq.c:951 lib/metaseq.c:972 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%s: det mangler `%c' for %s%c escape" #: lib/metaseq.c:288 lib/metaseq.c:300 #, c-format msgid "Printed by %s" msgstr "Skrevet ut av %s" #: lib/metaseq.c:298 #, c-format msgid "Printed by %s from %s" msgstr "Skrevet ut av %s fra %s" #: lib/metaseq.c:308 lib/metaseq.c:327 msgid "cannot get current working directory" msgstr "klarer ikke å finne ut hvilken katalog du står i (`pwd')" #: lib/metaseq.c:341 lib/metaseq.c:534 lib/metaseq.c:563 lib/metaseq.c:652 #: lib/metaseq.c:954 lib/metaseq.c:987 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s: er et for langt argument til %s escape" #: lib/metaseq.c:364 lib/metaseq.c:675 msgid "%b %d, %y" msgstr "%b %d %y" #: lib/metaseq.c:373 lib/metaseq.c:684 msgid "%A %B %d, %Y" msgstr "" #: lib/metaseq.c:419 lib/metaseq.c:448 lib/metaseq.c:491 lib/metaseq.c:724 #: lib/metaseq.c:808 lib/metaseq.c:867 lib/metaseq.c:922 lib/metaseq.c:1099 #: lib/metaseq.c:1234 lib/metaseq.c:1246 lib/metaseq.c:1289 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s: ukjent `%s' escape `%c' (%d)" #: lib/metaseq.c:426 lib/metaseq.c:815 #, c-format msgid "Page %d" msgstr "Side %d" #: lib/metaseq.c:431 lib/metaseq.c:826 #, c-format msgid "Page %d/%c" msgstr "Side %d/%c" #: lib/metaseq.c:593 lib/metaseq.c:1021 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "%s: ulovlig skilletegn `%s%c' for `%s' escape" #: lib/metaseq.c:601 lib/metaseq.c:611 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s: ulovlig argument for %s%c escape" #: lib/metaseq.c:822 #, c-format msgid "Page %d/%d" msgstr "Side %d/%d" #: lib/metaseq.c:1266 msgid "output command" msgstr "utkommando" #: lib/options.c:302 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Bruk `%s --help' for mer informasjon.\n" #: lib/output.c:466 #, fuzzy, c-format msgid "invalid face `%s'" msgstr "%s: ugyldig opsjon -- %c\n" #: lib/output.c:538 #, c-format msgid "`%s' with no matching `%s'" msgstr "`%s' uten matchende `%s'" #: lib/ppd.c:108 msgid "Known Fonts" msgstr "Kjente fonter" #: lib/ppd.c:111 msgid "" "\n" " None.\n" msgstr "" #: lib/ppd.c:149 lib/ppd.c:165 msgid "Known PostScript Printer Descriptions" msgstr "Kjente PostScript Printerbeskrivelser (PPD)" #: lib/prange.c:305 lib/prange.c:323 #, c-format msgid "invalid interval `%s'" msgstr "ulovlig heltallsintervall: `%s'" #: lib/printers.c:396 lib/printers.c:413 #, c-format msgid "no command for the `%s' (%s%s)" msgstr "" #: lib/printers.c:429 msgid "sent to the standard output" msgstr "sendt til standard ut" #: lib/printers.c:430 msgid "sent to the default printer" msgstr "sent til standard skriver" #: lib/printers.c:435 #, c-format msgid "saved into the file `%s'" msgstr "lagret til fil `%s'" #: lib/printers.c:436 #, c-format msgid "sent to the printer `%s'" msgstr "sendt til skriveren `%s'" #: lib/printers.c:613 lib/printers.c:621 msgid "Known Outputs (Printers, etc.)" msgstr "Kjente destinasjoner for utdate (skrivere osb.)" #: lib/prolog.c:98 lib/prolog.c:181 msgid "Known Prologues" msgstr "Kjente prologer" #: lib/prolog.c:579 #, c-format msgid "font %f too big" msgstr "fonten %f er for stor" #: lib/psgen.c:662 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "`%s' er en binærfil, utskrift avbrutt" #: lib/quotearg.c:200 msgid "`" msgstr "" #: lib/quotearg.c:203 msgid "'" msgstr "" #: lib/userdata.c:129 msgid "user" msgstr "bruker" #: lib/userdata.c:130 msgid "Unknown User" msgstr "Ukjent bruker" #: lib/useropt.c:75 #, fuzzy, c-format msgid "unknown user option `%s'" msgstr "ukjent brukeropsjon `%s'" #: lib/useropt.c:86 lib/useropt.c:97 msgid "Known User Options" msgstr "Kjent brukeropsjoner" #: lib/xbackupfile.c:105 lib/xmalloc.c:66 msgid "Memory exhausted" msgstr "All memory oppbrukt" #: lib/xbackupfile.c:240 lib/xbackupfile.c:252 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "klarer ikke å omdøpe fil `%s' til `%s'" #: lib/xbackupfile.c:255 #, c-format msgid "restored file `%s'" msgstr "reddet filen `%s'" #: lib/argmatch.c:159 #, fuzzy, c-format msgid "invalid argument %s for `%s'" msgstr "ulovlig argument `%s' for `%s'" #: lib/argmatch.c:160 #, fuzzy, c-format msgid "ambiguous argument %s for `%s'" msgstr "ulovlig (tvedydig) argument `%s' for `%s'" #: lib/argmatch.c:178 #, c-format msgid "Valid arguments are:" msgstr "Lovlige argumenter er:" #: lib/error.c:102 msgid "Unknown system error" msgstr "Ukjent systemfeil" #: lib/getopt.c:675 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: opsjonen `%s' er ikke ntydig\n" #: lib/getopt.c:700 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: opsjonen `--%s' tillater ikke argumenter\n" #: lib/getopt.c:705 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: opsjonen `%c%s' tillater ikke argument\n" #: lib/getopt.c:723 lib/getopt.c:896 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: opsjonen `%s' må ha et argument\n" #: lib/getopt.c:752 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: ukjent opsjon `--%s'\n" #: lib/getopt.c:756 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: ukjent opsjon `%c%s'\n" #: lib/getopt.c:782 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: ulovlig opsjon -- %c\n" #: lib/getopt.c:785 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: ugyldig opsjon -- %c\n" #: lib/getopt.c:815 lib/getopt.c:945 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: opsjonen må ha et argument -- %c\n" #: lib/getopt.c:862 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: opsjonen `-W %s' er ikke entydig\n" #: lib/getopt.c:880 #, c-format 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 and .\n" #~ msgstr "Skrevet av og \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.14/po/pt.po0000644000175000017500000012252410735337370013244 0ustar mhattamhatta# Mensagens em Português 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 # Akim Demaille 1997 msgid "" msgstr "" "Project-Id-Version: a2ps 4.12\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-12-29 11:28+0800\n" "PO-Revision-Date: 2000-01-14 10:48+01:00\n" "Last-Translator: Paulo Matos \n" "Language-Team: Portuguese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8-bit\n" "Translator: Paulo Matos \n" "Translator: Pedro Morais \n" # src/buffer.c:68 #: src/buffer.c:68 msgid "any type" msgstr "qualquer tipo" # lib/confg.c:264 lib/encoding.c:577 lib/encoding.c:617 lib/prolog.c:146 #: src/delegate.c:137 confg.gperf:168 lib/encoding.c:530 lib/encoding.c:576 #: lib/encoding.c:616 lib/output.c:302 lib/pair_ht.c:296 lib/prolog.c:146 #, c-format msgid "missing argument for `%s'" msgstr "argumento em falta para `%s'" # lib/routines.c:160 lib/xbackupfile.c:248 lib/xbackupfile.c:276 # lib/xbackupfile.c:284 src/delegate.c:260 #: src/delegate.c:260 lib/routines.c:160 lib/xbackupfile.c:248 #: lib/xbackupfile.c:276 lib/xbackupfile.c:284 #, c-format msgid "cannot create file `%s'" msgstr "não consigo criar ficheiro `%s'" # lib/routines.c:190 lib/routines.c:196 src/delegate.c:269 src/select.c:159 #: src/delegate.c:269 src/select.c:193 lib/routines.c:190 lib/routines.c:196 #, c-format msgid "cannot open a pipe on `%s'" msgstr "não consigo abrir pipe em `%s'" # src/delegate.c:389 #: src/delegate.c:389 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "Delegação `%s', de %s para %s\n" # src/delegate.c:408 src/delegate.c:430 #: src/delegate.c:408 src/delegate.c:430 msgid "Applications configured for delegation" msgstr "Aplicações configuradas para delegação" # src/generate.c:88 #: src/generate.c:88 #, c-format msgid "`%s' is a directory" msgstr "`%s' é uma directoria" # lib/confg.c:288 lib/confg.c:451 lib/routines.c:154 src/generate.c:96 # src/main.c:558 src/main.c:580 #: src/generate.c:96 src/main.c:560 src/main.c:582 confg.gperf:192 #: confg.gperf:355 lib/routines.c:154 #, c-format msgid "cannot open file `%s'" msgstr "não consigo abrir ficheiro `%s'" # lib/xbackupfile.c:224 src/generate.c:101 #: src/generate.c:101 lib/xbackupfile.c:224 #, c-format msgid "cannot get informations on file `%s'" msgstr "não consigo obter informações do ficheiro `%s'" # src/generate.c:168 #: src/generate.c:168 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): 1 página numa folha]\n" # src/generate.c:174 #: src/generate.c:174 #, c-format msgid "[%s (%s): %d pages on 1 sheet]\n" msgstr "[%s (%s): %d páginas numa folha]\n" # src/generate.c:181 #: src/generate.c:181 #, c-format msgid "[%s (%s): %d pages on %d sheets]\n" msgstr "[%s (%s): %d páginas em %d folhas]\n" # src/generate.c:208 #: src/generate.c:208 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[Total: 1 página numa folha] %s\n" # src/generate.c:212 #: src/generate.c:212 #, c-format msgid "[Total: %d pages on 1 sheet] %s\n" msgstr "[Total: %d páginas numa folha] %s\n" # src/generate.c:217 #: src/generate.c:217 #, c-format msgid "[Total: %d pages on %d sheets] %s\n" msgstr "[Total: %d páginas em %d folhas] %s\n" # src/generate.c:226 #: src/generate.c:226 msgid "[1 line wrapped]\n" msgstr "[1 linha quebrada (excedeu o máx. caracteres)]\n" # src/generate.c:229 #: src/generate.c:229 #, c-format msgid "[%d lines wrapped]\n" msgstr "[%d linhas quebradas (excedeu o máx. caracteres)]\n" # src/generate.c:242 #: src/generate.c:242 msgid "[No output produced]\n" msgstr "[Nenhuma saída produzida]\n" # src/generate.c:314 #: src/generate.c:314 #, c-format msgid "%s, delegated to %s" msgstr "%s, delegado para %s" # src/generate.c:322 #: src/generate.c:322 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): falhou. Ignorado]\n" # src/generate.c:330 #: src/generate.c:330 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (impossível imprimir): ignorado]\n" # src/generate.c:339 #: src/generate.c:339 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (binário): ignorado]\n" # src/generate.c:360 #: src/generate.c:360 msgid "plain" msgstr "normal" # /home/akim/src/a2ps-4.12/src/lexssh.l:348 #: lexssh.l:348 msgid "end-of-line in string constant" msgstr "fim de linha em string" # /home/akim/src/a2ps-4.12/src/lexssh.l:415 src/sheets-map.l:152 # src/sheets-map.l:191 #: lexssh.l:415 src/sheets-map.l:153 src/sheets-map.l:192 #, c-format msgid "end of line inside a %s" msgstr "fim de linha dentro de %s" # src/main.c:201 #: src/main.c:203 #, c-format msgid "received signal %d: %s" msgstr "recebi o sinal %d: %s" # src/main.c:240 #: src/main.c:242 msgid "heavy" msgstr "pesado" # src/main.c:244 #: src/main.c:246 msgid "normal" msgstr "normal" # src/main.c:248 #: src/main.c:250 msgid "none" msgstr "nenhum" # src/main.c:322 #: src/main.c:324 src/main.c:328 msgid "yes" msgstr "sim" # src/main.c:323 src/main.c:367 #: src/main.c:325 src/main.c:328 src/main.c:369 msgid "no" msgstr "não" # src/main.c:333 #: src/main.c:335 #, c-format msgid "Configuration status of %s %s\n" msgstr "Status de configuração do %s %s\n" # src/main.c:337 src/main.c:694 #: src/main.c:339 src/main.c:697 msgid "Sheets:\n" msgstr "Folhas:\n" # src/main.c:338 #: src/main.c:340 #, 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" msgstr "" " meio = %s%s, %s\n" " layout da página = %d x %d, %s\n" " rebordos = %s\n" " modo compacto = %s\n" " margem interior = %d\n" # src/main.c:347 #: src/main.c:349 msgid "portrait" msgstr "retrato" # src/main.c:347 #: src/main.c:349 msgid "landscape" msgstr "paisagem" # src/main.c:356 #: src/main.c:358 #, c-format msgid "%d characters per line" msgstr "%d caracteres por linha" # src/main.c:359 #: src/main.c:361 #, c-format msgid "%d lines per page" msgstr "%d linhas por página" # src/main.c:362 #: src/main.c:364 #, c-format msgid "font size is %gpt" msgstr "tamanho de fonte é %gpt" # src/main.c:371 #: src/main.c:373 msgid "each line" msgstr "cada linha" # src/main.c:375 #: src/main.c:377 #, c-format msgid "each %d lines" msgstr "cada %d linhas" # src/main.c:378 src/main.c:715 #: src/main.c:380 src/main.c:718 msgid "Virtual pages:\n" msgstr "Páginas virtuais:\n" # src/main.c:379 #: src/main.c:381 #, c-format msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %d\n" " non printable format = %s\n" msgstr "" " números de linha = %s\n" " formato = %s\n" " tamanho de tabulação = %d\n" " formato não imprimível = %s\n" # src/main.c:390 #: src/main.c:392 msgid "Headers:\n" msgstr "Cabeçalhos:\n" # src/main.c:391 #: src/main.c:393 #, 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" " por baixo = %s\n" # src/main.c:410 src/main.c:744 #: src/main.c:412 src/main.c:747 msgid "Input:\n" msgstr "Entrada:\n" # src/main.c:411 #: src/main.c:413 #, 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" " codificação = %s\n" " título do documento = %s\n" " prólogo = %s\n" " imprimir sempre = %s\n" " delegar = %s\n" # src/main.c:436 src/main.c:502 #: src/main.c:438 src/main.c:504 msgid "selected automatically" msgstr "seleccionada automáticamente" # src/main.c:439 src/main.c:763 #: src/main.c:441 src/main.c:766 msgid "Pretty-printing:\n" msgstr "Impressão melhorada:\n" # src/main.c:440 #: src/main.c:442 #, c-format msgid "" " style sheet = %s\n" " highlight level = %s\n" " strip level = %d\n" msgstr "" " folha de estilo = %s\n" " nível de formatação = %s\n" " nível de corte = %d\n" # src/main.c:460 #: src/main.c:462 msgid "never make backups" msgstr "nunca fazer cópias de segurança" # src/main.c:464 #: src/main.c:466 msgid "simple backups of every file" msgstr "cópias de segurança simples de todos os ficheiros" # src/main.c:469 #: src/main.c:471 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" "cópias de segurança numeradas dos ficheiros já numerados,\n" " e simples dos outros" # src/main.c:474 #: src/main.c:476 msgid "numbered backups of every file" msgstr "cópias de segurança numeradas de todos os ficheiros" # src/main.c:478 src/main.c:772 #: src/main.c:480 src/main.c:775 msgid "Output:\n" msgstr "Saída:\n" # src/main.c:479 #: src/main.c:481 #, c-format msgid "" " destination = %s\n" " version control = %s\n" " backup suffix = %s\n" msgstr "" " destino = %s\n" " controlo de versão = %s\n" " sufixo das cópias de segurança = %s\n" # src/main.c:492 src/main.c:782 #: src/main.c:494 src/main.c:786 msgid "PostScript:\n" msgstr "PostScript:\n" # src/main.c:493 #: src/main.c:495 #, 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 = " msgstr "" " número mágico = %s\n" " descrição da impressora (PPD) = %s\n" " PPD por omissão = %s\n" " formato da etiqueta de página = %s\n" " número de cópias = %d\n" " lados por folha = %s\n" " definições do dispositivo de página = " # src/main.c:513 #: src/main.c:515 #, c-format msgid " statusdict definitions = " msgstr " definições do statusdict = " # src/main.c:516 #: src/main.c:518 #, c-format msgid " page prefeed = %s\n" msgstr " prefeed da página = %s\n" # src/main.c:525 #: src/main.c:527 msgid "Internals:\n" msgstr "Detalhes internos:\n" # src/main.c:526 #: src/main.c:528 #, c-format msgid "" " verbosity level = %d\n" " file command = %s\n" " library path = \n" msgstr "" " nível de mensagens = %d\n" " comando de ficheiro = %s\n" " caminho da biblioteca = \n" # src/main.c:651 #: src/main.c:653 #, 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" msgstr "" "Utilização: %s [OPÇÕES]... [FICHEIRO]...\n" "\n" "Converte FICHEIRO(s) ou o standard input para PostScript.\n" "\n" "Argumentos obrigatórios para opções longas também o são para as curtas.\n" "Opções longas marcadas com * necessitam de um argumento yes/no,\n" "opções curtas correspondentes significam `yes'.\n" # src/main.c:665 #: src/main.c:668 msgid "Tasks:\n" msgstr "Tarefas:\n" # src/main.c:666 #: src/main.c:669 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" msgstr "" " --version mostra a versão\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 definições e parâmetros por omissão\n" " --list=TÓPICO mostra lista detalhada sobre o TÓPICO (`delegations',\n" " `encodings', `features', `variables', `media', `ppd',\n" " `printers', `prologues', `style-sheets', `user-options')\n" # src/main.c:677 #: src/main.c:680 msgid "" "After having performed the task, exit successfully. Detailed lists may\n" "provide additional help on specific features.\n" msgstr "" "Após ter realizado a tarefa, termina com sucesso. Listas detalhadas podem\n" "forneçer informação adicional em funcionalidades específicas.\n" # src/main.c:685 #: src/main.c:688 msgid "Global:\n" msgstr "Global:\n" # src/main.c:686 #: src/main.c:689 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[=NÍVEL] liga mensagens, ou põe no NÍVEL\n" " -=, --user-option=OPÇÃO usa o atalho defindo pelo utilizador OPÇÃO\n" " --debug liga funções de debug\n" " -D, --define=CHAVE[:VALOR] limpa a variavel CHAVE ou associa-lhe VALOR\n" # src/main.c:695 #: src/main.c:698 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" msgstr "" " -M, --medium=NOME utiliza medium de saída NOME\n" " -r, --landscape imprime em modo paisagem\n" " -R, --portrait imprime em modo retrato\n" " --columns=NUM número de colunas por folha\n" " --rows=NUM número de linhas por folha\n" " --major=DIRECÇÃO enche primeiro (DIRECÇÃO=) linhas, ou colunas\n" " -1, -2, ..., -9 layouts predefinidos para 1.. 9 páginas virtuais\n" " -A, --file-align=MODO alinha ficheiro separados pelo MODO (fill, rank\n" " page, sheet, ou um número)\n" " -j, --borders* imprime margens à volta das colunas\n" " --margin[=NUM] define uma margem interior de tamanho NUM\n" # src/main.c:708 #: src/main.c:711 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 afectam vários parâmetros primitivos usados na pré-" "definição\n" "de layouts com 80 colunas. Portanto a ordem é relevante: `-R -f40 -2' é\n" "equivalente a `-2'. Para modificar o layout, use `-2Rf40', ou faça " "composição\n" "de opções primitivas (`--columns', `--font-size' etc.).\n" # src/main.c:716 #: src/main.c:719 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 número\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 número de linhas que são impressas por página\n" " -l, --chars-per-line=NUM número de colunas que são impressas por página\n" " -m, --catman processa o ficheiro como um man (igual a -L66)\n" " -T, --tabsize=NUM colocar tamanho da tabulação a NUM\n" " --non-printable-format=FMT especifica como caracteres não imprimíveis o " "são\n" # src/main.c:727 #: src/main.c:730 msgid "Headings:\n" msgstr "Cabeçalhos:\n" # src/main.c:729 #: src/main.c:732 #, 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 sem cabeçalhos de página\n" " -b, --header[=TEXTO] define o cabeçalho da página\n" " -u, --underlay[=TEXTO] imprime TEXTO por baixo de cada página\n" " --center-title[=TEXTO] define título da página como TEXTO\n" " --left-title[=TEXTO] define título 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:740 #: src/main.c:743 msgid "The TEXTs may use special escapes.\n" msgstr "O TEXTo pode usar caracteres de escape.\n" # src/main.c:745 #: src/main.c:748 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[=PÁGINAS] selecciona páginas 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 codificação 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* força impressão de binários\n" " -Z, --delegate* delega ficheiros para outra aplicação\n" " --toc=[TEXTO] gera uma tabela de conteúdos\n" # src/main.c:757 #: src/main.c:760 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 activas, o a2ps pode usar outras aplicções para\n" "processar os ficheiros que não devam ser impressos como texto, e.g., HTML\n" "Postscript, PDF etc.\n" # src/main.c:764 #: src/main.c:767 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 NÍVEL de formatação da impressão\n" " NÍVEL pode ser none, normal ou heavy\n" " -g atalho para --highlight-level=heavy\n" " --strip-level=NUM nível de corte de comentários\n" # src/main.c:773 #: src/main.c:776 #, 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 saída no FICHEIRO. Se o ficheiro é `-',\n" " deixar saída para o stdout.\n" " --version-control=WORD define o controlo de versões\n" " --suffix=SUFIXO define o sufixo de backup\n" " -P, --printer=NOME manda a saída para a impressora NOME\n" " -d manda a saída para a impressora por omissão\n" # src/main.c:783 #: src/main.c:787 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 prólogo PostScript\n" " --ppd[=CHAVE] selecção automática de PPD ou define-a como " "CHAVE\n" " -n, --copies=NUM imprimir NUM cópias de cada página\n" " -s, --sides=MODO configura o MODO duplex (`1' ou `simplex',\n" " `2' ou `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] passa uma definição de disposito para a saída\n" " --statusdict=K[:[:]V] passa uma definição statusdict para a saída\n" " -k, --page-prefeed activar alimentação de página\n" " -K, --no-page-prefeed desactivar alimentação de página\n" # src/main.c:797 #: src/main.c:801 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" msgstr "" "Por omissão o a2ps já está configurado com funcionalidades interessantes.\n" "Para uma impressão melhorada do conteúdo 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 páginas/folha em modo retrato,\n" "\n" " a2ps -=mail -4 mailbox\n" "\n" "Para imprimir como brochura na impressora por omissão, que suporta Duplex,\n" "\n" " a2ps -=book paper.dvi.gz -d\n" # src/main.c:818 #: src/main.c:822 #, fuzzy msgid "" "News, updates and documentation: visit http://www.gnu.org/software/a2ps/.\n" msgstr "" "Novidades, actualizações e documentação:\n" "visite http://www.inf.enst.fr/~demaille/a2ps/\n" "Envie comentários sobre a tradução para \n" # src/main.c:820 #: src/main.c:824 msgid "Report bugs to .\n" msgstr "" "Envie informações sobre erros para \n" "Envie problemas de tradução para \n" # src/main.c:938 #: src/main.c:942 #, 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" # src/main.c:1168 #: src/main.c:1173 msgid "Table of Content" msgstr "Índice" # src/parsessh.y:236 #: src/parsessh.y:236 #, c-format msgid "cannot process `%s' which requires a2ps version %s" msgstr "Não consigo processar `%s' que necessita do a2ps versão %s" # src/sheets-map.l:110 #: src/sheets-map.l:111 #, c-format msgid "unexpected character `%c'" msgstr "caracter `%c' inesperado" # /home/akim/src/a2ps-4.12/lib/lexppd.l:211 src/sheets-map.l:210 #: src/sheets-map.l:211 lexppd.l:211 msgid "too many includes" msgstr "demasiadas inclusões" # src/sheets-map.l:292 src/sheets-map.l:299 #: src/sheets-map.l:296 src/sheets-map.l:303 #, c-format msgid "no key defined for `%s'" msgstr "não há chave definida para `%s'" # /home/akim/src/a2ps-4.12/lib/fonts.l:837 # /home/akim/src/a2ps-4.12/lib/fonts.l:839 # /home/akim/src/a2ps-4.12/lib/fonts.l:841 lib/pathwalk.c:328 # lib/pathwalk.c:414 src/select.c:122 src/ssheet.c:866 #: src/select.c:122 src/ssheet.c:866 fonts.l:838 fonts.l:840 fonts.l:842 #: lib/pathwalk.c:328 lib/pathwalk.c:414 #, c-format msgid "cannot find file `%s'" msgstr "não consigo encontrar o ficheiro `%s'" # src/select.c:124 #: src/select.c:124 msgid "automatic style selection cancelled" msgstr "selecção automática de estilo cancelada" # src/ssheet.c:295 #: src/ssheet.c:295 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "não consigo compilar a expressão regular `%s': %s" # src/ssheet.c:974 src/ssheet.c:995 #: src/ssheet.c:974 src/ssheet.c:995 msgid "Known Style Sheets" msgstr "Estilos conhecidos" # src/ssheet.c:1461 #: src/ssheet.c:1461 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "não consigo achar a folha de estilo `%s': a utilizar estilo normal" # src/sshread.c:453 #: src/sshread.c:453 #, c-format msgid "unknown encoding `%s', ignored" msgstr "codificação `%s' desconhecida, ignorada" # src/version-etc.c:38 #: src/version-etc.c:38 msgid "Copyright (C) 1999 Free Software Foundation, Inc." msgstr "Copyright © 1999 Free Software Foundation, Inc." # src/version-etc.c:60 #: src/version-etc.c:60 #, c-format msgid "Written by %s.\n" msgstr "Impresso por %s.\n" # src/version-etc.c:66 #: src/version-etc.c:66 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 código fonte para saber em que\n" "condições o pode copiar. SEM GARANTIA; nem mesmo de COMERCIALIZAÇÃO ou\n" "de UTILIDADE PARA QUALQUER PROPÓSITO.\n" # src/versions.c:133 #: src/versions.c:133 #, c-format msgid "invalid version number `%s'" msgstr "número de versão ilegal `%s'" # lib/caret.c:43 #: lib/caret.c:43 msgid "space (i.e., ` ')" msgstr "espaço (i.e., ` ')" # lib/caret.c:45 #: lib/caret.c:45 msgid "octal (i.e., `\\001' etc.)" msgstr "octal (i.e., `\\001' etc.)" # lib/caret.c:47 #: lib/caret.c:47 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "hexadecimal (i.e., `\\x0a' etc.)" # lib/caret.c:49 #: lib/caret.c:49 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "caret (i.e., `^C', `M-^C' etc.)" # lib/caret.c:51 #: lib/caret.c:51 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "emacs (i.e., `C-c', `M-C-c' etc.)" # lib/caret.c:53 #: lib/caret.c:53 msgid "question-mark (i.e., `?')" msgstr "interrogação (i.e., `?')" # lib/closeout.c:71 lib/closeout.c:73 #: lib/closeout.c:71 lib/closeout.c:73 msgid "write error" msgstr "erro de escrita" # lib/confg.c:253 lib/encoding.c:639 #: confg.gperf:157 lib/encoding.c:638 #, c-format msgid "invalid option `%s'" msgstr "opção inválida `%s'" # lib/confg.c:320 lib/confg.c:327 lib/confg.c:334 #: confg.gperf:224 confg.gperf:231 confg.gperf:238 #, c-format msgid "invalid definition for printer `%s': %s" msgstr "definição inválida para a impressora `%s': %s" # lib/confg.c:325 lib/confg.c:328 #: confg.gperf:229 confg.gperf:232 lib/printers.c:47 msgid "Unknown Printer" msgstr "Impressora Desconhecida" # lib/confg.c:332 lib/confg.c:335 #: confg.gperf:236 confg.gperf:239 lib/printers.c:46 msgid "Default Printer" msgstr "Impressora por Omissão" # lib/confg.c:388 lib/options.c:703 #: confg.gperf:292 lib/options.c:697 #, c-format msgid "invalid variable identifier `%s'" msgstr "identificador de variável inválido `%s'" # lib/confg.c:417 #: confg.gperf:321 #, c-format msgid "obsolete `%s' entry. Ignored" msgstr "entrada `%s' obsoleta. Ignorada" # lib/encoding.c:1115 lib/encoding.c:1136 #: lib/encoding.c:1114 lib/encoding.c:1135 msgid "Known Encodings" msgstr "Codificações conhecidas" # lib/faces.c:156 #: lib/faces.c:156 msgid "incomplete knowledge of faces" msgstr "conhecimento incompleto das faces" # lib/filtdir.c:113 #: lib/filtdir.c:113 #, c-format msgid "cannot close directory `%s'" msgstr "não consigo fechar o directório `%s'" # lib/getnum.c:63 lib/getnum.c:121 lib/getnum.c:153 lib/getnum.c:221 #: lib/getnum.c:63 lib/getnum.c:121 lib/getnum.c:153 lib/getnum.c:221 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "argumento inválido `%s' para a opção `%s'" # lib/getnum.c:123 #: lib/getnum.c:123 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "Argumentos válidos são inteiros n de modo que: %s\n" # lib/getnum.c:223 #: lib/getnum.c:223 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "Argumentos válidos são reais f de modo que: %s\n" # lib/jobs.c:307 #: lib/jobs.c:308 #, c-format msgid "unknown encoding `%s'" msgstr "codificação `%s' desconhecida" # lib/madir.c:59 #: lib/madir.c:59 msgid "rows first" msgstr "linhas primeiro" # lib/madir.c:62 #: lib/madir.c:62 msgid "columns first" msgstr "colunas primeiro" # lib/media.c:173 #: lib/media.c:173 #, c-format msgid "unknown medium `%s'" msgstr "meio desconhecido `%s'" # lib/media.c:208 lib/media.c:237 #: lib/media.c:208 lib/media.c:237 msgid "Known Media" msgstr "Meio conhecido" # lib/media.c:211 #: lib/media.c:211 msgid "Name" msgstr "Nome" # lib/media.c:212 #: lib/media.c:212 msgid "dimensions" msgstr "dimensões" # lib/metaseq.c:104 lib/metaseq.c:113 #: lib/metaseq.c:104 lib/metaseq.c:113 #, c-format msgid "Known Variables" msgstr "Variáveis Conhecidas" # lib/metaseq.c:531 lib/metaseq.c:548 lib/metaseq.c:608 lib/metaseq.c:951 # lib/metaseq.c:972 #: lib/metaseq.c:162 lib/metaseq.c:531 lib/metaseq.c:548 lib/metaseq.c:608 #: lib/metaseq.c:951 lib/metaseq.c:972 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%s: `%c' em falta para escape %s%c" # lib/metaseq.c:288 lib/metaseq.c:300 #: lib/metaseq.c:288 lib/metaseq.c:300 #, c-format msgid "Printed by %s" msgstr "Impresso por %s" # lib/metaseq.c:298 #: lib/metaseq.c:298 #, c-format msgid "Printed by %s from %s" msgstr "Impresso por %s de %s" # lib/metaseq.c:308 lib/metaseq.c:327 #: lib/metaseq.c:308 lib/metaseq.c:327 msgid "cannot get current working directory" msgstr "não consigo obter o directório actual" # lib/metaseq.c:341 lib/metaseq.c:534 lib/metaseq.c:563 lib/metaseq.c:652 # lib/metaseq.c:954 lib/metaseq.c:987 #: lib/metaseq.c:341 lib/metaseq.c:534 lib/metaseq.c:563 lib/metaseq.c:652 #: lib/metaseq.c:954 lib/metaseq.c:987 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s: argumento demasiado longo para escape %s" # lib/metaseq.c:364 lib/metaseq.c:675 #: lib/metaseq.c:364 lib/metaseq.c:675 msgid "%b %d, %y" msgstr "%d %b %y" # lib/metaseq.c:373 lib/metaseq.c:684 #: lib/metaseq.c:373 lib/metaseq.c:684 msgid "%A %B %d, %Y" msgstr "%A %d %B %Y" # lib/metaseq.c:419 lib/metaseq.c:448 lib/metaseq.c:491 lib/metaseq.c:724 # lib/metaseq.c:808 lib/metaseq.c:867 lib/metaseq.c:922 lib/metaseq.c:1099 # lib/metaseq.c:1234 lib/metaseq.c:1246 lib/metaseq.c:1289 #: lib/metaseq.c:419 lib/metaseq.c:448 lib/metaseq.c:491 lib/metaseq.c:724 #: lib/metaseq.c:808 lib/metaseq.c:867 lib/metaseq.c:922 lib/metaseq.c:1099 #: lib/metaseq.c:1234 lib/metaseq.c:1246 lib/metaseq.c:1289 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s: escape `%s' desconhecido `%c' (%d)" # lib/metaseq.c:426 lib/metaseq.c:815 #: lib/metaseq.c:426 lib/metaseq.c:815 #, c-format msgid "Page %d" msgstr "Página %d" # lib/metaseq.c:431 lib/metaseq.c:826 #: lib/metaseq.c:431 lib/metaseq.c:826 #, c-format msgid "Page %d/%c" msgstr "Página %d/%c" # lib/metaseq.c:593 lib/metaseq.c:1021 #: lib/metaseq.c:593 lib/metaseq.c:1021 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "%s: separador inválido `%s%c' para escape `%s'" # lib/metaseq.c:601 lib/metaseq.c:611 #: lib/metaseq.c:601 lib/metaseq.c:611 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s: argumentos inválido para escape %s%c" # lib/metaseq.c:822 #: lib/metaseq.c:822 #, c-format msgid "Page %d/%d" msgstr "Página %d/%d" # lib/metaseq.c:1266 #: lib/metaseq.c:1266 msgid "output command" msgstr "comando de saída" # lib/options.c:302 #: lib/options.c:302 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Tente `%s --help' para mais informações.\n" # lib/output.c:466 #: lib/output.c:466 #, c-format msgid "invalid face `%s'" msgstr "face `%s' inválida" # lib/output.c:538 #: lib/output.c:538 #, c-format msgid "`%s' with no matching `%s'" msgstr "`%s' sem ocorrência de `%s'" # lib/ppd.c:108 #: lib/ppd.c:108 msgid "Known Fonts" msgstr "Fontes Conhecidas" # lib/ppd.c:111 #: lib/ppd.c:111 msgid "" "\n" " None.\n" msgstr "" "\n" " Nenhuma.\n" # lib/ppd.c:149 lib/ppd.c:165 #: lib/ppd.c:149 lib/ppd.c:165 msgid "Known PostScript Printer Descriptions" msgstr "Descrições de Impressoras PostScript conhecidas" # lib/prange.c:305 lib/prange.c:323 #: lib/prange.c:305 lib/prange.c:323 #, c-format msgid "invalid interval `%s'" msgstr "intervalo de inteiros ilegal `%s'" # lib/printers.c:396 lib/printers.c:413 #: lib/printers.c:396 lib/printers.c:413 #, c-format msgid "no command for the `%s' (%s%s)" msgstr "nenhum comando para `%s' (%s%s)" # lib/printers.c:429 #: lib/printers.c:429 msgid "sent to the standard output" msgstr "enviar para o standard output" # lib/printers.c:430 #: lib/printers.c:430 msgid "sent to the default printer" msgstr "enviado para a impressora por omissão" # lib/printers.c:435 #: lib/printers.c:435 #, c-format msgid "saved into the file `%s'" msgstr "gravado para o ficheiro `%s'" # lib/printers.c:436 #: lib/printers.c:436 #, c-format msgid "sent to the printer `%s'" msgstr "enviado para a impressora `%s'" # lib/printers.c:613 lib/printers.c:621 #: lib/printers.c:613 lib/printers.c:621 msgid "Known Outputs (Printers, etc.)" msgstr "Destinos de saída conhecidos (impressoras, etc.)" # lib/prolog.c:98 lib/prolog.c:181 #: lib/prolog.c:98 lib/prolog.c:181 msgid "Known Prologues" msgstr "Prólogos conhecidos" # lib/prolog.c:579 #: lib/prolog.c:579 #, c-format msgid "font %f too big" msgstr "fonte %f é demasiado grande" # lib/psgen.c:662 #: lib/psgen.c:662 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "`%s' é um ficheiro binário, impressão abortada" # lib/quotearg.c:200 #: lib/quotearg.c:200 msgid "`" msgstr "`" # lib/quotearg.c:203 #: lib/quotearg.c:203 msgid "'" msgstr "'" # lib/userdata.c:129 #: lib/userdata.c:129 msgid "user" msgstr "utilizador" # lib/userdata.c:130 #: lib/userdata.c:130 msgid "Unknown User" msgstr "Utilizador Desconhecido" # lib/useropt.c:75 #: lib/useropt.c:75 #, c-format msgid "unknown user option `%s'" msgstr "opção do utilizador `%s' desconhecida" # lib/useropt.c:86 lib/useropt.c:97 #: lib/useropt.c:86 lib/useropt.c:97 msgid "Known User Options" msgstr "Opções de utilizador conhecidas" # lib/xbackupfile.c:105 lib/xmalloc.c:66 #: lib/xbackupfile.c:105 lib/xmalloc.c:66 msgid "Memory exhausted" msgstr "Falta de memória" # lib/xbackupfile.c:240 lib/xbackupfile.c:252 #: lib/xbackupfile.c:240 lib/xbackupfile.c:252 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "não consigo renomear o ficheiro `%s' como `%s'" # lib/xbackupfile.c:255 #: lib/xbackupfile.c:255 #, c-format msgid "restored file `%s'" msgstr "restaurei o ficheiro `%s'" # lib/argmatch.c:159 #: lib/argmatch.c:159 #, c-format msgid "invalid argument %s for `%s'" msgstr "argumento %s inválido para a opção `%s'" # lib/argmatch.c:160 #: lib/argmatch.c:160 #, c-format msgid "ambiguous argument %s for `%s'" msgstr "argumento %s ambíguo para a opção `%s'" # lib/argmatch.c:178 #: lib/argmatch.c:178 #, c-format msgid "Valid arguments are:" msgstr "Argumentos válidos são:" # lib/error.c:102 #: lib/error.c:102 msgid "Unknown system error" msgstr "Erro de sistema desconhecido" # lib/getopt.c:675 #: lib/getopt.c:675 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: opção `%s' é ambígua\n" # lib/getopt.c:700 #: lib/getopt.c:700 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: opção `--%s' não permite argumentos\n" # lib/getopt.c:705 #: lib/getopt.c:705 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: opção `%c%s' não permite argumentos\n" # lib/getopt.c:723 lib/getopt.c:896 #: lib/getopt.c:723 lib/getopt.c:896 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: opção `%s' necessita de um argumento\n" # lib/getopt.c:752 #: lib/getopt.c:752 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: opção desconhecida `--%s'\n" # lib/getopt.c:756 #: lib/getopt.c:756 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: opção desconhecida `%c%s'\n" # lib/getopt.c:782 #: lib/getopt.c:782 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: opção ilegal -- %c\n" # lib/getopt.c:785 #: lib/getopt.c:785 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: opção inválida -- %c\n" # lib/getopt.c:815 lib/getopt.c:945 #: lib/getopt.c:815 lib/getopt.c:945 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: opção necessita de um argumento -- %c\n" # lib/getopt.c:862 #: lib/getopt.c:862 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: opção `-W %s' é ambigua\n" # lib/getopt.c:880 #: lib/getopt.c:880 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: opção `-W %s' não permite argumentos\n" #, fuzzy #~ msgid "end of line in a %s" #~ msgstr "fim de linha em expressões regular" #~ msgid "end-of-line in regular expression" #~ msgstr "fim de linha em expressões 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 licença da GNU (GNU General Public License),\n" #~ "publicada pela Free Software Foundation; de acordo com a versão 2 ou,\n" #~ "se preferir, qualquer outra mais recente.\n" #~ "\n" #~ "Este programa é distribuido na esperança de que lhe seja útil, mas\n" #~ "SEM QUALQUER GARANTIA; nem mesmo a garantia implícita de COMERCIALIZAÇÃO\n" #~ "ou UTILIDADE PARA QUALQUER PROPÓSITO. Para mais informações consulte a\n" #~ "«GNU General Public License».\n" #~ "\n" #~ "Deve ter recebido uma cópia da licença «GNU General Public License» junto\n" #~ "com este programa; se assim não for, escreva para Free Software\n" #~ "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, " #~ "EUA.\n" #~ msgid "" #~ "Written by and .\n" #~ msgstr "Escrito por e \n" #~ msgid "no default command for option `-d'" #~ msgstr "nenhum comando por omissão para a opção `-d'" a2ps-4.14/po/es.gmo0000644000175000017500000004354110735337365013401 0ustar mhattamhattaÞ•—ÔÓŒ Ø Ù %ã / A9F{!ÂEä *äË‚°p3!¤ÆEå°+ Ü éó 0$Jo,‰ ¶,×%",H-u £&Ä#ë!1Q&q˜·Çç ð ú  ) 5A%`†–©¼ÌÝâë ó þ  (6LU—f&þ% 5B+W-ƒ±Æ!Öø 6 S k ˆ "ž Á â '!)!=!X!#a!…!*¡!Ì!ä!/ú!$*"$O"t""2¥"Ø"ø" # &# 1# ?#!I#k#Š#š#¬#²#Ò#ð# $',$T$f$|$ $±$ Í$×$ñ$%% %%\2%%­%Ç%Ö%Ü%å%ÿ% &&6&M&i&‚&ž&»&Í&ã&''/'4'O8' ˆ(J•(oà*P-he.@Î0i2øy2r3ª4„:5!¿5á5`6a6 b7n7w77¤7¶78Ï78?$8/d8-”8Â8(á8- 9.89!g9)‰9<³9/ð9 :?:,^:!‹:­:Ã:à: é: õ: ; ;;8;Q;/d;/”;Ä;×;ñ;<#<3<:< C< M< Z< g<t<†<•<­<µ<©É<)s==³=Ç=1ä=2>I>e>"y> œ>½> Ü>ý>?7?#T?!x?š?2º?í?@!@()@#R@2v@!©@%Ë@Eñ@+7A0cA%”AºA6ÚA/B ABbB sBB ŽB™B$¶B'ÛB C$C+C4FC {C"œC/¿CïCDD(4D ]D~D‡D¡DÁDÄDÌD/ÓDnErE’E§E·EÀEÉEÝE õEFF"}h,Vm#g?E C—…kwb_N“Z-† <4’=G‘”"ƒjv!MFn56‚.|o„*JŒPye&~^‡l9[ArDBqd‹ 0f–' 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 -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 -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 = %d sides per sheet = %s page device definitions = medium = %s%s, %s page layout = %d x %d, %s borders = %s file alignment = %s interior margin = %d number lines = %s format = %s tabulation size = %d 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 %A %B %d, %Y%b %d, %y%d characters per line%d lines per page%s, delegated to %s%s: illegal option -- %c %s: invalid argument for %s%c escape%s: invalid option -- %c %s: invalid separator `%s%c' for `%s' escape%s: missing `%c' for %s%c escape%s: option `%c%s' doesn't allow an argument %s: option `%s' is ambiguous %s: option `%s' requires an argument %s: option `--%s' doesn't allow an argument %s: option `-W %s' doesn't allow an argument %s: option `-W %s' is ambiguous %s: option requires an argument -- %c %s: too long argument for %s escape%s: unknown `%s' escape `%c' (%d)%s: unrecognized option `%c%s' %s: unrecognized option `--%s' Applications configured for delegationConfiguration status of %s %s Default PrinterDelegation `%s', from %s to %s Global: Headers: Headings: Input: Internals: Known EncodingsKnown FontsKnown MediaKnown Outputs (Printers, etc.)Known PostScript Printer DescriptionsKnown ProloguesKnown Style SheetsKnown User OptionsKnown VariablesMemory exhaustedNameOutput: Page %dPage %d/%cPage %d/%dPostScript: Pretty-printing: Printed by %sPrinted by %s from %sSheets: Table of ContentThis is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Try `%s --help' for more information. Unknown PrinterUnknown UserUnknown system errorValid arguments are floats f such that: %s Valid arguments are integers n such that: %s Valid arguments are:Virtual pages: [%s (%s): %d pages on %d sheets] [%s (%s): %d pages on 1 sheet] [%s (%s): 1 page on 1 sheet] [%s (%s): failed. Ignored] [%s (binary): ignored] [%s (unprintable): ignored] [No output produced] [Total: %d pages on %d sheets] %s [Total: %d 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'any typeautomatic style selection cancelledcannot close directory `%s'cannot compile regular expression `%s': %scannot create file `%s'cannot find file `%s'cannot find style sheet `%s': using plain stylecannot get current working directorycannot get informations on file `%s'cannot open a pipe on `%s'cannot open file `%s'cannot process `%s' which requires a2ps version %scannot rename file `%s' as `%s'caret (i.e., `^C', `M-^C' etc.)columns firstdimensionseach %d lineseach lineemacs (i.e., `C-c', `M-C-c' etc.)end-of-line in string constantfont %f too bigfont size is %gptheavyhexadecimal (i.e., `\x0a' etc.)incomplete knowledge of facesinvalid argument %s for `%s'invalid argument `%s' for `%s'invalid definition for printer `%s': %sinvalid face `%s'invalid interval `%s'invalid option `%s'invalid variable identifier `%s'invalid version number `%s'landscapemissing argument for `%s'never make backupsnononenormalnumbered backups of every filenumbered backups of files already numbered, and simple of othersobsolete `%s' entry. Ignoredoctal (i.e., `\001' etc.)output commandplainportraitquestion-mark (i.e., `?')restored file `%s'rows firstsaved into the file `%s'selected automaticallysent to the default printersent to the printer `%s'sent to the standard outputsimple backups of every filespace (i.e., ` ')unknown encoding `%s'unknown encoding `%s', ignoredunknown medium `%s'unknown user option `%s'useryesProject-Id-Version: a2ps 4.7.21 Report-Msgid-Bugs-To: POT-Creation-Date: 2007-12-29 11:28+0800 PO-Revision-Date: 1999-02-12 10:42+01:00 Last-Translator: Miguel Ángel Varó Giner Language-Team: Spanish MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8-bit Ninguna. --line-numbers=NUM numera una de cada NUM líneas -C igual que --line-numbers=5 -f, --font-size=TAMAÑO usa el tipo de letra TAMAÑO (real) -L, --lines-per-page=NUM especifica las líneas por página -l, --chars-per-page=NUM especifica las columnas por página -m, --catman procesa el fichero como una página de ayuda (igual que -L66) -T, --tabsize=NUM tamaño de tabulación = NUM --non-printable-format=FMT indica como 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=NUM imprime en MODO `simplex' (o `1'), `duplex' (o `2'), `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 -E, --pretty-print[=LENG] activa pretty-printing (con el estilo LENG) --highlight-level=NIVEL indica el NIVEL de color (none, normal, heavy) -g alias para --highlight-level=heavy --strip-level=NUM nivel de supresión de comentarios -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 -q, --quiet, --silent no muestra ningún mensaje -v, --verbose[=NIVEL] activar la verbosidad, o ponerla al NIVEL -=, --user-option=OPCIÓN usar la OPCIÓN abreviada del usuario --debug activa las funciones de depuración -D, --define=CLAVE[:VALOR] poner o quitar un VALOR a la CLAVE destino = %s control de versión = %s sufijo de las copias = %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 magic number = %s Descripción de la Impresora (PPD) = %s PPD por defecto = %s formato del número de hoja = %s número de copias = %d caras por hoja = %s definiciones dispositivo página = soporte = %s%s, %s disposición de páginas = %d x %d, %s bordes = %s alineamiento de fichero = %s margen interior = %d numeración de líneas = %s formato = %s tamaño de tabulación = %d 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 %A %d %B %Y%d %b %y%d caracteres por línea%d líneas por página%s, delegado a %s%s: opción ilegal -- %c %s: argumento no válido para la secuencia de escape %s%c%s: opción no válida -- %c %s: separador no válido `%s%c' para la secuencia de escape `%s'%s: falta `%c' para la secuencia de escape %s%c%s: la opción `%c%s' no permite un argumento %s: la opción `%s' es ambigua %s: la opción `%s' precisa un argumento %s: la opción `--%s' no permite un argumento %s: la opción `-W %s' no permite un argumento %s: la opción `-W %s' es ambigua %s: la opción precisa un argumento -- %c %s: argumento demasiado largo para la secuencia de escape %s%s: secuencia de escape "%s%c" (%d) desconocida%s: opción desconocida `%c%s' %s: opción desconocida `--%s' Aplicaciones configuradas para la delegaciónEstado de configuración de %s %s Impresora por defectoDelegación `%s', de %s a %s Global: Cabeceras: Cabeceras: Entrada: Detalles Internos: Codificaciones conocidasTipos de letra ConocidosSoportes ConocidosDestinos de salida conocidos (impresoras, etc.)Descripciones de Impresora Postscript ConocidasPrólogos conocidosHojas de Estilo ConocidasOpciones de Usuario ConocidasVariables ConocidasMemoria agotadaNombreSalida: Página %dPágina %d/%cPágina %d/%dPostScript: Pretty-printing: Impreso por %sImpreso por %s desde %sHojas: Tabla de ContenidosEsto es software libre; vea el código fuente para las condiciones de copia. No hay NINGUNA garantía; ni siquiera de COMERCIABILIDAD o IDONEIDAD PARA UN FIN DETERMINADO. Prueba `%s --help' para más información. Impresora DesconocidaUsuario DesconocidoError de sistema desconocidoLos argumentos válidos son reales f tal como: %s Los argumentos válidos son enteros n tal como: %s Los argumentos válidos son:Páginas virtuales: [%s (%s): %d páginas en %d hojas] [%s (%s): %d 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] [No se ha producido salida] [Total: %d páginas en %d hojas] %s [Total: %d 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'qualseacancelada selección automática de estiloimposible cerrar el directorio '%s'no se puede compilar la expresión regular `%s': %sno se puede crear el fichero `%s'no se puede encontrar el fichero `%s'no se puede encontrar hoja de estilo `%s': utilizando estilo estándarno se puede determinar el directorio actualno se puede obtener información del fichero `%s'no se puede abrir una tubería en `%s'imposible abrir el fichero '%s'no se puede procesar `%s' que requiere a2ps versión %sno se puede renombrar el fichero `%s' como `%s'circunflejo (`^C', `M-^C', etc.)primero columnasdimensionescada %d líneascada líneaemacs (`C-c', `M-C-c', etc.)fin-de-línea en una cadena constanteel tipo de letra %f es demasiado grandeel tamaño del letra es %g puntosmáximohexadecimal (`\x0a', etc.)conocimiento incompleto de los estilos de caracteresargumento no válido %s para `%s'argumento no válido `%s' para `%s'definición no válida para la impresora `%s': %sopción no válida `%s'intervalo no válido `%s'opción no válida `%s'identificador de variable `%s' no vàlidonúmero de versión no válido `%s'apaisadofalta argumento para `%s'nunca hacer copias de seguridadnoningunonormalcopias de seguridad numeradas para cada ficherocopias de seguridad numeradas para ficheros ya numerados, y simples para los demásentrada '%s' obsoleta. Ignoradaoctal (`\001', etc.)orden de salidaestándarverticalinterrogación (`?')fichero restaurado `%s'primero filasguardado en el fichero '%s'seleccionado automáticamenteenviado a la impresora por defectoenviado a la impresora '%s'enviado a la salida estándarcopias de seguridad simples para cada ficheroespacio (` ')codificación desconocida `%s'codificación desconocida `%s', ignoradasoporte `%s' desconocidoopción de usuario desconocida `%s'usuariosía2ps-4.14/po/de.gmo0000644000175000017500000005206410735337365013362 0ustar mhattamhattaÞ•¢,ß< ¸ ¹ %à /éürA‰FË!E4 zä‚pƒ!ôE5°{ , 9CZl€$š¿,Ù ,'T%r,˜-Å ó& #; !_  ¡ vÁ &8!_!~!Ž!®! ·! Á!Ì! Ô!à! ð! ü!"%'"M"]"p"ƒ"“"¤"©"²" º" Å" Ð"Ý" ï"ý"##7#@#Q##Y#—}#&$<$ L$Y$+n$-š$È$Ý$¯í$%!­%Ï%ï% &*&B&_&"u& ˜&¹&'Ø&''/'#8'\'*x'£'»'/Ñ'$($&(K(f(2|(¯(Ï( ï( ý( ) )! )B)a)q)ƒ)‰)©)Ç)ä)'*+*=*S* g*ˆ* ¤*®*È*Û*Þ*ý*+ +\(+…+£+½+Ì+Ò+Û+õ+ , ,*,C,Z,v,,«,È,Ú,ð,-#-<- A-M-9Q- ‹.@–.k×06C3Úz5AU7®—8kF;N²<ð=äò=Œ×>¨d? @*@ED@ Š@ «A ¸AÂA×AëAB'!BIB2fB"™B,¼B éB+ C,6C-cC#‘C(µC#ÞC.D"1D"TD‡wD4ÿD4E TE%bEˆE ‘E žE «E µE¿EÕEèE%ÿE*%FPFaF~F˜F«F¾F ÃFÍF ÖF âF îFûFG"Gl9G ¦G°G ÃG3ÎGòH+õH!I5I$JI,oI+œIÈIàIíóIáJ%óJ%K#?K%cK‰K#¢KÆK*ßK* L(5L.^LL¦LÀL'ÅL&íL1M%FMlMBŠM1ÍM5ÿM5NUN4sN)¨N%ÒNøN OO "O"-OPOoO†O œO¨O.ÈO!÷O!P(;PdP|P–P#­PÑP ðPûPQ4Q9Q WQaQ(hQg‘Q!ùQR 5R CR PR[RtRR ®R¼RÚR&ñRS!3S$USzS’S'¯S×SóSTT1T“f9˜1VK]WRD'*.ZS=s)T8‹r E”¡ŽHŸŒA‡;n?[x>—–z`%G \<•&-,myd žXƒ!6@œ$e0tgU„k_a›L4Bš™o/~lC: N^ Yc¢7ˆ‚I’{P…bu23ih‘JQO M†# 5Š€‰qw("F}pv+j| 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 -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 -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 = %d sides per sheet = %s page device definitions = medium = %s%s, %s page layout = %d x %d, %s borders = %s file alignment = %s interior margin = %d number lines = %s format = %s tabulation size = %d 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 %A %B %d, %Y%b %d, %y%d characters per line%d lines per page%s, delegated to %s%s: illegal option -- %c %s: invalid argument for %s%c escape%s: invalid option -- %c %s: invalid separator `%s%c' for `%s' escape%s: missing `%c' for %s%c escape%s: option `%c%s' doesn't allow an argument %s: option `%s' is ambiguous %s: option `%s' requires an argument %s: option `--%s' doesn't allow an argument %s: option `-W %s' doesn't allow an argument %s: option `-W %s' is ambiguous %s: option requires an argument -- %c %s: too long argument for %s escape%s: unknown `%s' escape `%c' (%d)%s: unrecognized option `%c%s' %s: unrecognized option `--%s' After having performed the task, exit successfully. Detailed lists may provide additional help on specific features. Applications configured for delegationConfiguration status of %s %s Default PrinterDelegation `%s', from %s to %s Global: Headers: Headings: Input: Internals: Known EncodingsKnown FontsKnown MediaKnown Outputs (Printers, etc.)Known PostScript Printer DescriptionsKnown ProloguesKnown Style SheetsKnown User OptionsKnown VariablesMemory exhaustedNameOutput: Page %dPage %d/%cPage %d/%dPostScript: Pretty-printing: Printed by %sPrinted by %s from %sReport bugs to . Sheets: Table of ContentTasks: The TEXTs may use special escapes. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Try `%s --help' for more information. Unknown PrinterUnknown UserUnknown system errorValid arguments are floats f such that: %s Valid arguments are integers n such that: %s Valid arguments are: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. Written by %s. [%s (%s): %d pages on %d sheets] [%s (%s): %d pages on 1 sheet] [%s (%s): 1 page on 1 sheet] [%s (%s): failed. Ignored] [%s (binary): ignored] [%s (unprintable): ignored] [No output produced] [Total: %d pages on %d sheets] %s [Total: %d 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'any typeautomatic style selection cancelledcannot close directory `%s'cannot compile regular expression `%s': %scannot create file `%s'cannot find file `%s'cannot find style sheet `%s': using plain stylecannot get current working directorycannot get informations on file `%s'cannot open a pipe on `%s'cannot open file `%s'cannot process `%s' which requires a2ps version %scannot rename file `%s' as `%s'caret (i.e., `^C', `M-^C' etc.)columns firstdimensionseach %d lineseach lineemacs (i.e., `C-c', `M-C-c' etc.)end-of-line in string constantfont %f too bigfont size is %gptheavyhexadecimal (i.e., `\x0a' etc.)incomplete knowledge of facesinvalid argument %s for `%s'invalid argument `%s' for `%s'invalid definition for printer `%s': %sinvalid face `%s'invalid interval `%s'invalid option `%s'invalid variable identifier `%s'invalid version number `%s'landscapemissing argument for `%s'never make backupsnono command for the `%s' (%s%s)nonenormalnumbered backups of every filenumbered backups of files already numbered, and simple of othersobsolete `%s' entry. Ignoredoctal (i.e., `\001' etc.)output commandplainportraitquestion-mark (i.e., `?')received signal %d: %srestored file `%s'rows firstsaved into the file `%s'selected automaticallysent to the default printersent to the printer `%s'sent to the standard outputsimple backups of every filespace (i.e., ` ')unknown encoding `%s'unknown encoding `%s', ignoredunknown medium `%s'unknown user option `%s'userwrite erroryesProject-Id-Version: a2ps 4.12 Report-Msgid-Bugs-To: POT-Creation-Date: 2007-12-29 11:28+0800 PO-Revision-Date: 1999-09-21 22:11+02:00 Last-Translator: Erwin Dieterich Language-Team: German MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8-bit Keine. --line-numbers=NUM Vor jeder NUMten Zeile die Zeilennummer ausgeben -C Wie «--line-numbers=5» -f, --fontsize=GRÖSSE benutze Schriftgröße GRÖSSE für den Text -L, --lines-per-page=NUM Anzahl Zeilen pro Seite -l, --chars-per-line=NUM Anzahl Spalten pro Seite -m, --catman Behandle die Datei als Hilfe-Seite (manpage), entspricht -L66 -T, --tabsize=NUM Tabulatorabstand auf NUM einstellen --non-printable-format=FMT Ausgabe für nicht-druckbare Zeichen festlegen --prologue=FILE Verwende FILE.pro als PostScript-Prolog --ppd[=KEY] Automatische PPD-Auswahl oder Setzen auf KEY -n, --copies=NUM NUM Kopien von jeder Seite drucken -s, --sides=NUM Setzen des Duplex-Modus (`1' oder `simplex', " `2' oder `duplex', `tumble') -S, --setpagedevice=K[:V] Übergebe eine «page device»-Definition an die Ausgabe --statusdict=K[:[:]V] Übergebe eine «statusdict»-Defintion an die Ausgabe -k, --page-prefeed Seitenpositionierung an -K, --no-page-prefeed Seitenpositionierung aus --version Versionsnummer ausgeben --help Diese Hilfe anzeigen und beenden --guess Angenommenen Filetyp der FILES ausgeben --which Pfad der Bibliotheks-Dateien mit den Namen FILES ausgeben --glob Pfad der Bibliotheks-Dateien die zu FILES passen ausgeben --list=defaults Standardeinstellungen und -parameter ausgeben --list=TOPIC Zeige einen List zu TOPIC an (delegations, encodings, features, variables, media, ppd, printers, prologues, style-sheets, user-options) -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 Status der Hervorhebungen im Text -g, --graphic-symbols* Graphische Symbole ausgeben --strip-level=NUM Status für Kommentar-Entfernung -a, --pages[=RANGE] Wähle zu druckende Seiten -c, --truncate-lines* Lange Zeilen abschneiden -i, --interpret Tabulator, Backspace und Formfeed interpretieren --end-of-line=TYPE Lege Zeilenende-Zeichen fest (TYPE aus: r, n, nr, rn, alle) -X, --encoding=NAME Zeichensatz NAME benutzen -t, --title=NAME Name des Druckauftrags --stdin=NAME Lege den Namen der Standardeingabe (stdin) fest --print-anyway* Erzwinge das Drucken von binären Zeichen -Z, --delegate* leite Datei zu einer anderen Anwendung weiter --toc[=TEXT] Erzeuge ein Inhaltsverzeichnis -q, --quiet, --silent Keinerlei Ausgabe über aktuelle Tätigkeit -v, --verbose Ausgabe über aktuelle Tätigkeit -=, --user-option=OPTION Angegebene Benutzeroption verwenden --debug Debug einschalten -D, --define=KEY[:WERT] Lösche das Makro KEY oder setze es auf den Wert WERT Ziel = %s Versions-Kontrolle = %s Backup-Endung = %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 Magic Nummer = %s Druckerbeschreibung (PPD) = %s Standard PPD = %s Format der Seiten-Titel = %s Anzahl Kopien = %d Seiten pro Blatt = %s Seiten-Definitionen = Papierformat = %s%s, %s Seitenlayout = %d x %d, %s Rahmen = %s Dateiausrichtung = %s Innenrand = %d Anzahl Zeilen = %s Format = %s Tabulatorabstand = %d Format für nicht druckbare Zeichen = %s Seitenvorschub = %s «statusdict»-Angaben = Formatierung = %s Anzeigestatus = %s Kürzungsstatus = %d Zeilen abschneiden = %s Sonderzeichen interpretieren = %s Zeilenende = %s Voreinstellung Zeichensatz = %s Dokumenten-Titel = %s Voreinstellung Prolog = %s Binäre Daten drucken = %s Weiterleiten = %s %A %B %d, %Y%b %d, %y%d Zeichen pro Zeile%d Zeilen pro Seite%s, weitergeleitet an %s%s: Ungültige Option -- %c. %s: Ungültiges Argument für %s%c-Escape%s: Ungültige Option -- %c. %s: Ungültiges Trennzeichen `%s%c' für `%s'-Escape%s: Fehlendes `%c' für %s%c-Escape%s: Option `%c%s' erlaubt keinen Parameter. %s: Option `%s' ist zweideutig. %s: Option `%s' erfordert einen Parameter. %s: Option `--%s' erlaubt keinen Parameter. %s: Option »-W %s« erlaubt keinen Parameter. %s: Option »-W %s« ist zweideutig. %s: Option benötigt ein Argument -- %c. %s: Zu langes Format für %s-Escape.%s: Unbekanntes `%s' Escape-Zeichen `%c' (%d).%s: Nicht erkannte Option `%c%s'. %s: Nicht erkannte Option `--%s'. Nachdem die Aufgabe erfüllt wurde, ordnungsgemäß beenden. Ausführliche Listen können zusätzliche Hilfe zu speziellen Merkmalen bieten. Anwendungen, die als Weiterleitung konfiguriert sindKonfigurationsstatus von %s %s SystemdruckerWeiterleitung `%s', von `%s' an `%s' Global: Kopfzeilen: Kopfzeilen: Eingabe: Interna: Bekannte ZeichensätzeBekannte SchriftenBekannte PapierformateBekannte Ausgabegeräte (Drucker usw.)Bekannte PostScript-Drucker-BeschreibungenBekannte PrologeBekannte Vorlagen (Sprachen)Bekannte BenutzeroptionenBekannte VariablenKein Speicher mehrNameAusgabe: Seite %dSeite %d/%cSeite %d/%dPostScript: Formatiertes Drucken: Gedruckt von %sGedruckt von %s auf %sFehlermeldungen und Kommentare an Kommentare zur deutschen Übersetzung an Blätter: InhaltsverzeichnisAufgaben: Der TEXT darf Sonderzeichen ($, % etc.) enthalten. Dieses Program ist freie Software; Angaben zu den Bedingungen, unter denen das Programm kopiert werden darf, stehen im Quelltext. Es gibt keine Gewährleistung, das schließt auch MARKTFÄHIGKEIT oder die ERFÜLLUNG EINES BESTIMMTEN ZWECKES ein »%s --help« gibt Ihnen mehr Informationen. Unbekannter DruckerUnbekannter BenutzerUnbekannter Fehler im BetriebssystemGültige Argumente sind Reelle Zahlen mit %s Gültige Argumente sind Ganze Zahlen mit %s Gültige Argumente sind:Virtuelle Seiten: Wenn Deligieren (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. Gedruckt von %s. [%s (%s): %d Seiten auf %d Blättern] [%s (%s): %d Seiten auf einem Blatt] [%s (%s): 1 Seite auf einem Blatt] [%s (%s): fehlgeschlagen. Ignoriert] [%s (binär): ignoriert] [`%s' (nicht druckbar): ignoriert] [Keine Ausgabe erzeugt] [Insgesamt: %d Seiten auf %d Blättern] %s [Insgesamt: %d 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'.alleAutomatische Format-Auswahl abgebrochenKann Verzeichnis `%s' nicht schließen.Kann regulären Ausdruck `%s' nicht übersetzen: %sKann Ausgabedatei `%s' nicht anlegen.Kann Datei `%s' nicht finden.Kann automatisches Format `%s' nicht finden: unformatierte AusgabeKann aktuelles Arbeitsverzeichnis nicht ermittelnKann keine Informationen über die Datei `%s' bekommenKann Pipe auf `%s' nicht öffnenKann Datei `%s' nicht öffnen.Kann `%s' nicht bearbeiten, benötigt a2ps Version %sKann Datei `%s' nicht umbenennen in `%s'.Circumflex (z.B., `^C', `M-^C' usw.')Spalten zuerstAbmessungenalle %d Zeilenjede ZeileEmacs (z.B., `C-c', `M-C-c' usw.')Zeilenende in ZeichenkonstanteSchrift %f ist zu großSchriftgröße ist %gptvollständigHexadezimal (z.B., `\x0a' usw.)Nicht genügend Information über die SchriftartUngültiges Argument `%s' für `%s'Ungültiges Argument `%s' für `%s'Ungültiges Kommando für Drucker `%s': %sUngültige Schrift `%s'.Ungültiges Intervall `%s'Ungültige Option `%s'.Ungültiger Variablenbezeichner `%s'ungültige Versions-Nummer `%s'QuerformatFehlendes Argument für `%s'mache niemals backup-DateienneinKein Kommando für `%s' (%s%s)gar nichtnormalnumerierte Backup-Dateien für jede Dateinumerierte Backup-Dateien sind bereits numeriert, und einfach anders (??)Obsoleter Eintrag `%s'. IgnoriertOktal (z.B., `\001' usw.)AusgabebefehlunformatiertHochformatFragezeichen (z.B., `?')Habe Signal %d: %s erhaltenDatei `%s' wiederhergestellt.Zeilen zuerstin die Datei `%s' geschriebenautomatisch ausgewähltzum voreingestellten Drucker geschicktzum Drucker `%s' geschicktauf die Standardausgabe geschickteinfache Backup-Datei für jede DateiLeerzeichen (z.B., ` ')Unbekannter Zeichensatz `%s'Unbekannter Zeichensatz `%s': ignoriertPapierformat `%s' unbekanntUnbekannte Benutzeroption `%s'BenutzerFehler beim Schreibenjaa2ps-4.14/po/ca.gmo0000644000175000017500000004336410735337365013360 0ustar mhattamhattaÞ•—ÔÓŒ Ø Ù %ã / A9F{!ÂEä *äË‚°p3!¤ÆEå°+ Ü éó 0$Jo,‰ ¶,×%",H-u £&Ä#ë!1Q&q˜·Çç ð ú  ) 5A%`†–©¼ÌÝâë ó þ  (6LU—f&þ% 5B+W-ƒ±Æ!Öø 6 S k ˆ "ž Á â '!)!=!X!#a!…!*¡!Ì!ä!/ú!$*"$O"t""2¥"Ø"ø" # &# 1# ?#!I#k#Š#š#¬#²#Ò#ð# $',$T$f$|$ $±$ Í$×$ñ$%% %%\2%%­%Ç%Ö%Ü%å%ÿ% &&6&M&i&‚&ž&»&Í&ã&''/'4'Q8'Š(N“(xâ*[-Žn.gý0ie2øÏ2È3¥É4€o5!ð56`16’6 “7Ÿ7¨7¿7Ô7å7:ÿ7:8BU83˜8)Ì8ö8'9);9*e99(°9;Ù92:H:f:+„:"°:Ó:è:; ;; /;9;K;c;|;%‹;/±;á;ò; <$<8<I<M< V< `< m< z<‡< ™<§<¿<Ç<—Û<(s=œ=³=Å=-á=/>?>Y>"l> >°>Ï>î>?%?#??!c?…?0¥?Ö?ë? @'@":@/]@@¬@=Ì@( A,3A$`A…A5¥A)ÛAB#B 3B>B MBXB(sB#œB%ÀBæBìB.C4C!TC0vC§C¼CÓC'èCD/D7DQDmDpDtD,{Dg¨DE0ECE RE\EeE€E –E£EºE ÕEöEF*.F YF&eF&ŒF³FÊFêFñF+ %Qtis1pŽz:KŠ\xu/R8ˆOSXHL Y‰@T7•(3;€)$]UWIac2{`>}h,Vm#g?E C—…kwb_N“Z-† <4’=G‘”"ƒjv!MFn56‚.|o„*JŒPye&~^‡l9[ArDBqd‹ 0f–' 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 -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 -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 = %d sides per sheet = %s page device definitions = medium = %s%s, %s page layout = %d x %d, %s borders = %s file alignment = %s interior margin = %d number lines = %s format = %s tabulation size = %d 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 %A %B %d, %Y%b %d, %y%d characters per line%d lines per page%s, delegated to %s%s: illegal option -- %c %s: invalid argument for %s%c escape%s: invalid option -- %c %s: invalid separator `%s%c' for `%s' escape%s: missing `%c' for %s%c escape%s: option `%c%s' doesn't allow an argument %s: option `%s' is ambiguous %s: option `%s' requires an argument %s: option `--%s' doesn't allow an argument %s: option `-W %s' doesn't allow an argument %s: option `-W %s' is ambiguous %s: option requires an argument -- %c %s: too long argument for %s escape%s: unknown `%s' escape `%c' (%d)%s: unrecognized option `%c%s' %s: unrecognized option `--%s' Applications configured for delegationConfiguration status of %s %s Default PrinterDelegation `%s', from %s to %s Global: Headers: Headings: Input: Internals: Known EncodingsKnown FontsKnown MediaKnown Outputs (Printers, etc.)Known PostScript Printer DescriptionsKnown ProloguesKnown Style SheetsKnown User OptionsKnown VariablesMemory exhaustedNameOutput: Page %dPage %d/%cPage %d/%dPostScript: Pretty-printing: Printed by %sPrinted by %s from %sSheets: Table of ContentThis is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Try `%s --help' for more information. Unknown PrinterUnknown UserUnknown system errorValid arguments are floats f such that: %s Valid arguments are integers n such that: %s Valid arguments are:Virtual pages: [%s (%s): %d pages on %d sheets] [%s (%s): %d pages on 1 sheet] [%s (%s): 1 page on 1 sheet] [%s (%s): failed. Ignored] [%s (binary): ignored] [%s (unprintable): ignored] [No output produced] [Total: %d pages on %d sheets] %s [Total: %d 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'any typeautomatic style selection cancelledcannot close directory `%s'cannot compile regular expression `%s': %scannot create file `%s'cannot find file `%s'cannot find style sheet `%s': using plain stylecannot get current working directorycannot get informations on file `%s'cannot open a pipe on `%s'cannot open file `%s'cannot process `%s' which requires a2ps version %scannot rename file `%s' as `%s'caret (i.e., `^C', `M-^C' etc.)columns firstdimensionseach %d lineseach lineemacs (i.e., `C-c', `M-C-c' etc.)end-of-line in string constantfont %f too bigfont size is %gptheavyhexadecimal (i.e., `\x0a' etc.)incomplete knowledge of facesinvalid argument %s for `%s'invalid argument `%s' for `%s'invalid definition for printer `%s': %sinvalid face `%s'invalid interval `%s'invalid option `%s'invalid variable identifier `%s'invalid version number `%s'landscapemissing argument for `%s'never make backupsnononenormalnumbered backups of every filenumbered backups of files already numbered, and simple of othersobsolete `%s' entry. Ignoredoctal (i.e., `\001' etc.)output commandplainportraitquestion-mark (i.e., `?')restored file `%s'rows firstsaved into the file `%s'selected automaticallysent to the default printersent to the printer `%s'sent to the standard outputsimple backups of every filespace (i.e., ` ')unknown encoding `%s'unknown encoding `%s', ignoredunknown medium `%s'unknown user option `%s'useryesProject-Id-Version: a2ps 4.7.21 Report-Msgid-Bugs-To: POT-Creation-Date: 2007-12-29 11:28+0800 PO-Revision-Date: 1999-01-11 15:57+01:00 Last-Translator: Miquel Àngel Varó i Giner Language-Team: Catalan MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8-bit Cap. --line-numbers=NOM numera una de cada NOM línies -C igual que --line-numbers=5 -f, --fontsize=GRANDÀRIA utilitza el tipus de lletra GRANDÀRIA (real) -L, --lines-per-page=NOM indica les línies per pàgina -l, --chars-per-line=NOM indica les columnes per pàgina -m, --catman processa el fitxer com una pàgina d'ajuda (igual que -L66) -T, --tabsize=NOM longitud de tabulació = NOM --non-printable-format=FMT indica com s'imprimeixen els caràcters no visibles --prologue=FITXER posa FITXER.pro com a pròleg PostScript --ppd[=CLAU] selecció automàtica del PPD o el posa a CLAU -n, --copies=NOM imprimeix NOM còpies de cada pàgina -s, --sides=MODE imprimeix en MODE `simplex' (o `1'), `duplex' (o `2'), o `tumble' -S, --setpagedevice=K[:V] passa definició de dispositiu de pàgina a l'eixida --statusdict=K[:[:]V] passa la definició statusdict a l'eixida -k, --page-prefeed activa la precàrrega de paper -K, --no-page-prefeed desactiva la precàrrega de paper -E, --pretty-print[=LLENG] activa pretty-printing (posa l'estil LLENG) --highlight-level=NIVELL posa el NIVELL de color (none, normal, heavy) -g igual que --highlight-level=heavy --strip-level=NOM nivell de supressió de comentaris -a, --pages[=RANGE] selecciona les pàgines a imprimir -c, --truncate-lines* trunca les línies llarges -i, --interpret* interpreta els tab, bs i ff --end-of-line=TIPUS especifica el caràcter de final de línia (r, n, nr, rn, any) -X, --encoding=NOM utilitza la codif. d'entrada NOM -t, --title=NOM posa el NOM del treball --stdin=NOM posa el NOM de l'entrada estàndard --print-anyway força la impressió binària -Z, --delegate* delega fitxers a altres aplicacions --toc[=TEXT] genera una taula de continguts -q, --quiet, --silent no mostrar cap missatge -v, --verbose[=NIVELL] activar l'aparició de missatges, o posar-ho a un cert NIVELL -=, --user-option=OPCIÓ emprar l'OPCIÓ abreujada de l'usuari --debug activar l'opció de depuració -D, --define=CLAU[:VALOR] posar o llevar un VALOR a la CLAU destinació = %s versió de control = %s sufix de les còpies = %s encapçalament = %s peu de pàgina esquerre = %s peu de pàgina = %s peu de pàgina dret = %s títol esquerre = %s títol central = %s títol dret = %s marca d'aigua = %s magic number = %s Descripció d'Impressora (PPD) = %s PPD implícita = %s format del número de pàgina = %s nombre de còpies = %d cares per full = %s def. pàgina del dispositiu = suport = %s%s, %s disposició de pàgines = %d x %d, %s vores = %s alineament de fitxers = %s marge interior = %d numeració de línies = %s format = %s longitud de tabulació = %d caràcters no imprimibles = %s precàrrega del paper = %s definicions statusdict = full d'estil = %s nivell de color = %s supressió de comentaris = %d truncar les línies = %s interpretar tab, ff i bs = %s final de línia = %s codificació = %s títol del document = %s pròleg = %s imprimir els binaris = %s delegacions = %s %A %d %B %Y%d %b %y%d caràcters per línia%d línies per pàgina%s, delegat a %s%s: opció il.legal -- %c %s: argument no válid per a la seqüència d'escapament %s%c%s: opció no vàlida -- %c %s: separador no válid `%s%c' per a la seqüència d'escapament `%s'%s: falta `%c' per a la seqüència d'escapament %s%c%s: l'opció `%c%s' no permet un argument %s: l'opció `%s' és ambigua %s: l'opció `%s' necessita un argument %s: l'opció `--%s' no permet un argument %s: l'opció `-W %s' no permet un argument %s: l'opció `-W %s' és ambigua %s: l'opció necessita un argument -- %c %s: argument massa llarg per a la seqüència d'escapament %s%s: seqüència d'escapament "%s%c" (%d) desconeguda%s: opció desconeguda `%c%s' %s: opció desconeguda `--%s' Aplicacions configurades per a la delegacióEstat de la configuració de %s %s Impressora ImplícitaDelegació `%s', de %s a %s Global: Encapçalaments: Encapçalaments: Entrada: Detalls interns: Codificacions ConegudesTipus de Lletra ConegutsSuport ConegutEixides Conegudes (Impressores, etc.)Descripcions d'Impressores PostScript ConegudesPròlegs ConegutsFulls d'Estil ConegutsOpcions d'Usuari ConegudesVariables ConegudesMemòria esgotadaNomEixida: Pàgina %dPàgina %d/%cPàgina %d/%dPostScript: Pretty-printing: Imprés per %sImprés per %s des de %sFulls: Taula de ContingutsThis is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Prova `%s --help' per a més informació. Impressora DesconegudaUsuari DesconegutError de sistema desconegutEls arguments vàlids son reals f tal com: %s Els arguments vàlids son sensers n tal com: %s Els arguments vàlids són:Pàgines virtuals: [%s (%s): %d pàgines en %d fulls] [%s (%s): %d pàgines en 1 full] [%s (%s): 1 pàgina en 1 full] [%s (%s): ha fallat. Ignorat] [%s (binari): ignorat] [%s (no imprimible): ignorat] [No s'ha produit eixida] [Total: %d pàgines en %d fulls] %s [Total: %d pàgines en 1 full] %s [Total: 1 pàgina en 1 full] %s `%s' és un fitxer binari, impressió interrompuda`%s' es un directori`%s' sense corresponent `%s'qualsevolcancel.lada selecció d'estil automàticano es pot tancar el directori `%s'no es pot compilar l'expressió regular `%s': %sno 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 implícitno es pot determinar el directori actualno 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ó %sno es pot renombrar el fitxer `%s' com %scircumflex (`^C', `M-^C',...)columnes primerdimensionscada %d líniescada líniaemacs (`C-c', `M-C-c',...)final-de-línia en una constant de cadenael tipus de lletra %f és massa granla grandària de la lletra es %g puntsmàximhexadecimal (`\x0a',...)coneiximent incomplet dels estils de caràctersargument no vàlid %s per a `%s'argument no vàlid `%s' per a `%s'definició no vàlida per a la impressora `%s': %sopció no vàlida `%s'interval `%s' no vàlidopció no vàlida `%s'identificador de variable `%s' no vàlidnúmero de versió `%s' no vàlidapaïsatfalta argument per a `%s'mai fer còpies de seguretatnocapnormalcòpies de seguretat numerades de cada fitxercòpies de seguretat numerades de fitxers ja numerats, i simples dels altresentrada obsoleta '%s'. Ignoradaoctal (`\001',...)ordre d'eixidaestàndardverticalsigne d'interrogació (`?')fitxer restaurat `%s'files primerguardat al fitxer `%s'seleccionat automàticamentenviat a la impressora implícitaenviat a la impressora `%s'enviat a l'eixida estàndardcòpies de seguretat simples de cada fitxerespai (` ')codificació desconeguda `%s', ignoradacodificació desconeguda `%s', ignoradasuport `%s' desconegutopció d'usuari `%s' desconegudausuarisía2ps-4.14/po/it.po0000644000175000017500000013654010735337366013245 0ustar mhattamhatta# Traduzione dei messaggi di a2ps # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98, 99 Akim Demaille, Miguel Santana # "Lorenzo M. Catucci" , 1997. msgid "" msgstr "" "Project-Id-Version: 4.10.4\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-12-29 11:28+0800\n" "PO-Revision-Date: 1999-01-24 13:01+01:00\n" "Last-Translator: \"Lorenzo M. Catucci\" \n" "Language-Team: Italian \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-1\n" "Content-Transfer-Encoding: 8-bit\n" #: src/buffer.c:68 msgid "any type" msgstr "qualsiasi" #: src/delegate.c:137 confg.gperf:168 lib/encoding.c:530 lib/encoding.c:576 #: lib/encoding.c:616 lib/output.c:302 lib/pair_ht.c:296 lib/prolog.c:146 #, fuzzy, c-format msgid "missing argument for `%s'" msgstr "manca un argomento per `%s'" #: src/delegate.c:260 lib/routines.c:160 lib/xbackupfile.c:248 #: lib/xbackupfile.c:276 lib/xbackupfile.c:284 #, fuzzy, c-format msgid "cannot create file `%s'" msgstr "Impossibile creare il file `%s'" #: src/delegate.c:269 src/select.c:193 lib/routines.c:190 lib/routines.c:196 #, fuzzy, c-format msgid "cannot open a pipe on `%s'" msgstr "Impossibile aprire una pipe verso `%s'" #: src/delegate.c:389 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "Incarico `%s', da %s a %s\n" #: src/delegate.c:408 src/delegate.c:430 msgid "Applications configured for delegation" msgstr "Applicazioni configurate per gli incarichi" #: src/generate.c:88 #, fuzzy, c-format msgid "`%s' is a directory" msgstr "`%s' è una directory" #: src/generate.c:96 src/main.c:560 src/main.c:582 confg.gperf:192 #: confg.gperf:355 lib/routines.c:154 #, c-format msgid "cannot open file `%s'" msgstr "impossibile aprire il file `%s'" #: src/generate.c:101 lib/xbackupfile.c:224 #, fuzzy, c-format msgid "cannot get informations on file `%s'" msgstr "impossibile ottenere informazioni sul file `%s'" #: src/generate.c:168 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): 1 pagina su 1 foglio]\n" #: src/generate.c:174 #, c-format msgid "[%s (%s): %d pages on 1 sheet]\n" msgstr "[%s (%s): %d pagine su 1 foglio]\n" #: src/generate.c:181 #, c-format msgid "[%s (%s): %d pages on %d sheets]\n" msgstr "[%s (%s): %d pagine su %d fogli]\n" #: src/generate.c:208 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[Totale: 1 pagina su 1 foglio] %s\n" #: src/generate.c:212 #, c-format msgid "[Total: %d pages on 1 sheet] %s\n" msgstr "[Totale: %d pagine su 1 foglio] %s\n" #: src/generate.c:217 #, c-format msgid "[Total: %d pages on %d sheets] %s\n" msgstr "[Totale: %d pagine su %d fogli] %s\n" #: src/generate.c:226 msgid "[1 line wrapped]\n" msgstr "" #: src/generate.c:229 #, fuzzy, c-format msgid "[%d lines wrapped]\n" msgstr "%d righe per pagina" #: src/generate.c:242 msgid "[No output produced]\n" msgstr "[Non è stato prodotto nulla in uscita]\n" #: src/generate.c:314 #, c-format msgid "%s, delegated to %s" msgstr "%s, incaricato per %s" #: src/generate.c:322 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): fallito: verrà ignorato]\n" #: src/generate.c:330 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (non stampabile): verrà ignorato]\n" #: src/generate.c:339 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (binario): verrà ignorato]\n" #: src/generate.c:360 msgid "plain" msgstr "normale" #: lexssh.l:348 msgid "end-of-line in string constant" msgstr "fine-riga in una stringa" #: lexssh.l:415 src/sheets-map.l:153 src/sheets-map.l:192 #, fuzzy, c-format msgid "end of line inside a %s" msgstr "fine-riga in una espressione-regolare" #: src/main.c:203 #, c-format msgid "received signal %d: %s" msgstr "" #: src/main.c:242 msgid "heavy" msgstr "forte" #: src/main.c:246 msgid "normal" msgstr "normale" #: src/main.c:250 msgid "none" msgstr "nessuno" #: src/main.c:324 src/main.c:328 msgid "yes" msgstr "sí" #: src/main.c:325 src/main.c:328 src/main.c:369 msgid "no" msgstr "no" #: src/main.c:335 #, c-format msgid "Configuration status of %s %s\n" msgstr "Configurazione attuale di %s %s\n" #: src/main.c:339 src/main.c:697 msgid "Sheets:\n" msgstr "Fogli:\n" #: src/main.c:340 #, 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" msgstr "" " Formato carta predefinito = %s%s\n" " disposizione sul foglio = %d x %d (%s, %s)\n" " bordi = %s\n" " modo compatto = %s\n" " margine interno = %d\n" #: src/main.c:349 msgid "portrait" msgstr "verticale" #: src/main.c:349 msgid "landscape" msgstr "orizzontale" #: src/main.c:358 #, c-format msgid "%d characters per line" msgstr "%d caratteri per riga" #: src/main.c:361 #, c-format msgid "%d lines per page" msgstr "%d righe per pagina" # controlla #: src/main.c:364 #, c-format msgid "font size is %gpt" msgstr "il corpo dei caratteri è %gpt" #: src/main.c:373 msgid "each line" msgstr "per ogni riga" #: src/main.c:377 #, c-format msgid "each %d lines" msgstr "ogni %d righe" # Fogli virtuali? Pagine virtuali è la traduzione vecchia. #: src/main.c:380 src/main.c:718 msgid "Virtual pages:\n" msgstr "Pagine virtuali:\n" #: src/main.c:381 #, fuzzy, c-format msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %d\n" " non printable format = %s\n" msgstr "" " numera le righe = %s\n" " formato = %s\n" " lunghezza del tabulatore = %d\n" " caratteri non stampabili = %s\n" #: src/main.c:392 msgid "Headers:\n" msgstr "Bordo Pagina:\n" #: src/main.c:393 #, 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 "" " 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:412 src/main.c:747 msgid "Input:\n" msgstr "Input:\n" # cosa significa questo delegating?? #: src/main.c:413 #, 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 "" " tronca le righe = %s\n" " interpreta = %s\n" " fine riga = %s\n" " codifica predefinita = %s\n" " titolo del documento = %s\n" " prologo predefinito = %s\n" " stampa in ogni caso = %s\n" " incarica = %s\n" #: src/main.c:438 src/main.c:504 msgid "selected automatically" msgstr "scelta automatica" # altri problemi... rimandiamo, per ora #: src/main.c:441 src/main.c:766 msgid "Pretty-printing:\n" msgstr "Pretty-printing:\n" #: src/main.c:442 #, fuzzy, 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:462 msgid "never make backups" msgstr "non creare mai backup" #: src/main.c:466 msgid "simple backups of every file" msgstr "backup semplice di tutti i file" #: src/main.c:471 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" "backup numerati per i file che già ne abbiano,\n" " e semplice per gli altri" #: src/main.c:476 msgid "numbered backups of every file" msgstr "backup numerati per tutti i file" # Altro messaggio non tradotto in precedenza, ma # solamente riportato #: src/main.c:480 src/main.c:775 msgid "Output:\n" msgstr "Output:\n" #: src/main.c:481 #, fuzzy, c-format msgid "" " destination = %s\n" " version control = %s\n" " backup suffix = %s\n" msgstr "" " destinazione = %s\n" " gestione delle versioni = %s\n" " suffisso file di backup = %s\n" #: src/main.c:494 src/main.c:786 msgid "PostScript:\n" msgstr "Postscript:\n" #: src/main.c:495 #, 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 = " msgstr "" " magic number = %s\n" " Descrizione della stampante\n" " (PPD) = %s\n" " PPD predefinito = %s\n" " formato dei\n" " numeri di pagina = %s\n" " numero di copie = %d\n" " facce da stampare per foglio = %d\n" " definizioni della pagina = " #: src/main.c:515 #, c-format msgid " statusdict definitions = " msgstr " definizioni nello statusdict = " #: src/main.c:518 #, c-format msgid " page prefeed = %s\n" msgstr " alimentazione immediata carta = %s\n" # come vanno tradotte le «interiora»? # che significa «file command» #: src/main.c:527 msgid "Internals:\n" msgstr "Interno:\n" #: src/main.c:528 #, fuzzy, c-format msgid "" " verbosity level = %d\n" " file command = %s\n" " library path = \n" msgstr "" " verbosità delle informazioni = %d\n" " file command = %s\n" " directory temporanea = %s\n" #: src/main.c:653 #, 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" msgstr "" "Uso : %s [OPZIONI]... [FILE]...\n" " oppure: %s [OPZIONI]...\n" "Per stampare i FILE elencati, oppure il testo fornito in standard input\n" "Gli argomenti indispensabili per le opzioni lunghe sono obbligatori \n" "anche per le corrispondenti opzioni corte.\n" "Le opzioni lunghe evidenziate da `*' richiedono un argomento `yes/no';\n" "Le corrispondenti opzioni corte equivalgono alla scelta affermativa (yes).\n" #: src/main.c:668 msgid "Tasks:\n" msgstr "" #: src/main.c:669 #, 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" msgstr "" " -V, --version stampa la versione del programma\n" " --help stampa questo messaggio di aiuto ed esci\n" " --guess stampa il tipo dei FILE dedotto dal sistema\n" " di riconoscimento automatico\n" " --list=CATEGORIA stampa lo stato per la CATEGORIA\n" "\n" "CATEGORIA è una qualunque abbreviazione non ambigua di:\n" " * `defaults': parametri predefiniti\n" " * `features': breve lista dei formati, dei codici di carattere,\n" " dei fogli-stile, etc.\n" " * `delegations', `encodings', `variables', `media',\n" " `ppd', `printers', `prologues', `style-sheets', `user-options':\n" " lista dettagliata.\n" #: src/main.c:680 msgid "" "After having performed the task, exit successfully. Detailed lists may\n" "provide additional help on specific features.\n" msgstr "" #: src/main.c:688 msgid "Global:\n" msgstr "Globale:\n" #: src/main.c:689 #, 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 il programma non stampa nulla sullo schermo\n" " -v, --verbose[=LIVELLO] attiva la stampa dei messaggi, fissando il \n" " livello di verbosità\n" " -=, --user-option=OPZIONE adopera l'OPZIONE abbreviata dell'utente\n" " --debug abilita le funzioni di debugging\n" " --define=KEY[:VALUE] disabilita, o fissa al valore V la " "variabile\n" " KEY\n" # qui compaiono le pagine «virtuali» #: src/main.c:698 #, 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" msgstr "" " -M, --medium=NOME Usa fogli del formato NOME\n" " -1, -2, ..., -9 Disposizione predefinita per 1,...,9 pagine\n" " su un foglio\n" " --columns=NUM numero di colonne su un foglio (NUM>0)\n" " --rows=NUM numero di righe su un foglio (NUM>0)\n" " --major=DIREZIONE riempi il foglio per righe oppure per " "colonne:\n" " DIREZIONE={rows|columns}\n" " -r, --landscape stampa in formato orizzontale\n" " -R, --portrait stampa in formato verticale\n" " -j, --borders* stampa i bordi attorno alle colonne\n" " -A, --compact* permetti di stampare piú file\n" " sullo stesso foglio\n" " --margin[=NUM] definisci un margine interno di dimensione " "NUM\n" #: src/main.c:711 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:719 #, 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 stampa il numero di linea ogni NUM righe\n" " -C equivale a --line-numbers=5\n" " -f, --fontsize=DIMEN Utilizza caratteri in corpo\n" " DIMEN (in formato decimale) per il " "testo\n" " -L, --lines-per-page=NUM stampa NUM righe per pagina\n" " -l, --chars-per-line=NUM stampa NUM colonne per pagina\n" " -m --catman stampa come una pagina di man (equivale a -" "L66)\n" " -T, --tabsize=NUM la lunghezza del tabulatore è NUM caratteri\n" " --non-printable-format=FMT specifica come rendere i caratteri\n" " non stampabili\n" #: src/main.c:730 msgid "Headings:\n" msgstr "Bordo Pagina:\n" #: src/main.c:732 #, 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 nessuna intestazione\n" " -b, --header[=TESTO] usa TESTO come intestazione\n" " -u, --underlay[=TESTO] stampa TESTO come filigrana su ogni pagina\n" " --center-title[=TESTO] inserisci TESTO come titolo a centro pagina\n" " --left-title[=TESTO] inserisci TESTO a sinistra del titolo\n" " --right-title[=TESTO] inserisci TESTO a destra del titolo\n" " --left-footer[=TESTO] inserisci TESTO a pié di pagina, a sinistra\n" " --footer[=TESTO] inserisci TESTO a pié di pagina\n" " --right-footer[=TESTO] inserisci TESTO a pié di pagina, a destra\n" " N.B.: Nel corpo di TESTO, è possibile\n" " usare le sequenze speciali $xx e %" "xx.\n" #: src/main.c:743 msgid "The TEXTs may use special escapes.\n" msgstr "" #: src/main.c:748 #, 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=INTERVALLO seleziona le pagine da stampare\n" " -c, --truncate-lines* tronca le righe troppo lunghe\n" " -i --interpret* interpreta i caratteri «tab», «bs», «ff»\n" " --end-of-line=TIPO specifica il formato della fine di riga \n" " (TIPO: r, n, nr, rn, any)\n" " -X, --encoding=NOME Adopera la codifica dei caratteri NOME\n" " -t, --title=NOME Usa NOME come titolo della stampa\n" " --stdin=NOME stampando da standard input, usa NOME come\n" " titolo del file\n" " --prologue=FILE inserisci FILE.pro come prologo PostScript\n" " --print-anyway* stampa comunque (i file binari)\n" " -Z, --delegate* incarica un'altra applicazione di " "interpretare\n" " i file\n" #: src/main.c:760 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 "" # pretty-print -> evidenziazione sintattica; a parte la lunghezza, ha senso? #: src/main.c:767 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] abilita l'evidenziazione sintattica\n" " (secondo lo stile LANG)\n" " --graphic-symbols=LEVEL determina il livello di evidenziazione " "sintattica\n" " LEVEL può essere «none» (nullo),\n" " «normal» (normale), «heavy» (elevato)\n" " --strip-level=NUM elimina NUM livelli di commenti\n" #: src/main.c:776 #, 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 ``stampa'' su FILE. Se FILE è \"-\",\n" " scrivi sullo standard output.\n" " --version-control=PAROLA gestisci le versioni secondo PAROLA anziché\n" " in modo usuale\n" " --suffix=SUFFISSO adopera un suffisso differente da quello " "usuale\n" " per i file di backup\n" " -P, --printer=NOME utilizza la stampante NOME\n" " -d utilizza la stamante predefinita\n" #: src/main.c:787 #, 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[=NOME] utilizza il PPD scelto automaticamente,\n" " o impone l'uso del PPD NOME\n" " -n, --copies=NUM stampa NUM copie di ogni pagina\n" " -s --sides=NUM numero di facce da stampare\n" " (fronte/fronte-retro)\n" " -D, --setpagedevice=K[:V] inserisci una definizione di ``page " "device''\n" " -S, --statusdict=K[:[:]V] inserisci una definizione di ``statusdict''\n" " -k, --page-prefeed abilita l'alimentazione immediata dei fogli\n" " -K, --no-page-prefeed disabilita l'alimentazione immediata dei " "fogli\n" #: src/main.c:801 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" msgstr "" #: src/main.c:822 #, fuzzy msgid "" "News, updates and documentation: visit http://www.gnu.org/software/a2ps/.\n" msgstr "" "Per novità, aggiornamenti e documentazione, visitare:\n" "http://www.inf.enst.fr/~demaille/a2ps/\n" #: src/main.c:824 #, fuzzy msgid "Report bugs to .\n" msgstr "" "Segnalare gli eventuali errori e malfunzionamenti a \n" #: src/main.c:942 #, 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" #: src/main.c:1173 msgid "Table of Content" msgstr "Sommario" #: src/parsessh.y:236 #, 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:111 #, fuzzy, c-format msgid "unexpected character `%c'" msgstr "opzione non prevista: `%c' (%d)" #: src/sheets-map.l:211 lexppd.l:211 msgid "too many includes" msgstr "" #: src/sheets-map.l:296 src/sheets-map.l:303 #, fuzzy, c-format msgid "no key defined for `%s'" msgstr "impossibile trovare il file `%s%s'" #: src/select.c:122 src/ssheet.c:866 fonts.l:838 fonts.l:840 fonts.l:842 #: lib/pathwalk.c:328 lib/pathwalk.c:414 #, fuzzy, c-format msgid "cannot find file `%s'" msgstr "impossibile trovare il file `%s%s'" #: src/select.c:124 msgid "automatic style selection cancelled" msgstr "la scelta automatica dello stile non è possibile" #: src/ssheet.c:295 #, fuzzy, c-format msgid "cannot compile regular expression `%s': %s" msgstr "non è possibile compilare l'espressione-regolare `%s': %s" #: src/ssheet.c:974 src/ssheet.c:995 #, fuzzy msgid "Known Style Sheets" msgstr "Fogli di stile (linguaggi) noti" #: src/ssheet.c:1461 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "il foglio stile %s non è reperibile: utilizzo lo stile di base" #: src/sshread.c:453 #, fuzzy, c-format msgid "unknown encoding `%s', ignored" msgstr "la codifica sconosciuta `%s' verrà ignorata" #: src/version-etc.c:38 msgid "Copyright (C) 1999 Free Software Foundation, Inc." msgstr "" #: src/version-etc.c:60 #, fuzzy, c-format msgid "Written by %s.\n" msgstr "Stampato da %s" #: src/version-etc.c:66 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 è free software; si vedano i sorgenti per le\n" "condizioni di copia. Il programma viene distribuito SENZA ALCUNA\n" "GARANZIA; senza neppure la garanzia implicita di NEGOZIABILITA` o di\n" "APPLICABILITA` PER UN PARTICOLARE SCOPO.\n" #: src/versions.c:133 #, fuzzy, c-format msgid "invalid version number `%s'" msgstr "il numero di versione `%s' non è valido" #: lib/caret.c:43 msgid "space (i.e., ` ')" msgstr "spazio (' ')" #: lib/caret.c:45 msgid "octal (i.e., `\\001' etc.)" msgstr "ottale ('\\001' etc.)" #: lib/caret.c:47 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "esadecimale ('\\x0a' etc.)" #: lib/caret.c:49 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "circonflesso ('^C', 'M-^C' etc.)" #: lib/caret.c:51 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "emacs (`C-c', `M-C-c' etc.')" #: lib/caret.c:53 msgid "question-mark (i.e., `?')" msgstr "punto interrogativo ('?')" #: lib/closeout.c:71 lib/closeout.c:73 msgid "write error" msgstr "" #: confg.gperf:157 lib/encoding.c:638 #, fuzzy, c-format msgid "invalid option `%s'" msgstr "%s: l'opzione -- %c non è valida\n" #: confg.gperf:224 confg.gperf:231 confg.gperf:238 #, c-format msgid "invalid definition for printer `%s': %s" msgstr "definizione non utlizzabile per la stampante `%s': %s" #: confg.gperf:229 confg.gperf:232 lib/printers.c:47 msgid "Unknown Printer" msgstr "Stampante sconosciuta" #: confg.gperf:236 confg.gperf:239 lib/printers.c:46 msgid "Default Printer" msgstr "Stampante predefinita" #: confg.gperf:292 lib/options.c:697 #, fuzzy, c-format msgid "invalid variable identifier `%s'" msgstr "identificatore macro `%s' non valido" # cosa si intende per «entry»? #: confg.gperf:321 #, c-format msgid "obsolete `%s' entry. Ignored" msgstr "il comando obsoleto %s verrà ignorato" #: lib/encoding.c:1114 lib/encoding.c:1135 msgid "Known Encodings" msgstr "Codifiche dei caratteri note" #: lib/faces.c:156 msgid "incomplete knowledge of faces" msgstr "le caratteristiche dei caratteri non sono completamente note" #: lib/filtdir.c:113 #, c-format msgid "cannot close directory `%s'" msgstr "impossibile chiudere la directory `%s'" #: lib/getnum.c:63 lib/getnum.c:121 lib/getnum.c:153 lib/getnum.c:221 #, fuzzy, c-format msgid "invalid argument `%s' for `%s'" msgstr "`%s' non è un argomento valido per l'opzione `%s'" #: lib/getnum.c:123 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "Gli argomenti validi sono numeri interi n, tali che: %s\n" #: lib/getnum.c:223 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "Gli argomenti validi sono numeri decimali f, tali che: %s\n" #: lib/jobs.c:308 #, fuzzy, c-format msgid "unknown encoding `%s'" msgstr "la codifica sconosciuta `%s' verrà ignorata" #: lib/madir.c:59 msgid "rows first" msgstr "ordina per righe" #: lib/madir.c:62 msgid "columns first" msgstr "ordina per colonne" #: lib/media.c:173 #, fuzzy, c-format msgid "unknown medium `%s'" msgstr "formato di pagina sconosciuto `%s'" #: lib/media.c:208 lib/media.c:237 msgid "Known Media" msgstr "Formati di pagina noti" #: lib/media.c:211 msgid "Name" msgstr "Nome" #: lib/media.c:212 msgid "dimensions" msgstr "dimensioni" #: lib/metaseq.c:104 lib/metaseq.c:113 #, c-format msgid "Known Variables" msgstr "Variabili note" #: lib/metaseq.c:162 lib/metaseq.c:531 lib/metaseq.c:548 lib/metaseq.c:608 #: lib/metaseq.c:951 lib/metaseq.c:972 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%s: manca il separatore `%c' per la sequenza speciale %s%c" #: lib/metaseq.c:288 lib/metaseq.c:300 #, c-format msgid "Printed by %s" msgstr "Stampato da %s" #: lib/metaseq.c:298 #, c-format msgid "Printed by %s from %s" msgstr "Stampato da %s su %s" #: lib/metaseq.c:308 lib/metaseq.c:327 msgid "cannot get current working directory" msgstr "impossibile determinare la directory corrente" #: lib/metaseq.c:341 lib/metaseq.c:534 lib/metaseq.c:563 lib/metaseq.c:652 #: lib/metaseq.c:954 lib/metaseq.c:987 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s: argomento troppo lungo per la sequenza speciale %s" #: lib/metaseq.c:364 lib/metaseq.c:675 msgid "%b %d, %y" msgstr "%d %b %y" #: lib/metaseq.c:373 lib/metaseq.c:684 msgid "%A %B %d, %Y" msgstr "%A %d %B %Y" #: lib/metaseq.c:419 lib/metaseq.c:448 lib/metaseq.c:491 lib/metaseq.c:724 #: lib/metaseq.c:808 lib/metaseq.c:867 lib/metaseq.c:922 lib/metaseq.c:1099 #: lib/metaseq.c:1234 lib/metaseq.c:1246 lib/metaseq.c:1289 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s: la sequenza speciale `%s' `%c' (%d) non è definita" #: lib/metaseq.c:426 lib/metaseq.c:815 #, c-format msgid "Page %d" msgstr "Pagina %d" #: lib/metaseq.c:431 lib/metaseq.c:826 #, c-format msgid "Page %d/%c" msgstr "Pagina %d/%c" #: lib/metaseq.c:593 lib/metaseq.c:1021 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "%s: separatore `%s%c' non utilizzabile per la sequenza speciale `%s'" #: lib/metaseq.c:601 lib/metaseq.c:611 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s: argomento non utilizzabile per la sequenza speciale %s%c" #: lib/metaseq.c:822 #, c-format msgid "Page %d/%d" msgstr "Pagina %d/%d" #: lib/metaseq.c:1266 msgid "output command" msgstr "comando di stampa" #: lib/options.c:302 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Usa `%s --help' per ulteriori informazioni\n" #: lib/output.c:466 #, fuzzy, c-format msgid "invalid face `%s'" msgstr "%s: l'opzione -- %c non è valida\n" #: lib/output.c:538 #, c-format msgid "`%s' with no matching `%s'" msgstr "`%s'senza il corrispondente `%s'" #: lib/ppd.c:108 #, fuzzy msgid "Known Fonts" msgstr "Codifiche dei caratteri note" #: lib/ppd.c:111 msgid "" "\n" " None.\n" msgstr "" #: lib/ppd.c:149 lib/ppd.c:165 msgid "Known PostScript Printer Descriptions" msgstr "" # illegale non è un gran che... #: lib/prange.c:305 lib/prange.c:323 #, fuzzy, c-format msgid "invalid interval `%s'" msgstr "intervallo intero illegale: `%s'" #: lib/printers.c:396 lib/printers.c:413 #, fuzzy, c-format msgid "no command for the `%s' (%s%s)" msgstr "non esiste un comando predefinito per la stampante sconosciuta `%s'" #: lib/printers.c:429 msgid "sent to the standard output" msgstr "inviato sullo standard output" #: lib/printers.c:430 msgid "sent to the default printer" msgstr "inviato alla stampante predefinita" #: lib/printers.c:435 #, c-format msgid "saved into the file `%s'" msgstr "salvato nel file %s" #: lib/printers.c:436 #, c-format msgid "sent to the printer `%s'" msgstr "inviato alla stampante `%s'" #: lib/printers.c:613 lib/printers.c:621 msgid "Known Outputs (Printers, etc.)" msgstr "Destinazioni possibili (stampanti, etc.)" #: lib/prolog.c:98 lib/prolog.c:181 msgid "Known Prologues" msgstr "File di prologo disponibili" #: lib/prolog.c:579 #, c-format msgid "font %f too big" msgstr "il corpo %f richiesto è troppo grande" #: lib/psgen.c:662 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "`%s' é un file binario: stampa annullata" #: lib/quotearg.c:200 msgid "`" msgstr "" #: lib/quotearg.c:203 msgid "'" msgstr "" #: lib/userdata.c:129 msgid "user" msgstr "utente" #: lib/userdata.c:130 msgid "Unknown User" msgstr "Utente sconosciuto" #: lib/useropt.c:75 #, fuzzy, c-format msgid "unknown user option `%s'" msgstr "Opzioni locali disponibili" #: lib/useropt.c:86 lib/useropt.c:97 msgid "Known User Options" msgstr "Opzioni locali disponibili" #: lib/xbackupfile.c:105 lib/xmalloc.c:66 msgid "Memory exhausted" msgstr "Memoria esaurita" #: lib/xbackupfile.c:240 lib/xbackupfile.c:252 #, fuzzy, c-format msgid "cannot rename file `%s' as `%s'" msgstr "impossibile cambiare il nome del file `%s' in `%s'" #: lib/xbackupfile.c:255 #, fuzzy, c-format msgid "restored file `%s'" msgstr "Il file `%s' è stato ripristinato" #: lib/argmatch.c:159 #, fuzzy, c-format msgid "invalid argument %s for `%s'" msgstr "`%s' non è un argomento valido per l'opzione `%s'" #: lib/argmatch.c:160 #, fuzzy, c-format msgid "ambiguous argument %s for `%s'" msgstr "L'argomento `%s' dato all'opzione `%s' è ambiguo" #: lib/argmatch.c:178 #, c-format msgid "Valid arguments are:" msgstr "Gli argomenti validi sono:" #: lib/error.c:102 msgid "Unknown system error" msgstr "Errore di sistema sconosciuto" #: lib/getopt.c:675 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: l'opzione `%s' è ambigua\n" #: lib/getopt.c:700 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: l'opzione `--%s' non ammette argomenti\n" #: lib/getopt.c:705 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: l'opzione `%c%s' non ammette argomenti\n" #: lib/getopt.c:723 lib/getopt.c:896 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: l'opzione `%s' richiede un argomento\n" #: lib/getopt.c:752 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: opzione sconosciuta `--%s'\n" #: lib/getopt.c:756 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: opzione sconosciuta `%c%s'\n" #: lib/getopt.c:782 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: opzione illegale -- %c\n" #: lib/getopt.c:785 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: l'opzione -- %c non è valida\n" #: lib/getopt.c:815 lib/getopt.c:945 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: l'opzione richiede un argomento -- %c\n" #: lib/getopt.c:862 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: l'opzione `-W %s' è ambigua\n" #: lib/getopt.c:880 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: l'opzione `-W %s' non ammette argomenti\n" #, fuzzy #~ msgid "end of line in a %s" #~ msgstr "fine-riga in una espressione-regolare" #~ msgid "end-of-line in regular expression" #~ msgstr "fine-riga in una espressione-regolare" #, 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 "Attività (termina senza errori):\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 "" #~ "Questo programma e` free software; e` lecito redistribuirlo e/o\n" #~ "modificarlo secondo i termini della Licenza Pubblica Generica GNU come\n" #~ "e` pubblicata dalla Free Software Foundation; o la versione 2 della\n" #~ "licenza o (a propria scelta) una versione successiva.\n" #~ "\n" #~ "Questo programma e` distribuito nella speranza che sia utile, ma SENZA\n" #~ "ALCUNA GARANZIA; senza neppure la garanzia implicita di NEGOZIABILITA`\n" #~ "o di APPLICABILITA` PER UN PARTICOLARE SCOPO. Si veda la Licenza\n" #~ "Pubblica Generica GNU per avere maggiori dettagli.\n" #~ "\n" #~ "Dovreste avere ricevuto una copia della Licenza Pubblica Generica GNU\n" #~ "insieme a questo programma; in caso contrario, si scriva alla \n" #~ " Free Software Foundation\n" #~ " Inc., 59 Temple Place - Suite 330\n" #~ " Boston, MA 02111-1307\n" #~ " Stati Uniti d'America\n" #~ msgid "" #~ "Written by and .\n" #~ msgstr "Scritto da e \n" #~ msgid "no default command for option `-d'" #~ msgstr "non esiste un comando predefinito per l'opzione -d" #~ msgid "pipe in %s\n" #~ msgstr "passato come input al comando %s\n" #~ msgid "save in %s\n" #~ msgstr "salva come %s\n" #, fuzzy #~ msgid "%s: invalid argument `%s' for `%s'\n" #~ msgstr "`%s' non è un argomento valido per l'opzione `%s'" # illegale non è un gran che... #, fuzzy #~ msgid "invalid interval: %s" #~ msgstr "intervallo intero illegale: `%s'" # illegale non è un gran che... #~ msgid "illegal integer interval: %s" #~ msgstr "intervallo intero illegale: `%s'" #, fuzzy #~ msgid "cannot find file %s" #~ msgstr "impossibile trovare il file `%s'" # qualcuno che abbia un manuale di tipografia... #, fuzzy #~ msgid "unrecognized font `%s'" #~ msgstr "tipo di carattere sconosciuto: `%s'" #, fuzzy #~ msgid "unrecognized face `%s'" #~ msgstr "tipo di carattere sconosciuto: `%s'" #, fuzzy #~ msgid "missing argument for %s" #~ msgstr "manca un argomento per `%s'" #, fuzzy #~ msgid "invalid variable identifier %s" #~ msgstr "identificatore macro `%s' non valido" #, fuzzy #~ msgid "cannot create file %s" #~ msgstr "Impossibile creare il file `%s'" #, fuzzy #~ msgid "cannot open a pipe on %s" #~ msgstr "Impossibile aprire una pipe verso `%s'" #, fuzzy #~ msgid "cannot open file %s" #~ msgstr "impossibile aprire il file `%s'" #, fuzzy #~ msgid "cannot open configuration file %s" #~ msgstr "impossibile aprire il file di configurazione `%s'" #~ msgid "encoding %s unknown" #~ msgstr "codifica %s dei caratteri sconosciuta" # quale/i libreria/e? #~ msgid " library path = \n" #~ msgstr " posizione delle librerie = \n" #~ msgid "user option `%s' not defined" #~ msgstr "l'opzione locale `%s' non è definita" #, fuzzy #~ msgid "illegal option: %s" #~ msgstr "opzione illegale: `%s'" #~ msgid "illegal option: `%s'" #~ msgstr "opzione illegale: `%s'" #~ msgid "" #~ "syntax error in option string `%s':\n" #~ "missing end of quotation: %c" #~ msgstr "" #~ "errore sintattico nella stringa delle opzioni `%s':\n" #~ "mancano le virgolette di chiusura della stringa: %c" #, fuzzy #~ msgid "cannot backup and create file `%s'" #~ msgstr "Impossibile creare il file `%s'" #~ msgid "wrong value for option %s: `%s'" #~ msgstr "valore errato per l'opzione %s: `%s'" #~ msgid "Valid arguments are integers between %d and %d\n" #~ msgstr "Gli argomenti validi sono numeri interi tra %d e %d\n" #~ msgid "Valid arguments are integers greater than %d\n" #~ msgstr "Gli argomenti validi sono numeri interi maggiori di %d\n" #~ msgid "Valid arguments are lengths between %gpt and %gpt\n" #~ msgstr "Gli argomenti validi sono lunghezze comprese tra %gpt e %1fin\n" #~ msgid "cannot find configuration file `%s'" #~ msgstr "impossibile trovare il file di configurazione `%s'" #~ msgid "Dynamic array `%s':\n" #~ msgstr "Array dinamico `%s':\n" #~ msgid "\tload: %d/%d (%2.1f%%)\n" #~ msgstr "\tcarico: %d/%d /%2.1f%%)\n" #~ msgid "Dynamic string:\n" #~ msgstr "Stringa dinamica:\n" #~ msgid "steady" #~ msgstr "stabile" #~ msgid "linear" #~ msgstr "lineare" #~ msgid "geometrical" #~ msgstr "geometrica" #~ msgid "\tgrowth: %s, increment: %d\n" #~ msgstr "\tcrescita: %s, incremento: %d\n" #~ msgid "can't allocate %ld bytes for hash table: memory exhausted" #~ msgstr "" #~ "Impossibile richiedere %ld bytes per la tabella di hash: memoria esaurita" #~ msgid "Load=%ld/%ld=%.0f%%, " #~ msgstr "Utilizzo=%ld/%ld=%.0f%%, " #~ msgid "Rehash=%d, " #~ msgstr "Rehash=%d, " #~ msgid "Collisions=%ld/%ld=%.0f%%" #~ msgstr "Collisioni=%ld/%ld=%.0f%%" #~ msgid "Document title" #~ msgstr "Titolo del documento" # Page label??? In realtà si tratta del commento ADSC %%Page(label) # che tipicamente corrispone a un numero e.g. %%Page(1) #~ msgid "Page label" #~ msgstr "Etichetta della pagina" #, fuzzy #~ msgid "Valid arguments are floats greater than %.1f\n" #~ msgstr "Gli argomenti validi sono numeri interi maggiori di %d\n" # La dimensione dei caratteri è `libera', il corpo `libero' #~ msgid "free" #~ msgstr "libera" #~ msgid " %-10s = save in %s\n" #~ msgstr " %-10s = salvato come %s\n" #~ msgid "delegating command" #~ msgstr "comando incaricato" #~ msgid "water mark" #~ msgstr "filigrana" #~ msgid "right header" #~ msgstr "intestazione destra" #~ msgid "center footer" #~ msgstr "pié di pagina centrale" #~ msgid "right footer" #~ msgstr "pié di pagina destro" #~ msgid "left footer" #~ msgstr "pié di pagina sinistro" #~ msgid "center title" #~ msgstr "titolo centrale" #~ msgid "right title" #~ msgstr "titolo destro" #~ msgid "left title" #~ msgstr "titolo sinistro" #, fuzzy #~ msgid "cannot launch `%s' (delegation `%s')" #~ msgstr "impossibile lanciare `%s' (delegato da `%s')" #, fuzzy #~ msgid "delegation %s did not create the file" #~ msgstr "il comando delegato %s non ha creato il file" #, fuzzy #~ msgid "delegation %s failed and exited with status %d" #~ msgstr "il comando delegato %s è fallito ed ha restituito l'errore %d" #, fuzzy #~ msgid "delegation %s failed" #~ msgstr "il comando delegato è fallito" #, fuzzy #~ msgid "" #~ "General information on %s:\n" #~ " version = %s\n" #~ " verbosity level = %d\n" #~ " library path = \n" #~ msgstr "" #~ "Informazioni generali su %s:\n" #~ " versione = %s\n" #~ " livello di verbosità = %d\n" #~ " percorso delle librerie = \n" #~ msgid "syntax error in fonts(s) `%s'" #~ msgstr "errore sintattico nel/nei font `%s'" #~ msgid "found following options (argc=%d):\n" #~ msgstr "sono state trovate le seguenti opzioni (argc=%d):\n" #, fuzzy #~ msgid "Walk through path\n" #~ msgstr "Seguo il percorso" #~ msgid "failure\n" #~ msgstr "non è stato trovato\n" #, fuzzy #~ msgid "%s: no closing `%s' for %s escape" #~ msgstr "%s: manca il delimitatore `)' per la sequenza speciale %s" #~ msgid "%s: too long variable name for %s escape" #~ msgstr "%s: nome di variabile troppo lungo per la sequenza speciale %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=NOME invia alla stampante NOME\n" #~ " -d invia alla stampante predefinita\n" #~ " -s --sides=NUM numero di lati su un foglio (fronte|fronte-" #~ "retro)\n" #, fuzzy #~ msgid "In the style %s, the keyword `%s' uses upper chars" #~ msgstr "Nello stile %s, la parola chiave '%s' è maiuscola" #, fuzzy #~ msgid "In the style %s, the sequence `%s-%s' uses upper chars" #~ msgstr "Nello stile %s, la sequenza '%s-%s' è maiuscola" #~ msgid "in style %s, keyword `%s' is defined twice" #~ msgstr "nello stile %s, la parola chiave %s è definita due volte" #, fuzzy #~ msgid "in style %s, operator `%s' is defined twice" #~ msgstr "nello stile %s, la parola chiave %s è definita due volte" #~ msgid "can't get current working directory" #~ msgstr "impossibile determinare la directory corrente" #, fuzzy #~ msgid "expansion of %s user string (`%s') is `%s'\n" #~ msgstr "l'espansione della stringa %s (\"%s\") è \"%s\"\n" #, fuzzy #~ msgid "cannot open `%s'" #~ msgstr "impossibile aprire il file `%s'" #~ msgid "error opening `%s'" #~ msgstr "errore nell'apertura di `%s'" #, fuzzy #~ msgid "error getting file `%s' modification time" #~ msgstr "errore nella lettura della data di modifica del file \"%s\"" #, fuzzy #~ msgid "cannot find file \"%s%s\"" #~ msgstr "impossibile trovare il file `%s'" #, fuzzy #~ msgid "couldn't find system's configuration file `%s%c%s'" #~ msgstr "impossibile aprire il file di configurazione `%s%c%s'" #, fuzzy #~ msgid "unable to fork" #~ msgstr "Impossibile aprire una pipe" #~ msgid "error starting `/bin/sh -c %s'" #~ msgstr "errore nell'avvio di `/bin/sh -c %s'" #~ msgid "[Total: %d page on " #~ msgstr "[Totale: %d pagina su " #~ msgid "sheet" #~ msgstr "foglio" #~ msgid "space" #~ msgstr "spazio" #~ msgid "caret" #~ msgstr "circonflesso" #, fuzzy #~ msgid "Known Media\n" #~ msgstr "Formati di pagina noti (%d)\n" #~ msgid "Known languages (%d)" #~ msgstr "Linguaggi noti (%d)" #~ msgid "" #~ " In %s:\n" #~ "\t" #~ msgstr "" #~ " In %s:\n" #~ "\\t" #~ msgid "rows" #~ msgstr "righe" #~ msgid "columns" #~ msgstr "colonne" #~ msgid "path_walk() on path %s\n" #~ msgstr "path_walk() nel percorso %s\n" #~ msgid "unknown" #~ msgstr "sconosciuto" #~ msgid "In the style %s, the symbol '%s' uses upper chars" #~ msgstr "Nello stile %s, il simbolo '%s' è maiuscolo" #~ msgid "in style %s, regular symbol `%s' is defined twice" #~ msgstr "nello stile %s, il simbolo ordinario %s è definito due volte" #~ msgid "in style %s, special symbol `%s' is defined twice" #~ msgstr "nello stile %s, il simbolo speciale %s è definito due volte" #~ msgid "not enough \\verb delimiters (%s) to print %s" #~ msgstr "non ci sono abbastanza delimitatori \\verb (%s) per stampare %s" #~ msgid "couldn't find prolog \"%s\"" #~ msgstr "non ho trovato il prologo \"%s\"" #, fuzzy #~ msgid "language %s unknown" #~ msgstr "linguaggio %s sconosciuto." #, fuzzy #~ msgid "couldn't find requested file \"%s\"" #~ msgstr "impossibile aprire il file `%s'; %s" #~ msgid "2-sided" #~ msgstr "fronte-retro" #~ msgid "1-sided" #~ msgstr "fronte" #~ msgid "page" #~ msgstr "pagina" #~ msgid "pages" #~ msgstr "pagine" #, fuzzy #~ msgid "couldn't find prolog \"%s.pro\": %s" #~ msgstr "impossibile aprire il file di prologo `%s.pro': %s" #, fuzzy #~ msgid "couldn't find prologue \"%s.pro\": %s" #~ msgstr "impossibile aprire il file di prologo `%s.pro': %s" #, fuzzy #~ msgid "wrong key:value `%s' given to %s" #~ msgstr "si è assegnato il valore errato %s alla variabile %s" a2ps-4.14/po/Makefile.in.in0000644000175000017500000002431407447654675014751 0ustar mhattamhatta# Makefile for PO directory in any package using GNU gettext. # Copyright (C) 1995-1997, 2000-2002 by Ulrich Drepper # # This file can be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU General Public # License but which still want to provide support for the GNU gettext # functionality. # Please note that the actual code of GNU gettext is covered by the GNU # General Public License and is *not* in the public domain. PACKAGE = @PACKAGE@ VERSION = @VERSION@ SHELL = /bin/sh @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ datadir = @datadir@ localedir = $(datadir)/locale gettextsrcdir = $(datadir)/gettext/po INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ MKINSTALLDIRS = @MKINSTALLDIRS@ mkinstalldirs = $(SHELL) `case "$(MKINSTALLDIRS)" in /*) echo "$(MKINSTALLDIRS)" ;; *) echo "$(top_builddir)/$(MKINSTALLDIRS)" ;; esac` GMSGFMT = @GMSGFMT@ MSGFMT = @MSGFMT@ XGETTEXT = @XGETTEXT@ MSGMERGE = msgmerge MSGMERGE_UPDATE = @MSGMERGE@ --update MSGINIT = msginit MSGCONV = msgconv MSGFILTER = msgfilter POFILES = @POFILES@ GMOFILES = @GMOFILES@ UPDATEPOFILES = @UPDATEPOFILES@ DUMMYPOFILES = @DUMMYPOFILES@ DISTFILES.common = Makefile.in.in Makevars remove-potcdate.sin \ $(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3) DISTFILES = $(DISTFILES.common) POTFILES.in $(DOMAIN).pot \ $(POFILES) $(GMOFILES) \ $(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3) POTFILES = \ CATALOGS = @CATALOGS@ # Makevars gets inserted here. (Don't remove this line!) .SUFFIXES: .SUFFIXES: .po .gmo .mo .sed .sin .nop .po-update .po.mo: @echo "$(MSGFMT) -c -o $@ $<"; \ $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@ .po.gmo: @lang=`echo $* | sed -e 's,.*/,,'`; \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po"; \ cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo .sin.sed: sed -e '/^#/d' $< > t-$@ mv t-$@ $@ all: all-@USE_NLS@ all-yes: $(CATALOGS) all-no: # 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. $(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \ --files-from=$(srcdir)/POTFILES.in \ --copyright-holder='$(COPYRIGHT_HOLDER)' test ! -f $(DOMAIN).po || { \ 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; \ } $(srcdir)/$(DOMAIN).pot: $(MAKE) $(DOMAIN).pot-update $(POFILES): $(srcdir)/$(DOMAIN).pot @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \ cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot install: install-exec install-data install-exec: install-data: install-data-@USE_NLS@ if test "$(PACKAGE)" = "gettext"; then \ $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \ for file in $(DISTFILES.common); do \ $(INSTALL_DATA) $(srcdir)/$$file \ $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ else \ : ; \ fi install-data-no: all install-data-yes: all $(mkinstalldirs) $(DESTDIR)$(datadir) @catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ dir=$(localedir)/$$lang/LC_MESSAGES; \ $(mkinstalldirs) $(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"; then \ $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \ else \ : ; \ fi installdirs-data-no: installdirs-data-yes: $(mkinstalldirs) $(DESTDIR)$(datadir) @catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ dir=$(localedir)/$$lang/LC_MESSAGES; \ $(mkinstalldirs) $(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"; then \ for file in $(DISTFILES.common); 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 dvi info tags TAGS ID: mostlyclean: rm -f remove-potcdate.sed 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 *.mo 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 $(GMOFILES) distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) dist distdir: $(MAKE) update-po @$(MAKE) dist2 # This is a separate target because 'update-po' must be executed before. dist2: $(DISTFILES) dists="$(DISTFILES)"; \ if test -f $(srcdir)/ChangeLog; then dists="$$dists ChangeLog"; fi; \ if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \ for file in $$dists; do \ if test -f $$file; then \ cp -p $$file $(distdir); \ else \ cp -p $(srcdir)/$$file $(distdir); \ fi; \ done update-po: Makefile $(MAKE) $(DOMAIN).pot-update $(MAKE) $(UPDATEPOFILES) $(MAKE) update-gmo # General rule for updating PO files. .nop.po-update: @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; fi; \ tmpdir=`pwd`; \ echo "$$lang:"; \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ echo "$${cdcmd}$(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ cd $(srcdir); \ if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$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 "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) @: Makefile: Makefile.in.in $(top_builddir)/config.status POTFILES.in cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \ $(SHELL) ./config.status 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.14/po/sl.gmo0000644000175000017500000004370310735337371013405 0ustar mhattamhattaÞ••ÄÇl ˆ ‰ %“ /¹AéF+!rE” Úä{‚`pã!TvE•°Û Œ ™£ºÌà$ú,9 f,‡´%Ò,ø-% S&t#›!¿á&!Hgw—   ªµ ½É Ù åñ%6FYl|’› £ ® ¹Æ Øæü&= MZ+o-›ÉÞ!î0Nkƒ "¶ Ùú' A U p #y  *¹ ä ü /!$B!$g!Œ!§!2½!ð!" 0" >" I" W"!a"ƒ"¢"²"Ä"Ê"ê"#''#O#a#w# ‹#¬# È#Ò#ì#ÿ#$$$\-$Š$¨$Â$Ñ$×$à$ú$% $%/%H%_%{%”%°%Í%ß%õ%&(&A&@F&‡'“–'Â**äí,šÒ.vm1xä3ð]4äN5‡36”»6 P7q7Gƒ7Ë7 Ô8 á8ë8ÿ89'9/C9s9<9'Ì9(ô9:"9:(\::…:À:#ß:*;*.;Y;y;'™;"Á;ä;$ÿ; $</<><F<M<f<v<‡<&Ÿ<#Æ<Yê<D=^=r=†=˜=œ=¤= ­= ¹= Å=Ò=ã=ò=>>->M>_>q>9>1É>û>?"%?$H?m?&Œ?*³?.Þ? @$*@&O@&v@,@Ê@Ù@ô@#A(A!EAgA…A5ŸAÕAóA%B9B<UB'’BºBÚBêBïB C!C*0CwC ”C'ŸCÇC ãC+D0DGD`D+vD¢DÀDÇD!ßDEE E)E†?E"ÆE#éE FF3F `)W7XRr-F†Š?…dYLv2]a:i&p=G’ zs#f}t.‚5hQ‹ŒP BM0K 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 -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 -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 = %d sides per sheet = %s page device definitions = medium = %s%s, %s page layout = %d x %d, %s borders = %s file alignment = %s interior margin = %d number lines = %s format = %s tabulation size = %d 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 %A %B %d, %Y%b %d, %y%d characters per line%d lines per page%s, delegated to %s%s: illegal option -- %c %s: invalid argument for %s%c escape%s: invalid option -- %c %s: invalid separator `%s%c' for `%s' escape%s: missing `%c' for %s%c escape%s: option `%c%s' doesn't allow an argument %s: option `%s' is ambiguous %s: option `%s' requires an argument %s: option `--%s' doesn't allow an argument %s: option `-W %s' doesn't allow an argument %s: option `-W %s' is ambiguous %s: option requires an argument -- %c %s: too long argument for %s escape%s: unknown `%s' escape `%c' (%d)%s: unrecognized option `%c%s' %s: unrecognized option `--%s' Applications configured for delegationConfiguration status of %s %s Default PrinterDelegation `%s', from %s to %s Global: Headers: Headings: Input: Internals: Known EncodingsKnown FontsKnown MediaKnown Outputs (Printers, etc.)Known PostScript Printer DescriptionsKnown ProloguesKnown Style SheetsKnown User OptionsKnown VariablesMemory exhaustedNameOutput: Page %dPage %d/%cPage %d/%dPostScript: Pretty-printing: Printed by %sPrinted by %s from %sSheets: Table of ContentTry `%s --help' for more information. Unknown PrinterUnknown UserUnknown system errorValid arguments are floats f such that: %s Valid arguments are integers n such that: %s Valid arguments are:Virtual pages: [%s (%s): %d pages on %d sheets] [%s (%s): %d pages on 1 sheet] [%s (%s): 1 page on 1 sheet] [%s (%s): failed. Ignored] [%s (binary): ignored] [%s (unprintable): ignored] [No output produced] [Total: %d pages on %d sheets] %s [Total: %d 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'any typeautomatic style selection cancelledcannot close directory `%s'cannot compile regular expression `%s': %scannot create file `%s'cannot find file `%s'cannot find style sheet `%s': using plain stylecannot get current working directorycannot get informations on file `%s'cannot open a pipe on `%s'cannot open file `%s'cannot process `%s' which requires a2ps version %scannot rename file `%s' as `%s'caret (i.e., `^C', `M-^C' etc.)columns firstdimensionseach %d lineseach lineemacs (i.e., `C-c', `M-C-c' etc.)end-of-line in string constantfont %f too bigfont size is %gptheavyhexadecimal (i.e., `\x0a' etc.)incomplete knowledge of facesinvalid argument `%s' for `%s'invalid definition for printer `%s': %sinvalid face `%s'invalid interval `%s'invalid option `%s'invalid variable identifier `%s'invalid version number `%s'landscapemissing argument for `%s'never make backupsnononenormalnumbered backups of every filenumbered backups of files already numbered, and simple of othersobsolete `%s' entry. Ignoredoctal (i.e., `\001' etc.)output commandplainportraitquestion-mark (i.e., `?')received signal %d: %srestored file `%s'rows firstsaved into the file `%s'selected automaticallysent to the default printersent to the printer `%s'sent to the standard outputsimple backups of every filespace (i.e., ` ')unknown encoding `%s'unknown encoding `%s', ignoredunknown medium `%s'unknown user option `%s'userProject-Id-Version: a2ps 4.12c Report-Msgid-Bugs-To: POT-Creation-Date: 2007-12-29 11:28+0800 PO-Revision-Date: 1999-02-19 16:59+01:00 Last-Translator: Igor Furlan Language-Team: Slovenian MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-2 Content-Transfer-Encoding: 8-bit ne obstaja. --line-numbers=STEVILO vsakih STEVILO vrstic zapisi stevilko vrstice -C okrajsava za --line-numbers=5 -f, --font-size=VELIKOST uporabi VELIKOST znaka za tekst -L, --lines-per-page=STEVILO priredi velikost znakov tako, da bo natisnjeno STEVILO vrstic na list -l, --chars-per-line=STEVILO priredi velikost znakov tako, da bo natisnjeno STEVILO stolpcev na list -m, --catman predelaj FAJL tako, da bo uporaben za man page (isto kot -L66) -T, --tabsize=STEVILO nastavi velikost tabulatorja na STEVILO --non-printable-format=FMT doloci kako naj bodo nenatisljivi znaki natiskani --prologue=FAJL uporabi FAJL.pro kot PostScript prologue --ppd[=TIPKA] uporabi avtomaticno izbran PPD oziroma ga pripni na TIPKO -n, --copies=STEVILO natiskaj STEVILO kopij vsake strani -s, --sides=NACIN nastavi NACIN tiskanja (`1' ali `simplex' enostransko, `2' ali `duplex' dvostransko, `tumble') -S, --setpagedevice=K[:V] vstavi definicijo za stran v izhod --statusdict=K[:[:]V] vstavi definicijo za statusdict v izhod -k, --page-prefeed avtomatski zamik strani -K, --no-page-prefeed deaktiviraj avtomatski zamik strani -E, --pretty-print[=JEZIK] aktiviraj pretty-printing ( stil je definiran z JEZIK) --highlight-level=NIVO doloci jakost povdarkov z NIVO NIVO je lahko none(brez povdarjanja), normal(obicajni povdarek), heavy(mocno povdarjeno), -g okrajsava za --highlight-level=heavy --strip-level=NUM odstrani NUM nivojev za komentar -a, --pages[=OBMOCJE] izberi strani za tiskanje -c, --truncate-lines* skrajsaj dolge vrstice -i, --interpret* prevedi znake tab, bs and ff (tabularij, premik za presledek nazaj, naslednja stran --end-of-line=TYPE doloci znak za konec vrstice (TYPE: r, n, nr, rn, any) -X, --encoding=IME uporabi vhodno kodiranje IME -t, --title=NAME doloci ime opravila --stdin=NAME doloci ime za standardni vhodni fajl stdin --print-anyway* natisni fajl ne glede na obliko -Z, --delegate* prenesi fajle v izvrsbo drugemu programu --toc[=TEXT] ustvari Tabelo vsebine -q, --quiet, --silent progrem bo izvrsen brez mnogo sporocil za uporabnika na ekranu -v, --verbose[=NIVO] program bo prikazoval vec ali manj sporocil med delovanjem na ekran. Kolicina je odvisna od nastavitve NIVO-ja -= --user-option=IZBOR program bo uporabil okrajsavo za IZBOR doloceno s streni uporabnika --debug program bo aktiviral razhroscevalne lastnosti -D, --define=TIPKA[:VREDNOST] dodana oziroma odvzeta bo VREDNOST za TIPKO koncni cilj = %s preverjanje razlicice = %s podaljsek imena varnostne kopije = %s glava = %s levi zaznamek = %s zaznamek na dnu strani = %s desni zaznamek = %s levi naslov = %s osrednji naslov = %s desni naslov = %s predloga = %s carobna stevilka = %s Opis tiskalnika (PPD) = %s Vnaprej pripravljen PPD = %s oblika nalepke = %s stevilo kopij = %d stevilo strani na listu = %s opis strani = medij = %s%s, %s oblika strani = %d x %d, %s robniki = %s poravnava = %s notranji rob = %d stevilo vrstic = %s oblika = %s dolzina tabularija = %d oblika nenatiskljivih znakov = %s vnaprejsnji premik strani = %s opis statusdict stil lista = %s nivo povdarjanja = %s nivo zadrzevanja = %d skrajsane vrstice = %s prevedi = %s konec vrstice = %s kodiranje = %s ime dokumenta = %s predznaki = %s vseeno natisni = %s izvrsitev ukaza prenesena = %s %A %B %d, %Y%b %d, %y%d znakov v vrstici%d vrstic na stran%s, pooblascen na %s%s: neveljaven izbor -- %c %s: neveljaven argument za ubezno sekvenco %s%c%s: neustrezen izbor -- %c %s: neveljaven locevalni znak `%s%c' za ubezno sekvenco `%s'%s: manjka `%c' za ubezno sekvenco %s%c%s: izbor `%c%s' ne dovoljuje argumenta %s: izbira `%s' je dvoumna %s: izbor `%s' pricakuje argument %s: izbor `--%s' ne dovoljuje argumenta %s: izbira `-W %s' ne dopusca oziroma sprejema argumenta %s: izbira `-W %s' je dvoumna %s: izbor pricakuje argument -- %c %s: predolg argument za ubezno sekvenco %s%s: neznana `%s' ubezna sekvenca `%c' (%d)%s: ne prepoznam izbora `%c%s' %s: ne prepoznam izbora `--%s' Aplikacije prirejene za prenos izvrsbe Trenutno stanje nastavitev %s %s Osnovni/primarni tiskalnikPrenos izvrsitve `%s', iz %s na %s Globalno: Glave strani: Glava: Vhod: Notranje spremenljivke: Znano kodiranjeZnane oblike crkZnano prenosno sredstvoZnane izhodne enote (Tiskalniki, itd.)Znani opisi PostScript tiskalnikov Znan Prologues ( ja, vem, prevod je zelo napacen. Prosim sporocite mi PRAVILNEGA. Hvala )Pripoznani stili za listePripoznane moznostiZnane spremenljivkeSpomin je izcrpanImeIzhod: Stran %dStran %d/%cStran %d/%dPostscript: Prijeten natis: Natiskano z %sNatiskano z %s iz %sListov: Tabela vsebinePoskusi z `%s --help' dobiti vec informacij. Neznani tiskalnikNeznani UporabnikNeprepoznana sistemska napakaVeljavni so argumenti z plavajoco vejico f , tako da: %s Veljavni argumenti so cela stevila n tako da: %s Pripoznane moznosti soNavidezne strani: [%s (%s): %d strani na %d listih] [%s (%s): %d strani na enemu listu] [%s (%s): ena stran na listu] [%s (%s): napaka. Ukaz ne bo izvrsen] [%s (binarna oblika): Ukaz ne bo izvrsen] [%s (ni mozno natisniti): Ukaz ne bo izvrsen] [Nic nismo dobili na izhod] [Skupaj: %d strani na %d listih] %s [Skupaj: %d strani na enemu listu] %s [Skupaj: ena stran na enemu listu] %s `%s' je binarni fajl, tiskanje je prekinjeno`%s' je imenik`%s' brez vsebovanega `%s'kakrsenkoli tipsamodejna izbira stila je izbrisanane morem zapreti imenik `%s'ne morem prevesti stavka `%s': %sne morem ustvariti fajla `%s'ne morem najti fajla `%s'ne najdem stilni list `%s': uporabil bom osnovni stildelovni imenik mi ni dostopenne najdem podatkov o fajlu `%s'ne morem vzpostaviti povezave na `%s'ne morem odpreti fajla `%s'ne morem izvrsiti `%s' , ki je vsebovan v a2ps razlicica %sne morem preimenovati fajla `%s' v `%s'caret (npr., `^C', `M-^C' itd.)najprej stolpcimerevsakih %d vrsticvsaka vrsticaemacs (npr., `C-c', `M-C-c' itd.)znak-za-konec-vrstice v znakovni konstantizvrst znaka %f je prevelikavelikost znaka/crke je %gptpovdarjenohexadecimalno stevilo (npr., `\x0a' itdnezadostno poznavanje facesneveljaven argument `%s' za `%s'neveljavna definicija za tiskalnik `%s': %sneveljavna oblika `%s'neveljaven interval `%s'neveljaven izbor `%s'neveljavni oznacevalec `%s za spremenljivko`%s' neznana oznaka razlicicelezecemanjka argument za `%s'nikoli ne naredi varnostne kopijenenicesarnormalnoostevilcene varnostne kopije za vsak fajlostevilcene varnostne kopije fajlov , ki ze imajo stevilko, in preprosta varnostna kopija za ostalenepotrebni vnos `%s'. Ni upostevanoktalno stevilo (npr., `\001' itd.)izhodni ukazosnovni oziroma obicajenpokoncnovprasaj (npr., `?')prejeti signal %d: %sobujen fajl `%s'najprej vrsticeshranjeno v fajl `%s'avtomaticni izborposlano na primarni tiskalnik`%s' poslan v tiskanjeposlano na standardni izhodpreprosta varnostna kopija vsakega fajlapresledek (npr., ` ')neznano kodiranje `%s'Neznano kodiranje `%s' ni uporabljenoneznano prenosno sredstvo `%s'neznan uporabniski izbor `%s'uporabnika2ps-4.14/po/de.po0000644000175000017500000013171110735337365013213 0ustar mhattamhatta# German messages for a2ps # Copyright (C) 1995-1999 # Erwin Dieterich # Michael Wiedmann # Christian Kirsch # msgid "" msgstr "" "Project-Id-Version: a2ps 4.12\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-12-29 11:28+0800\n" "PO-Revision-Date: 1999-09-21 22:11+02:00\n" "Last-Translator: Erwin Dieterich \n" "Language-Team: German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8-bit\n" #: src/buffer.c:68 msgid "any type" msgstr "alle" #: src/delegate.c:137 confg.gperf:168 lib/encoding.c:530 lib/encoding.c:576 #: lib/encoding.c:616 lib/output.c:302 lib/pair_ht.c:296 lib/prolog.c:146 #, c-format msgid "missing argument for `%s'" msgstr "Fehlendes Argument für `%s'" #: src/delegate.c:260 lib/routines.c:160 lib/xbackupfile.c:248 #: lib/xbackupfile.c:276 lib/xbackupfile.c:284 #, c-format msgid "cannot create file `%s'" msgstr "Kann Ausgabedatei `%s' nicht anlegen." #: src/delegate.c:269 src/select.c:193 lib/routines.c:190 lib/routines.c:196 #, c-format msgid "cannot open a pipe on `%s'" msgstr "Kann Pipe auf `%s' nicht öffnen" #: src/delegate.c:389 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "Weiterleitung `%s', von `%s' an `%s'\n" #: src/delegate.c:408 src/delegate.c:430 msgid "Applications configured for delegation" msgstr "Anwendungen, die als Weiterleitung konfiguriert sind" #: src/generate.c:88 #, c-format msgid "`%s' is a directory" msgstr "`%s' ist ein Verzeichnis" #: src/generate.c:96 src/main.c:560 src/main.c:582 confg.gperf:192 #: confg.gperf:355 lib/routines.c:154 #, c-format msgid "cannot open file `%s'" msgstr "Kann Datei `%s' nicht öffnen." #: src/generate.c:101 lib/xbackupfile.c:224 #, c-format msgid "cannot get informations on file `%s'" msgstr "Kann keine Informationen über die Datei `%s' bekommen" #: src/generate.c:168 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): 1 Seite auf einem Blatt]\n" #: src/generate.c:174 #, c-format msgid "[%s (%s): %d pages on 1 sheet]\n" msgstr "[%s (%s): %d Seiten auf einem Blatt]\n" #: src/generate.c:181 #, c-format msgid "[%s (%s): %d pages on %d sheets]\n" msgstr "[%s (%s): %d Seiten auf %d Blättern]\n" #: src/generate.c:208 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[Insgesamt: 1 Seite auf einem Blatt] %s\n" #: src/generate.c:212 #, c-format msgid "[Total: %d pages on 1 sheet] %s\n" msgstr "[Insgesamt: %d Seiten auf einem Blatt] %s\n" #: src/generate.c:217 #, c-format msgid "[Total: %d pages on %d sheets] %s\n" msgstr "[Insgesamt: %d Seiten auf %d Blättern] %s\n" #: src/generate.c:226 msgid "[1 line wrapped]\n" msgstr "" #: src/generate.c:229 #, fuzzy, c-format msgid "[%d lines wrapped]\n" msgstr "%d Zeilen pro Seite" #: src/generate.c:242 msgid "[No output produced]\n" msgstr "[Keine Ausgabe erzeugt]\n" #: src/generate.c:314 #, c-format msgid "%s, delegated to %s" msgstr "%s, weitergeleitet an %s" #: src/generate.c:322 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): fehlgeschlagen. Ignoriert]\n" #: src/generate.c:330 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[`%s' (nicht druckbar): ignoriert]\n" #: src/generate.c:339 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (binär): ignoriert]\n" # meaning unclear #: src/generate.c:360 msgid "plain" msgstr "unformatiert" #: lexssh.l:348 msgid "end-of-line in string constant" msgstr "Zeilenende in Zeichenkonstante" #: lexssh.l:415 src/sheets-map.l:153 src/sheets-map.l:192 #, fuzzy, c-format msgid "end of line inside a %s" msgstr "Zeilenende in regulärem Ausdruck" #: src/main.c:203 #, c-format msgid "received signal %d: %s" msgstr "Habe Signal %d: %s erhalten" #: src/main.c:242 msgid "heavy" msgstr "vollständig" #: src/main.c:246 msgid "normal" msgstr "normal" #: src/main.c:250 msgid "none" msgstr "gar nicht" #: src/main.c:324 src/main.c:328 msgid "yes" msgstr "ja" #: src/main.c:325 src/main.c:328 src/main.c:369 msgid "no" msgstr "nein" #: src/main.c:335 #, c-format msgid "Configuration status of %s %s\n" msgstr "Konfigurationsstatus von %s %s\n" #: src/main.c:339 src/main.c:697 msgid "Sheets:\n" msgstr "Blätter:\n" #: src/main.c:340 #, 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" msgstr "" " Papierformat = %s%s, %s\n" " Seitenlayout = %d x %d, %s\n" " Rahmen = %s\n" " Dateiausrichtung = %s\n" " Innenrand = %d\n" #: src/main.c:349 msgid "portrait" msgstr "Hochformat" #: src/main.c:349 msgid "landscape" msgstr "Querformat" #: src/main.c:358 #, c-format msgid "%d characters per line" msgstr "%d Zeichen pro Zeile" #: src/main.c:361 #, c-format msgid "%d lines per page" msgstr "%d Zeilen pro Seite" #: src/main.c:364 #, c-format msgid "font size is %gpt" msgstr "Schriftgröße ist %gpt" #: src/main.c:373 msgid "each line" msgstr "jede Zeile" #: src/main.c:377 #, c-format msgid "each %d lines" msgstr "alle %d Zeilen" #: src/main.c:380 src/main.c:718 msgid "Virtual pages:\n" msgstr "Virtuelle Seiten:\n" #: src/main.c:381 #, c-format msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %d\n" " non printable format = %s\n" msgstr "" " Anzahl Zeilen = %s\n" " Format = %s\n" " Tabulatorabstand = %d\n" " Format für nicht druckbare Zeichen = %s\n" #: src/main.c:392 msgid "Headers:\n" msgstr "Kopfzeilen:\n" #: src/main.c:393 #, 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:412 src/main.c:747 msgid "Input:\n" msgstr "Eingabe:\n" #: src/main.c:413 #, 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" " Voreinstellung Zeichensatz = %s\n" " Dokumenten-Titel = %s\n" " Voreinstellung Prolog = %s\n" " Binäre Daten drucken = %s\n" " Weiterleiten = %s\n" #: src/main.c:438 src/main.c:504 msgid "selected automatically" msgstr "automatisch ausgewählt" #: src/main.c:441 src/main.c:766 msgid "Pretty-printing:\n" msgstr "Formatiertes Drucken:\n" #: src/main.c:442 #, c-format msgid "" " style sheet = %s\n" " highlight level = %s\n" " strip level = %d\n" msgstr "" " Formatierung = %s\n" " Anzeigestatus = %s\n" " Kürzungsstatus = %d\n" #: src/main.c:462 msgid "never make backups" msgstr "mache niemals backup-Dateien" #: src/main.c:466 msgid "simple backups of every file" msgstr "einfache Backup-Datei für jede Datei" #: src/main.c:471 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" "numerierte Backup-Dateien sind bereits numeriert,\n" " und einfach anders (??)" #: src/main.c:476 msgid "numbered backups of every file" msgstr "numerierte Backup-Dateien für jede Datei" #: src/main.c:480 src/main.c:775 msgid "Output:\n" msgstr "Ausgabe:\n" #: src/main.c:481 #, c-format msgid "" " destination = %s\n" " version control = %s\n" " backup suffix = %s\n" msgstr "" " Ziel = %s\n" " Versions-Kontrolle = %s\n" " Backup-Endung = %s\n" #: src/main.c:494 src/main.c:786 msgid "PostScript:\n" msgstr "PostScript:\n" #: src/main.c:495 #, 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 = " msgstr "" " Magic Nummer = %s\n" " Druckerbeschreibung (PPD) = %s\n" " Standard PPD = %s\n" " Format der Seiten-Titel = %s\n" " Anzahl Kopien = %d\n" " Seiten pro Blatt = %s\n" " Seiten-Definitionen = " #: src/main.c:515 #, c-format msgid " statusdict definitions = " msgstr " «statusdict»-Angaben = " #: src/main.c:518 #, c-format msgid " page prefeed = %s\n" msgstr " Seitenvorschub = %s\n" #: src/main.c:527 msgid "Internals:\n" msgstr "Interna:\n" #: src/main.c:528 #, fuzzy, c-format msgid "" " verbosity level = %d\n" " file command = %s\n" " library path = \n" msgstr "" " Protokoll-Status = %d\n" " Datei-Befehl = %s\n" " temporäres Verzeichnis = %s\n" " Bibliotheken-Verzeichnis = \n" #: src/main.c:653 #, 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" msgstr "" "Benutzung: %s [OPTIONEN]... [DATEIEN]...\n" "\n" "Konvertiere DATEIEN oder den Standardinput in das Postscript-Format.\n" "\n" "Zwingend geforderte Argumente für lange Optionen sind für kurze Optionen\\n\n" "ebenfalls erforderlich.\n" "Lange Optionen, die mit «*» markiert sind, erfordern 'ja' oder 'nein'\n" "als Argument; die entsprechende kurze Option steht für 'ja'\n" #: src/main.c:668 msgid "Tasks:\n" msgstr "Aufgaben:\n" #: src/main.c:669 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" msgstr "" " --version Versionsnummer ausgeben\n" " --help Diese Hilfe anzeigen und beenden\n" " --guess Angenommenen Filetyp der FILES ausgeben\n" " --which Pfad der Bibliotheks-Dateien mit den Namen FILES " "ausgeben\n" " --glob Pfad der Bibliotheks-Dateien die zu FILES passen " "ausgeben\n" " --list=defaults Standardeinstellungen und -parameter ausgeben\n" " --list=TOPIC Zeige einen List zu TOPIC an (delegations, encodings,\n" " features, variables, media, ppd, printers, prologues,\n" " style-sheets, user-options)\n" #: src/main.c:680 msgid "" "After having performed the task, exit successfully. Detailed lists may\n" "provide additional help on specific features.\n" msgstr "" "Nachdem die Aufgabe erfüllt wurde, ordnungsgemäß beenden. Ausführliche\n" "Listen können zusätzliche Hilfe zu speziellen Merkmalen bieten.\n" #: src/main.c:688 msgid "Global:\n" msgstr "Global:\n" #: src/main.c:689 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 Keinerlei Ausgabe über aktuelle Tätigkeit\n" " -v, --verbose Ausgabe über aktuelle Tätigkeit\n" " -=, --user-option=OPTION Angegebene Benutzeroption verwenden\n" " --debug Debug einschalten \n" " -D, --define=KEY[:WERT] Lösche das Makro KEY oder setze es \n" " auf den Wert WERT\n" #: src/main.c:698 #, 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" 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" " -1, -2, ..., -9 Vordefinierte Layouts für 1 ... 9 virtuelle Seiten\n" " -A, --file-align=MODE Ordne mehrere Dateien gemäß MODE an (Auffüllen,\\n" "\"\n" " Reihenfolge, Seite, Blatt oder eine Zahl)\\n\"\n" " -j, --borders* Rahmen um die Spalten zeichnen\n" " --margin[=NUM] Inneren Rand der Breite NUM definieren\n" #: src/main.c:711 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:719 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 benutze Schriftgröße GRÖSSE für den Text\n" " -L, --lines-per-page=NUM Anzahl Zeilen pro Seite\n" " -l, --chars-per-line=NUM Anzahl Spalten pro Seite\n" " -m, --catman Behandle die Datei als Hilfe-Seite (manpage),\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:730 msgid "Headings:\n" msgstr "Kopfzeilen:\n" #: src/main.c:732 #, 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:743 msgid "The TEXTs may use special escapes.\n" msgstr "Der TEXT darf Sonderzeichen ($, % etc.) enthalten.\n" #: src/main.c:748 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] Wähle zu druckende Seiten \n" " -c, --truncate-lines* Lange Zeilen abschneiden\n" " -i, --interpret Tabulator, Backspace und Formfeed " "interpretieren\n" " --end-of-line=TYPE Lege Zeilenende-Zeichen fest \n" " (TYPE aus: r, n, nr, rn, alle)\n" " -X, --encoding=NAME Zeichensatz NAME benutzen\n" " -t, --title=NAME Name des Druckauftrags\n" " --stdin=NAME Lege den Namen der Standardeingabe (stdin) fest\n" " --print-anyway* Erzwinge das Drucken von binären Zeichen\n" " -Z, --delegate* leite Datei zu einer anderen Anwendung weiter\n" " --toc[=TEXT] Erzeuge ein Inhaltsverzeichnis\n" #: src/main.c:760 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 Deligieren (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:767 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 Status der Hervorhebungen im Text\n" " -g, --graphic-symbols* Graphische Symbole ausgeben\n" " --strip-level=NUM Status für Kommentar-Entfernung\n" #: src/main.c:776 #, 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=DATEI Ausgabe auf DATEI. Wenn DATEI `-' ist,\n" " auf Standardausgabe drucken\n" " --version-control=WORT Versionskontrolle setzen\n" " --suffix=ENDUNG SUFFIX als Backup-Endung benutzen\n" " -P, --printer=NAME Ausgabe zum Drucker NAME\n" " -d Ausgabe zum Standard Drucker\n" #: src/main.c:787 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 Verwende FILE.pro als PostScript-Prolog\n" " --ppd[=KEY] Automatische PPD-Auswahl oder Setzen auf KEY\n" " -n, --copies=NUM NUM Kopien von jeder Seite drucken\n" " -s, --sides=NUM Setzen des Duplex-Modus (`1' oder `simplex',\n" "\" `2' oder `duplex', `tumble')\n" " -S, --setpagedevice=K[:V] Übergebe eine «page device»-Definition an die " "Ausgabe\n" " --statusdict=K[:[:]V] Übergebe eine «statusdict»-Defintion an die " "Ausgabe\n" " -k, --page-prefeed Seitenpositionierung an\n" " -K, --no-page-prefeed Seitenpositionierung aus\n" #: src/main.c:801 #, 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" msgstr "" "Standardmäßig ist a2ps darauf ausgelegt, das zu tun, was Sie erwarten:\n" "vertrauen Sie a2ps. Um den Inhalt des Verzeichnis´ `src' und ein \n" "Inhaltsverzeichnis zu formatieren und die Ausgabe an den Drucker `lw' zu\n" "schicken:\n" " a2ps -P lw --toc src/*\n" "\n" "Um die Dateien `beispiel.ps' und `beispiel.html' zu verarbeiten und die\n" "Ergebnisse darzustellen:\n" " a2ps -P display sample.ps sample.html\n" "\n" "Um einen Postkasten (mailbox) mit vier Seiten pro Druckerseite zu " "verarbeiten:\n" " a2ps -=mail -4 mailbox\n" "\n" "Um eine Datei als Büchlein auf dem duplexfähigen Standarddrucker zu " "drucken:\n" " a2ps -=book paper.dvi.gz -d\n" #: src/main.c:822 #, fuzzy msgid "" "News, updates and documentation: visit http://www.gnu.org/software/a2ps/.\n" msgstr "" "Die deutsche Übersetzung wird zur Zeit koordiniert von Erwin Dieterich " "\n" "Neuigkeiten, Updates and Dokumentation unter http://www.inf.enst.fr/" "~demaille/a2ps/\n" #: src/main.c:824 msgid "Report bugs to .\n" msgstr "" "Fehlermeldungen und Kommentare an \n" "Kommentare zur deutschen Übersetzung an \n" #: src/main.c:942 #, 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-93 Miguel Santana\n" "Copyright (c) 1995-99 Akim Demaille, Miguel Santana" #: src/main.c:1173 msgid "Table of Content" msgstr "Inhaltsverzeichnis" #: src/parsessh.y:236 #, 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:111 #, fuzzy, c-format msgid "unexpected character `%c'" msgstr "Nicht erkannte Option: `%c' (%d)." #: src/sheets-map.l:211 lexppd.l:211 msgid "too many includes" msgstr "" #: src/sheets-map.l:296 src/sheets-map.l:303 #, fuzzy, c-format msgid "no key defined for `%s'" msgstr "Kann Datei `%s' nicht finden." #: src/select.c:122 src/ssheet.c:866 fonts.l:838 fonts.l:840 fonts.l:842 #: lib/pathwalk.c:328 lib/pathwalk.c:414 #, c-format msgid "cannot find file `%s'" msgstr "Kann Datei `%s' nicht finden." #: src/select.c:124 msgid "automatic style selection cancelled" msgstr "Automatische Format-Auswahl abgebrochen" #: src/ssheet.c:295 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "Kann regulären Ausdruck `%s' nicht übersetzen: %s" #: src/ssheet.c:974 src/ssheet.c:995 msgid "Known Style Sheets" msgstr "Bekannte Vorlagen (Sprachen)" #: src/ssheet.c:1461 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "Kann automatisches Format `%s' nicht finden: unformatierte Ausgabe" #: src/sshread.c:453 #, c-format msgid "unknown encoding `%s', ignored" msgstr "Unbekannter Zeichensatz `%s': ignoriert" #: src/version-etc.c:38 msgid "Copyright (C) 1999 Free Software Foundation, Inc." msgstr "" #: src/version-etc.c:60 #, c-format msgid "Written by %s.\n" msgstr "Gedruckt von %s.\n" #: src/version-etc.c:66 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" #: src/versions.c:133 #, c-format msgid "invalid version number `%s'" msgstr "ungültige Versions-Nummer `%s'" #: lib/caret.c:43 msgid "space (i.e., ` ')" msgstr "Leerzeichen (z.B., ` ')" #: lib/caret.c:45 msgid "octal (i.e., `\\001' etc.)" msgstr "Oktal (z.B., `\\001' usw.)" #: lib/caret.c:47 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "Hexadezimal (z.B., `\\x0a' usw.)" #: lib/caret.c:49 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "Circumflex (z.B., `^C', `M-^C' usw.')" #: lib/caret.c:51 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "Emacs (z.B., `C-c', `M-C-c' usw.')" #: lib/caret.c:53 msgid "question-mark (i.e., `?')" msgstr "Fragezeichen (z.B., `?')" #: lib/closeout.c:71 lib/closeout.c:73 msgid "write error" msgstr "Fehler beim Schreiben" #: confg.gperf:157 lib/encoding.c:638 #, c-format msgid "invalid option `%s'" msgstr "Ungültige Option `%s'." #: confg.gperf:224 confg.gperf:231 confg.gperf:238 #, c-format msgid "invalid definition for printer `%s': %s" msgstr "Ungültiges Kommando für Drucker `%s': %s" #: confg.gperf:229 confg.gperf:232 lib/printers.c:47 msgid "Unknown Printer" msgstr "Unbekannter Drucker" #: confg.gperf:236 confg.gperf:239 lib/printers.c:46 msgid "Default Printer" msgstr "Systemdrucker" #: confg.gperf:292 lib/options.c:697 #, c-format msgid "invalid variable identifier `%s'" msgstr "Ungültiger Variablenbezeichner `%s'" #: confg.gperf:321 #, c-format msgid "obsolete `%s' entry. Ignored" msgstr "Obsoleter Eintrag `%s'. Ignoriert" #: lib/encoding.c:1114 lib/encoding.c:1135 msgid "Known Encodings" msgstr "Bekannte Zeichensätze" #: lib/faces.c:156 msgid "incomplete knowledge of faces" msgstr "Nicht genügend Information über die Schriftart" #: lib/filtdir.c:113 #, c-format msgid "cannot close directory `%s'" msgstr "Kann Verzeichnis `%s' nicht schließen." #: lib/getnum.c:63 lib/getnum.c:121 lib/getnum.c:153 lib/getnum.c:221 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "Ungültiges Argument `%s' für `%s'" #: lib/getnum.c:123 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "Gültige Argumente sind Ganze Zahlen mit %s\n" #: lib/getnum.c:223 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "Gültige Argumente sind Reelle Zahlen mit %s\n" #: lib/jobs.c:308 #, c-format msgid "unknown encoding `%s'" msgstr "Unbekannter Zeichensatz `%s'" #: lib/madir.c:59 msgid "rows first" msgstr "Zeilen zuerst" #: lib/madir.c:62 msgid "columns first" msgstr "Spalten zuerst" #: lib/media.c:173 #, c-format msgid "unknown medium `%s'" msgstr "Papierformat `%s' unbekannt" #: lib/media.c:208 lib/media.c:237 msgid "Known Media" msgstr "Bekannte Papierformate" #: lib/media.c:211 msgid "Name" msgstr "Name" #: lib/media.c:212 msgid "dimensions" msgstr "Abmessungen" #: lib/metaseq.c:104 lib/metaseq.c:113 #, c-format msgid "Known Variables" msgstr "Bekannte Variablen" #: lib/metaseq.c:162 lib/metaseq.c:531 lib/metaseq.c:548 lib/metaseq.c:608 #: lib/metaseq.c:951 lib/metaseq.c:972 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%s: Fehlendes `%c' für %s%c-Escape" #: lib/metaseq.c:288 lib/metaseq.c:300 #, c-format msgid "Printed by %s" msgstr "Gedruckt von %s" #: lib/metaseq.c:298 #, c-format msgid "Printed by %s from %s" msgstr "Gedruckt von %s auf %s" #: lib/metaseq.c:308 lib/metaseq.c:327 msgid "cannot get current working directory" msgstr "Kann aktuelles Arbeitsverzeichnis nicht ermitteln" #: lib/metaseq.c:341 lib/metaseq.c:534 lib/metaseq.c:563 lib/metaseq.c:652 #: lib/metaseq.c:954 lib/metaseq.c:987 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s: Zu langes Format für %s-Escape." #: lib/metaseq.c:364 lib/metaseq.c:675 msgid "%b %d, %y" msgstr "%b %d, %y" #: lib/metaseq.c:373 lib/metaseq.c:684 msgid "%A %B %d, %Y" msgstr "%A %B %d, %Y" #: lib/metaseq.c:419 lib/metaseq.c:448 lib/metaseq.c:491 lib/metaseq.c:724 #: lib/metaseq.c:808 lib/metaseq.c:867 lib/metaseq.c:922 lib/metaseq.c:1099 #: lib/metaseq.c:1234 lib/metaseq.c:1246 lib/metaseq.c:1289 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s: Unbekanntes `%s' Escape-Zeichen `%c' (%d)." #: lib/metaseq.c:426 lib/metaseq.c:815 #, c-format msgid "Page %d" msgstr "Seite %d" #: lib/metaseq.c:431 lib/metaseq.c:826 #, c-format msgid "Page %d/%c" msgstr "Seite %d/%c" #: lib/metaseq.c:593 lib/metaseq.c:1021 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "%s: Ungültiges Trennzeichen `%s%c' für `%s'-Escape" #: lib/metaseq.c:601 lib/metaseq.c:611 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s: Ungültiges Argument für %s%c-Escape" #: lib/metaseq.c:822 #, c-format msgid "Page %d/%d" msgstr "Seite %d/%d" #: lib/metaseq.c:1266 msgid "output command" msgstr "Ausgabebefehl" #: lib/options.c:302 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "»%s --help« gibt Ihnen mehr Informationen.\n" #: lib/output.c:466 #, c-format msgid "invalid face `%s'" msgstr "Ungültige Schrift `%s'." #: lib/output.c:538 #, c-format msgid "`%s' with no matching `%s'" msgstr "`%s' ohne passendes `%s'." #: lib/ppd.c:108 msgid "Known Fonts" msgstr "Bekannte Schriften" #: lib/ppd.c:111 msgid "" "\n" " None.\n" msgstr "" "\n" " Keine.\n" #: lib/ppd.c:149 lib/ppd.c:165 msgid "Known PostScript Printer Descriptions" msgstr "Bekannte PostScript-Drucker-Beschreibungen" #: lib/prange.c:305 lib/prange.c:323 #, c-format msgid "invalid interval `%s'" msgstr "Ungültiges Intervall `%s'" #: lib/printers.c:396 lib/printers.c:413 #, c-format msgid "no command for the `%s' (%s%s)" msgstr "Kein Kommando für `%s' (%s%s)" #: lib/printers.c:429 msgid "sent to the standard output" msgstr "auf die Standardausgabe geschickt" #: lib/printers.c:430 msgid "sent to the default printer" msgstr "zum voreingestellten Drucker geschickt" #: lib/printers.c:435 #, c-format msgid "saved into the file `%s'" msgstr "in die Datei `%s' geschrieben" #: lib/printers.c:436 #, c-format msgid "sent to the printer `%s'" msgstr "zum Drucker `%s' geschickt" #: lib/printers.c:613 lib/printers.c:621 msgid "Known Outputs (Printers, etc.)" msgstr "Bekannte Ausgabegeräte (Drucker usw.)" #: lib/prolog.c:98 lib/prolog.c:181 msgid "Known Prologues" msgstr "Bekannte Prologe" #: lib/prolog.c:579 #, c-format msgid "font %f too big" msgstr "Schrift %f ist zu groß" #: lib/psgen.c:662 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "«%s» ist eine Binär-Datei, Drucken abgebrochen" #: lib/quotearg.c:200 msgid "`" msgstr "" #: lib/quotearg.c:203 msgid "'" msgstr "" #: lib/userdata.c:129 msgid "user" msgstr "Benutzer" #: lib/userdata.c:130 msgid "Unknown User" msgstr "Unbekannter Benutzer" #: lib/useropt.c:75 #, c-format msgid "unknown user option `%s'" msgstr "Unbekannte Benutzeroption `%s'" #: lib/useropt.c:86 lib/useropt.c:97 msgid "Known User Options" msgstr "Bekannte Benutzeroptionen" #: lib/xbackupfile.c:105 lib/xmalloc.c:66 msgid "Memory exhausted" msgstr "Kein Speicher mehr" #: lib/xbackupfile.c:240 lib/xbackupfile.c:252 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "Kann Datei `%s' nicht umbenennen in `%s'." #: lib/xbackupfile.c:255 #, c-format msgid "restored file `%s'" msgstr "Datei `%s' wiederhergestellt." #: lib/argmatch.c:159 #, c-format msgid "invalid argument %s for `%s'" msgstr "Ungültiges Argument `%s' für `%s'" #: lib/argmatch.c:160 #, fuzzy, c-format msgid "ambiguous argument %s for `%s'" msgstr "Mehrdeutiges Argument `%s' für `%s'" #: lib/argmatch.c:178 #, c-format msgid "Valid arguments are:" msgstr "Gültige Argumente sind:" #: lib/error.c:102 msgid "Unknown system error" msgstr "Unbekannter Fehler im Betriebssystem" #: lib/getopt.c:675 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: Option `%s' ist zweideutig.\n" #: lib/getopt.c:700 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: Option `--%s' erlaubt keinen Parameter.\n" #: lib/getopt.c:705 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: Option `%c%s' erlaubt keinen Parameter.\n" #: lib/getopt.c:723 lib/getopt.c:896 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: Option `%s' erfordert einen Parameter.\n" #: lib/getopt.c:752 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: Nicht erkannte Option `--%s'.\n" #: lib/getopt.c:756 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: Nicht erkannte Option `%c%s'.\n" #: lib/getopt.c:782 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: Ungültige Option -- %c.\n" #: lib/getopt.c:785 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: Ungültige Option -- %c.\n" #: lib/getopt.c:815 lib/getopt.c:945 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: Option benötigt ein Argument -- %c.\n" #: lib/getopt.c:862 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: Option »-W %s« ist zweideutig.\n" #: lib/getopt.c:880 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: Option »-W %s« erlaubt keinen Parameter.\n" #, fuzzy #~ msgid "end of line in a %s" #~ msgstr "Zeilenende in regulärem Ausdruck" #~ msgid "end-of-line in regular expression" #~ msgstr "Zeilenende in regulärem Ausdruck" #~ msgid "" #~ "Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana\n" #~ "Copyright (c) 1995, 96, 97, 98, 99 Akim Demaille, Miguel Santana" #~ msgstr "" #~ "Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana\n" #~ "Copyright (c) 1995, 96, 97, 98, 99 Akim Demaille, Miguel Santana" #~ msgid "Tasks (exit successfully):\n" #~ msgstr "Aufgaben (erfolgreich beendet):\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 "" #~ "Der folgende Text ist eine nicht überprüfte Übersetzung, die zur\n" #~ "Information dient; in rechtlichen Fragen ist immer das englische\n" #~ "Original ausschlaggebend.\n" #~ "\n" #~ "Dieses Program ist freie Software; Sie können es nach den Bedingungen\n" #~ "der von der Free Software Foundation als \"GNU General Public License\"\n" #~ "veröffentlichten Lizenz weitergeben und/oder verändern; dabei gilt\n" #~ "die Version 2 oder (frei nach ihrer Wahl) jede spätere Version.\n" #~ "\n" #~ "Dieses Programm wird in der Hoffnung verteilt, daß es nützlich ist,\n" #~ "jedoch OHNE JEGLICHE GARANTIE; sogar ohne die implizite Garantie der\n" #~ "MARKTFÄHIGKEIT oder der ERFÜLLUNG EINES BESTIMMTEN ZWECKES. In der\n" #~ "\"GNU General Public License\" können weitere Einzelheiten nachgelesen\n" #~ "werden.\n" #~ "\n" #~ "Sie sollten mit diesem Programm eine Kopie der \"GNU General Public " #~ "License\"\n" #~ "erhalten haben; wenn nicht, schreiben Sie an die Free Software " #~ "Foundation,\n" #~ "Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" #~ msgid "" #~ "Written by and .\n" #~ msgstr "" #~ "Geschrieben von und \n" #~ msgid "no default command for option `-d'" #~ msgstr "Kein Standard-Druckkommando für Option `-d'." #~ msgid "pipe in %s\n" #~ msgstr "Pipe nach %s\n" #~ msgid "save in %s\n" #~ msgstr "Gespeichert in %s\n" #~ msgid "%s: invalid argument `%s' for `%s'\n" #~ msgstr "%s: Ungültiges Argument `%s' für `%s'" #~ msgid "invalid interval: %s" #~ msgstr "Ungültiges Intervall: %s" #~ msgid "illegal integer interval: %s" #~ msgstr "Ungültiges Ganzzahl-Intervall: %s" #~ msgid "cannot find file %s" #~ msgstr "Kann Datei `%s' nicht finden." #~ msgid "unrecognized font `%s'" #~ msgstr "Schrift `%s' nicht erkannt." #~ msgid "unrecognized face `%s'" #~ msgstr "Nicht erkannte Schrift »%s«." #~ msgid "missing argument for %s" #~ msgstr "Fehlendes Argument für `%s'" #~ msgid "invalid variable identifier %s" #~ msgstr "Ungültiger Variablenbezeichner `%s'" #~ msgid "cannot create file %s" #~ msgstr "Kann Ausgabedatei `%s' nicht anlegen." #~ msgid "cannot open a pipe on %s" #~ msgstr "Kann Pipe auf `%s' nicht öffnen" #~ msgid "cannot open file %s" #~ msgstr "Kann Datei `%s' nicht öffnen." #~ msgid "cannot open configuration file %s" #~ msgstr "Kann Konfigurationsdatei `%s' nicht öffnen." #~ msgid "encoding %s unknown" #~ msgstr "Zeichensatz %s unbekannt" #~ msgid " library path = \n" #~ msgstr " Bibliotheks-Pfad = \n" #~ msgid "user option `%s' not defined" #~ msgstr "Benutzeroption «%s» nicht definiert" #~ msgid "illegal option: %s" #~ msgstr "Ungültige Option: «%s»" #~ msgid "illegal option: `%s'" #~ msgstr "Ungültige Option: «%s»" #~ msgid "" #~ "syntax error in option string `%s':\n" #~ "missing end of quotation: %c" #~ msgstr "" #~ "Syntaxfehler in der Option `%s':\n" #~ "Schließendes Anführungszeichen fehlt: %c" #~ msgid "cannot backup and create file `%s'" #~ msgstr "Kann Ausgabedatei `%s' nicht anlegen." #~ msgid "wrong value for option %s: `%s'" #~ msgstr "Ungültiger Wert `%s' für Option `%s'." #~ msgid "Valid arguments are integers between %d and %d\n" #~ msgstr "Gültige Argumente sind Ganze Zahlen zwischen %d und %d\n" #~ msgid "Valid arguments are integers greater than %d\n" #~ msgstr "Gültige Argumente sind Ganze Zahlen größer als %d\n" #~ msgid "Valid arguments are lengths between %gpt and %gpt\n" #~ msgstr "Gültige Argumente sind Längen zwischen %gpt und %gpt\n" #~ msgid "cannot find configuration file `%s'" #~ msgstr "Kann Konfigurationsdatei `%s' nicht finden" #~ msgid "Dynamic array `%s':\n" #~ msgstr "Dynamisches Feld `%s':\n" #~ msgid "\tload: %d/%d (%2.1f%%)\n" #~ msgstr "Load: %d/%d (%2.1f%%)\n" #~ msgid "Dynamic string:\n" #~ msgstr "Dynamische Zeichenkette:\n" #~ msgid "steady" #~ msgstr "stabil" #~ msgid "linear" #~ msgstr "Linear" #~ msgid "geometrical" #~ msgstr "Geometrisch" #~ msgid "\tgrowth: %s, increment: %d\n" #~ msgstr "Wachstum: %s, Zuwachs: %d\n" #~ msgid "can't allocate %ld bytes for hash table: memory exhausted" #~ msgstr "" #~ "Konnte keine %ld Bytes für Hashtabelle allockieren: Kein Speicher mehr." #~ msgid "Load=%ld/%ld=%.0f%%, " #~ msgstr "Load=%ld/%ld=%.0f%%, " #~ msgid "Rehash=%d, " #~ msgstr "Rehash=%d " #~ msgid "Collisions=%ld/%ld=%.0f%%" #~ msgstr "Kollisionen=%ld/%ld=%.0f%%" #~ msgid "Document title" #~ msgstr "Dokumenten Titel" #~ msgid "Page label" #~ msgstr "Seitenmarke" #~ msgid "Valid arguments are floats greater than %.1f\n" #~ msgstr "Gültige Argumente sind Ganzzahlen größer als %.1f\\n\n" #~ msgid "free" #~ msgstr "frei" #~ msgid " %-10s = save in %s\n" #~ msgstr " %-10s = sichere in %s\n" #~ msgid "delegating command" #~ msgstr "Weiterleitungs Kommando" #~ msgid "water mark" #~ msgstr "Wasserzeichen" #~ msgid "right header" #~ msgstr "Rechte Kopfzeile" #~ msgid "center footer" #~ msgstr "Mittlere Fußzeile" #~ msgid "right footer" #~ msgstr "Rechte Fußzeile" #~ msgid "left footer" #~ msgstr "Linke Fußzeile" #~ msgid "center title" #~ msgstr "Mittlerer Titel" #~ msgid "right title" #~ msgstr "Rechter Titel" #~ msgid "left title" #~ msgstr "Linker Titel" #~ msgid "" #~ " version = %s\n" #~ " verbosity level = %d\n" #~ " library path = \n" #~ msgstr "" #~ " Version = %s\n" #~ " Protokollniveau = %d\n" #~ " Library-Pfad =\n" #~ msgid "found following options (argc=%d):\n" #~ msgstr "Folgende Optionen gefunden (argc=%d):\n" #~ msgid "failure\n" #~ msgstr "Gescheitert\n" #~ msgid "Walk through path\n" #~ msgstr "Durchlaufe Pfad\n" #~ msgid "Unkown Printer" #~ msgstr "Unbekannter Drucker" #~ msgid "syntax error in fonts(s) `%s'" #~ msgstr "Syntxfehle in Font(s) `%s'" #~ msgid "[%s (%s): 1 sheet]\n" #~ msgstr "[%s (%s): 1 Seite]\n" #~ msgid "[%s (%s): %d sheets]\n" #~ msgstr "[%s (%s): %d Seiten]\n" #~ msgid "cannot launch `%s' (delegation `%s')" #~ msgstr "Kann `%s' nicht starten (Weiterleitung `%s')" #~ msgid "delegation %s did not create the file" #~ msgstr "Weiterleitung %s hat keine Datei erzeugt" #~ msgid "delegation %s failed and exited with status %d" #~ msgstr "Weiterleitung %s fehlgeschlagen und mit Status %d beendet" #~ msgid "delegation %s failed" #~ msgstr "Weiterleitung %s fehlgeschlagen" #~ msgid "%s: no closing `%s' for %s escape" #~ msgstr "%s: Keine schließendes '%s' für das Escape-Zeichen %s." #~ msgid "%s: too long variable name for %s escape" #~ msgstr "%s: Zu langer Variablen-Name für das Escape-Zeichen %s." #~ 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" #~ 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 Auf Drucker NAME ausgeben\n" #~ " -d Auf dem Systemdrucker ausgeben\n" #~ " -s --sides=NUM Anzahl Seiten pro Blatt (Vorder-/Rückseite)\n" #~ msgid "In the style %s, the keyword `%s' uses upper chars" #~ msgstr "Im «%s»-Stil benutzt das Schlüsselwort `%s' Großbuchstaben." #~ msgid "In the style %s, the sequence `%s-%s' uses upper chars" #~ msgstr "Im «%s»-Stil benutzt die Sequenz `%s-%s' Großbuchstaben." #~ msgid "in style %s, keyword `%s' is defined twice" #~ msgstr "Im «%s»-Stil ist das Schlüsselwort `%s' doppelt definiert." #~ msgid "in style %s, operator `%s' is defined twice" #~ msgstr "Im «%s»-Stil ist das Schlüsselwort `%s' doppelt definiert." #~ msgid "can't get current working directory" #~ msgstr "Kann aktuelles Arbeitsverzeichnis nicht ermitteln." #~ msgid "expansion of %s user string (`%s') is `%s'\n" #~ msgstr "Benutzeroption %s («%s») ist definiert als «%s»\n" #~ msgid "cannot open `%s'" #~ msgstr "Kann Datei «%s» nicht öffnen." #~ msgid "error opening `%s'" #~ msgstr "Fehler beim Öffnen von «%s»" #~ msgid "error getting file `%s' modification time" #~ msgstr "Fehler beim Bestimmen des letzten Änderungsdatums von «%s»" #~ msgid "cannot find file \"%s%s\"" #~ msgstr "Kann Datei «%s%s» nicht finden." #~ msgid "couldn't find system's configuration file `%s%c%s'" #~ msgstr "Kann Konfigurationsdatei »%s%c%s« nicht öffnen." #~ msgid "unable to fork" #~ msgstr "Kann Pipe nicht öffnen" #~ msgid "error starting `/bin/sh -c %s'" #~ msgstr "Fehler beim Starten von `/bin/sh -c %s`." #~ msgid "[Total: %d page on " #~ msgstr "[Insgesamt: %d Seite auf " #~ msgid "sheet" #~ msgstr "Blatt" #~ msgid "space" #~ msgstr "Leerzeichen" #~ msgid "caret" #~ msgstr "Circumflex" #~ msgid "Known Media\n" #~ msgstr "Bekannte Papierformate\n" #~ msgid "Known languages (%d)" #~ msgstr "Bekannte Sprachen (%d)" #~ msgid "" #~ " In %s:\n" #~ "\t" #~ msgstr "" #~ " abgelegt in: %s\n" #~ "\t" #~ msgid "rows" #~ msgstr "Zeilen" #~ msgid "columns" #~ msgstr "Spalten" #~ msgid "path_walk() on path %s\n" #~ msgstr "path_walk() im Pfad %s\n" #~ msgid "In the style %s, the symbol '%s' uses upper chars" #~ msgstr "Im «%s»-Stil benutzt das Symbol `%s' Großbuchstaben." #~ msgid "in style %s, symbol `%s' is defined twice" #~ msgstr "Im «%s»-Stil ist das reguläre Symbol `%s' doppelt definiert." #~ msgid "in style %s, regular symbol `%s' is defined twice" #~ msgstr "Im «%s»-Stil ist das reguläre Symbol `%s' doppelt definiert." #~ msgid "in style %s, special symbol `%s' is defined twice" #~ msgstr "Im «%s»-Stil ist das spezielle Symbol `%s' doppelt definiert." #~ msgid "not enough \\verb delimiters (%s) to print %s" #~ msgstr "Nicht genügend \\\\verb-Begrenzer (%s) um %s zu drucken" #~ msgid "couldn't find prolog \"%s\"" #~ msgstr "Kann Vorspann (»prolog«) »%s« nicht finden" #~ msgid "unknown" #~ msgstr "unbekannt" #~ msgid "language %s unknown" #~ msgstr "Sprache «%s» unbekannt" #~ msgid "illegal language: `%s'" #~ msgstr "Ungültige Sprache: «%s»" a2ps-4.14/po/ja.po0000644000175000017500000010101510735337367013211 0ustar mhattamhatta# 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 , 2000. # Masayuki Hatta , 2007. # msgid "" msgstr "" "Project-Id-Version: a2ps 4.13b\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2007-12-29 11:28+0800\n" "PO-Revision-Date: 2003-03-23 18:22+0900\n" "Last-Translator: Masayuki Hatta \n" "Language-Team: Japanese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=EUC-JP\n" "Content-Transfer-Encoding: 8bit\n" #: src/buffer.c:68 msgid "any type" msgstr "Á´¤Æ¤Î¥¿¥¤¥×" #: src/delegate.c:137 confg.gperf:168 lib/encoding.c:530 lib/encoding.c:576 #: lib/encoding.c:616 lib/output.c:302 lib/pair_ht.c:296 lib/prolog.c:146 #, c-format msgid "missing argument for `%s'" msgstr "`%s'¤ËÂФ¹¤ë°ú¿ô¤¬Â­¤ê¤Þ¤»¤ó" #: src/delegate.c:260 lib/routines.c:160 lib/xbackupfile.c:248 #: lib/xbackupfile.c:276 lib/xbackupfile.c:284 #, c-format msgid "cannot create file `%s'" msgstr "¥Õ¥¡¥¤¥ë`%s'¤òºîÀ®¤Ç¤­¤Þ¤»¤ó" #: src/delegate.c:269 src/select.c:193 lib/routines.c:190 lib/routines.c:196 #, c-format msgid "cannot open a pipe on `%s'" msgstr "`%s'¤Î¥Ñ¥¤¥×¤ò³«¤±¤Þ¤»¤ó" #: src/delegate.c:389 #, c-format msgid "Delegation `%s', from %s to %s\n" msgstr "³°Éô¥Õ¥£¥ë¥¿`%s', %s¤«¤é %s¤Ø\n" #: src/delegate.c:408 src/delegate.c:430 msgid "Applications configured for delegation" msgstr "¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï³°Éô¥Õ¥£¥ë¥¿¤ÎÀßÄ꤬¤µ¤ì¤Æ¤¤¤Þ¤»¤ó" #: src/generate.c:88 #, c-format msgid "`%s' is a directory" msgstr "`%s'¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¹" #: src/generate.c:96 src/main.c:560 src/main.c:582 confg.gperf:192 #: confg.gperf:355 lib/routines.c:154 #, c-format msgid "cannot open file `%s'" msgstr "¥Õ¥¡¥¤¥ë`%s'¤ò³«¤±¤Þ¤»¤ó" #: src/generate.c:101 lib/xbackupfile.c:224 #, c-format msgid "cannot get informations on file `%s'" msgstr "¥Õ¥¡¥¤¥ë`%s'¾å¤Î¾ðÊó¤ò¼èÆÀ¤Ç¤­¤Þ¤»¤ó" #: src/generate.c:168 #, c-format msgid "[%s (%s): 1 page on 1 sheet]\n" msgstr "[%s (%s): 1¥Ú¡¼¥¸, 1¥·¡¼¥È]\n" #: src/generate.c:174 #, c-format msgid "[%s (%s): %d pages on 1 sheet]\n" msgstr "[%s (%s): %d¥Ú¡¼¥¸, 1¥·¡¼¥È]\n" #: src/generate.c:181 #, c-format msgid "[%s (%s): %d pages on %d sheets]\n" msgstr "[%s (%s): %d¥Ú¡¼¥¸, %d¥·¡¼¥È]\n" #: src/generate.c:208 #, c-format msgid "[Total: 1 page on 1 sheet] %s\n" msgstr "[¹ç·×: 1¥Ú¡¼¥¸, 1¥·¡¼¥È] %s\n" #: src/generate.c:212 #, c-format msgid "[Total: %d pages on 1 sheet] %s\n" msgstr "[¹ç·×: %d¥Ú¡¼¥¸, 1¥·¡¼¥È] %s\n" #: src/generate.c:217 #, c-format msgid "[Total: %d pages on %d sheets] %s\n" msgstr "[¹ç·×: %d¥Ú¡¼¥¸, %d¥·¡¼¥È] %s\n" #: src/generate.c:226 msgid "[1 line wrapped]\n" msgstr "[1¹Ô ÀÞ¤ê¾ö¤ß]\n" #: src/generate.c:229 #, c-format msgid "[%d lines wrapped]\n" msgstr "[%d¹Ô ÀÞ¤ê¾ö¤ß]\n" #: src/generate.c:242 msgid "[No output produced]\n" msgstr "[½ÐÎϤϤ¢¤ê¤Þ¤»¤ó]\n" #: src/generate.c:314 #, c-format msgid "%s, delegated to %s" msgstr "%s, %s¤Ø¥Õ¥£¥ë¥¿¤·¤Þ¤¹ " #: src/generate.c:322 #, c-format msgid "[%s (%s): failed. Ignored]\n" msgstr "[%s (%s): ¼ºÇÔ¤·¤Þ¤·¤¿. ̵¸ú¤Ë¤Ê¤ê¤Þ¤¹]\n" #: src/generate.c:330 #, c-format msgid "[%s (unprintable): ignored]\n" msgstr "[%s (°õºþÉÔ²Ä): ̵¸ú¤Ç¤¹]\n" #: src/generate.c:339 #, c-format msgid "[%s (binary): ignored]\n" msgstr "[%s (¥Ð¥¤¥Ê¥ê): ̵¸ú¤Ç¤¹]\n" #: src/generate.c:360 msgid "plain" msgstr "¥×¥ì¡¼¥ó" #: lexssh.l:348 msgid "end-of-line in string constant" msgstr "ʸ»úÎóÃæ¤Ë¹ÔËö¤¬¤­¤Æ¤¤¤Þ¤¹" #: lexssh.l:415 src/sheets-map.l:153 src/sheets-map.l:192 #, c-format msgid "end of line inside a %s" msgstr "%s ʸ»úÎóÃæ¤Ë¹ÔËö¤¬¤­¤Æ¤¤¤Þ¤¹" #: src/main.c:203 #, c-format msgid "received signal %d: %s" msgstr "¥·¥°¥Ê¥ë%d¤ò¼õ¤±¼è¤ê¤Þ¤·¤¿: %s" #: src/main.c:242 msgid "heavy" msgstr "¥Ø¥Ó¡¼" #: src/main.c:246 msgid "normal" msgstr "Ä̾ï" #: src/main.c:250 msgid "none" msgstr "¤Ê¤·" #: src/main.c:324 src/main.c:328 msgid "yes" msgstr "" #: src/main.c:325 src/main.c:328 src/main.c:369 msgid "no" msgstr "̵¸ú" #: src/main.c:335 #, c-format msgid "Configuration status of %s %s\n" msgstr "%s %s¤ÎÀßÄê¾õÂÖ\n" #: src/main.c:339 src/main.c:697 msgid "Sheets:\n" msgstr "¥·¡¼¥È:\n" #: src/main.c:340 #, 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" msgstr "" " ¥á¥Ç¥£¥¢ = %s%s, %s\n" " ¥Ú¡¼¥¸¥ì¥¤¥¢¥¦¥È = %d x %d, %s\n" " ÏÈ = %s\n" " ¥Õ¥¡¥¤¥ë¶èÀÚ¤ê = %s\n" " ÆâÉô¥Þ¡¼¥¸¥ó = %d\n" #: src/main.c:349 msgid "portrait" msgstr "" #: src/main.c:349 msgid "landscape" msgstr "" #: src/main.c:358 #, c-format msgid "%d characters per line" msgstr "%dʸ»ú/¹Ô" #: src/main.c:361 #, c-format msgid "%d lines per page" msgstr "%d¹Ô/¥Ú¡¼¥¸" #: src/main.c:364 #, c-format msgid "font size is %gpt" msgstr "%gpt¥Õ¥©¥ó¥È¥µ¥¤¥º" #: src/main.c:373 msgid "each line" msgstr "³Æ¹Ô" #: src/main.c:377 #, c-format msgid "each %d lines" msgstr "³Æ%d¹Ô" #: src/main.c:380 src/main.c:718 msgid "Virtual pages:\n" msgstr "²¾ÁÛ¥Ú¡¼¥¸:\n" #: src/main.c:381 #, c-format msgid "" " number lines = %s\n" " format = %s\n" " tabulation size = %d\n" " non printable format = %s\n" msgstr "" " ¹ÔÈÖ¹æ = %s\n" " ·Á¼° = %s\n" " ¥¿¥Ö¥µ¥¤¥º = %d\n" " °õºþÉԲĻþ¤Î·Á¼° = %s\n" #: src/main.c:392 msgid "Headers:\n" msgstr "¥Ø¥Ã¥À:\n" #: src/main.c:393 #, 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:412 src/main.c:747 msgid "Input:\n" msgstr "ÆþÎÏ:\n" #: src/main.c:413 #, 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:438 src/main.c:504 msgid "selected automatically" msgstr "¼«Æ°ÁªÂò" #: src/main.c:441 src/main.c:766 msgid "Pretty-printing:\n" msgstr "°õºþÁõ¾þ:\n" #: src/main.c:442 #, 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:462 msgid "never make backups" msgstr "¥Ð¥Ã¥¯¥¢¥Ã¥×¤òºîÀ®¤·¤Ê¤¤" #: src/main.c:466 msgid "simple backups of every file" msgstr "³Æ¥Õ¥¡¥¤¥ë¤Îñ½ã¥Ð¥Ã¥¯¥¢¥Ã¥×" #: src/main.c:471 msgid "" "numbered backups of files already numbered,\n" " and simple of others" msgstr "" "¥Õ¥¡¥¤¥ë¤Î¥Ð¥Ã¥¯¥¢¥Ã¥×ÈÖ¹æ¤Ï¤¹¤Ç¤ËÈֹ椬¸ºß¤·¤Æ¤ª¤ê¡¢\n" " ¾¤Îñ½ã¥Ð¥Ã¥¯¥¢¥Ã¥×¤â¤¢¤ê¤Þ¤¹" #: src/main.c:476 msgid "numbered backups of every file" msgstr "³Æ¥Õ¥¡¥¤¥ë¤Î¿ô»ú¤Ë¤è¤ë¥Ð¥Ã¥¯¥¢¥Ã¥×" #: src/main.c:480 src/main.c:775 msgid "Output:\n" msgstr "½ÐÎÏ:\n" #: src/main.c:481 #, c-format msgid "" " destination = %s\n" " version control = %s\n" " backup suffix = %s\n" msgstr "" " ½ÐÎÏÀè = %s\n" " ¥Ð¡¼¥¸¥ç¥óÀ©¸æ = %s\n" " ¥Ð¥Ã¥¯¥¢¥Ã¥×¥µ¥Õ¥£¥Ã¥¯¥¹= %s\n" #: src/main.c:494 src/main.c:786 msgid "PostScript:\n" msgstr "¥Ý¥¹¥È¥¹¥¯¥ê¥×¥È:\n" #: src/main.c:495 #, 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 = " msgstr "" " ¥Þ¥¸¥Ã¥¯ÈÖ¹æ = %s\n" " ¥×¥ê¥ó¥¿¥Ç¥¹¥¯¥×¥ê¥¿(PPD) = %s\n" " ɸ½à PPD = %s\n" " ¥Ú¡¼¥¸¥é¥Ù¥ë·Á¼° = %s\n" " °õºþÉô¿ô = %d\n" " ¥µ¥¤¥É¡¿¥·¡¼¥È = %s\n" " ¥Ú¡¼¥¸¥Ç¥Ð¥¤¥¹ÄêµÁ = " #: src/main.c:515 #, c-format msgid " statusdict definitions = " msgstr " statusdictÄêµÁ = " #: src/main.c:518 #, c-format msgid " page prefeed = %s\n" msgstr " ¥Ú¡¼¥¸¥×¥ì¥Õ¥£¡¼¥É = %s\n" #: src/main.c:527 msgid "Internals:\n" msgstr "ÆâÉô¾ðÊó:\n" #: src/main.c:528 #, c-format msgid "" " verbosity level = %d\n" " file command = %s\n" " library path = \n" msgstr "" " ¥á¥Ã¥»¡¼¥¸¾ÜºÙ¥ì¥Ù¥ë= %d\n" " file¥³¥Þ¥ó¥É¥Ñ¥¹ = %s\n" " ¥é¥¤¥Ö¥é¥ê¥Ñ¥¹ = \n" #: src/main.c:653 #, 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" msgstr "" "»ÈÍÑË¡: %s [¥ª¥×¥·¥ç¥ó]¡Å¡Å ¥Õ¥¡¥¤¥ë¡Å¡Å\n" "\n" "¥Õ¥¡¥¤¥ë¤Þ¤¿¤Ïɸ½àÆþÎϤòPostscript¤ØÊÑ´¹¤·¤Þ¤¹¡£\n" "\n" "¥í¥ó¥°¥ª¥×¥·¥ç¥ó¤Ø¤Î¾Êά¤Ç¤­¤Ê¤¤°ú¿ô¤Ï¡¢¥·¥ç¡¼¥È¥ª¥×¥·¥ç¥ó¤ËÂФ·¤Æ¤â\n" "ƱÍͤǤ¹¡£¡Ø*¡Ù¥Þ¡¼¥¯ÉդΥí¥ó¥°¥ª¥×¥·¥ç¥ó¤Ë¤Ï yes/no ¤Î°ú¿ô¤¬É¬ÍפǤ¹¡£\n" "¤³¤ì¤ËÂбþ¤¹¤ë¥·¥ç¡¼¥È¥ª¥×¥·¥ç¥ó¤Ï`yes'¤¬Î©¤Ã¤Æ¤¤¤Þ¤¹\n" #: src/main.c:668 msgid "Tasks:\n" msgstr "¥¿¥¹¥¯:\n" #: src/main.c:669 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" 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:680 msgid "" "After having performed the task, exit successfully. Detailed lists may\n" "provide additional help on specific features.\n" msgstr "" "¥¿¥¹¥¯½èÍý½ªÎ»¸å¤Ë, Àµ¾ï¤Ë½ªÎ»¤·¤Þ¤¹. ¾ÜºÙ¤Ê¥ê¥¹¥È¤Ë¤è¤Ã¤Æ\n" "»ØÄꤷ¤¿µ¡Ç½¤Ë´Ø¤¹¤ëÄɲåإë¥×¤¬Ä󶡤µ¤ì¤Þ¤¹.\n" #: src/main.c:688 msgid "Global:\n" msgstr "Á´ÈÌ:\n" #: src/main.c:689 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:698 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" msgstr "" " -M, --medium=̾Á° ½ÐÎÏÇÞÂÎ̾¤Î»ØÄê\n" " -r, --landscape landscape¥â¡¼¥É¤Ç½ÐÎÏ\n" " -R, --portrait portrait¥â¡¼¥É¤Ç½ÐÎÏ\n" " --columns=¿ôÃÍ 1¥·¡¼¥È¤¢¤¿¤ê¤Î¥³¥é¥à¿ô(¿ôÃÍ > 0)\n" " --rows=¿ôÃÍ 1¥·¡¼¥È¤¢¤¿¤ê¤ÎÎó¿ô(¿ôÃÍ > 0)\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:711 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:719 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:730 msgid "Headings:\n" msgstr "¥Ø¥Ã¥À:\n" #: src/main.c:732 #, 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:743 msgid "The TEXTs may use special escapes.\n" msgstr "TEXT¤Ë¤ÏÆÃ¼ì¤Ê¥¨¥¹¥±¡¼¥×¤¬ÍøÍѤǤ­¤Þ¤¹¡£\n" #: src/main.c:748 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:760 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:767 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:776 #, 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=WORD Ä̾ï¤Î¥Ð¡¼¥¸¥ç¥ó¥¢¥Ã¥×À©¸æ¤Î¾å½ñ¤­»ØÄê\n" " --suffix=SUFFIX Ä̾ï¤Î¥Ð¥Ã¥¯¥¢¥Ã¥×¥µ¥Õ¥£¥Ã¥¯¥¹¤Î¾å½ñ¤­»ØÄê\n" " -P, --printer=¥×¥ê¥ó¥¿ »ØÄê¥×¥ê¥ó¥¿¤Ø½ÐÎϤòÁ÷¿®¤¹¤ë\n" " -d ɸ½à¥×¥ê¥ó¥¿¤Ø½ÐÎϤòÁ÷¿®¤¹¤ë\n" #: src/main.c:787 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" " -D, --setpagedevice=K[:V] ¥Ú¡¼¥¸¥Ç¥Ð¥¤¥¹ÄêµÁ¤ò½ÐÎϤØÄ̤¹\n" " -S, --statusdict=K[:[:]V] statusdictÄêµÁ¤ò½ÐÎϤØÄ̤¹\n" " -k, --page-prefeed ¥Ú¡¼¥¸¥×¥ì¥Õ¥£¡¼¥É¤òÍ­¸ú¤Ë¤¹¤ë\n" " -K, --no-page-prefeed ¥Ú¡¼¥¸¥×¥ì¥Õ¥£¡¼¥É¤ò̵¸ú¤Ë¤¹¤ë\n" #: src/main.c:801 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" 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:822 #, fuzzy msgid "" "News, updates and documentation: visit http://www.gnu.org/software/a2ps/.\n" msgstr "" "¿·Ãå¾ðÊó¤ä¡¢¹¹¿·¾ðÊ󡢥ɥ­¥å¥á¥ó¥È¤Ë¤Ï¡¢\n" " http://www.inf.enst.fr/~demaille/a2ps/ ¤òˬ¤ì¤Æ¤¯¤À¤µ¤¤¡£\n" #: src/main.c:824 msgid "Report bugs to .\n" msgstr "¥Ð¥°¤òȯ¸«¤·¤¿¤é °¸¤ËÊó¹ð¤·¤Æ²¼¤µ¤¤.\n" #: src/main.c:942 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 "" #: src/main.c:1173 msgid "Table of Content" msgstr "¥³¥ó¥Æ¥ó¥È¥Æ¡¼¥Ö¥ë" #: src/parsessh.y:236 #, c-format msgid "cannot process `%s' which requires a2ps version %s" msgstr "`%s'¤ò½èÍý¤¹¤ë¤Ë¤Ï a2ps¥Ð¡¼¥¸¥ç¥ó %s¤¬É¬ÍפǤ¹" #: src/sheets-map.l:111 #, c-format msgid "unexpected character `%c'" msgstr "ͽ´ü¤·¤Ê¤¤Ê¸»ú`%c'¤Ç¤¹¡£" #: src/sheets-map.l:211 lexppd.l:211 msgid "too many includes" msgstr "include¤¬Â¿¤¹¤®¤Þ¤¹" #: src/sheets-map.l:296 src/sheets-map.l:303 #, c-format msgid "no key defined for `%s'" msgstr "`%s'¤ËÂФ¹¤ë¥­¡¼¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó" #: src/select.c:122 src/ssheet.c:866 fonts.l:838 fonts.l:840 fonts.l:842 #: lib/pathwalk.c:328 lib/pathwalk.c:414 #, c-format msgid "cannot find file `%s'" msgstr "¥Õ¥¡¥¤¥ë`%s'¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó" #: src/select.c:124 msgid "automatic style selection cancelled" msgstr "¼«Æ°¥¹¥¿¥¤¥ëÁªÂò¤¬¥­¥ã¥ó¥»¥ë¤µ¤ì¤Þ¤·¤¿" #: src/ssheet.c:295 #, c-format msgid "cannot compile regular expression `%s': %s" msgstr "Àµµ¬É½¸½`%s'¤òËÝÌõ¤Ç¤­¤Þ¤»¤ó: %s" #: src/ssheet.c:974 src/ssheet.c:995 msgid "Known Style Sheets" msgstr "ÍøÍѲÄǽ¤Ê¥¹¥¿¥¤¥ë¥·¡¼¥È" #: src/ssheet.c:1461 #, c-format msgid "cannot find style sheet `%s': using plain style" msgstr "¥¹¥¿¥¤¥ë¥·¡¼¥È`%s'¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: ¥×¥ì¡¼¥ó¥¹¥¿¥¤¥ë¤ò»ÈÍѤ·¤Þ¤¹" #: src/sshread.c:453 #, c-format msgid "unknown encoding `%s', ignored" msgstr "ÉÔÌÀ¤Ê¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤Ç¤¹: `%s', ̵¸ú¤Ë¤Ê¤ê¤Þ¤¹" #: src/version-etc.c:38 msgid "Copyright (C) 1999 Free Software Foundation, Inc." msgstr "" #: src/version-etc.c:60 #, c-format msgid "Written by %s.\n" msgstr "ºîÀ®¼Ô: %s\n" #: src/version-etc.c:66 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" #: src/versions.c:133 #, c-format msgid "invalid version number `%s'" msgstr "¤ª¤«¤·¤Ê¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤Ç¤¹ `%s'" #: lib/caret.c:43 msgid "space (i.e., ` ')" msgstr "¶õÇò (Îã, ` ')" #: lib/caret.c:45 msgid "octal (i.e., `\\001' etc.)" msgstr "octal (Îã, `\\001'Åù)" #: lib/caret.c:47 msgid "hexadecimal (i.e., `\\x0a' etc.)" msgstr "hexadecimal (Îã, `\\x0a'Åù)" #: lib/caret.c:49 msgid "caret (i.e., `^C', `M-^C' etc.)" msgstr "caret (Îã, `^C', `M-^C'Åù)" #: lib/caret.c:51 msgid "emacs (i.e., `C-c', `M-C-c' etc.)" msgstr "emacs (Îã, `C-c', `M-C-c'Åù)" #: lib/caret.c:53 msgid "question-mark (i.e., `?')" msgstr "question-mark (Îã, `?')" #: lib/closeout.c:71 lib/closeout.c:73 msgid "write error" msgstr "½ñ¤­¹þ¤ß¥¨¥é¡¼" #: confg.gperf:157 lib/encoding.c:638 #, c-format msgid "invalid option `%s'" msgstr "´Ö°ã¤Ã¤¿¥ª¥×¥·¥ç¥ó¤Ç¤¹: `%s'" #: confg.gperf:224 confg.gperf:231 confg.gperf:238 #, c-format msgid "invalid definition for printer `%s': %s" msgstr "¤ª¤«¤·¤Ê¥×¥ê¥ó¥¿¤ÎÄêµÁ¤Ç¤¹ `%s': %s" #: confg.gperf:229 confg.gperf:232 lib/printers.c:47 msgid "Unknown Printer" msgstr "ÉÔÌÀ¤Ê¥×¥ê¥ó¥¿" #: confg.gperf:236 confg.gperf:239 lib/printers.c:46 msgid "Default Printer" msgstr "ɸ½à¥×¥ê¥ó¥¿" #: confg.gperf:292 lib/options.c:697 #, c-format msgid "invalid variable identifier `%s'" msgstr "¤ª¤«¤·¤ÊÊÑ¿ô¾ÚÌÀ¤Ç¤¹ `%s'" #: confg.gperf:321 #, c-format msgid "obsolete `%s' entry. Ignored" msgstr "µì¼°¤Î`%s'¥¨¥ó¥È¥ê¤Ç¤¹. ̵¸ú¤Ç¤¹" #: lib/encoding.c:1114 lib/encoding.c:1135 msgid "Known Encodings" msgstr "ÍøÍѲÄǽ¤Ê¥¨¥ó¥³¡¼¥É" #: lib/faces.c:156 msgid "incomplete knowledge of faces" msgstr "¥Õ¥§¡¼¥¹¤Ë´Ø¤·¤ÆÉÔ´°Á´¤Ê¾ðÊó¤Ç¤¹" #: lib/filtdir.c:113 #, c-format msgid "cannot close directory `%s'" msgstr "¥Ç¥£¥ì¥¯¥È¥ê`%s'¤òÊĤ¸¤é¤ì¤Þ¤»¤ó" #: lib/getnum.c:63 lib/getnum.c:121 lib/getnum.c:153 lib/getnum.c:221 #, c-format msgid "invalid argument `%s' for `%s'" msgstr "¤ª¤«¤·¤Ê°ú¿ô`%s'¤¬`%s'¤Ë»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹" #: lib/getnum.c:123 #, c-format msgid "Valid arguments are integers n such that: %s\n" msgstr "À°¿ô¤Î»ØÄ꤬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹:%s\n" #: lib/getnum.c:223 #, c-format msgid "Valid arguments are floats f such that: %s\n" msgstr "¼Â¿ô¤Î»ØÄ꤬´Ö°ã¤Ã¤Æ¤¤¤Þ¤¹:%s\n" #: lib/jobs.c:308 #, c-format msgid "unknown encoding `%s'" msgstr "ÉÔÌÀ¤Ê¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤Ç¤¹: `%s'" #: lib/madir.c:59 msgid "rows first" msgstr "¹ÔÍ¥Àè" #: lib/madir.c:62 msgid "columns first" msgstr "·åÍ¥Àè" #: lib/media.c:173 #, c-format msgid "unknown medium `%s'" msgstr "ÉÔÌÀ¤Ê¥á¥Ç¥£¥¢¤Ç¤¹ `%s'" #: lib/media.c:208 lib/media.c:237 msgid "Known Media" msgstr "ÍøÍѲÄǽ¤Ê¥á¥Ç¥£¥¢" #: lib/media.c:211 msgid "Name" msgstr "̾Á°" #: lib/media.c:212 msgid "dimensions" msgstr "¥Ç¥£¥á¥ó¥¸¥ç¥ó" #: lib/metaseq.c:104 lib/metaseq.c:113 #, c-format msgid "Known Variables" msgstr "ÍøÍѲÄǽ¤ÊÊÑ¿ô" #: lib/metaseq.c:162 lib/metaseq.c:531 lib/metaseq.c:548 lib/metaseq.c:608 #: lib/metaseq.c:951 lib/metaseq.c:972 #, c-format msgid "%s: missing `%c' for %s%c escape" msgstr "%s: `%c'¤¬¥¨¥¹¥±¡¼¥× %s%c¤ËÂФ·¤ÆÉÔ­¤·¤Æ¤¤¤Þ¤¹" #: lib/metaseq.c:288 lib/metaseq.c:300 #, c-format msgid "Printed by %s" msgstr "¥æ¡¼¥¶Ì¾: %s" #: lib/metaseq.c:298 #, c-format msgid "Printed by %s from %s" msgstr "¥æ¡¼¥¶Ì¾:%s ¾ì½ê:%s" #: lib/metaseq.c:308 lib/metaseq.c:327 msgid "cannot get current working directory" msgstr "¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤¬ÆÀ¤é¤ì¤Þ¤»¤ó" #: lib/metaseq.c:341 lib/metaseq.c:534 lib/metaseq.c:563 lib/metaseq.c:652 #: lib/metaseq.c:954 lib/metaseq.c:987 #, c-format msgid "%s: too long argument for %s escape" msgstr "%s: ¥¨¥¹¥±¡¼¥×%s¤ËÂФ¹¤ë°ú¿ô¤¬Ä¹²á¤®¤Þ¤¹" #: lib/metaseq.c:364 lib/metaseq.c:675 msgid "%b %d, %y" msgstr "%yǯ %b%eÆü" #: lib/metaseq.c:373 lib/metaseq.c:684 msgid "%A %B %d, %Y" msgstr "%Yǯ %b%eÆü %A" #: lib/metaseq.c:419 lib/metaseq.c:448 lib/metaseq.c:491 lib/metaseq.c:724 #: lib/metaseq.c:808 lib/metaseq.c:867 lib/metaseq.c:922 lib/metaseq.c:1099 #: lib/metaseq.c:1234 lib/metaseq.c:1246 lib/metaseq.c:1289 #, c-format msgid "%s: unknown `%s' escape `%c' (%d)" msgstr "%s: ÉÔÌÀ¤Ê `%s'¥¨¥¹¥±¡¼¥× `%c' (%d)" #: lib/metaseq.c:426 lib/metaseq.c:815 #, c-format msgid "Page %d" msgstr "%d¥Ú¡¼¥¸" #: lib/metaseq.c:431 lib/metaseq.c:826 #, c-format msgid "Page %d/%c" msgstr "%d/%c ¥Ú¡¼¥¸" #: lib/metaseq.c:593 lib/metaseq.c:1021 #, c-format msgid "%s: invalid separator `%s%c' for `%s' escape" msgstr "%s: `%s%c'¤Ï¥¨¥¹¥±¡¼¥× %s ¤ËÂФ·¤ÆÉÔŬÀڤǤ¹" #: lib/metaseq.c:601 lib/metaseq.c:611 #, c-format msgid "%s: invalid argument for %s%c escape" msgstr "%s: ¥¨¥¹¥±¡¼¥× %s%c¤ËÂФ·¤ÆÉÔŬÀڤʰú¿ô¤Ç¤¹" #: lib/metaseq.c:822 #, c-format msgid "Page %d/%d" msgstr "%d/%d¥Ú¡¼¥¸" #: lib/metaseq.c:1266 msgid "output command" msgstr "½ÐÎÏ¥³¥Þ¥ó¥É" #: lib/options.c:302 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "¾Ü¤·¤¯¤Ï`%s --help'¤ò¼Â¹Ô¤·¤Æ²¼¤µ¤¤.\n" #: lib/output.c:466 #, c-format msgid "invalid face `%s'" msgstr "´Ö°ã¤Ã¤¿¥Õ¥§¡¼¥¹¤Ç¤¹: `%s'" #: lib/output.c:538 #, c-format msgid "`%s' with no matching `%s'" msgstr "`%s' ¤Ï `%s' ¤È°ìÃפ·¤Æ¤¤¤Þ¤»¤ó" #: lib/ppd.c:108 msgid "Known Fonts" msgstr "ÍøÍѲÄǽ¤Ê¥Õ¥©¥ó¥È" #: lib/ppd.c:111 msgid "" "\n" " None.\n" msgstr "" "\n" " ¤Ê¤·.\n" #: lib/ppd.c:149 lib/ppd.c:165 msgid "Known PostScript Printer Descriptions" msgstr "ÍøÍѲÄǽ¤ÊPostScript¥×¥ê¥ó¥¿¤Îµ­½Ò" #: lib/prange.c:305 lib/prange.c:323 #, c-format msgid "invalid interval `%s'" msgstr "¤ª¤«¤·¤Ê¥Þ¥¯¥í¾ðÊó¤Ç¤¹ `%s'" #: lib/printers.c:396 lib/printers.c:413 #, c-format msgid "no command for the `%s' (%s%s)" msgstr "`%s'¥³¥Þ¥ó¥É¤Ï¤¢¤ê¤Þ¤»¤ó (%s%s)" #: lib/printers.c:429 msgid "sent to the standard output" msgstr "ɸ½à½ÐÎϤØÅ¾Á÷¤·¤Þ¤¹" #: lib/printers.c:430 msgid "sent to the default printer" msgstr "ɸ½à¥×¥ê¥ó¥¿¤ØÅ¾Á÷¤·¤Þ¤¹" #: lib/printers.c:435 #, c-format msgid "saved into the file `%s'" msgstr "¥Õ¥¡¥¤¥ë`%s'¤ØÊݸ¤·¤Þ¤¹" #: lib/printers.c:436 #, c-format msgid "sent to the printer `%s'" msgstr "¥×¥ê¥ó¥¿`%s'¤ØÅ¾Á÷¤·¤Þ¤¹" #: lib/printers.c:613 lib/printers.c:621 msgid "Known Outputs (Printers, etc.)" msgstr "ÍøÍѲÄǽ¤Ê½ÐÎÏÀè(¥×¥ê¥ó¥¿Åù)" #: lib/prolog.c:98 lib/prolog.c:181 msgid "Known Prologues" msgstr "ÉÔÌÀ¤Ê¥×¥í¥í¡¼¥°" #: lib/prolog.c:579 #, c-format msgid "font %f too big" msgstr "¥Õ¥©¥ó¥È %f ¤ÏÂ礭¤¹¤®¤Þ¤¹" #: lib/psgen.c:662 #, c-format msgid "`%s' is a binary file, printing aborted" msgstr "`%s'¤Ï¥Ð¥¤¥Ê¥ê¥Õ¥¡¥¤¥ë¤Ç¤¹, °õºþ¤ÏÃæÃǤ·¤Þ¤¹" #: lib/quotearg.c:200 msgid "`" msgstr "" #: lib/quotearg.c:203 msgid "'" msgstr "" #: lib/userdata.c:129 msgid "user" msgstr "¥æ¡¼¥¶¡¼" #: lib/userdata.c:130 msgid "Unknown User" msgstr "ÉÔÌÀ¤Ê¥æ¡¼¥¶¡¼¤Ç¤¹" #: lib/useropt.c:75 #, c-format msgid "unknown user option `%s'" msgstr "ÉÔÌÀ¤Ê¥æ¡¼¥¶¥ª¥×¥·¥ç¥ó`%s'¤Ç¤¹" #: lib/useropt.c:86 lib/useropt.c:97 msgid "Known User Options" msgstr "ÍøÍѲÄǽ¤Ê¥æ¡¼¥¶¥ª¥×¥·¥ç¥ó" #: lib/xbackupfile.c:105 lib/xmalloc.c:66 msgid "Memory exhausted" msgstr "¥á¥â¥ê¤¬Â­¤ê¤Þ¤»¤ó" #: lib/xbackupfile.c:240 lib/xbackupfile.c:252 #, c-format msgid "cannot rename file `%s' as `%s'" msgstr "¥Õ¥¡¥¤¥ë`%s'¤ò`%s'¤ØÌ¾Á°Êѹ¹¤Ç¤­¤Þ¤»¤ó" #: lib/xbackupfile.c:255 #, c-format msgid "restored file `%s'" msgstr "¥Õ¥¡¥¤¥ë`%s'¤ò½¤Éü¤·¤Þ¤¹" #: lib/argmatch.c:159 #, c-format msgid "invalid argument %s for `%s'" msgstr "¤ª¤«¤·¤Ê°ú¿ô`%s'¤¬`%s'¤Ë»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹" #: lib/argmatch.c:160 #, c-format msgid "ambiguous argument %s for `%s'" msgstr "Û£Ëæ¤Ê°ú¿ô`%s'¤¬`%s'¤ËÂФ·¤Æ»ØÄꤵ¤ì¤Æ¤¤¤Þ¤¹" #: lib/argmatch.c:178 #, c-format msgid "Valid arguments are:" msgstr "¤ª¤«¤·¤Ê°ú¿ô¤Ç¤¹:" #: lib/error.c:102 msgid "Unknown system error" msgstr "ÉÔÌÀ¤Ê¥·¥¹¥Æ¥à¥¨¥é¡¼¤Ç¤¹" #: lib/getopt.c:675 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: ¥ª¥×¥·¥ç¥ó`%s'¤ÏÛ£Ëæ¤Ç¤¹\n" #: lib/getopt.c:700 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: ¥ª¥×¥·¥ç¥ó`--%s'¤Ï°ú¿ô¤ò¼è¤ê¤Þ¤»¤ó\n" #: lib/getopt.c:705 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: ¥ª¥×¥·¥ç¥ó`%c%s'¤Ï°ú¿ô¤ò¼è¤ê¤Þ¤»¤ó\n" #: lib/getopt.c:723 lib/getopt.c:896 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: ¥ª¥×¥·¥ç¥ó`%s'¤Ë¤Ï°ú¿ô¤¬É¬ÍפǤ¹\n" #: lib/getopt.c:752 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: ÉÔÌÀ¤Ê¥ª¥×¥·¥ç¥ó¤Ç¤¹ `--%s'\n" #: lib/getopt.c:756 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: ÉÔÌÀ¤Ê¥ª¥×¥·¥ç¥ó¤Ç¤¹ `%c%s'\n" #: lib/getopt.c:782 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: ´Ö°ã¤Ã¤¿¥ª¥×¥·¥ç¥ó¤Ç¤¹ -- %c\n" #: lib/getopt.c:785 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: ÉÔŬÀڤʥª¥×¥·¥ç¥ó¤Ç¤¹ -- %c\n" #: lib/getopt.c:815 lib/getopt.c:945 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: ¥ª¥×¥·¥ç¥ó¤Ë¤Ï°ú¿ô¤¬É¬ÍפǤ¹ -- %c\n" #: lib/getopt.c:862 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: ¥ª¥×¥·¥ç¥ó`-W %s'¤¬Û£Ëæ¤Ç¤¹\n" #: lib/getopt.c:880 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: ¥ª¥×¥·¥ç¥ó`-W %s'¤Ï°ú¿ô¤ò¼è¤ê¤Þ¤»¤ó\n" a2ps-4.14/po/fr.gmo0000644000175000017500000006123310735337366013400 0ustar mhattamhattaÞ•°œï Ø Ù%ã/ ü9r6A©|ëFh!¯EѠ丂p !‘ ³ EÒ °!OÉ! " &"0"G"Y"m"$‡"¬",Æ" ó",#A#%_#,…#-²# à#&$#($!L$n$Ž$®$v°$&'%òN%A'1`'’'¢'Â' Ë' Õ'à' è'ô' ( ((%;(a(q(„(—(§(¸(½(Æ( Î( Ù( ä(ñ( ))#')K)T)e)#m) ‘)—Ÿ*&7+^+ n+{+++-¼+ê+ÿ+¯,¿,Ï,!ã,-%-C-`-x-•-§-"½- à-. .'".J.^.y.˜.#¡.Å.*á. /$//:/$j/$/´/Ï/2å/080 X0 f0 q0 0!‰0«0Ã0â0ò01 1*1H1e1'„1¬1¾1Ô1 è1 2 %2/2I2\2_2~2–2›2¢2\Á23<3V3e3k3t3Ž3¥3 ¸3Ã3Ü3ó34(4D4a4s4…4Ÿ4µ4Ô4è45 55A5 X61c6Y•8ï:G=CJ>¤Ž?Á3B-õDQ#FØuFNGªkHˆI)ŸI&ÉIlðI]JZnK ÉKÕKÞKöK LL56LlL>ˆL.ÇL/öL!&M+HM/tM0¤M$ÕM*úM0%N)VN$€N$¥NÊNƒÌN&PO:wO%²Q1ØQ R R ?RIR^R sR }R‰R˜R §R#´R3ØR SS/SKS]SxS |S†S ŽS ™S ¤S²SÌSÛSHôS =TIT RT9\T6–TåÍU$³VØVìVW5W6NW…W¢W ¶WWXfX%}X#£X!ÇXéXYY=YQY&iY$Y"µYØY2ÚY Z &Z"GZjZ(ˆZ)±Z9ÛZ%[';[Mc[.±[;à[&\%C\:i\2¤\#×\û\ ]] .]%;]a]y]#–]º]Í]!Õ]0÷] (^$I^/n^ž^³^Î^å^ _&_._L_a_7e__¼_À_)Ç_cñ_U`t``£`¬`µ`Õ`è`a!a3a Iaja‡a#¥aÉaßaña b"b@b"Vb yb…b—b- „^‡F"—}=VK‹d¯ª\2+?@*¤ˆ¢8YOJog–ƒŽm’R6Hny]¥!;P3® šp˜ŠWAra5¡Qhz­$[)t‚DEŒ`£v'¦Cu|:œ1(B™q“©w•Si…›†/ #el>{ ~‘N%_‰ 9b 7f0 €U,Lž¨&°.<”¬kŸMTxG§Ic4jXs«Z 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 -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 = %d sides per sheet = %s page device definitions = medium = %s%s, %s page layout = %d x %d, %s borders = %s file alignment = %s interior margin = %d number lines = %s format = %s tabulation size = %d 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 = %d file command = %s library path = %A %B %d, %Y%b %d, %y%d characters per line%d lines per page%s, delegated to %s%s: illegal option -- %c %s: invalid argument for %s%c escape%s: invalid option -- %c %s: invalid separator `%s%c' for `%s' escape%s: missing `%c' for %s%c escape%s: option `%c%s' doesn't allow an argument %s: option `%s' is ambiguous %s: option `%s' requires an argument %s: option `--%s' doesn't allow an argument %s: option `-W %s' doesn't allow an argument %s: option `-W %s' is ambiguous %s: option requires an argument -- %c %s: too long argument for %s escape%s: unknown `%s' escape `%c' (%d)%s: unrecognized option `%c%s' %s: unrecognized option `--%s' 'After having performed the task, exit successfully. Detailed lists may provide additional help on specific features. Applications configured for delegationBy 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 Copyright (C) 1999 Free Software Foundation, Inc.Default PrinterDelegation `%s', from %s to %s Global: Headers: Headings: Input: Internals: Known EncodingsKnown FontsKnown MediaKnown Outputs (Printers, etc.)Known PostScript Printer DescriptionsKnown ProloguesKnown Style SheetsKnown User OptionsKnown VariablesMemory exhaustedNameOutput: Page %dPage %d/%cPage %d/%dPostScript: Pretty-printing: Printed by %sPrinted by %s from %sReport bugs to . Sheets: Table of ContentTasks: 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.). This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Try `%s --help' for more information. Unknown PrinterUnknown UserUnknown system errorValid arguments are floats f such that: %s Valid arguments are integers n such that: %s Valid arguments are: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. Written by %s. [%d lines wrapped] [%s (%s): %d pages on %d sheets] [%s (%s): %d pages on 1 sheet] [%s (%s): 1 page on 1 sheet] [%s (%s): failed. Ignored] [%s (binary): ignored] [%s (unprintable): ignored] [1 line wrapped] [No output produced] [Total: %d pages on %d sheets] %s [Total: %d 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'ambiguous argument %s for `%s'any typeautomatic style selection cancelledcannot close directory `%s'cannot compile regular expression `%s': %scannot create file `%s'cannot find file `%s'cannot find style sheet `%s': using plain stylecannot get current working directorycannot get informations on file `%s'cannot open a pipe on `%s'cannot open file `%s'cannot process `%s' which requires a2ps version %scannot rename file `%s' as `%s'caret (i.e., `^C', `M-^C' etc.)columns firstdimensionseach %d lineseach lineemacs (i.e., `C-c', `M-C-c' etc.)end of line inside a %send-of-line in string constantfont %f too bigfont size is %gptheavyhexadecimal (i.e., `\x0a' etc.)incomplete knowledge of facesinvalid argument %s for `%s'invalid argument `%s' for `%s'invalid definition for printer `%s': %sinvalid face `%s'invalid interval `%s'invalid option `%s'invalid variable identifier `%s'invalid version number `%s'landscapemissing argument for `%s'never make backupsnono command for the `%s' (%s%s)no key defined for `%s'nonenormalnumbered backups of every filenumbered backups of files already numbered, and simple of othersobsolete `%s' entry. Ignoredoctal (i.e., `\001' etc.)output commandplainportraitquestion-mark (i.e., `?')received signal %d: %srestored file `%s'rows firstsaved into the file `%s'selected automaticallysent to the default printersent to the printer `%s'sent to the standard outputsimple backups of every filespace (i.e., ` ')too many includesunexpected character `%c'unknown encoding `%s'unknown encoding `%s', ignoredunknown medium `%s'unknown user option `%s'userwrite erroryesProject-Id-Version: a2ps 4.13 Report-Msgid-Bugs-To: POT-Creation-Date: 2007-12-29 11:28+0800 PO-Revision-Date: 2002-09-16 15:52+0200 Last-Translator: Akim Demaille Language-Team: French MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8-bit Aucune --line-numbers=NB numéroter les lignes de NB en NB -C alias de --line-numbers=5 -f, --font-size=TAILLE définir la TAILLE de la police du corps de texte -L, --lines-per-page=NB changer la police pour avoir NB lignes/virtuelle -l, --chars-per-line=NB changer la police pour avoir NB colonnes/virtuelle -m, --catman formatter comme une page de manuel (alias de -L66) -T, --tabsize=NUM taille des tabulations --non-printable-format=FMT spécifier l'impression des caractères inconnus --prologue=FICHIER utiliser FICHIER.pro comme prologue PostScript --ppd[=CLÉ] sélection automatique, ou choisir le PPD CLÉ -n, --copies=NUM nombre de copies de chaque page -s, --sides=MODE imprimer en MODE « simplex » (ou « 1 »), « duplex » (ou « 2 »), ou « tumble » -S, --setpagedevice=C[:V] définition « page device » de C à V --statusdict=C[:[:]V] définition « statusdict » de C à V -k, --page-prefeed autoriser le pré-chargement de papier -K, --no-page-prefeed désactiver le pré-chargement --version afficher la version --help afficher ce message d'aide --guess afficher les langages devinés des FICHIERS --which fichiers de la bibliothèque nommés FICHIERS --glob fichiers de la bibliothèque appariés avec FICHIERS --list=defaults afficher les paramètres par défaut --list=SUJET rapport détailler sur le SUJET (delegations, encodings, features, variables, media, ppd, printers, prologues, style-sheets, user-options) -B, --no-header pas d'entêtes -b, --header[=TEXTE] entête -u, --underlay[=TEXTE] aquarelle --center-title[=TEXTE] titre des pages --left-title[=TEXTE] titres gauche et droit --right-title[=TEXTE] --left-footer[=TEXTE] pieds de pages --footer[=TEXTE] --right-footer[=TEXTE] -E, --pretty-print[=LANG] enluminer (pour le langage LANG) --highlight-level=NIVEAU niveau d'enluminure des sources NIVEAU peut-être none, normal ou heavy -g alias pour --highlight-level=heavy --strip-level=NB niveau de suppression des commentaires -M, --medium=NOM utiliser le papier de format NOM -r, --landscape impression en paysage -R, --portrait impression en portrait --columns=NB nombre de colonnes de pages virtuelles --rows=NB nombre de lignes de pages virtuelles --major=DIR remplir d'abord les (DIR=) colonnes, ou les lignes -1, -2, ..., -9 dispositions prédéfinies pour 1 .. 9 pages virtuelles -A, --file-align=MODE séparer les fichiers selon le MODE (fill, rank, page, sheet, ou un nombre) -j, --borders* imprimer des cadres autour des pages --margin=NB taille de la marge intérieure -a, --pages[=SÉLECTION] sélectionner les pages à imprimer -c, --truncate-lines* tronquer les lignes trop longues -i, --interpret* interpréter les caractères tab, bs and ff --end-of-line=TYPE spécifier les fins de lignes (r, n, rn, nr, any) -X, --encoding=NOM codage NOM -t, --title=NOM NOM du document --stdin=NOM donner un NOM de fichier à l'entrée standard --prologue=FICHIER utiliser FICHIER.pro comme prologue PostScript --print-anyway* imprimer aussi les binaires -Z, --delegate* déléguer le traitement de certains fichiers --toc[=TEXTE] produire la table des matières TEXTE -q, --quiet, --silent pas de messages -v, --verbose[=NIVEAU] régler le NIVEAU de verbosité -=, --user-option=OPTION utiliser le raccourci OPTION --debug enclencher le code de déverminage -D, --define=CLÉ[:VALEUR] effacer la variable CLÉ ou lui affecter VALEUR destination = %s contrôle de version = %s suffixe d'archivage = %s entête = %s pied de page gauche = %s pied de page = %s pied de page droit = %s titre gauche = %s titre de page = %s titre droit = %s aquarelle = %s entête PostScript = %s description de l'imprimante (PPD) = %s PPD par défaut = %s format des noms de pages = %s nombre de copies = %d nombre de faces par feuille = %s définitions page device = médium = %s%s, %s disposition des pages = %d x %d, %s cadre = %s alignement des fichiers = %s marge intérieure = %d numérotation des lignes = %s format = %s taille de la tabulation = %d caractères non imprimables = %s pré-chargement du papier = %s définitions statusdict = feuille de style = %s niveau d'enluminure = %s suppression des commentaires = %d couper les lignes = %s interpréter tab, ff et bs = %s caractère de fin de ligne = %s codage = %s titre du document = %s prologue = %s imprimer les binaires = %s déléguer = %s niveau de verbosité = %d appel de file(1) = %s accès aux bibliothèques = %A %d %B %Y%d %b %y%d caractères par ligne%d lignes par page%s, délégué à %s%s : option illégale -- %c %s : argument invalide pour la méta séquence « %s%c »%s : option invalide -- %c %s : séparateur invalide « %s%c » pour la méta séquence « %s »%s: « %c » manquant pour la méta séquence %s%c%s : l'option « %c%s » n'attend pas d'argument %s : l'option « %s » est ambigüe %s : l'option « %s » nécessite un argument %s : l'option « --%s » n'attend pas d'argument %s : l'option « -W %s » n'attend pas d'argument %s : l'option « -W %s » est ambigüe %s : l'option -- %c nécessite un argument %s : argument trop long pour la méta séquence %s%s : méta séquence « %s%c » (%d) inconnue%s : l'option « %c%s » est inconnue %s : l'option « --%s » est inconnue »Une fois la tâche accomplie, quitter avec succès. Les listes détaillées peuvent apporter de l'aide sur certaines fonctionnalités. Applications configurées pour déléguerPar défault, a2ps est réglé pour faire ce que vous espérez, alors faites-lui confiance. Pour embellir le contenu du répertoire « src » plus une table des matières et envoyer le résultat à l'imprimante « imp », $ a2ps -P imp --toc src/* Pour traiter les fichiers « bof.ps » and « tralala.html » et afficher le résultat, $ a2ps -P display bof.ps tralala.html Pour imprimer une boîte-aux-lettres en 4 minipages, $ a2ps -=mail -4 mailbox Pour imprimer en livret sur l'imprimante par défaut, qui supporte le recto-verso, $ a2ps -=book paper.dvi.gz -d Paramètres de configuration de %s %s Copyright (C) 1999 Free Software Foundation, Inc.Imprimante par défautDélégation « %s », de %s à %s Global : Marqueurs de page : Marqueurs de page : Entrée : Internes : Codages connusCodages connusMédia connusSorties connues (imprimantes, etc.)Descriptions d'Imprimantes PostScript (PPD) connuesPrologues connusFeuilles de styleRaccourcis d'options connusVariables connuesplus de mémoire disponibleNomSortie : Page %dPage %d/%cPage %d/%dPostScript : Enluminure des sources : Imprimé par %sImprimé par %s depuis %sEnvoyez vos rapports de bogues et vos commentaires à Feuilles : SommaireTâches : Les TEXTES peuvent utiliser les séquences d'échappement. Les options -1.. -9 changent plusieurs paramètres primitifs pour définir des dispositions prédéfinies avec 80 colonnes. Par conséquent l'ordre importe : `-R -f40 -2' est équivalent à `-2'. Pour modifier la disposition, utiliser `-2Rf40', ou composer des options primitives (`--columns', `--font-size' etc.). Ce programme est un logiciel libre ; voir les sources pour les conditions de reproduction. Il n'y a AUCUNE GARANTIE ; pas même la garantie implicite qu'il est DE QUALITÉ LOYALE ET MARCHANDE ou APPROPRIÉ POUR UN BUT PARTICULIER. Taper « %s --help » pour de l'aide. Imprimante inconnueUtilisateur Inconnuerreur système inconnueLes arguments valides sont les réels f tels que : %s Les arguments valides sont les entiers n tel que : %s Les arguments valides sont :Pages virtuelles : Lorsque les délégations sont activées, a2ps peut sous-traiter le traitement de certains fichiers, comme le PostScript, PDF, HTML etc., à d'autres applications. Écrit par %s. [%d lignes enroulées] [%s (%s) : %d pages sur %d feuilles] [%s (%s) : %d pages sur 1 feuille] [%s (%s) : 1 page sur 1 feuille] [%s (%s) : échec. Ignoré] [%s (binaire) : ignoré] [%s (pas imprimable) : ignoré] Une ligne enroulée [Rien n'a été produit] [Total : %d pages sur %d feuilles] %s [Total : %d pages sur 1 feuille] %s [Total : 1 page sur 1 feuille] %s «« %s » est un fichier binaire : impression annulée« %s » est un répertoire« %s » sans « %s » correspondantargument « %s » ambigu pour « %s »n'importe quel type classiquesélection automatique des styles annuléeimpossible de fermer le répertoire « %s »impossible de compiler l'expression régulière « %s » : %simpossible de créer le fichier « %s »impossible de trouver le fichier « %s »impossible de trouver la feuille de style « %s »: sélection du style standardimpossible de déterminer le répertoire courantimpossible d'obtenir les caractéristiques du fichier « %s »impossible d'ouvrir un tube sur « %s »impossible d'ouvrir le fichier « %s »impossible de traiter « %s » qui nécessite a2ps version %simpossible de renommer le fichier « %s » en « %s »caret (i.e., « ^C », « M-^C » etc.)d'abord en colonnedimensionstoutes les %d ligneschaque ligneemacs (i.e., « C-c », « M-C-c » etc.)fin de ligne dans un %sfin de ligne dans une chaînetaille de la police trop grosse: %fpolice taille %gptmaximumhexadécimal (i.e., « \x0a » etc.)connaissance des styles de caractères incomplèteargument invalide %s pour « %s »argument invalide « %s » pour « %s »définition de l'imprimante « %s » invalide : %sface invalide « %s »intervalle « %s » invalideoption invalide « %s »nom de variable « %s » invalidenuméro de version illégal « %s »paysageargument manquant pour « %s »jamais de sauvegardenonpas de commande définie pour l'imprimante « %s » (%s%s)pas de clé définie pour « %s »nulnormalsauvegarde numérotée de tous les fichierssauvegarde numérotée des fichiers déjà numérotés, et simple des autreschamp « %s » obsolète. Ignoréoctal (i.e., « \001 » etc.)commande de sortiestandardportrait« question-mark » (i.e., « ? »)signal %d reçu: %sfichier « %s » restauréd'abord en ligneenregistré dans le fichier « %s »sélection automatiqueenvoyé à l'imprimante par défautenvoyé à l'imprimante « %s »envoyé sur la sortie standardsauvegarde simple de chaque fichier« space » (i.e., ` ')trop d'inclusionscaractère « %c » inattenducodage « %s » inconnucodage « %s » inconnu, ignorémédium « %s » inconnuraccourci d'options « %s » inconnuutilisateurerreur d'écritureouia2ps-4.14/po/pt.gmo0000644000175000017500000006117410735337370013413 0ustar mhattamhattaÞ•°œï Ø Ù%ã/ ü9r6A©|ëFh!¯EѠ丂p !‘ ³ EÒ °!OÉ! " &"0"G"Y"m"$‡"¬",Æ" ó",#A#%_#,…#-²# à#&$#($!L$n$Ž$®$v°$&'%òN%A'1`'’'¢'Â' Ë' Õ'à' è'ô' ( ((%;(a(q(„(—(§(¸(½(Æ( Î( Ù( ä(ñ( ))#')K)T)e)#m) ‘)—Ÿ*&7+^+ n+{+++-¼+ê+ÿ+¯,¿,Ï,!ã,-%-C-`-x-•-§-"½- à-. .'".J.^.y.˜.#¡.Å.*á. /$//:/$j/$/´/Ï/2å/080 X0 f0 q0 0!‰0«0Ã0â0ò01 1*1H1e1'„1¬1¾1Ô1 è1 2 %2/2I2\2_2~2–2›2¢2\Á23<3V3e3k3t3Ž3¥3 ¸3Ã3Ü3ó34(4D4a4s4…4Ÿ4µ4Ô4è45 55®5 Å6;Ò6h9w;Â÷=Uº?At¡C5FrLG¸¿G*xH‡£Ix+J!¤JÆJQåJØ7KUL fLrL{L“L¨L½L(ÕLþL.M"GM(jM“M)­M(×M)N*N*GN,rN&ŸNÆNåNOˆO&O¶O ÏQ/ðQ R7RVR _R lR yRƒR—R¯RÁR0ÐR/S1SESXSxSSžS£S «S µS ÂS ÏSÜSòSTrT‹T”T ›T(¥TÎT´îU)£VÍVåVýV/W2JW}W•Wª¨WSX2eX#˜X!¼XÞXþXY%5Y/[Y‹Y$¦Y"ËY îYZ.Z@ZVZ&rZ ™Z'§Z$ÏZ1ôZ&[%F[Bl[%¯[.Õ[\#\:C\.~\­\Í\ Þ\è\ ÷\!]$]>]U]q]‰]]!°]'Ò])ú]-$^R^!e^‡^'›^Ã^à^é^_&_*_J_j_q_3x_j¬_`7`Q`b`i`q`Š` `º`Ê`ç`%a*aIa1ga™a¬aÁaÚa'øa b%7b ]bhbxb- „^‡F"—}=VK‹d¯ª\2+?@*¤ˆ¢8YOJog–ƒŽm’R6Hny]¥!;P3® šp˜ŠWAra5¡Qhz­$[)t‚DEŒ`£v'¦Cu|:œ1(B™q“©w•Si…›†/ #el>{ ~‘N%_‰ 9b 7f0 €U,Lž¨&°.<”¬kŸMTxG§Ic4jXs«Z 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 -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 = %d sides per sheet = %s page device definitions = medium = %s%s, %s page layout = %d x %d, %s borders = %s file alignment = %s interior margin = %d number lines = %s format = %s tabulation size = %d 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 = %d file command = %s library path = %A %B %d, %Y%b %d, %y%d characters per line%d lines per page%s, delegated to %s%s: illegal option -- %c %s: invalid argument for %s%c escape%s: invalid option -- %c %s: invalid separator `%s%c' for `%s' escape%s: missing `%c' for %s%c escape%s: option `%c%s' doesn't allow an argument %s: option `%s' is ambiguous %s: option `%s' requires an argument %s: option `--%s' doesn't allow an argument %s: option `-W %s' doesn't allow an argument %s: option `-W %s' is ambiguous %s: option requires an argument -- %c %s: too long argument for %s escape%s: unknown `%s' escape `%c' (%d)%s: unrecognized option `%c%s' %s: unrecognized option `--%s' 'After having performed the task, exit successfully. Detailed lists may provide additional help on specific features. Applications configured for delegationBy 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 Copyright (C) 1999 Free Software Foundation, Inc.Default PrinterDelegation `%s', from %s to %s Global: Headers: Headings: Input: Internals: Known EncodingsKnown FontsKnown MediaKnown Outputs (Printers, etc.)Known PostScript Printer DescriptionsKnown ProloguesKnown Style SheetsKnown User OptionsKnown VariablesMemory exhaustedNameOutput: Page %dPage %d/%cPage %d/%dPostScript: Pretty-printing: Printed by %sPrinted by %s from %sReport bugs to . Sheets: Table of ContentTasks: 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.). This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Try `%s --help' for more information. Unknown PrinterUnknown UserUnknown system errorValid arguments are floats f such that: %s Valid arguments are integers n such that: %s Valid arguments are: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. Written by %s. [%d lines wrapped] [%s (%s): %d pages on %d sheets] [%s (%s): %d pages on 1 sheet] [%s (%s): 1 page on 1 sheet] [%s (%s): failed. Ignored] [%s (binary): ignored] [%s (unprintable): ignored] [1 line wrapped] [No output produced] [Total: %d pages on %d sheets] %s [Total: %d 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'ambiguous argument %s for `%s'any typeautomatic style selection cancelledcannot close directory `%s'cannot compile regular expression `%s': %scannot create file `%s'cannot find file `%s'cannot find style sheet `%s': using plain stylecannot get current working directorycannot get informations on file `%s'cannot open a pipe on `%s'cannot open file `%s'cannot process `%s' which requires a2ps version %scannot rename file `%s' as `%s'caret (i.e., `^C', `M-^C' etc.)columns firstdimensionseach %d lineseach lineemacs (i.e., `C-c', `M-C-c' etc.)end of line inside a %send-of-line in string constantfont %f too bigfont size is %gptheavyhexadecimal (i.e., `\x0a' etc.)incomplete knowledge of facesinvalid argument %s for `%s'invalid argument `%s' for `%s'invalid definition for printer `%s': %sinvalid face `%s'invalid interval `%s'invalid option `%s'invalid variable identifier `%s'invalid version number `%s'landscapemissing argument for `%s'never make backupsnono command for the `%s' (%s%s)no key defined for `%s'nonenormalnumbered backups of every filenumbered backups of files already numbered, and simple of othersobsolete `%s' entry. Ignoredoctal (i.e., `\001' etc.)output commandplainportraitquestion-mark (i.e., `?')received signal %d: %srestored file `%s'rows firstsaved into the file `%s'selected automaticallysent to the default printersent to the printer `%s'sent to the standard outputsimple backups of every filespace (i.e., ` ')too many includesunexpected character `%c'unknown encoding `%s'unknown encoding `%s', ignoredunknown medium `%s'unknown user option `%s'userwrite erroryesProject-Id-Version: a2ps 4.12 Report-Msgid-Bugs-To: POT-Creation-Date: 2007-12-29 11:28+0800 PO-Revision-Date: 2000-01-14 10:48+01:00 Last-Translator: Paulo Matos Language-Team: Portuguese MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8-bit Translator: Paulo Matos Translator: Pedro Morais Nenhuma. --line-numbers=NUM precede cada NUM linhas com o seu número -C atalho para --line-numbers=5 -f, --font-size=TAMANHO utiliza TAMANHO de fonte (real) para o texto -L, --lines-per-page=NUM número de linhas que são impressas por página -l, --chars-per-line=NUM número de colunas que são impressas por página -m, --catman processa o ficheiro como um man (igual a -L66) -T, --tabsize=NUM colocar tamanho da tabulação a NUM --non-printable-format=FMT especifica como caracteres não imprimíveis o são --prologue=FICHEIRO inclui FICHEIRO.pro como um prólogo PostScript --ppd[=CHAVE] selecção automática de PPD ou define-a como CHAVE -n, --copies=NUM imprimir NUM cópias de cada página -s, --sides=MODO configura o MODO duplex (`1' ou `simplex', `2' ou `duplex', `tumble') -S, --setpagedevice=K[:V] passa uma definição de disposito para a saída --statusdict=K[:[:]V] passa uma definição statusdict para a saída -k, --page-prefeed activar alimentação de página -K, --no-page-prefeed desactivar alimentação de página --version mostra a versão --help mostra esta ajuda --guess mostra tipos adivinhados dos FICHEIROS --which mostra o caminho completo dos ficheiros de biblioteca chamados FICHEIROS --glob mostra o caminho completo dos ficheiros de biblioteca conforme FICHEIROS --list=defaults mostra as definições e parâmetros por omissão --list=TÓPICO mostra lista detalhada sobre o TÓPICO (`delegations', `encodings', `features', `variables', `media', `ppd', `printers', `prologues', `style-sheets', `user-options') -B, --no-header sem cabeçalhos de página -b, --header[=TEXTO] define o cabeçalho da página -u, --underlay[=TEXTO] imprime TEXTO por baixo de cada página --center-title[=TEXTO] define título da página como TEXTO --left-title[=TEXTO] define título esquerdo e direito como TEXTO --right-title[=TEXTO] --left-footer[=TEXTO] define rodapé das falhas como TEXTO --footer[=TEXTO] --right-footer[=TEXTO] -E, --pretty-print[=LING] activa pretty-printing (define o estilo como LING) --highlight-level=LEVEL define o NÍVEL de formatação da impressão NÍVEL pode ser none, normal ou heavy -g atalho para --highlight-level=heavy --strip-level=NUM nível de corte de comentários -M, --medium=NOME utiliza medium de saída NOME -r, --landscape imprime em modo paisagem -R, --portrait imprime em modo retrato --columns=NUM número de colunas por folha --rows=NUM número de linhas por folha --major=DIRECÇÃO enche primeiro (DIRECÇÃO=) linhas, ou colunas -1, -2, ..., -9 layouts predefinidos para 1.. 9 páginas virtuais -A, --file-align=MODO alinha ficheiro separados pelo MODO (fill, rank page, sheet, ou um número) -j, --borders* imprime margens à volta das colunas --margin[=NUM] define uma margem interior de tamanho NUM -a, --pages[=PÁGINAS] selecciona páginas a imprimir -c, --truncate-lines* corta linhas longas -i, --interpret* interpreta caracteres tab, bs e ff --end-of-line=TIPO especifica o char de eol (TIPO: r, n, nr, rn, any) -X, --encoding=NOME utiliza a codificação de entrada NOME -t, --title=NOME define o nome do trabalho --stdin=NOME define o nome do ficheiro de entrada stdin --print-anyway* força impressão de binários -Z, --delegate* delega ficheiros para outra aplicação --toc=[TEXTO] gera uma tabela de conteúdos -q, --quiet, --silent é realmente silencioso -v, --verbose[=NÍVEL] liga mensagens, ou põe no NÍVEL -=, --user-option=OPÇÃO usa o atalho defindo pelo utilizador OPÇÃO --debug liga funções de debug -D, --define=CHAVE[:VALOR] limpa a variavel CHAVE ou associa-lhe VALOR destino = %s controlo de versão = %s sufixo das cópias de segurança = %s cabeçalho = %s rodapé esquerdo = %s rodapé = %s rodapé direito = %s título esquerdo = %s título central = %s título direito = %s por baixo = %s número mágico = %s descrição da impressora (PPD) = %s PPD por omissão = %s formato da etiqueta de página = %s número de cópias = %d lados por folha = %s definições do dispositivo de página = meio = %s%s, %s layout da página = %d x %d, %s rebordos = %s modo compacto = %s margem interior = %d números de linha = %s formato = %s tamanho de tabulação = %d formato não imprimível = %s prefeed da página = %s definições do statusdict = folha de estilo = %s nível de formatação = %s nível de corte = %d truncar linhas = %s interpretar = %s fim de linha = %s codificação = %s título do documento = %s prólogo = %s imprimir sempre = %s delegar = %s nível de mensagens = %d comando de ficheiro = %s caminho da biblioteca = %A %d %B %Y%d %b %y%d caracteres por linha%d linhas por página%s, delegado para %s%s: opção ilegal -- %c %s: argumentos inválido para escape %s%c%s: opção inválida -- %c %s: separador inválido `%s%c' para escape `%s'%s: `%c' em falta para escape %s%c%s: opção `%c%s' não permite argumentos %s: opção `%s' é ambígua %s: opção `%s' necessita de um argumento %s: opção `--%s' não permite argumentos %s: opção `-W %s' não permite argumentos %s: opção `-W %s' é ambigua %s: opção necessita de um argumento -- %c %s: argumento demasiado longo para escape %s%s: escape `%s' desconhecido `%c' (%d)%s: opção desconhecida `%c%s' %s: opção desconhecida `--%s' 'Após ter realizado a tarefa, termina com sucesso. Listas detalhadas podem forneçer informação adicional em funcionalidades específicas. Aplicações configuradas para delegaçãoPor omissão o a2ps já está configurado com funcionalidades interessantes. Para uma impressão melhorada do conteúdo da directoria `src' e um índice, enviando o resultado para a impressora `lw', a2ps -P lw --toc src/* Para processar os ficheiros `sample.ps' e `sample.html' e visulizar, a2ps -P display sample.ps sample.html Para processar uma mailbox com 4 páginas/folha em modo retrato, a2ps -=mail -4 mailbox Para imprimir como brochura na impressora por omissão, que suporta Duplex, a2ps -=book paper.dvi.gz -d Status de configuração do %s %s Copyright © 1999 Free Software Foundation, Inc.Impressora por OmissãoDelegação `%s', de %s para %s Global: Cabeçalhos: Cabeçalhos: Entrada: Detalhes internos: Codificações conhecidasFontes ConhecidasMeio conhecidoDestinos de saída conhecidos (impressoras, etc.)Descrições de Impressoras PostScript conhecidasPrólogos conhecidosEstilos conhecidosOpções de utilizador conhecidasVariáveis ConhecidasFalta de memóriaNomeSaída: Página %dPágina %d/%cPágina %d/%dPostScript: Impressão melhorada: Impresso por %sImpresso por %s de %sEnvie informações sobre erros para Envie problemas de tradução para Folhas: ÍndiceTarefas: O TEXTo pode usar caracteres de escape. As opções -1.. -9 afectam vários parâmetros primitivos usados na pré-definição de layouts com 80 colunas. Portanto a ordem é relevante: `-R -f40 -2' é equivalente a `-2'. Para modificar o layout, use `-2Rf40', ou faça composição de opções primitivas (`--columns', `--font-size' etc.). Este programa é «free software»; veja o código fonte para saber em que condições o pode copiar. SEM GARANTIA; nem mesmo de COMERCIALIZAÇÃO ou de UTILIDADE PARA QUALQUER PROPÓSITO. Tente `%s --help' para mais informações. Impressora DesconhecidaUtilizador DesconhecidoErro de sistema desconhecidoArgumentos válidos são reais f de modo que: %s Argumentos válidos são inteiros n de modo que: %s Argumentos válidos são:Páginas virtuais: Quando as delegações estão activas, o a2ps pode usar outras aplicções para processar os ficheiros que não devam ser impressos como texto, e.g., HTML Postscript, PDF etc. Impresso por %s. [%d linhas quebradas (excedeu o máx. caracteres)] [%s (%s): %d páginas em %d folhas] [%s (%s): %d páginas numa folha] [%s (%s): 1 página numa folha] [%s (%s): falhou. Ignorado] [%s (binário): ignorado] [%s (impossível imprimir): ignorado] [1 linha quebrada (excedeu o máx. caracteres)] [Nenhuma saída produzida] [Total: %d páginas em %d folhas] %s [Total: %d páginas numa folha] %s [Total: 1 página numa folha] %s ``%s' é um ficheiro binário, impressão abortada`%s' é uma directoria`%s' sem ocorrência de `%s'argumento %s ambíguo para a opção `%s'qualquer tiposelecção automática de estilo canceladanão consigo fechar o directório `%s'não consigo compilar a expressão regular `%s': %snão consigo criar ficheiro `%s'não consigo encontrar o ficheiro `%s'não consigo achar a folha de estilo `%s': a utilizar estilo normalnão consigo obter o directório actualnão consigo obter informações do ficheiro `%s'não consigo abrir pipe em `%s'não consigo abrir ficheiro `%s'Não consigo processar `%s' que necessita do a2ps versão %snão consigo renomear o ficheiro `%s' como `%s'caret (i.e., `^C', `M-^C' etc.)colunas primeirodimensõescada %d linhascada linhaemacs (i.e., `C-c', `M-C-c' etc.)fim de linha dentro de %sfim de linha em stringfonte %f é demasiado grandetamanho de fonte é %gptpesadohexadecimal (i.e., `\x0a' etc.)conhecimento incompleto das facesargumento %s inválido para a opção `%s'argumento inválido `%s' para a opção `%s'definição inválida para a impressora `%s': %sface `%s' inválidaintervalo de inteiros ilegal `%s'opção inválida `%s'identificador de variável inválido `%s'número de versão ilegal `%s'paisagemargumento em falta para `%s'nunca fazer cópias de segurançanãonenhum comando para `%s' (%s%s)não há chave definida para `%s'nenhumnormalcópias de segurança numeradas de todos os ficheiroscópias de segurança numeradas dos ficheiros já numerados, e simples dos outrosentrada `%s' obsoleta. Ignoradaoctal (i.e., `\001' etc.)comando de saídanormalretratointerrogação (i.e., `?')recebi o sinal %d: %srestaurei o ficheiro `%s'linhas primeirogravado para o ficheiro `%s'seleccionada automáticamenteenviado para a impressora por omissãoenviado para a impressora `%s'enviar para o standard outputcópias de segurança simples de todos os ficheirosespaço (i.e., ` ')demasiadas inclusõescaracter `%c' inesperadocodificação `%s' desconhecidacodificação `%s' desconhecida, ignoradameio desconhecido `%s'opção do utilizador `%s' desconhecidautilizadorerro de escritasima2ps-4.14/po/Rules-quot0000644000175000017500000000323110735337263014256 0ustar mhattamhatta# Special Makefile rules for English message catalogs with quotation marks. 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-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"; 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) -i $(DOMAIN).pot --no-translator -l $$ll -o - 2>/dev/null | sed -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | $(MSGFILTER) sed -f `echo $$lang | sed -e 's/.*@//'`.sed 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.14/GNUmakefile0000644000175000017500000000175307642243676013725 0ustar mhattamhatta# Having a separate GNUmakefile lets me `include' the dynamically # generated rules created via Makefile.maint as well as Makefile.maint itself. # 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. # Systems where /bin/sh is not the default shell need this. The $(shell) # command below won't work with e.g. stock DOS/Windows shells. SHELL = /bin/sh have-Makefile := $(shell test -f Makefile && echo yes) # If the user runs GNU make but has not yet run ./configure, # give them a diagnostic. ifeq ($(have-Makefile),yes) include Makefile include $(srcdir)/Makefile.maint else all: @echo There seems to be no Makefile in this directory. @echo "You must run ./configure before running \`make'." @exit 1 endif # Tell version 3.79 and up of GNU make to not build goals in this # directory in parallel. This is necessary in case someone tries to # build multiple targets on one command line. .NOTPARALLEL: a2ps-4.14/THANKS0000644000175000017500000000604410735331014012541 0ustar mhattamhattaMany 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.14/FAQ0000644000175000017500000000102510735337376012173 0ustar mhattamhatta +======================================================================+ | | | 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.14/man/0000755000175000017500000000000010735337376012416 5ustar mhattamhattaa2ps-4.14/man/help2man0000755000175000017500000002633510735323564014055 0ustar mhattamhatta#!/sw/tools/bin/perl -w # Generate a short man page from --help and --version output. # Copyright © 1997, 98, 99 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Written by Brendan O'Dea # Available from ftp://ftp.gnu.org/gnu/help2man/ use 5.004; use strict; use Getopt::Long; use Text::Tabs qw(expand); use POSIX qw(strftime setlocale LC_TIME); my $this_program = 'help2man'; my $this_version = '1.019'; my $version_info = < EOT my $help_info = < \$opt_name, 's|section=s' => \$section, 'i|include=s' => sub { push @opt_include, [ pop, 1 ] }, 'I|opt-include=s' => sub { push @opt_include, [ pop, 0 ] }, 'o|output=s' => \$opt_output, 'N|no-info' => \$opt_no_info, help => sub { print $help_info; exit }, version => sub { print $version_info; exit }, ) or die $help_info; die $help_info unless @ARGV == 1; my %include = (); my %append = (); my @include = (); # retain order given in include file # Provide replacement `quote-regex' operator for pre-5.005. BEGIN { eval q(sub qr { '' =~ $_[0]; $_[0] }) if $] < 5.005 } # Process include file (if given). Format is: # # [section name] # verbatim text # # or # # /pattern/ # verbatim text # for (@opt_include) { my ($inc, $required) = @$_; next unless -f $inc or $required; die "$this_program: can't open `$inc' ($!)\n" unless open INC, $inc; my $key; my $hash = \%include; while () { # [section] if (/^\[([^]]+)\]/) { $key = uc $1; $key =~ s/^\s+//; $key =~ s/\s+$//; $hash = \%include; push @include, $key unless $include{$key}; next; } # /pattern/ if (m!^/(.*)/([ims]*)!) { my $pat = $2 ? "(?$2)$1" : $1; # Check pattern. eval { $key = qr($pat) }; if ($@) { $@ =~ s/ at .*? line \d.*//; die "$inc:$.:$@"; } $hash = \%append; next; } # Silently ignore anything before the first # section--allows for comments and revision info. next unless $key; $hash->{$key} ||= ''; $hash->{$key} .= $_; } close INC; die "$this_program: no valid information found in `$inc'\n" unless $key; } # Compress trailing blank lines. for my $hash (\(%include, %append)) { for (keys %$hash) { $hash->{$_} =~ s/\n+$/\n/ } } # Turn off localisation of executable's ouput. @ENV{qw(LANGUAGE LANG LC_ALL)} = ('C') x 3; # Turn off localisation of date (for strftime). setlocale LC_TIME, 'C'; # Grab help and version info from executable. my ($help_text, $version_text) = map { join '', map { s/ +$//; expand $_ } `$ARGV[0] --$_ 2>/dev/null` or die "$this_program: can't get `--$_' info from $ARGV[0]\n" } qw(help version); my $date = strftime "%B %Y", localtime; (my $program = $ARGV[0]) =~ s!.*/!!; my $package = $program; my $version; if ($opt_output) { unlink $opt_output or die "$this_program: can't unlink $opt_output ($!)\n" if -e $opt_output; open STDOUT, ">$opt_output" or die "$this_program: can't create $opt_output ($!)\n"; } # The first line of the --version information is assumed to be in one # of the following formats: # # # # {GNU,Free} # ({GNU,Free} ) # - {GNU,Free} # # and seperated from any copyright/author details by a blank line. ($_, $version_text) = split /\n+/, $version_text, 2; if (/^(\S+) +\(((?:GNU|Free) +[^)]+)\) +(.*)/ or /^(\S+) +- *((?:GNU|Free) +\S+) +(.*)/) { $program = $1; $package = $2; $version = $3; } elsif (/^((?:GNU|Free) +)?(\S+) +(.*)/) { $program = $2; $package = $1 ? "$1$2" : $2; $version = $3; } else { $version = $_; } $program =~ s!.*/!!; # No info for `info' itself. $opt_no_info = 1 if $program eq 'info'; # --name overrides --include contents. $include{NAME} = "$program \\- $opt_name\n" if $opt_name; # Default (useless) NAME paragraph. $include{NAME} ||= "$program \\- manual page for $program $version\n"; # Man pages traditionally have the page title in caps. my $PROGRAM = uc $program; # Extract usage clause(s) [if any] for SYNOPSIS. if ($help_text =~ s/^Usage:( +(\S+))(.*)((?:\n(?: {6}\1| *or: +\S).*)*)//m) { my @syn = $2 . $3; if ($_ = $4) { s/^\n//; for (split /\n/) { s/^ *(or: +)?//; push @syn, $_ } } my $synopsis = ''; for (@syn) { $synopsis .= ".br\n" if $synopsis; s/(\S+) *//; $synopsis .= ".B $1\n"; s/\s+$//; s/(([][]|\.\.+)+)/\\fR$1\\fI/g; s/^/\\fI/ unless s/^\\fR//; $_ .= '\fR'; s/(\\fI)( *)/$2$1/g; s/\\fI\\fR//g; s/^\\fR//; s/\\fI$//; s/^\./\\&./; $synopsis .= "$_\n"; } $include{SYNOPSIS} ||= $synopsis; } # Process text, initial section is DESCRIPTION. my $sect = 'DESCRIPTION'; $_ = "$help_text\n\n$version_text"; # Normalise paragraph breaks. s/^\n+//; s/\n*$/\n/; s/\n\n+/\n\n/g; # Temporarily exchange leading dots and backslashes for tokens. s/^\./\x80/mg; s/\\/\x81/g; # Start a new paragraph (if required) for these. s/([^\n])\n(Report +bugs|Email +bug +reports +to|Written +by)/$1\n\n$2/g; sub convert_option; while (length) { # Convert some standard paragraph names. if (s/^(Options|Examples): *\n//) { $sect = uc $1; next; } # Copyright section if (/^Copyright +[(\xa9]/) { $sect = 'COPYRIGHT'; $include{$sect} ||= ''; $include{$sect} .= ".PP\n" if $include{$sect}; my $copy; ($copy, $_) = split /\n\n/, $_, 2; for ($copy) { # Add back newline s/\n*$/\n/; # Convert iso9959-1 copyright symbol or (c) to nroff # character. s/^Copyright +(?:\xa9|\([Cc]\))/Copyright \\(co/mg; # Insert line breaks before additional copyright messages # and the disclaimer. s/(.)\n(Copyright |This +is +free +software)/$1\n.br\n$2/g; # Join hyphenated lines. s/([A-Za-z])-\n */$1/g; } $include{$sect} .= $copy; $_ ||= ''; next; } # Catch bug report text. if (/^(Report +bugs|Email +bug +reports +to) /) { $sect = 'REPORTING BUGS'; } # Author section. elsif (/^Written +by/) { $sect = 'AUTHOR'; } # Examples, indicated by an indented leading $, % or > are # rendered in a constant width font. if (/^( +)([\$\%>] )\S/) { my $indent = $1; my $prefix = $2; my $break = '.IP'; $include{$sect} ||= ''; while (s/^$indent\Q$prefix\E(\S.*)\n*//) { $include{$sect} .= "$break\n\\f(CW$prefix$1\\fR\n"; $break = '.br'; } next; } my $matched = ''; $include{$sect} ||= ''; # Sub-sections have a trailing colon and the second line indented. if (s/^(\S.*:) *\n / /) { $matched .= $& if %append; $include{$sect} .= qq(.SS "$1"\n); } my $indent = 0; my $content = ''; # Option with description. if (s/^( {1,10}([+-]\S.*?))(?:( +)|\n( {20,}))(\S.*)\n//) { $matched .= $& if %append; $indent = length ($4 || "$1$3"); $content = ".TP\n\x82$2\n\x82$5\n"; unless ($4) { # Indent may be different on second line. $indent = length $& if /^ {20,}/; } } # Option without description. elsif (s/^ {1,10}([+-]\S.*)\n//) { $matched .= $& if %append; $content = ".HP\n\x82$1\n"; $indent = 80; # not continued } # Indented paragraph with tag. elsif (s/^( +(\S.*?) +)(\S.*)\n//) { $matched .= $& if %append; $indent = length $1; $content = ".TP\n\x82$2\n\x82$3\n"; } # Indented paragraph. elsif (s/^( +)(\S.*)\n//) { $matched .= $& if %append; $indent = length $1; $content = ".IP\n\x82$2\n"; } # Left justified paragraph. else { s/(.*)\n//; $matched .= $& if %append; $content = ".PP\n" if $include{$sect}; $content .= "$1\n"; } # Append continuations. while (s/^ {$indent}(\S.*)\n//) { $matched .= $& if %append; $content .= "\x82$1\n" } # Move to next paragraph. s/^\n+//; for ($content) { # Leading dot protection. s/\x82\./\x80/g; s/\x82//g; # Convert options. s/(^| )(-[][\w=-]+)/$1 . convert_option $2/mge; } # Check if matched paragraph contains /pat/. if (%append) { for my $pat (keys %append) { if ($matched =~ $pat) { $content .= ".PP\n" unless $append{$pat} =~ /^\./; $content .= $append{$pat}; } } } $include{$sect} .= $content; } # Refer to the real documentation. unless ($opt_no_info) { $sect = 'SEE ALSO'; $include{$sect} ||= ''; $include{$sect} .= ".PP\n" if $include{$sect}; $include{$sect} .= < .SH COPYRIGHT Copyright \(co 1998-2000 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), .BR psset (1), .BR texi2dvi4a2ps (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.14/man/Makefile.am0000644000175000017500000000107007440740402014433 0ustar mhattamhatta## Process this file with automake to produce Makefile.in -*-Makefile-*- man_MANS = a2ps.1 card.1 fixps.1 pdiff.1 psmandup.1 psset.1 texi2dvi4a2ps.1 man_aux = $(man_MANS:.1=.x) irregular_men = a2ps.1 texi2dvi4a2ps.1 a2ps.1 : $(top_srcdir)/src/main.c texi2dvi4a2ps.1: $(top_srcdir)/contrib/texi2dvi4a2ps EXTRA_DIST = $(man_MANS) $(HELP2MAN) $(man_aux) \ Makefile.maint GNUmakefile common.x PERL = @PERL@ HELP2MAN = help2man MAINTAINERCLEANFILES = $(man_MANS) # For additional rules usually of interest only to the maintainer, # see GNUmakefile and Makefile.maint. a2ps-4.14/man/psset.10000444000175000017500000000443110735337376013636 0ustar mhattamhatta.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.019. .TH PSSET "1" "December 2007" "psset 1.3 (GNU a2ps 4.14)" FSF .SH NAME psset \- insert page device request in PostScript files .SH SYNOPSIS .B psset \fIFILE\fR .SH DESCRIPTION ." Add any additional description here .PP Produce a version of the PostScript FILE with a protected call to the PostScript operator `setpagedevice'. Typical use is making FILE print duplex, or on the manual tray etc. .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=\fIFILE\fR save result in FILE. If FILE is `-', send to stdout .TP \fB\-n\fR, \fB\-\-no\-fix\fR don't run `fixps' to fix PS problems in FILE .TP \fB\-S\fR, \fB\-\-setpagedevice\fR=\fIKEY[\fR:VALUE] pass a page device definition to output. Multiple values accumulate .TP \fB\-a\fR, \fB\-\-at\fR=\fIPAGE\fR insert the page device definitions at PAGE. Default is PAGE=0, standing for the Document's Setup section .SS "Shortcuts:" .TP \fB\-m\fR, \fB\-\-manualfeed\fR alias for \fB\-SManualFeed\fR:true .TP \fB\-s\fR, \fB\-\-simplex\fR alias for \fB\-SDuplex\fR:false .TP \fB\-d\fR, \fB\-\-duplex\fR alias for \fB\-SDuplex\fR:true \fB\-STumble\fR:false corresponds to Duplex, binding along the long edge .TP \fB\-t\fR, \fB\-\-tumble\fR alias for \fB\-SDuplex\fR:true \fB\-STumble\fR:true corresponds to Duplex, binding along the short edge .PP Produced output is meant for PS level 2 printers. .PP News, updates and documentation: visit http://www.inf.enst.fr/~demaille/a2ps/ .SH AUTHOR Written by Akim Demaille. .SH "REPORTING BUGS" Report bugs to .SH COPYRIGHT Copyright \(co 1998-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), .BR psset (1), .BR texi2dvi4a2ps (1). .PP The full documentation for .B psset is maintained as a Texinfo manual. If the .B info and .B psset programs are properly installed at your site, the command .IP .B info psset .PP should give you access to the complete manual. a2ps-4.14/man/psmandup.10000444000175000017500000000424010735337376014325 0ustar mhattamhatta.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.019. .TH PSMANDUP "1" "December 2007" "psmandup 2.1 (GNU a2ps 4.14)" FSF .SH NAME psmandup \- print duplex on non duplex printers .SH SYNOPSIS .B psmandup \fIFILE\fR .SH DESCRIPTION ." Add any additional description here .PP Tries to produce a version of the PostScript FILE to print in manual Duplex. .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=\fIFILE\fR save result in FILE. If FILE is `-', send to stdout .TP \fB\-n\fR, \fB\-\-no\-fix\fR don't call fixps to fix PS problems in FILE .TP \fB\-f\fR, \fB\-\-front\fR output only the front pages (recto) on the regular tray .TP \fB\-b\fR, \fB\-\-back\fR output only the back pages (verso) on the manual feed tray .PP 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. .PP 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 \fB\-b\fR to send only the missing part. .PP Environment variables FIXPS, PSSELECT and PSSET, if defined, are used to find the tools. .PP News, updates and documentation: http://www.inf.enst.fr/~demaille/a2ps/ .SH AUTHOR Written by Akim Demaille. .SH "REPORTING BUGS" Report bugs to .SH COPYRIGHT Copyright \(co 1998-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), .BR psset (1), .BR texi2dvi4a2ps (1). .PP The full documentation for .B psmandup is maintained as a Texinfo manual. If the .B info and .B psmandup programs are properly installed at your site, the command .IP .B info psmandup .PP should give you access to the complete manual. a2ps-4.14/man/Makefile.in0000644000175000017500000003261310735337307014462 0ustar mhattamhatta# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 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@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = man DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/a2_psutils.m4 \ $(top_srcdir)/m4/atexit.m4 $(top_srcdir)/m4/file.m4 \ $(top_srcdir)/m4/fp_echo.m4 $(top_srcdir)/m4/fullpath.m4 \ $(top_srcdir)/m4/gccwarn.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gperf-check.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \ $(top_srcdir)/m4/lex.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/lpr.m4 \ $(top_srcdir)/m4/m4.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \ $(top_srcdir)/m4/perl.m4 $(top_srcdir)/m4/prereq.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/protos.m4 \ $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/rename.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/strcasecmp.m4 \ $(top_srcdir)/m4/strftim.m4 $(top_srcdir)/m4/termios.m4 \ $(top_srcdir)/m4/tterm.m4 $(top_srcdir)/m4/uintmax_t.m4 \ $(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/winsz.m4 \ $(top_srcdir)/m4/xstrtoumax.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/auxdir/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = man1dir = $(mandir)/man1 am__installdirs = "$(DESTDIR)$(man1dir)" NROFF = nroff MANS = $(man_MANS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ COM_DISPLAY = @COM_DISPLAY@ COM_LATEX = @COM_LATEX@ COM_PS2PDF = @COM_PS2PDF@ COM_PSUTILS = @COM_PSUTILS@ COM_TEXI = @COM_TEXI@ COM_acroread = @COM_acroread@ COM_acroread4 = @COM_acroread4@ COM_bzip = @COM_bzip@ COM_bzip2 = @COM_bzip2@ COM_convert = @COM_convert@ COM_distill = @COM_distill@ 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_netscape = @COM_netscape@ COM_pdf2ps = @COM_pdf2ps@ COM_ps2pdf = @COM_ps2pdf@ COM_psnup = @COM_psnup@ COM_psselect = @COM_psselect@ COM_tex = @COM_tex@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ ENCODING = @ENCODING@ EXEEXT = @EXEEXT@ EXTENSIONS_FALSE = @EXTENSIONS_FALSE@ EXTENSIONS_TRUE = @EXTENSIONS_TRUE@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ F77 = @F77@ FFLAGS = @FFLAGS@ FILE_LINK = @FILE_LINK@ GMSGFMT = @GMSGFMT@ GNU_PACKAGE = @GNU_PACKAGE@ GPERF = @GPERF@ GREP = @GREP@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBVERSION = @LIBVERSION@ LN_S = @LN_S@ LPR = @LPR@ LPR_QUEUE_OPTION = @LPR_QUEUE_OPTION@ LTALLOCA = @LTALLOCA@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ M4 = @M4@ MAKEINFO = @MAKEINFO@ MEDIUM = @MEDIUM@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ POSUB = @POSUB@ PSFONT_PATH = @PSFONT_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ U = @U@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ YACC = @YACC@ YFLAGS = @YFLAGS@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ acroread = @acroread@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ 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@ bzip = @bzip@ bzip2 = @bzip2@ convert = @convert@ datadir = @datadir@ datarootdir = @datarootdir@ distill = @distill@ docdir = @docdir@ dvidir = @dvidir@ dvips = @dvips@ exec_prefix = @exec_prefix@ file_prog = @file_prog@ ghostview = @ghostview@ 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@ netscape = @netscape@ oldincludedir = @oldincludedir@ pdf2ps = @pdf2ps@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ ps2pdf = @ps2pdf@ psdir = @psdir@ psnup = @psnup@ psselect = @psselect@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ tex = @tex@ man_MANS = a2ps.1 card.1 fixps.1 pdiff.1 psmandup.1 psset.1 texi2dvi4a2ps.1 man_aux = $(man_MANS:.1=.x) irregular_men = a2ps.1 texi2dvi4a2ps.1 EXTRA_DIST = $(man_MANS) $(HELP2MAN) $(man_aux) \ Makefile.maint GNUmakefile common.x HELP2MAN = help2man MAINTAINERCLEANFILES = $(man_MANS) 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 \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu man/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu man/Makefile .PRECIOUS: 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__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ 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 mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: install-man1: $(man1_MANS) $(man_MANS) @$(NORMAL_INSTALL) test -z "$(man1dir)" || $(mkdir_p) "$(DESTDIR)$(man1dir)" @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \ l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ for i in $$l2; do \ case "$$i" in \ *.1*) list="$$list $$i" ;; \ esac; \ done; \ for i in $$list; do \ if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \ else file=$$i; fi; \ ext=`echo $$i | sed -e 's/^.*\\.//'`; \ case "$$ext" in \ 1*) ;; \ *) ext='1' ;; \ esac; \ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ inst=`echo $$inst | sed -e 's/^.*\///'`; \ inst=`echo $$inst | sed '$(transform)'`.$$ext; \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \ done uninstall-man1: @$(NORMAL_UNINSTALL) @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \ l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ for i in $$l2; do \ case "$$i" in \ *.1*) list="$$list $$i" ;; \ esac; \ done; \ for i in $$list; do \ ext=`echo $$i | sed -e 's/^.*\\.//'`; \ case "$$ext" in \ 1*) ;; \ *) ext='1' ;; \ esac; \ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ inst=`echo $$inst | sed -e 's/^.*\///'`; \ inst=`echo $$inst | sed '$(transform)'`.$$ext; \ echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \ rm -f "$(DESTDIR)$(man1dir)/$$inst"; \ done tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(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: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -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 distclean-libtool dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-man install-exec-am: install-info: install-info-am install-man: install-man1 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 mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am uninstall-man uninstall-man: uninstall-man1 .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-exec install-exec-am \ install-info install-info-am install-man install-man1 \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ uninstall uninstall-am uninstall-info-am uninstall-man \ uninstall-man1 a2ps.1 : $(top_srcdir)/src/main.c texi2dvi4a2ps.1: $(top_srcdir)/contrib/texi2dvi4a2ps # For additional rules usually of interest only to the maintainer, # see GNUmakefile and Makefile.maint. # 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.14/man/psset.x0000644000175000017500000000016510615607430013733 0ustar mhattamhatta[NAME] psset \- insert page device request in PostScript files [DESCRIPTION] ." Add any additional description here a2ps-4.14/man/common.x0000644000175000017500000000015307440740402014061 0ustar mhattamhatta[see also] .BR a2ps (1), .BR card (1), .BR fixps (1), .BR pdiff (1), .BR psset (1), .BR texi2dvi4a2ps (1). a2ps-4.14/man/pdiff.x0000644000175000017500000000016007440740402013657 0ustar mhattamhatta[NAME] pdiff \- produce a pretty comparison between files [DESCRIPTION] ." Add any additional description here a2ps-4.14/man/GNUmakefile0000644000175000017500000000136407440740402014457 0ustar mhattamhatta# Having a separate GNUmakefile lets me use features of GNU make # to generate the man pages. # 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. # Systems where /bin/sh is not the default shell need this. The $(shell) # command below won't work with e.g. stock DOS/Windows shells. SHELL = /bin/sh have-Makefile := $(shell test -f Makefile && echo yes) # If the user runs GNU make but has not yet run ./configure, # give them a diagnostic. ifeq ($(have-Makefile),yes) include Makefile include $(srcdir)/Makefile.maint else all: @echo There seems to be no Makefile in this directory. @echo "You must run ./configure before running \`make'." @exit 1 endif a2ps-4.14/man/pdiff.10000444000175000017500000000312610735337376013570 0ustar mhattamhatta.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.019. .TH PDIFF "1" "December 2007" "pdiff 0.4 (GNU a2ps 4.14)" FSF .SH NAME pdiff \- produce a pretty comparison between files .SH SYNOPSIS .B pdiff \fIFILE1 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=\fIFILE\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: http://www.inf.enst.fr/~demaille/a2ps/. .SH AUTHOR Written by Akim Demaille. .SH "REPORTING BUGS" Report bugs to . .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), .BR psset (1), .BR texi2dvi4a2ps (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.14/man/fixps.x0000644000175000017500000000014007440740402013716 0ustar mhattamhatta[NAME] fixps \- sanitize PostScript files [DESCRIPTION] ." Add any additional description here a2ps-4.14/man/a2ps.x0000644000175000017500000000016707440740402013443 0ustar mhattamhatta[NAME] a2ps \- format files for printing on a PostScript printer [DESCRIPTION] ." Add any additional description here a2ps-4.14/man/card.x0000644000175000017500000000015507440740402013504 0ustar mhattamhatta[NAME] card \- print reference card of program options [DESCRIPTION] ." Add any additional description here a2ps-4.14/man/psmandup.x0000644000175000017500000000015507440740402014422 0ustar mhattamhatta[NAME] psmandup \- print duplex on non duplex printers [DESCRIPTION] ." Add any additional description here a2ps-4.14/man/a2ps.10000444000175000017500000001670510735337376013354 0ustar mhattamhatta.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.019. .TH A2PS "1" "December 2007" "GNU a2ps 4.14" FSF .SH NAME a2ps \- format files for printing on a PostScript printer .SH SYNOPSIS .B a2ps [\fIOPTION\fR]... [\fIFILE\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'. .SS "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=\fIdefaults\fR display default settings and parameters .TP \fB\-\-list\fR=\fITOPIC\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. .SS "Global:" .TP \fB\-q\fR, \fB\-\-quiet\fR, \fB\-\-silent\fR be really quiet .TP \fB\-v\fR, \fB\-\-verbose\fR[=\fILEVEL\fR] set verbosity on, or to LEVEL .TP \fB\-=\fR, \fB\-\-user\-option\fR=\fIOPTION\fR use the user defined shortcut OPTION .TP \fB\-\-debug\fR enable debugging features .TP \fB\-D\fR, \fB\-\-define\fR=\fIKEY[\fR:VALUE] unset variable KEY or set to VALUE .SS "Sheets:" .TP \fB\-M\fR, \fB\-\-medium\fR=\fINAME\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=\fINUM\fR number of columns per sheet .TP \fB\-\-rows\fR=\fINUM\fR number of rows per sheet .TP \fB\-\-major\fR=\fIDIRECTION\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=\fIMODE\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[=\fINUM\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.). .SS "Virtual pages:" .TP \fB\-\-line\-numbers\fR=\fINUM\fR precede each NUM lines with its line number .TP \fB\-C\fR alias for \fB\-\-line\-numbers\fR=\fI5\fR .TP \fB\-f\fR, \fB\-\-font\-size\fR=\fISIZE\fR use font SIZE (float) for the body text .TP \fB\-L\fR, \fB\-\-lines\-per\-page\fR=\fINUM\fR scale the font to print NUM lines per virtual .TP \fB\-l\fR, \fB\-\-chars\-per\-line\fR=\fINUM\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=\fINUM\fR set tabulator size to NUM .HP \fB\-\-non\-printable\-format\fR=\fIFMT\fR specify how non-printable chars are printed .SS "Headings:" .TP \fB\-B\fR, \fB\-\-no\-header\fR no page headers at all .TP \fB\-b\fR, \fB\-\-header\fR[=\fITEXT\fR] set page header .TP \fB\-u\fR, \fB\-\-underlay\fR[=\fITEXT\fR] print TEXT under every page .TP \fB\-\-center\-title\fR[=\fITEXT\fR] set page title to TITLE .TP \fB\-\-left\-title\fR[=\fITEXT\fR] set left and right page title to TEXT .HP \fB\-\-right\-title\fR[=\fITEXT\fR] .TP \fB\-\-left\-footer\fR[=\fITEXT\fR] set sheet footers to TEXT .HP \fB\-\-footer\fR[=\fITEXT\fR] .HP \fB\-\-right\-footer\fR[=\fITEXT\fR] .PP The TEXTs may use special escapes. .SS "Input:" .TP \fB\-a\fR, \fB\-\-pages\fR[=\fIRANGE\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=\fITYPE\fR specify the eol char (TYPE: r, n, nr, rn, any) .TP \fB\-X\fR, \fB\-\-encoding\fR=\fINAME\fR use input encoding NAME .TP \fB\-t\fR, \fB\-\-title\fR=\fINAME\fR set the name of the job .TP \fB\-\-stdin\fR=\fINAME\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[=\fITEXT\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. .SS "Pretty-printing:" .TP \fB\-E\fR, \fB\-\-pretty\-print\fR[=\fILANG\fR] enable pretty-printing (set style to LANG) .TP \fB\-\-highlight\-level\fR=\fILEVEL\fR set pretty printing highlight LEVEL LEVEL can be none, normal or heavy .TP \fB\-g\fR alias for \fB\-\-highlight\-level\fR=\fIheavy\fR .TP \fB\-\-strip\-level\fR=\fINUM\fR level of comments stripping .SS "Output:" .TP \fB\-o\fR, \fB\-\-output\fR=\fIFILE\fR leave output to file FILE. If FILE is `-', leave output to stdout. .TP \fB\-\-version\-control\fR=\fIWORD\fR override the usual version control .TP \fB\-\-suffix\fR=\fISUFFIX\fR override the usual backup suffix .TP \fB\-P\fR, \fB\-\-printer\fR=\fINAME\fR send output to printer NAME .TP \fB\-d\fR send output to the default printer (this is the default behavior) .SS "PostScript:" .TP \fB\-\-prologue\fR=\fIFILE\fR include FILE.pro as PostScript prologue .TP \fB\-\-ppd\fR[=\fIKEY\fR] automatic PPD selection or set to KEY .TP \fB\-n\fR, \fB\-\-copies\fR=\fINUM\fR print NUM copies of each page .TP \fB\-s\fR, \fB\-\-sides\fR=\fIMODE\fR set the duplex MODE (`1' or `simplex', `2' or `duplex', `tumble') .TP \fB\-S\fR, \fB\-\-setpagedevice\fR=\fIK[\fR:V] pass a page device definition to output .TP \fB\-\-statusdict\fR=\fIK[\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 .PP News, updates and documentation: visit http://www.gnu.org/software/a2ps/. .SH AUTHOR Written by Akim Demaille, Miguel Santana. .SH "REPORTING BUGS" Report bugs to . .SH COPYRIGHT Copyright \(co 1988-1993 Miguel Santana .br Copyright \(co 1995-2000 Akim Demaille, Miguel Santana .br Copyright \(co 2007- Akim Demaille, Miguel Santana and Masayuki Hatta .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), .BR psset (1), .BR texi2dvi4a2ps (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.14/man/card.10000444000175000017500000000313110735337376013405 0ustar mhattamhatta.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.019. .TH CARD "1" "December 2007" "card 1.3 (GNU a2ps 4.14)" FSF .SH NAME card \- print reference card of program options .SH SYNOPSIS .B card [\fIOPTION\fR]... \fIPROGRAM\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=\fIFILE\fR save the output in FILE .TP \fB\-l\fR, \fB\-\-language\fR=\fILL\fR print the help in the language LL (default: English) .TP \fB\-\-command\fR=\fICMD\fR perform pretty-printing on the output of CMD (e.g. \fB\-\-command=\fR'netscape \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: http://www.inf.enst.fr/~demaille/a2ps/ .SH AUTHOR Written by Akim Demaille. .SH "REPORTING BUGS" Report bugs to . .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), .BR psset (1), .BR texi2dvi4a2ps (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.14/man/texi2dvi4a2ps.x0000644000175000017500000000064307440740402015205 0ustar mhattamhatta[NAME] texi2dvi4a2ps \- Compile Texinfo and LaTeX files to DVI or PDF [SEE ALSO] texi2dvi4a2ps is exactly the same script as texi2dvi, part of the package GNU Texinfo. It is used by a2ps when delegating LaTeX and Texinfo files. Instead of checking whether the version of texi2dvi which is installed is recent enough, it is more convenient for the users that a2ps is shipped with the version of texi2dvi it requires. a2ps-4.14/man/texi2dvi4a2ps.10000444000175000017500000000600110735337376015103 0ustar mhattamhatta.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.019. .TH TEXI2DVI "1" "December 2007" "GNU Texinfo 4.1 1.1.1.1.2.3" FSF .SH NAME texi2dvi4a2ps \- Compile Texinfo and LaTeX files to DVI or PDF .SH SYNOPSIS .B texi2dvi4a2ps [\fIOPTION\fR]... \fIFILE\fR... .SH DESCRIPTION Run each Texinfo or LaTeX FILE through TeX in turn until all cross-references are resolved, building all indices. The directory containing each FILE is searched for included files. The suffix of FILE is used to determine its language (LaTeX or Texinfo). .PP Makeinfo is used to perform Texinfo macro expansion before running TeX when needed. .SS "Operation modes:" .TP \fB\-b\fR, \fB\-\-batch\fR no interaction .TP \fB\-c\fR, \fB\-\-clean\fR remove all auxiliary files .TP \fB\-D\fR, \fB\-\-debug\fR turn on shell debugging (set \fB\-x\fR) .TP \fB\-h\fR, \fB\-\-help\fR display this help and exit successfully .TP \fB\-o\fR, \fB\-\-output\fR=\fIOFILE\fR leave output in OFILE (implies \fB\-\-clean\fR); Only one input FILE may be specified in this case .TP \fB\-q\fR, \fB\-\-quiet\fR no output unless errors (implies \fB\-\-batch\fR) .TP \fB\-s\fR, \fB\-\-silent\fR same as \fB\-\-quiet\fR .TP \fB\-v\fR, \fB\-\-version\fR display version information and exit successfully .TP \fB\-V\fR, \fB\-\-verbose\fR report on what is done .SS "TeX tuning:" .TP -@ use @input instead of \einput; for preloaded Texinfo .TP \fB\-e\fR, \fB\-\-expand\fR force macro expansion using makeinfo .TP \fB\-I\fR DIR search DIR for Texinfo files .TP \fB\-l\fR, \fB\-\-language\fR=\fILANG\fR specify the LANG of FILE (LaTeX or Texinfo) .TP \fB\-p\fR, \fB\-\-pdf\fR use pdftex or pdflatex for processing .TP \fB\-t\fR, \fB\-\-texinfo\fR=\fICMD\fR insert CMD after @setfilename in copy of input file multiple values accumulate .PP The values of the BIBTEX, LATEX (or PDFLATEX), MAKEINDEX, MAKEINFO, TEX (or PDFTEX), and TEXINDEX environment variables are used to run those commands, if they are set. .SH "REPORTING BUGS" Email bug reports to , general questions and discussion to . Texinfo home page: http://www.gnu.org/software/texinfo/ .SH COPYRIGHT Copyright \(co 2002 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. .SH "SEE ALSO" texi2dvi4a2ps is exactly the same script as texi2dvi, part of the package GNU Texinfo. It is used by a2ps when delegating LaTeX and Texinfo files. Instead of checking whether the version of texi2dvi which is installed is recent enough, it is more convenient for the users that a2ps is shipped with the version of texi2dvi it requires. .BR a2ps (1), .BR card (1), .BR fixps (1), .BR pdiff (1), .BR psset (1), .BR texi2dvi4a2ps (1). .PP The full documentation for .B texi2dvi is maintained as a Texinfo manual. If the .B info and .B texi2dvi programs are properly installed at your site, the command .IP .B info texi2dvi .PP should give you access to the complete manual. a2ps-4.14/man/Makefile.maint0000644000175000017500000000170107440740402015147 0ustar mhattamhatta# This -*- Makefile -*- uses features of GNU make. # It is included via GNUmakefile. HELP2MAN-run = $(PERL) -w -- $(srcdir)/$(HELP2MAN) # Depend on configure.in to get version number changes. $(man_MANS): $(top_srcdir)/configure.in common.x # Depend on the source file containing the --help text. # Filter out irregular cases. regular_men = $(filter-out $(irregular_men),$(man_MANS)) $(regular_men): %.1: $(top_srcdir)/contrib/%.in executable = $(wildcard $(top_builddir)/*/$(basename $@)) $(man_MANS): %.1: %.x $(HELP2MAN) @if test -f $(executable); then \ echo "Updating man page $@"; \ rm -f $@-t; \ $(HELP2MAN-run) \ --include=$(basename $@).x \ --include=common.x \ $(executable) > $@-t || exit 1; \ chmod -w $@-t || exit 1; \ rm -f $@ || exit 1; \ mv $@-t $@ || exit 1; \ else \ echo "WARNING: The man page $@ cannot be updated yet."; \ echo " Retry once the corresponding executable is built."; \ fi a2ps-4.14/README0000644000175000017500000001617610735324400012516 0ustar mhattamhatta 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. Please send happiness messages to both Akim, Miguel & Masayuki (akim@freefriends.org, Miguel.Santana@st.com, mhatta@gnu.org), and *only* this kind of messages. 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. Upgrading from versions prior to 4.10 3. Upgrading from versions prior to 4.12 4. Upgrading from versions prior to 4.13 5. Distribution content 6. More? 1. Installation =============== Some notes on the distribution: 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 choices are to make, and to give to ./configure --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-medium=MEDIUM define the default medium used by a2ps (A4, Letter etc.) There is a special medium name: `libpaper', which means that you have libpaper installed, and that a2ps should use the medium specified by it. If you don't know, just let configure decide for you. You can change it later. --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. There are several things a2ps needs to know about your system in order to work properly. Running configure should be enough to have apropriate values, nevertheless, it sure is better if you good check the following items: 1. At the end of etc/a2ps_cfg, the lines a. FileCommand: b. Variable: lp.default c. Variable: lp 2. At the top of etc/a2ps-site.cfg, the lines a. Options: --encoding= b. Options: --medium= There are some architectures, typically Solaris, that will fail saying that symbols `bindtextdomain' etc. are missing. Then re-configure but specifying --with-included-gettext. Remember that \`make install' is mandatory for a2ps to work correctly. Once the \`make install' done, you may remove the build directory (the one which has been extracted from the .gz, which you can also removed, BTW). If you encounter problems while configuring or running, it is likely that somebody already fell on the same problems. Hence please read http://www.gnu.org/software/a2ps/ which lists the known problems, and the fixes. Check out also for the FAQ, and for a newer version of a2ps: don't send me reports for prehistoric versions! If the trouble persists, then, indeed, you may wish to send a bug report (i.e. something *precise* about the problem and your configuration :-) to mailto:bug-a2ps@gnu.org Do not, *ever*, send bug reports to a2ps@gnu.org. Well, pleeeeeease, I mean. 2. Upgrading from versions prior to 4.10 ======================================== Because the organization of the library files is different, it is strongly suggested to get rid of your old library files (usually rm -rf .../share/a2ps is enough). There _will_be_ problems if you don't remove them, because the new a2ps may use files meant for the old versions. If you don't want to remove these files, at least make sure they won't be installed in the same place. There can be strange things happening with `make check'. This is due to a painful behavior of some shared library handlers: they use an old a2ps library with the new a2ps executable. Doing `make install' _before_ make check solves the problem. 3. Upgrading from versions prior to 4.12 ======================================== The most sensitive changes in the interface are that -D no longer means --setpagedevice, but --define, and -S no longer means --statusdict, but --setpagedevice. 4. Upgrading from versions prior to 4.13 ======================================== There's a big change in the syntax of the style sheets. I must confess I took a very bad decision when I first implemented this: I wanted to be compatible with the regexp of Emacs, for obscure and not really interesting reasons. *All* the style sheets shipped with a2ps are updated (of course, otherwise my life would be in danger). While I did try, I probably didn't managed to fix your own .ssh file hidden on your disk. So you may have to handle this by yourself. Here's the piece of NEWS stating the problem: * 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 contrary. 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. 5. Distribution content ======================= Some interesting files/directories you might want to look at are: README This message 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 arch/ Files to help to port a2ps to non Unix OSes 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 contrib/sample/ A sample on using liba2ps ogonkify/ The full distribution of the fantastic ogonkify package, that fixes a font designed for Latin1 so that other Latin encodings are supported. 6. More ? ========= a2ps has a home page where the latest version may be found. http://www.gnu.org/software/a2ps/ There, you will also find the documentation in various formats. There is also a mailing list, to subscribe please see http://lists.gnu.org/mailman/listinfo/a2ps *NOTE* The mailing list is not a place to drop your bug reports or the problems you have. It is a place to discuss about a2ps, to make the announcements, wishes etc. Before sending a mail there, remember many people will read your mail. Bug reports should be sent to bug-a2ps@gnu.org PS(um): if you're happy with this program, or just if you installed it, please _let_us_know_! That's about the only contact we have from the world of outside, since there are never bug reports 8*) Local Variables: mode: indented-text End: a2ps-4.14/fonts/0000755000175000017500000000000010735337377012775 5ustar mhattamhattaa2ps-4.14/fonts/pcfont.pfa0000644000175000017500000004547710735322443014763 0ustar mhattamhatta%!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 a2ps-4.14/fonts/Makefile.am0000644000175000017500000000250610735324666015031 0ustar mhattamhatta# -*- Makefile -*- # Makefile for a2ps' fonts directory. # # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # $Id: Makefile.am,v 1.1.1.1.2.1 2007/12/29 01:58:14 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. # # 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.14/fonts/Makefile.in0000644000175000017500000003252110735337307015036 0ustar mhattamhatta# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 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@ # -*- Makefile -*- # Makefile for a2ps' fonts directory. # # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # $Id: Makefile.am,v 1.1.1.1.2.1 2007/12/29 01:58:14 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. # srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = fonts DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/a2_psutils.m4 \ $(top_srcdir)/m4/atexit.m4 $(top_srcdir)/m4/file.m4 \ $(top_srcdir)/m4/fp_echo.m4 $(top_srcdir)/m4/fullpath.m4 \ $(top_srcdir)/m4/gccwarn.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gperf-check.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \ $(top_srcdir)/m4/lex.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/lpr.m4 \ $(top_srcdir)/m4/m4.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \ $(top_srcdir)/m4/perl.m4 $(top_srcdir)/m4/prereq.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/protos.m4 \ $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/rename.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/strcasecmp.m4 \ $(top_srcdir)/m4/strftim.m4 $(top_srcdir)/m4/termios.m4 \ $(top_srcdir)/m4/tterm.m4 $(top_srcdir)/m4/uintmax_t.m4 \ $(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/winsz.m4 \ $(top_srcdir)/m4/xstrtoumax.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/auxdir/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = 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 = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(fontsdir)" fontsDATA_INSTALL = $(INSTALL_DATA) DATA = $(fonts_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ COM_DISPLAY = @COM_DISPLAY@ COM_LATEX = @COM_LATEX@ COM_PS2PDF = @COM_PS2PDF@ COM_PSUTILS = @COM_PSUTILS@ COM_TEXI = @COM_TEXI@ COM_acroread = @COM_acroread@ COM_acroread4 = @COM_acroread4@ COM_bzip = @COM_bzip@ COM_bzip2 = @COM_bzip2@ COM_convert = @COM_convert@ COM_distill = @COM_distill@ 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_netscape = @COM_netscape@ COM_pdf2ps = @COM_pdf2ps@ COM_ps2pdf = @COM_ps2pdf@ COM_psnup = @COM_psnup@ COM_psselect = @COM_psselect@ COM_tex = @COM_tex@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ ENCODING = @ENCODING@ EXEEXT = @EXEEXT@ EXTENSIONS_FALSE = @EXTENSIONS_FALSE@ EXTENSIONS_TRUE = @EXTENSIONS_TRUE@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ F77 = @F77@ FFLAGS = @FFLAGS@ FILE_LINK = @FILE_LINK@ GMSGFMT = @GMSGFMT@ GNU_PACKAGE = @GNU_PACKAGE@ GPERF = @GPERF@ GREP = @GREP@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBVERSION = @LIBVERSION@ LN_S = @LN_S@ LPR = @LPR@ LPR_QUEUE_OPTION = @LPR_QUEUE_OPTION@ LTALLOCA = @LTALLOCA@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ M4 = @M4@ MAKEINFO = @MAKEINFO@ MEDIUM = @MEDIUM@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ POSUB = @POSUB@ PSFONT_PATH = @PSFONT_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ U = @U@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ YACC = @YACC@ YFLAGS = @YFLAGS@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ acroread = @acroread@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ 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@ bzip = @bzip@ bzip2 = @bzip2@ convert = @convert@ datadir = @datadir@ datarootdir = @datarootdir@ distill = @distill@ docdir = @docdir@ dvidir = @dvidir@ dvips = @dvips@ exec_prefix = @exec_prefix@ file_prog = @file_prog@ ghostview = @ghostview@ 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@ netscape = @netscape@ oldincludedir = @oldincludedir@ pdf2ps = @pdf2ps@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ ps2pdf = @ps2pdf@ psdir = @psdir@ psnup = @psnup@ psselect = @psselect@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ tex = @tex@ # 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 \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu fonts/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu fonts/Makefile .PRECIOUS: 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__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ 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 mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: install-fontsDATA: $(fonts_DATA) @$(NORMAL_INSTALL) test -z "$(fontsdir)" || $(mkdir_p) "$(DESTDIR)$(fontsdir)" @list='$(fonts_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(fontsDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(fontsdir)/$$f'"; \ $(fontsDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(fontsdir)/$$f"; \ done uninstall-fontsDATA: @$(NORMAL_UNINSTALL) @list='$(fonts_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(fontsdir)/$$f'"; \ rm -f "$(DESTDIR)$(fontsdir)/$$f"; \ done tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(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: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-fontsDATA install-exec-am: install-info: install-info-am install-man: 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 mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-fontsDATA uninstall-info-am .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-exec install-exec-am \ install-fontsDATA install-info install-info-am install-man \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ uninstall uninstall-am uninstall-fontsDATA uninstall-info-am # 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.14/HACKING0000644000175000017500000000776610735323015012633 0ustar mhattamhatta-*- outline -*- This file attempts to describe the rules to use when hacking A2ps. Don't put this file into the distribution. Don't mention it in the ChangeLog. Everything related to the development of A2ps is on Savannah: http://savannah.gnu.org/projects/a2ps/ * Administrivia ** If you incorporate a change from somebody on the net: First, if it is a large change, you must make sure they have signed the appropriate paperwork. Second, be sure to add their name and email address to THANKS. ** If a change fixes a test, mention the test in the ChangeLog entry. ** Bug reports If somebody reports a new bug, mention his name in the ChangeLog entry and in the test case you write. Put him into THANKS. The correct response to most actual bugs is to write a new test case which demonstrates the bug. Then fix the bug, re-run the test suite, and check everything in. * Hacking ** Visible changes Which include serious bug fixes, must be mentioned in NEWS. ** Translations Only user visible strings are to be translated: error messages, bits of the .output file etc. This excludes impossible error messages (comparable to assert/abort), and all the --trace output which is meant for the maintainers only. * Test suite ** make check Use liberally. ** Release checks Try to run the test suite with more severe conditions before a release: - Change tests/atlocal/CFLAGS to add your preferred options. For instance, `-traditional' to check that the parsers are K&R. Note that it does not make sense for glr.c, which should be ANSI, but currently is actually GNU C, nor for lalr1.cc, which anyway is not exercised yet in the test suite. * Release Procedure ** Tests See above. ** Update the foreign files Running `make update' in the top level should make it all for you. This covers PO files too. Beware that it happens that some PO files contain serious problems and are rejected by recent Gettext releases: fix them all, and complain to the Translation Project! Note that there might be *new* PO files. Don't forget to update the whole machinery, which not only includes LINGUAS, but `cvs add'ing the PO files too. ** Update NEWS The version number, *and* the date of the release (including for betas). ** Update ChangeLog Should have an entry similar to `Version 1.49b.'. Check all this in once `make distcheck' passes. ** make alpha Running `make alpha' is absolutely perfect for beta releases: it makes the tarballs, the xdeltas, and prepares (in /tmp/) a proto announcement. It is so neat, that that's what I use anyway for genuine releases, but adjusting things by hand (e.g., the urls in the announcement file, the ChangeLog which is not needed etc.). If it fails, you're on your own... It requires GNU Make. ** Upload Put the tarballs/xdeltas where they should be. Or put it somewhere, and send the URL to ftp-upload@gnu.org. ** Bump the version number In configure.ac. Run `make', check this in. ** Announce Complete/fix the announcement file, and send it at least to info-gnu@gnu.org (if a real release, or a ``serious beta''), a2ps@gnu.org, and translation@iro.umontreal.ca. Send the same announcement on the comp.compilers newsgroup. Do not make any Cc as the moderator will throw away anything cross-posted or Cc'ed. It really needs to be a separate message. ----- Copyright (C) 2003 Free Software Foundation, Inc. This file is part of GNU A2ps. GNU A2ps is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. GNU A2ps is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU A2ps; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. a2ps-4.14/INSTALL0000644000175000017500000002243210735337306012670 0ustar mhattamhattaInstallation Instructions ************************* Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free Software Foundation, Inc. This file is free documentation; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. Basic Installation ================== These are generic installation instructions. 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 only 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. If you're using `csh' on an old version of System V, you might need to type `sh ./configure' instead to prevent `csh' from trying to execute `configure' itself. Running `configure' takes awhile. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package. 4. Type `make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. 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=c89 CFLAGS=-O2 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 must use a version of `make' that supports the `VPATH' variable, such as 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 `..'. If you have to use a `make' that does not support the `VPATH' variable, you have 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. Installation Names ================== By default, `make install' installs the package's commands under `/usr/local/bin', include files under `/usr/local/include', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PREFIX'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you pass the option `--exec-prefix=PREFIX' to `configure', the package uses PREFIX as the prefix for installing programs and libraries. Documentation and other data files still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=DIR' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Optional Features ================= Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. 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). Here is a another example: /bin/bash ./configure CONFIG_SHELL=/bin/bash Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent configuration-related scripts to be executed by `/bin/bash'. `configure' Invocation ====================== `configure' recognizes the following options to control how it operates. `--help' `-h' Print a summary of the options to `configure', and exit. `--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. `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. a2ps-4.14/AUTHORS0000644000175000017500000001103110735337376012707 0ustar mhattamhattaAAuutthhoorrss  ooff  tthhiiss  ppaacckkaaggee.. * Miguel Santana * Akim Demaille IInntteerriimm  MMaaiinnttaaiinneerr * Masayuki Hatta TTrraannssllaattoorrss * Daniele Ghiotti (Italian) * Tomek Burdziak (Polish) * Miguel A. Varo (Maintains Spanish and Catalan) * Michael Wiedmann (Maintains German) * Christian Kirsch (German) * Erwin Dieterich (German) * Juliusz Chroboczek (Polish) * Marcel van der Laan (Dutch) * Lorenzo M. Catucci (Maintains Italian) * Choi Jun Ho (Korean) * Turgut Uyar (Turkish) * Jiri Pavlovsky (Maintains Czech) * Peter Nilsson (Maintains Swedish) * Pedro Miguel Marques Morais (Maintains Portugese) * Vladimir Vodolazkiy (Russian) * Paulo Matos (Portugese) * Jon Ross (Maintains Norwegian) * Igor Furlan (Maintains Slovenian) * Marcin 'Qrczak' Kowalczyk (Polish) * Tijs van Bakel (Maintains Dutch) * Dmitry S. Sivachenko (Maintains Russian) * Yasuyuki Furukawa (Japanese) * Masayuki Hatta (Maintains Japanese) SSttyyllee  SShheeeettss  AAuutthhoorrss * Aleksandar Veselinovic (nasm, pic16f84) * Alex (is5rul) * Alexander Mai (for-fixed, for-free, for77-fixed, for77-free, for77kwds, for90-fixed, for90-free, for90kwds, fortran, gmake, rexx) * Bob Phillips (cidl) * C.P. Earls (octave) * Christophe Continente (small) * Daniel Wang (sml) * Denis Girou (for-fixed, for-free, for77-fixed, for77-free, for77kwds, for90-fixed, for90-free, for90kwds, fortran, perl, tex) * Didier Verna (elisp) * Dirk Eddelbuettel (rd, s, st, vba) * Edward Arthur (awk, verilog) * Franklin Chen (sml) * Hartmut Holzgraefe (php) * Hideaki Yokota (specc) * Ilya Beylin (haskell) * Jean-Baptiste Nivoit (lout, mly, pov) * Jean-Philippe Cottin (sdl88, unity) * Jim Diamond (csh, tcsh) * Joakim Lübeck (matlab) * Juliusz Chroboczek (clisp) * Karen Christenson (csharp) * Kelly Wiles (mib) * Kestutis Kupciunas (xs) * Kurt Hornik (st) * Kurt Hornik (rd, s) * Larry W. Virden (tcl, tk) * Manfred Schwarb (idl) * Marco De la Cruz (matlab4) * Markus Mottl (ocaml) * Nadine Richard (vrml) * Nicolas Tisserand (stratego) * Noritsugu Nakamura <> (ruby) * Paul Shum (objc) * Peter Bartke (modula2) * Phil Hollenback (tclx, vtcl) * Philippe Coucaud (asn1, b) * Philippe Le Van (dc_shell) * Pierre Mareschal (initora, oracle, plsql, sql, sql92) * Richard J Mathar (maple) * Robert S. Mallozzi (idl) * Scott Pakin (js) * Steve Alexander (java) * Thomas Parmelan (vhdl) * Torsten Hothorn (rd, s, st) * Wesley J. Chun (html) PPaacckkaaggeerrss  //  PPoorrttss * Alexander Mai (OS/2 port) * Ansgar Duelmer (DOS) * Chuck Robey (FreeBSD) * Dirk Eddelbuettel (formerly Debian) * Masayuki Hatta (Debian) * Michael Williams (Mac OS X) * Paulo Matos (RPM) VVaarriioouuss * Bruce Ingalls (a2ps-print.el) a2ps-4.14/ps/0000755000175000017500000000000010735337377012266 5ustar mhattamhattaa2ps-4.14/ps/matrix.pro0000644000175000017500000000554210735324703014307 0ustar mhattamhatta% -*-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.14/ps/color.pro0000644000175000017500000000460110735324703014114 0ustar mhattamhatta% -*-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 ( # -) /# { 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.14/ps/gray2.pro0000644000175000017500000000430110735324703014017 0ustar mhattamhatta% -*-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.14/ps/ul.pro0000644000175000017500000000445410735322255013424 0ustar mhattamhatta% 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.14/ps/diffcolor.pro0000644000175000017500000000463610735324703014755 0ustar mhattamhatta% -*-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 ( # -) /# { 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.14/ps/fixed.pro0000644000175000017500000000464010735322255014100 0ustar mhattamhatta% -*-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.14/ps/Makefile.am0000644000175000017500000000231010735322176014305 0ustar mhattamhatta## -*- Makefile -*- ## Makefile for a2ps' postscript library directory. ## ## 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. ## # 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.14/ps/Makefile.in0000644000175000017500000003067310735337307014335 0ustar mhattamhatta# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 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@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = ps DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/a2_psutils.m4 \ $(top_srcdir)/m4/atexit.m4 $(top_srcdir)/m4/file.m4 \ $(top_srcdir)/m4/fp_echo.m4 $(top_srcdir)/m4/fullpath.m4 \ $(top_srcdir)/m4/gccwarn.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gperf-check.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \ $(top_srcdir)/m4/lex.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/lpr.m4 \ $(top_srcdir)/m4/m4.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \ $(top_srcdir)/m4/perl.m4 $(top_srcdir)/m4/prereq.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/protos.m4 \ $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/rename.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/strcasecmp.m4 \ $(top_srcdir)/m4/strftim.m4 $(top_srcdir)/m4/termios.m4 \ $(top_srcdir)/m4/tterm.m4 $(top_srcdir)/m4/uintmax_t.m4 \ $(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/winsz.m4 \ $(top_srcdir)/m4/xstrtoumax.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/auxdir/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = 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 = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(psdir)" psDATA_INSTALL = $(INSTALL_DATA) DATA = $(ps_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ COM_DISPLAY = @COM_DISPLAY@ COM_LATEX = @COM_LATEX@ COM_PS2PDF = @COM_PS2PDF@ COM_PSUTILS = @COM_PSUTILS@ COM_TEXI = @COM_TEXI@ COM_acroread = @COM_acroread@ COM_acroread4 = @COM_acroread4@ COM_bzip = @COM_bzip@ COM_bzip2 = @COM_bzip2@ COM_convert = @COM_convert@ COM_distill = @COM_distill@ 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_netscape = @COM_netscape@ COM_pdf2ps = @COM_pdf2ps@ COM_ps2pdf = @COM_ps2pdf@ COM_psnup = @COM_psnup@ COM_psselect = @COM_psselect@ COM_tex = @COM_tex@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ ENCODING = @ENCODING@ EXEEXT = @EXEEXT@ EXTENSIONS_FALSE = @EXTENSIONS_FALSE@ EXTENSIONS_TRUE = @EXTENSIONS_TRUE@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ F77 = @F77@ FFLAGS = @FFLAGS@ FILE_LINK = @FILE_LINK@ GMSGFMT = @GMSGFMT@ GNU_PACKAGE = @GNU_PACKAGE@ GPERF = @GPERF@ GREP = @GREP@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBVERSION = @LIBVERSION@ LN_S = @LN_S@ LPR = @LPR@ LPR_QUEUE_OPTION = @LPR_QUEUE_OPTION@ LTALLOCA = @LTALLOCA@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ M4 = @M4@ MAKEINFO = @MAKEINFO@ MEDIUM = @MEDIUM@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ POSUB = @POSUB@ PSFONT_PATH = @PSFONT_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ U = @U@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ YACC = @YACC@ YFLAGS = @YFLAGS@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ acroread = @acroread@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ 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@ bzip = @bzip@ bzip2 = @bzip2@ convert = @convert@ datadir = @datadir@ datarootdir = @datarootdir@ distill = @distill@ docdir = @docdir@ dvidir = @dvidir@ dvips = @dvips@ exec_prefix = @exec_prefix@ file_prog = @file_prog@ ghostview = @ghostview@ 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@ netscape = @netscape@ 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@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ tex = @tex@ 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 \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ps/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu ps/Makefile .PRECIOUS: 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__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ 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 mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: install-psDATA: $(ps_DATA) @$(NORMAL_INSTALL) test -z "$(psdir)" || $(mkdir_p) "$(DESTDIR)$(psdir)" @list='$(ps_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(psDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(psdir)/$$f'"; \ $(psDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(psdir)/$$f"; \ done uninstall-psDATA: @$(NORMAL_UNINSTALL) @list='$(ps_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(psdir)/$$f'"; \ rm -f "$(DESTDIR)$(psdir)/$$f"; \ done tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(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: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-psDATA install-exec-am: install-info: install-info-am install-man: 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 mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am uninstall-psDATA .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-exec install-exec-am \ install-info install-info-am install-man install-psDATA \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ uninstall uninstall-am uninstall-info-am uninstall-psDATA # 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.14/ps/base.ps0000644000175000017500000001617210735324702013537 0ustar mhattamhatta% % 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, 89, 90, 91, 92, 93 Miguel Santana %%Copyright: (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana %%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 /FontMatrix get 3 get 1000 mul } 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 % 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 %%BeginSetup /bgcolor [ 0 0 0 ] def /bg false def /ul false def /bx false def %%EndSetup a2ps-4.14/ps/a2ps.hdr0000644000175000017500000000745010735324702013624 0ustar mhattamhatta% -*- 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. % 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.14/ps/color.hdr0000644000175000017500000000763510735324703014103 0ustar mhattamhatta% -*- 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. % 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 ( # -) /# { gsave sx cw mul neg 2 div 0 rmoveto f# setfont c-show grestore } bind def a2ps-4.14/ps/ehandler.ps0000644000175000017500000000540510735322251014401 0ustar mhattamhatta%!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.14/ps/bold.pro0000644000175000017500000000462610735324702013724 0ustar mhattamhatta% -*-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.14/ps/diff.pro0000644000175000017500000000534710735324703013716 0ustar mhattamhatta% -*-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.14/ps/bw.pro0000644000175000017500000000444710735324702013415 0ustar mhattamhatta% -*-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.14/ps/gray.pro0000644000175000017500000000431310735324703013740 0ustar mhattamhatta% -*-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.14/doc/0000755000175000017500000000000010735337377012411 5ustar mhattamhattaa2ps-4.14/doc/regex.texi0000644000175000017500000035210107440740400014400 0ustar mhattamhatta\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{} 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.14/doc/translators.pl0000755000175000017500000000117107440740400015305 0ustar mhattamhatta#! /usr/local/bin/perl -w # Produce the list of the translators for the Texinfo documentation local ($mail, $name, $lang, $comment); $translator_file = "translators.txt"; # List of the people who helped the translation open (STDIN, $translator_file) || die "Could not open `$translator_file': $1\n"; while (<>) { chop ; ($mail, $name, $lang, $comment) = split (' '); print "\@item\n"; if ($mail) { $mail =~ s/@/@@/g; print "\@email{$mail, $name} "; } else { print "$name "; } print "($lang) "; if ($comment) { print "$comment"; } print "\n" x 2; } a2ps-4.14/doc/prologue.texi0000644000175000017500000000261210735337376015140 0ustar mhattamhatta@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.14/doc/Makefile.am0000644000175000017500000000603010735322541014427 0ustar mhattamhatta## -*- Makefile -*- ## Makefile for the doc subdirectory of a2ps ## Copyright (c) 1995-2000 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, write to the Free Software ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ## Process this file with automake to produce Makefile.in info_TEXINFOS = a2ps.texi regex.texi TEXI2DVI = $(top_srcdir)/contrib/texi2dvi4a2ps 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 translators.texi MAINTAINERCLEANFILES = $(generated_texinfos) CLEANFILES = a2ps.tmp a2ps.tps EXTRA_DIST = $(generated_texinfos) .a2psrc translators.txt \ make-authors.pl translators.pl a2ps.info: a2ps.texi $(generated_texinfos) version.texi a2ps.dvi: a2ps.texi $(generated_texinfos) version.texi # 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 translators.texi: $(srcdir)/translators.txt $(srcdir)/translators.pl $(PERL) translators.pl > $@-t chmod 644 $@-t mv $@-t $@ # # 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: a2ps.texi $(MAKEINFO) -E /tmp/a2ps.texi -o /dev/null a2ps.texi a2html -expandinfo -split_chapter -number /tmp/a2ps.texi a2ps-4.14/doc/Makefile.in0000644000175000017500000005032510735337307014454 0ustar mhattamhatta# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 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@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = doc DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(srcdir)/stamp-vti $(srcdir)/version.texi ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/a2_psutils.m4 \ $(top_srcdir)/m4/atexit.m4 $(top_srcdir)/m4/file.m4 \ $(top_srcdir)/m4/fp_echo.m4 $(top_srcdir)/m4/fullpath.m4 \ $(top_srcdir)/m4/gccwarn.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gperf-check.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \ $(top_srcdir)/m4/lex.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/lpr.m4 \ $(top_srcdir)/m4/m4.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \ $(top_srcdir)/m4/perl.m4 $(top_srcdir)/m4/prereq.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/protos.m4 \ $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/rename.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/strcasecmp.m4 \ $(top_srcdir)/m4/strftim.m4 $(top_srcdir)/m4/termios.m4 \ $(top_srcdir)/m4/tterm.m4 $(top_srcdir)/m4/uintmax_t.m4 \ $(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/winsz.m4 \ $(top_srcdir)/m4/xstrtoumax.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/auxdir/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = INFO_DEPS = $(srcdir)/a2ps.info $(srcdir)/regex.info TEXINFO_TEX = $(top_srcdir)/auxdir/texinfo.tex am__TEXINFO_TEX_DIR = $(top_srcdir)/auxdir 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 TEXI2PDF = $(TEXI2DVI) --pdf --batch MAKEINFOHTML = $(MAKEINFO) --html AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS) DVIPS = dvips am__installdirs = "$(DESTDIR)$(infodir)" DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ COM_DISPLAY = @COM_DISPLAY@ COM_LATEX = @COM_LATEX@ COM_PS2PDF = @COM_PS2PDF@ COM_PSUTILS = @COM_PSUTILS@ COM_TEXI = @COM_TEXI@ COM_acroread = @COM_acroread@ COM_acroread4 = @COM_acroread4@ COM_bzip = @COM_bzip@ COM_bzip2 = @COM_bzip2@ COM_convert = @COM_convert@ COM_distill = @COM_distill@ 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_netscape = @COM_netscape@ COM_pdf2ps = @COM_pdf2ps@ COM_ps2pdf = @COM_ps2pdf@ COM_psnup = @COM_psnup@ COM_psselect = @COM_psselect@ COM_tex = @COM_tex@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ ENCODING = @ENCODING@ EXEEXT = @EXEEXT@ EXTENSIONS_FALSE = @EXTENSIONS_FALSE@ EXTENSIONS_TRUE = @EXTENSIONS_TRUE@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ F77 = @F77@ FFLAGS = @FFLAGS@ FILE_LINK = @FILE_LINK@ GMSGFMT = @GMSGFMT@ GNU_PACKAGE = @GNU_PACKAGE@ GPERF = @GPERF@ GREP = @GREP@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBVERSION = @LIBVERSION@ LN_S = @LN_S@ LPR = @LPR@ LPR_QUEUE_OPTION = @LPR_QUEUE_OPTION@ LTALLOCA = @LTALLOCA@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ M4 = @M4@ MAKEINFO = @MAKEINFO@ MEDIUM = @MEDIUM@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ POSUB = @POSUB@ PSFONT_PATH = @PSFONT_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ U = @U@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ YACC = @YACC@ YFLAGS = @YFLAGS@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ acroread = @acroread@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ 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@ bzip = @bzip@ bzip2 = @bzip2@ convert = @convert@ datadir = @datadir@ datarootdir = @datarootdir@ distill = @distill@ docdir = @docdir@ dvidir = @dvidir@ dvips = @dvips@ exec_prefix = @exec_prefix@ file_prog = @file_prog@ ghostview = @ghostview@ 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@ netscape = @netscape@ oldincludedir = @oldincludedir@ pdf2ps = @pdf2ps@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ ps2pdf = @ps2pdf@ psdir = @psdir@ psnup = @psnup@ psselect = @psselect@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ tex = @tex@ info_TEXINFOS = a2ps.texi regex.texi TEXI2DVI = $(top_srcdir)/contrib/texi2dvi4a2ps 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 translators.texi MAINTAINERCLEANFILES = $(generated_texinfos) CLEANFILES = a2ps.tmp a2ps.tps EXTRA_DIST = $(generated_texinfos) .a2psrc translators.txt \ make-authors.pl translators.pl 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 \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/Makefile .PRECIOUS: 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__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ 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 mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool .texi.info: restore=: && backupdir="$(am__leading_dot)am$$$$" && \ am__cwd=`pwd` && 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; \ cd $(srcdir); \ else \ rc=$$?; \ cd $(srcdir) && \ $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \ fi; \ rm -rf $$backupdir; exit $$rc .texi.dvi: TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \ $(TEXI2DVI) $< .texi.pdf: TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \ $(TEXI2PDF) $< .texi.html: rm -rf $(@:.html=.htp) if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \ -o $(@:.html=.htp) $<; \ then \ rm -rf $@; \ if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \ mv $(@:.html=) $@; else mv $(@:.html=.htp) $@; fi; \ else \ if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \ rm -rf $(@:.html=); else rm -Rf $(@:.html=.htp) $@; fi; \ exit 1; \ fi $(srcdir)/a2ps.info: a2ps.texi $(srcdir)/version.texi a2ps.pdf: a2ps.texi $(srcdir)/version.texi a2ps.html: a2ps.texi $(srcdir)/version.texi $(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)/auxdir/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) -@rm -f vti.tmp @cp $(srcdir)/version.texi $@ mostlyclean-vti: -rm -f vti.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: TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ $(DVIPS) -o $@ $< uninstall-info-am: @$(PRE_UNINSTALL) @if (install-info --version && \ install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; 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'"; \ install-info --info-dir="$(DESTDIR)$(infodir)" --remove "$(DESTDIR)$(infodir)/$$relfile"; \ 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 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 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.aux a2ps.cp a2ps.cps a2ps.fn a2ps.fns a2ps.ky a2ps.kys a2ps.log \ a2ps.pg a2ps.pgs a2ps.tmp a2ps.toc a2ps.tp a2ps.tps a2ps.vr \ a2ps.vrs a2ps.dvi a2ps.pdf a2ps.ps a2ps.html regex.aux \ regex.cn regex.cp regex.cps regex.fn regex.fns regex.ky \ regex.log regex.pg regex.tmp regex.toc regex.tp regex.vr \ 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 tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done $(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: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -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 distclean-libtool dvi: dvi-am dvi-am: $(DVIS) html-am: $(HTMLS) info: info-am info-am: $(INFO_DEPS) install-data-am: install-info-am install-exec-am: install-info: install-info-am install-info-am: $(INFO_DEPS) @$(NORMAL_INSTALL) test -z "$(infodir)" || $(mkdir_p) "$(DESTDIR)$(infodir)" @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ list='$(INFO_DEPS)'; \ 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 \ relfile=`echo "$$ifile" | sed 's|^.*/||'`; \ echo " $(INSTALL_DATA) '$$ifile' '$(DESTDIR)$(infodir)/$$relfile'"; \ $(INSTALL_DATA) "$$ifile" "$(DESTDIR)$(infodir)/$$relfile"; \ else : ; fi; \ done; \ done @$(POST_INSTALL) @if (install-info --version && \ install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \ list='$(INFO_DEPS)'; \ 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: installcheck-am: 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-info-am .PHONY: all all-am check check-am clean clean-generic clean-libtool \ dist-info distclean distclean-generic distclean-libtool \ distdir dvi dvi-am html html-am info info-am install \ install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am install-man \ install-strip installcheck installcheck-am installdirs \ 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 uninstall uninstall-am \ uninstall-info-am a2ps.info: a2ps.texi $(generated_texinfos) version.texi a2ps.dvi: a2ps.texi $(generated_texinfos) version.texi # 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 translators.texi: $(srcdir)/translators.txt $(srcdir)/translators.pl $(PERL) translators.pl > $@-t chmod 644 $@-t mv $@-t $@ # # 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: 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.14/doc/translators.texi0000644000175000017500000000322710735337376015663 0ustar mhattamhatta@item Daniele Ghiotti (Italian) @item Tomek Burdziak (Polish) @item @email{mvaro@@dlsi.ua.es, Miguel A. Varo} (Maintains Spanish and Catalan) @item @email{mw@@miwie.in-berlin.de, Michael Wiedmann} (Maintains German) @item @email{ck@@held.mind.de, Christian Kirsch} (German) @item @email{bamse@@gmx.de, Erwin Dieterich} (German) @item @email{jec@@dcs.ed.ac.uk, Juliusz Chroboczek} (Polish) He is also the author of @code{Ogonkify} (@pxref{top,,Overview,ogonkify,Ogonkify manual}). @item @email{Marcel.van.der.Laan@@home.ict.nl, Marcel van der Laan} (Dutch) @item @email{lorenzo@@argon.roma2.infn.it, Lorenzo M. Catucci} (Maintains Italian) @item @email{junker@@jazz.snu.ac.kr, Choi Jun Ho} (Korean) @item @email{uyar@@cs.itu.edu.tr, Turgut Uyar} (Turkish) @item @email{pavlovsk@@ff.cuni.cz, Jiri Pavlovsky} (Maintains Czech) @item @email{pnidv96@@student.hv.se, Peter Nilsson} (Maintains Swedish) @item @email{pmmm@@camoes.rnl.ist.utl.pt, Pedro Miguel Marques Morais} (Maintains Portugese) @item @email{voldemarus@@geocities.com, Vladimir Vodolazkiy} (Russian) has a @href{http://come.to/vodolaz, home page}. @item @email{pjsm@@students.fct.unl.pt, Paulo Matos} (Portugese) @item @email{jonr@@sdata.no, Jon Ross} (Maintains Norwegian) @item @email{IgorF@@ix.netcom.com, Igor Furlan} (Maintains Slovenian) @item @email{qrczak@@knm.org.pl, Marcin 'Qrczak' Kowalczyk} (Polish) @item @email{smoke@@casema.net, Tijs van Bakel} (Maintains Dutch) @item @email{dima@@Chg.RU, Dmitry S. Sivachenko} (Maintains Russian) @item @email{furukawa@@vinelinux.org, Yasuyuki Furukawa} (Japanese) @item @email{mhatta@@gnu.org, Masayuki Hatta} (Maintains Japanese) a2ps-4.14/doc/.a2psrc0000644000175000017500000000064407440740377013605 0ustar mhattamhatta# Helpfull 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 | psset -nt | 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.14/doc/a2ps.info0000644000175000017500000102271710735337376014144 0ustar mhattamhattaThis is a2ps.info, produced by makeinfo version 4.11 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 * fixnt: (a2ps) fixnt. Fixing Microsoft NT PostScript Files * pdiff: (a2ps) pdiff. Produce Pretty Comparison of Files * psmandup: (a2ps) psmandup. Printing Duplex on Simplex Printers * psset: (a2ps) psset. Inserting calls to setpagedevice END-INFO-DIR-ENTRY This document describes GNU a2ps 4.14, a converter from various formats, included text, to PostScript converter, with pretty-printing abilities. Copyright (C) 1988-1993 Miguel Santana Copyright (C) 1995-2000 Akim Demaille, Miguel Santana Copyright (C) 2007- Akim Demaille, Miguel Santana and Masayuki Hatta 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.14 of the a2ps documentation, updated 2 May 2007. * 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 * Netscape:: Interfacing with Netscape 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 * fixnt:: Fixing Microsoft NT PostScript Files * pdiff:: Produce Pretty Comparison of Files * psmandup:: Printing Duplex on Simplex Printers * psset:: Inserting calls to setpagedevice `card' * Invoking card:: Command Line Interface * Caution when Using card:: card runs commands `fixps' * Invoking fixps:: Command Line Interface `fixnt' * Invoking fixnt:: Command Line Interface `pdiff' * Invoking pdiff:: Command Line Interface `psmandup' * Invoking psmandup:: Command Line Interface `psset' * Invoking psset:: 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 * Non PostScript Printers:: Using GhostScript * Man Pages with Underlines:: Now it Prints With Italics Please tell me... * Is a2ps Y2K compliant?:: Printing dates in short format * The Options Have Changed:: Respect The Users * Why not using yacc:: Why Using Style Sheets Genesis * History:: Where does it come from * Thanks:: People who really helped * Translators:: People who brought support of your tongue  File: a2ps.info, Node: Introduction, Next: User Guide, Prev: Top, Up: Top 1 Introduction ************** This document describes GNU a2ps version 4.14. The latest versions may be found on the a2ps(http://www.gnu.org/software/a2ps/). We plan to update the GNU a2ps(http://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 and Akim Demaille . 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 a2ps(http://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 () 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: This list is dedicated to announcements, questions/answers, etc. The alpha versions are announced too. Requests and suggestions can be sent there. 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. 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/). 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 (http://mail.gnu.org/mailman/listinfo/a2ps), bug-a2ps (http://mail.gnu.org/mailman/listinfo/bug-a2ps), a2ps-patches (http://mail.gnu.org/mailman/listinfo/a2ps-patches), and a2ps-commit (http://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 (http://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 (http://www.dcs.ed.ac.uk/home/jec/ogonkify/missing.html) and the Ogonkify home page (http://www.dcs.ed.ac.uk/home/jec/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 * Netscape:: Interfacing with Netscape  File: a2ps.info, Node: Interfacing With a Mailer, Next: Netscape, 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 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: Netscape, Prev: Interfacing With a Mailer, Up: Interfacing 2.5.2 Netscape -------------- This is actually valid for any program that generates PostScript that you want to post-process with a2ps. 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 Netscape 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'. `A4dj', `Letterdj' are also defined for Desk Jet owners, since that printer needs bigger margins. The special MEDIUM `libpaper' means that you want a2ps to ask the library `libpaper' for the medium to use. This choice is valid only if `libpaper' was available when a2ps was configured. See the man page of `paperconf' for more information. -- 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 the order, they are: 1. the system configuration file (usually `/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 Desk Jets # 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.#. # Here we address a printer which is not PostScript Printer: deskj | gs -q -sDEVICE=ljet3d -sOutputFile=- - \ | lpr -P laserwriter -h -l MS-DOS users, and non-PostScript printer owners should take advantage in getting good configuration of these entries.  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 | fgrep 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.14 _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 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. 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'). 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/  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 is actually taken from the web pages of Alis Technologies inc. (http://www.alis.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. (http://www.alis.com/) and of Roman Czyborra '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: 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') 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') Meant to print files such as `a2ps.cfg', or `.a2ps/a2psrc', etc. -- Style Sheet: a2ps style sheet (`ssh.ssh') Second level of highligthing (option `-g')) substitutes the LaTeX symbols. -- Style Sheet: Ada (`ada.ssh') 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') Suitable for both `configure.in' 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') bc is an arbitrary precision calculator language. -- Style Sheet: Bourne Shell (`sh.ssh') Some classical program names, or builtin, are highlighted in the second level of pretty-printing. -- Style Sheet: C (`c.ssh') 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') 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') This style covers the usual ChangeLog files. -- Style Sheet: Claire (`claire.ssh') 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 claire home page (http://www.ens.fr/~laburthe/claire.html). -- 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') 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') 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') 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') 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') 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 http::/www.haskell.org/ -- Style Sheet: HTML (`html.ssh') Written by Wesley J. Chun. This style is meant to pretty print HTML source files, not to simulate its interpretation (i.e., `foo' 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. http://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') This is meant for the Eiffel equivalent of the Makefiles. -- Style Sheet: Lex (`lex.ssh') 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') 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') 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 Lübeck. 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') 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.research.digital.com/SRC/modula-3/html/home.html). -- Style Sheet: o2c (`o2c.ssh') -- Style Sheet: Oberon (`oberon.ssh') 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 Oberon Reference Site (http://www.math.tau.ac.il/~laden/Oberon.html). -- Style Sheet: Objective C (`objc.ssh') Written by Paul Shum. -- Style Sheet: OCaml (`ocaml.ssh') Written by Markus Mott. 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') 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') Only some keywords are highlighted, because otherwise listings are quickly becoming a big bold spot. -- Style Sheet: PostScript Printer Description (`ppd.ssh') 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') 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') 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') Help is needed on this sheet. -- Style Sheet: Promela (`promela.ssh') There is no way for this program to highlight send and receive primitives. -- Style Sheet: Python (`python.ssh') 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 (http://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 `http://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') 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 (http://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 `http://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 `http://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') 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 (http://www.icsi.berkeley.edu/~sather/index.html). Heavy highlighting uses symbols for common mathematical operators. -- Style Sheet: Scheme (`scheme.ssh') 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') Comments and labels are highlighted. Other ideas are welcome! A lot of work is still needed. -- Style Sheet: Shell (`shell.ssh') 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') 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') Heavy highlighting prints the nodes on separate pages which title is the name of the node. -- Style Sheet: TeXScript (`texscript.ssh') 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') Tiger is a toy language that serves as example of the book Modern Compiler Implementation (http://www.cs.princeton.edu/~appel/modern/) by Andrew W. Appel. -- Style Sheet: tk (`tk.ssh') Written by 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 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') 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 (http://vag.vrml.org/VRML2.0/FINAL/spec/part1/grammar.html). -- Style Sheet: wdiff (`wdiff.ssh') 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') 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 " `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 | ; FACE ::= FACE-KEYWORD | ; 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 | ; EXCEPTIONS_OPT ::= exceptions are RULES end exceptions | ; 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 * 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 * color.ps: Added box and underline routines. Mon Mar 17 20:39:11 1997 Akim Demaille * 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 * *.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 " 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 " 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 Fri Apr 25 14:05:20 1997 Akim Demaille 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 can not. 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 ( # -) /# { 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 * fixnt:: Fixing Microsoft NT PostScript Files * pdiff:: Produce Pretty Comparison of Files * psmandup:: Printing Duplex on Simplex Printers * psset:: Inserting calls to setpagedevice  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 [-- A2PS-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). A2PS-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: fixnt, 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. It makes heavy use of the `psutils'. It is a good idea to use `fixps' in the PostScript delegations. It first tries to make simple fixes, but some really broken files may require a much deeper treatment. If `fixps' feels the need for such a major surgery act, it may give up local changes and ask `Ghostscript' for a global rewriting. * 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: -n -- Option: --no-fix Don't actually fix the FILE but still honor all of the other options. In particular, `fixps -qn FILE' is equivalent to `cat FILE'. -- 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: fixnt, Next: pdiff, Prev: fixps, Up: Contributions 9.3 `fixnt' =========== `fixnt' (see its `http://www.itsm.uni-stuttgart.de/~bauer/fixnt.html', home page) is maintained by Holger Bauer and Michael Rath . It is meant to fix the problems of the PostScript files generated by the Microsoft PostScript driver under Windows NT (3.5 and 4.0). `fixps' is aware of the cases where `fixnt' should be used, hence you should not worry of when to use `fixnt'. * Menu: * Invoking fixnt:: Command Line Interface  File: a2ps.info, Node: Invoking fixnt, Up: fixnt 9.3.1 Invoking `fixnt' ---------------------- fixnt < `file.ps' sanitize the PostScript file FILE.PS and produce the result on the standard output.  File: a2ps.info, Node: pdiff, Next: psmandup, Prev: fixnt, Up: Contributions 9.4 `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.4.1 Invoking `pdiff' ---------------------- pdiff [OPTIONS] FILE-1 FILE-2 [-- A2PS-OPTIONS] make a pretty comparison between FILE-1 and FILE-2. A2PS-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: psmandup, Next: psset, Prev: pdiff, Up: Contributions 9.5 `psmandup' ============== I personally hate to print documents of hundreds of pages on a single sided printer. Too bad, here there are no Duplex printers. The idea is then simply first to print the odd pages, then the even in reversed order. To make sure one flips the page in the meanwhile, the second half should be printed from the manual feed tray. Make a shell script that automates this, and you get `psmandup'. * Menu: * Invoking psmandup:: Command Line Interface  File: a2ps.info, Node: Invoking psmandup, Up: psmandup 9.5.1 Invoking `psmandup' ------------------------- psmandup [OPTIONS] [FILE] produce a manual duplex version of the PostScript FILE (or of the standard input if no FILE is given, or if FILE is `-'). Once the first half is printed, put the sheet stack in the manual feed tray for the second half(1). Be aware that there is a time out for manually fed jobs, usually short, hence do not miss the moment when the printer asks for the stack. If ever you missed that moment, see option `--back' to recover the second half. 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: -o FILE -- Option: --output=FILE specify the FILE in which is saved the output. -- Option: -n -- Option: --no-fix `psmandup' will fail on ill designed PostScript (well, actually the psutils will). To avoid this, by default the PostScript file is sanitized by `fixps'. When given this option, don't run `fixps'. This is meant to be used when `fixps' has already been used higher in the processing chain. -- Option: -f -- Option: --front Output only the front pages, with no special PostScript feature request. -- Option: -b -- Option: --back Output only the back pages, with a manual feed request. This option is especially useful when the manual feed time out expired before you could insert back the stack in the manual feed tray. `psmandup' assumes the printer is Level 2, and supports manual feeding. The FILE should be reasonably sane, otherwise `psmandup' fails miserably. Typical use is psmandup file.ps | lp or can be put into a2ps' printer commands (*note Your Printers::). ---------- Footnotes ---------- (1) Many people seem to ignore that you can insert *several* sheets in the manual feed tray. Try at least once, it will save you from hours spent feeding page per page by hand!  File: a2ps.info, Node: psset, Prev: psmandup, Up: Contributions 9.6 `psset' =========== The shell script `psset' inserts calls to `setpagedevice' in a PostScript file. This is useful for instance to add Tumble or Manual feed request. Actually, `psmandup' uses `psset'. You should know nevertheless that a2ps is able to make the calls to `setpagedevice' by itself, i.e., you can run `a2ps -SManualFeed foo' to print `foo' onto the manually fed tray, or run `a2ps -s2 foo' to print Duplex. There are no need of `psset' from a2ps. * Menu: * Invoking psset:: Command Line Interface  File: a2ps.info, Node: Invoking psset, Up: psset 9.6.1 Invoking `psset' ---------------------- psset [OPTIONS] [FILE] produce a version of the PostScript FILE (or of the standard input if no FILE is given, or if FILE is `-') that makes protected calls to the PostScript operator `setpagedevice'. Typical use is making FILE print duplex, or on the manual tray etc. The call is protected so that the resulting file is safe, i.e., will still be portable, even with requests such as `-Sfoo:bar'. It is safe to run `psset' with no feature requests. Depending upon the option `--no-fix', it is either equivalent to doing nothing, or to running `fixps' (*note fixps::). 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: -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: -n -- Option: --no-fix `psset' will fail on ill designed PostScript. Actually it is the psutils that fail. To avoid this, by default the PostScript file is sanitized by `fixps'. When given this option, don't run `fixps'. This is meant to be used when `fixps' has already been used higher in the processing chain. -- Option: -S KEY:VALUE -- Option: --setpagedevice=KEY:VALUE Insert a `setpagedevice' call setting KEY to VALUE. Multiple values accumulate. Lists of requests separated with `;' are valid (e.g., `-SDuplex:true;Tumble:false'). -- Option: -a PAGE -- Option: --at=PAGE Specify the page where the `setpagedevice' call should be done. The PAGE 0, which is the default, corresponds to the `Setup' section of the document. More precisely, the insertion is performed at the end of the `Setup' section, so that if there are multiple calls to `psset' on the same document (which is of course, a bad idea), the last call is winning. In a typical use you should not change the PAGE. -- Option: -m -- Option: --manualfeed Alias for `-SManualFeed:true', i.e., the request to print using the manual feed tray. -- Option: -s -- Option: --simplex Alias for `-SDuplex:false', i.e., force simplex printing. -- Option: -d -- Option: --duplex Alias for `-SDuplex:true;Tumble:false', i.e., the request to print in duplex mode, binding along the long edge of the paper. -- Option: -t -- Option: --tumble Alias for `-SDuplex:true;Tumble:true', i.e., duplex printing such that binding should happen on the short edge of the medium.  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? --------------------------------- a2ps 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 jet 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? ----------------------------------------- a2ps 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: - 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: 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 * Non PostScript Printers:: Using GhostScript * 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: Non PostScript Printers, 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: Non PostScript Printers, Next: Man Pages with Underlines, Prev: Pass Options to lpr, Up: How Can I ...? 10.2.6 How Can I Print on Non PostScript Printers? -------------------------------------------------- I use a2ps at work and wish to use it at home, but my printer is not PostScript. How can I do? `Ghostscript' might be the tool you need (*note Glossary::). It support conversion to many different non PostScript printers. Here are some tips on how to use a non PostScript printer. If somebody feels like writing a more precise documentation, she really is welcome. Please refer to the `Ghostscript' documentation for a precise description of the tuning you need. Basically, the first step you need is to achieve to call `Ghostscript' in a pipe chain. In other words, try to find out the right arguments `Ghostscript' needs in order to print with a command like this: $ cat file.ps | gs MORE ARGUMENTS In general it is the same command as for calling `Ghostscript' with a filename, except that the file name to use is `-': $ cat file.ps \ | gs -q -dNOPAUSE -sDEVICE=deskjet -sOutputFile=- - -c quit\ | lp -dPRINTER-NAME Once it works, it is then easy to settle the right `Printer:' line in your configuration file (*note Your Printers::). For instance: Printer: djet \ | gs -q -dNOPAUSE -sDEVICE=deskjet -sOutputFile=- - -c quit\ | lp -d djet Christian Mondrup uses a2ps under Windows with a non PostScript printer. He uses: DefaultPrinter: | //c/gstools/gs5.10/Gswin32c.exe \ -Ic:\gstools\gs5.10;c:\gstools\gs5.10\fonts \ -sDEVICE=ljet4 -sPAPERSIZE=a4 -dNOPAUSE -r300 -dSAFER \ -sOutputFile="\\spool\HP LaserJet 5L (PCL)" \ -q - -c quit  File: a2ps.info, Node: Man Pages with Underlines, Prev: Non PostScript Printers, Up: How Can I ...? 10.2.7 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 * The Options Have Changed:: Respect The Users * Why not using yacc:: Why Using Style Sheets * Why do you not use mozilla:: Using remote commands  File: a2ps.info, Node: Is a2ps Y2K compliant?, Next: The Options Have Changed, Up: Please tell me... 10.3.1 Is a2ps Y2K compliant? ----------------------------- The famous Y2K(1) problem... Yes, a2ps is Y2K compliant... provided that you have either a version more recent than 4.10.3. The expansions of the following escapes were broken (giving `100' instead of `00'): `%D', `%W', `$D', `$W'. Nevertheless, please note that if you required a two digit year, expect to have `Jan 1st, 00' someday. *You* are responsible of the format you want for the date: *Note Escapes::. ---------- Footnotes ---------- (1) Year 2000.  File: a2ps.info, Node: The Options Have Changed, Next: Why not using yacc, Prev: Is a2ps Y2K compliant?, Up: Please tell me... 10.3.2 Why Have the Options Changed? ------------------------------------ The options of this a2ps are not the same as in the previous versions. True. But the old scheme (up to version 4.6.1) prevented us from offering more options. We *had* to drop it, and to fully redesign the options handling. Since that profound change, we try to change as little as possible between versions. Nevertheless, as the time passes, we discover that some never used options should be renamed, or used for something else. In these cases, compatibility code is left for a long time. Anywhere you put options but the command line (e.g., in a2ps configuration files or in shell scripts), *avoid using short options*, since short options are much more likely to be changed (there are not so many, so it is a precious resource). Since there are as many long options as one wants, we can leave compatibility code with the long options.  File: a2ps.info, Node: Why not using yacc, Next: Why do you not use mozilla, Prev: The Options Have Changed, Up: Please tell me... 10.3.3 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: Why do you not use mozilla, Prev: Why not using yacc, Up: Please tell me... 10.3.4 Why do you not use mozilla --------------------------------- To print with netscape (and other gecko browser as mozilla), we use remote commands (http://home.netscape.com/newsref/std/x-remote.html). But in mozilla, the remote command `saveas()' does not exist. And we cannot save open file as postscript file.  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' (http://www.cs.wisc.edu/~ghost/index.html), `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_ To may useful languages/formats: PDF, rewriting in portable PostScript or 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" (http://www.dcs.ed.ac.uk/home/ajcd/psutils/index.html) is a set of tools for PostScript post processing written by Angus Duggan (http://www.dcs.ed.ac.uk/home/ajcd/). 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. For some common cases (e.g., Micro$oft tools), Angus Duggan included in the package some tools (named `fix...ps') to fix typical problems. `fixps' is a collection of recipes on when to run what `fix' tool. "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 * Translators:: People who brought support of your tongue  File: a2ps.info, Node: History, Next: Thanks, Up: Genesis B.1 History =========== The initial version was a shell program written by Evan Kirshenbaum . It was very slow and contained many bugs. A new version was written in `C' by 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 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 generalized the pretty-printing capabilities, implemented more languages support, and other features.  File: a2ps.info, Node: Thanks, Next: Translators, Prev: History, Up: Genesis B.2 Thanks ========== Patrick Andries, from Alis Technologies inc. (http://www.alis.com/) and Roman Czyborra (see his home page (http://czyborra.com/)), provided us with important information on encodings. We strongly recommend that you go and read these pages: there is a lot to learn. 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. 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. Of course it doesn't sound right, yes it sounds a little childish, but we can tell you: we would *never* have the strength and the faith of building and maintaining a2ps without the support of all these guys. While a2ps is finally just a couple of bits on a hard disk, to us it is an adventure we live with other humans, and, boy, that's a darn good pleasure!  File: a2ps.info, Node: Translators, Prev: Thanks, Up: Genesis B.3 Translators =============== Some people worked on the translation of a2ps: - Daniele Ghiotti (Italian) - Tomek Burdziak (Polish) - Miguel A. Varo (Maintains Spanish and Catalan) - Michael Wiedmann (Maintains German) - Christian Kirsch (German) - Erwin Dieterich (German) - Juliusz Chroboczek (Polish) He is also the author of `Ogonkify' (*note Overview: (ogonkify)top.). - Marcel van der Laan (Dutch) - Lorenzo M. Catucci (Maintains Italian) - Choi Jun Ho (Korean) - Turgut Uyar (Turkish) - Jiri Pavlovsky (Maintains Czech) - Peter Nilsson (Maintains Swedish) - Pedro Miguel Marques Morais (Maintains Portugese) - Vladimir Vodolazkiy (Russian) has a home page (http://come.to/vodolaz). - Paulo Matos (Portugese) - Jon Ross (Maintains Norwegian) - Igor Furlan (Maintains Slovenian) - Marcin 'Qrczak' Kowalczyk (Polish) - Tijs van Bakel (Maintains Dutch) - Dmitry S. Sivachenko (Maintains Russian) - Yasuyuki Furukawa (Japanese) - Masayuki Hatta (Maintains Japanese)  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) * A2PS_CONFIG: Configuration Files. (line 8) * A2PS_VERBOSITY: Global Options. (line 72) * a2psrc: Configuration Files. (line 6) * Adobe: Glossary. (line 10) * AFM <1>: Glossary. (line 15) * AFM: Fonts Description Files. (line 7) * Alphabets: Alphabets. (line 6) * Angus Duggan: Glossary. (line 209) * 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 <1>: Glossary. (line 29) * DSC: Good and Bad PostScript. (line 6) * Duplex <1>: Glossary. (line 59) * Duplex: PostScript Options. (line 19) * DuplexNoTumble: Glossary. (line 59) * DuplexTumble: Glossary. (line 59) * EDF: Encoding Description Files. (line 6) * elm: Interfacing With a Mailer. (line 16) * Encoding <1>: Glossary. (line 72) * Encoding: Input Options. (line 58) * Escape: Your Variables. (line 6) * Escapes: Escapes. (line 6) * Face <1>: Glossary. (line 101) * Face: Faces. (line 6) * file: Special Printers. (line 6) * First Page: Introduction. (line 6) * Ghostscript: Glossary. (line 82) * gs: Glossary. (line 82) * Headers: Headings Options. (line 6) * Headings: Glossary. (line 105) * Include:: Including Configuration Files. (line 7) * Key: Glossary. (line 109) * key: Name and key. (line 6) * 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 120) * make_fonts_map.sh: Adding More Font Support. (line 6) * Map files: Map Files. (line 6) * Markers: Sequences. (line 6) * Medium: Glossary. (line 127) * Medium:: Your Media. (line 7) * Non PostScript printers: Your Printers. (line 61) * 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) * P-rule: Glossary. (line 201) * P-Rule: P-Rules. (line 6) * Page: Glossary. (line 135) * Page Description Language: Glossary. (line 138) * Page device: PostScript Options. (line 37) * Page prefeed: PostScript Options. (line 83) * Page Range: Input Options. (line 8) * PageLabelFormat:: Your Page Labels. (line 15) * paperconf: Sheet Options. (line 10) * PCL: Glossary. (line 145) * PFA file: Glossary. (line 148) * PFB file: Glossary. (line 152) * pine: Interfacing With a Mailer. (line 21) * PostScript: Glossary. (line 160) * PostScript Quality: Good and Bad PostScript. (line 6) * PPD file: Glossary. (line 180) * 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 191) * Prologue <1>: Glossary. (line 194) * Prologue: Input Options. (line 80) * psutils: Glossary. (line 209) * Raster Output Device: Glossary. (line 229) * Regular expression: Syntax for the P-Rules. (line 19) * rhs: P-Rules. (line 13) * Rule: P-Rules. (line 6) * Script: Glossary. (line 243) * Separator: Alphabets. (line 6) * Sequences: Sequences. (line 6) * setpagedevice: PostScript Options. (line 37) * Sheet: Glossary. (line 246) * sheets.map <1>: Name and key. (line 6) * sheets.map: Style Sheet Files. (line 6) * statusdict: PostScript Options. (line 56) * Style sheet <1>: Glossary. (line 250) * Style sheet: Style sheets semantics. (line 6) * Symbol conversion: Pretty Printing. (line 6) * TemporaryDirectory:: Your Internal Details. (line 10) * Tumble: Glossary. (line 255) * 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 258) * void: Special Printers. (line 6) * Water mark: Headings Options. (line 27)  Tag Table: Node: Top1747 Node: Introduction11512 Node: Description12947 Node: Reporting Bugs15000 Node: a2ps Mailing Lists16312 Node: Helping the Development18111 Node: User Guide20531 Node: Purpose21233 Node: How to print21476 Node: Basics for Printing22347 Node: Special Printers24775 Node: Using Delegations25650 Node: Printing Duplex27704 Node: Checking the Defaults29425 Node: Important parameters30784 Node: Localizing31411 Node: Interfacing32368 Node: Interfacing With a Mailer32699 Node: Netscape33889 Node: Invoking a2ps34498 Node: Options34955 Ref: Options-Footnote-136939 Node: Tasks Options37055 Node: Global Options40362 Node: Sheet Options43562 Node: Page Options46738 Node: Headings Options49621 Node: Input Options50588 Node: Pretty Print Options57085 Node: Output Options58849 Node: PostScript Options61429 Node: Escapes64630 Node: Use of Escapes65000 Node: Structure of the Escapes66084 Node: Available Escapes67731 Node: Configuration Files76238 Node: Including Configuration Files78355 Node: Your Library Path78953 Node: Your Default Options79729 Node: Your Media80576 Node: Your Printers81667 Node: Your Shortcuts84052 Node: Your PostScript magic number84866 Ref: Your PostScript magic number-Footnote-185656 Node: Your Page Labels85748 Node: Your Variables86555 Node: Defining Variables86981 Node: Predefined Variables88334 Node: Your Delegations90117 Node: Defining a Delegation90814 Ref: Defining a Delegation-Footnote-192707 Node: Guide Line for Delegations92776 Ref: Guide Line for Delegations-Footnote-195413 Node: Predefined Delegations95552 Node: Your Internal Details97360 Node: Library Files97747 Node: Documentation Format99265 Node: Map Files101162 Node: Font Files102625 Node: Fonts Map File103064 Node: Fonts Description Files103600 Node: Adding More Font Support104199 Node: Style Sheet Files105413 Node: Encodings107830 Node: What is an Encoding108288 Node: Encoding Files112185 Node: Encoding Map File112804 Node: Encoding Description Files113618 Node: Some Encodings116243 Node: Pretty Printing121283 Node: Syntactic limits122373 Node: Known Style Sheets122796 Node: Type Setting Style Sheets151085 Node: Symbol151697 Node: PreScript152237 Node: Syntax153130 Node: PreScript Commands153844 Node: PreScript examples155254 Node: PreTeX155609 Node: Special characters155936 Node: PreTeX Commands156626 Node: Differences with LaTeX158074 Node: TeXScript159018 Node: Faces160493 Node: Style sheets semantics161927 Node: Name and key162775 Node: Comments163613 Node: Alphabets163977 Node: Case sensitivity164483 Node: P-Rules164743 Node: Sequences167697 Node: Optional entries168196 Node: Style Sheets Implementation168611 Node: A Bit of Syntax169653 Node: Style Sheet Header173117 Node: Syntax of the Words174714 Node: Inheriting175704 Node: Syntax for the P-Rules176661 Node: Declaring keywords and operators178680 Node: Declaring sequences181021 Node: Checking a Style Sheet183892 Node: A tutorial on style sheets184993 Node: Example and syntax185803 Node: Implementation187064 Node: The Entry in sheets.map190533 Node: More Sophisticated Rules191417 Node: Distributed Style Sheets193619 Node: PostScript195261 Node: Good and Bad PostScript195849 Node: Page Device Options199644 Node: Statusdict Options200886 Node: Colors in PostScript201925 Node: a2ps PostScript Files202859 Node: Designing PostScript Prologues203324 Node: Definition of the faces204225 Node: Prologue File Format205714 Node: A prologue example206287 Node: Contributions208283 Node: card209071 Node: Invoking card209861 Node: Caution when Using card211452 Node: fixps211944 Node: Invoking fixps212574 Node: fixnt214043 Node: Invoking fixnt214653 Node: pdiff214863 Node: Invoking pdiff215333 Node: psmandup216386 Node: Invoking psmandup216966 Ref: Invoking psmandup-Footnote-1219022 Node: psset219204 Node: Invoking psset219812 Node: FAQ222612 Node: Why Does ...?223176 Node: It Prints Nothing223699 Node: It Prints in Simplex224879 Node: It Prints in Duplex225695 Node: It Does Not Fit on the Paper226403 Node: It Prints Junk226980 Node: It Says my File is Binary227826 Node: It Refuses to Change the Font Size229537 Node: How Can I ...?230354 Node: Leave Room for Binding230898 Node: Print stdin231149 Node: Change the Fonts231766 Node: The Old Option -b?232085 Node: Pass Options to lpr232583 Node: Non PostScript Printers233327 Node: Man Pages with Underlines235176 Node: Please tell me...235537 Node: Is a2ps Y2K compliant?235916 Ref: Is a2ps Y2K compliant?-Footnote-1236542 Node: The Options Have Changed236561 Node: Why not using yacc237636 Node: Why do you not use mozilla238778 Node: Glossary239206 Node: Genesis249342 Node: History249702 Node: Thanks250501 Node: Translators252536 Node: Copying254153 Node: Concept Index255982  End Tag Table a2ps-4.14/doc/version.texi0000644000175000017500000000013010735337375014761 0ustar mhattamhatta@set UPDATED 2 May 2007 @set UPDATED-MONTH May 2007 @set EDITION 4.14 @set VERSION 4.14 a2ps-4.14/doc/a2ps.texi0000644000175000017500000070364110616012445014144 0ustar mhattamhatta\input texinfo @c -*- texinfo -*- @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 http://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}}@c @end macro @end iftex @ifnottex @macro pack @value{PACKAGE}@c @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 @c TeX variants @macro LaTeX La@TeX{} @end macro @macro PreTeX Pre@TeX{} @end macro @macro TeXScript @TeX{}Script @end macro @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 * fixnt: (a2ps) fixnt. Fixing Microsoft NT PostScript Files * pdiff: (a2ps) pdiff. Produce Pretty Comparison of Files * psmandup: (a2ps) psmandup. Printing Duplex on Simplex Printers * psset: (a2ps) psset. Inserting calls to setpagedevice @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-1993 Miguel Santana Copyright @copyright{} 1995-2000 Akim Demaille, Miguel Santana Copyright @copyright{} 2007- Akim Demaille, Miguel Santana and Masayuki Hatta 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-1993 Miguel Santana Copyright @copyright{} 1995-2000 Akim Demaille, Miguel Santana Copyright @copyright{} 2007 Akim Demaille, Miguel Santana and Masayuki Hatta 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 * Netscape:: Interfacing with Netscape 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:: @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 * fixnt:: Fixing Microsoft NT PostScript Files * pdiff:: Produce Pretty Comparison of Files * psmandup:: Printing Duplex on Simplex Printers * psset:: Inserting calls to setpagedevice @code{card} * Invoking card:: Command Line Interface * Caution when Using card:: card runs commands @code{fixps} * Invoking fixps:: Command Line Interface @code{fixnt} * Invoking fixnt:: Command Line Interface @code{pdiff} * Invoking pdiff:: Command Line Interface @code{psmandup} * Invoking psmandup:: Command Line Interface @code{psset} * Invoking psset:: 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 * Non PostScript Printers:: Using GhostScript * Man Pages with Underlines:: Now it Prints With Italics Please tell me... * Is a2ps Y2K compliant?:: Printing dates in short format * The Options Have Changed:: Respect The Users * Why not using yacc:: Why Using Style Sheets Genesis * History:: Where does it come from * Thanks:: People who really helped * Translators:: People who brought support of your tongue @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 @href{@value{WWWHOME},@pack{} home page}. We plan to update the @href{http://www.gnu.org/software/a2ps/, GNU @pack{} 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 @href{@value{WWWHOME}/bugs.html,Known @pack{} 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{http://mail.gnu.org/mailman/listinfo/a2ps, a2ps}, @href{http://mail.gnu.org/mailman/listinfo/bug-a2ps, bug-a2ps}, @href{http://mail.gnu.org/mailman/listinfo/a2ps-patches, a2ps-patches}, and @href{http://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{http://www.dcs.ed.ac.uk/home/jec/ogonkify/missing.html, the list of missing characters} and @href{http://www.dcs.ed.ac.uk/home/jec/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 * Netscape:: Interfacing with Netscape @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 Netscape @subsection Netscape This is actually valid for any program that generates PostScript that you want to post-process with @pack{}. 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 Netscape 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{paperconf} 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}. @samp{A4dj}, @samp{Letterdj} are also defined for Desk Jet owners, since that printer needs bigger margins. The special @var{medium} @samp{libpaper} means that you want @pack{} to ask the library @code{libpaper} for the medium to use. This choice is valid only if @code{libpaper} was available when @pack{} was configured. See the man page of @code{paperconf} for more information. @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 the order, they are: @enumerate @item @cindex @samp{A2PS_CONFIG} the system configuration file (usually @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 Desk Jets # @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.#. # Here we address a printer which is not PostScript Printer: deskj | gs -q -sDEVICE=ljet3d -sOutputFile=- - \ | lpr -P laserwriter -h -l @end example @cindex Non PostScript printers MS-DOS users, and non-PostScript printer owners should take advantage in getting good configuration of these entries. @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 | fgrep 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 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. See @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/ @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 is actually taken from the web pages of @href{http://www.alis.com/, Alis Technologies inc.} 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 @href{http://www.alis.com/, 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 @PreTeX 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 @PreTeX 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 @PreTeX{}. 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 @PreTeX{}, it should be written @example If $\forall x \in E, x \in F$ then $E \subseteq F$. @end example @noindent for @LaTeX{}. Since in @PreTeX every @samp{$} is discarded (unless quoted by a @samp{\}), the second form is also admitted. @node TeXScript @subsection @TeXScript @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{@TeXScript}, 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 @TeXScript 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 @TeXScript 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 " @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} | ; @var{face} ::= @var{face-keyword} | ; @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 | ; @var{exceptions_opt} ::= exceptions are @var{rules} end exceptions | ; @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 * 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 * color.ps: Added box and underline routines. Mon Mar 17 20:39:11 1997 Akim Demaille * 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 * *.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 " 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 " 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 Fri Apr 25 14:05:20 1997 Akim Demaille @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 can not. 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 ( # -) /# @{ 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 ###### # ##### # # ####### # #### @c @node Programming with the Library, Contributions, PostScript, Top @c @chapter Programming with the Library @c @pack{} offers to the programmer an access to its generating routines. @c This section documents the API. @c But since this section is empty, or almost, if I were you, I would go in @c @file{contrib/sample} to see how it works... @c @menu @c * Initialization of liba2ps:: Initializing the library @c * Print Jobs:: An output session @c * File Jobs:: An input session @c * Printing Functions:: Specifying What to Print @c @end menu @c @node Initialization of liba2ps, Print Jobs, Programming with the Library, Programming with the Library @c @section Initialization and Closing of Calls to @code{liba2ps} @c @deftypefun {struct a2ps_job *} a2ps_job_new (void) @c Build a new storage unit for the library. @c @end deftypefun @c @deftypefun void a2ps_read_sys_config (struct a2ps_job * @var{job}) @c Set @var{job} with the default settings defined in the configuration @c file of the system. @c @end deftypefun @c @deftypefun void a2ps_read_config (struct a2ps_job * @var{job}, char * @var{path}, char * @var{filename}) @c Set @var{job} with the default settings defined in the configuration @c file @file{@var{path}/@var{filename}}. @var{path} can be @code{NULL}, @c @var{filename} cannot. @c @end deftypefun @c @node Print Jobs, File Jobs, Initialization of liba2ps, Programming with the Library @c @section Print Jobs @c A print job should be seen as associated to a single output. @c @deftypefun void a2ps_open_output_session (struct a2ps_job * @var{job}) @c Initialize @var{job} for a new print job. @c @end deftypefun @c @deftypefun void a2ps_close_output_session (struct a2ps_job * @var{job}) @c Closes the current print job, and sends the output. @c @end deftypefun @c @node File Jobs, Printing Functions, Print Jobs, Programming with the Library @c @section File Jobs @c A file job should be seen as a single input. @c @deftypefun void a2ps_new_input_session (struct a2ps_job * @var{job}, char * @var{name}) @c Create and open a new file job in @var{job}. @var{name} can be @c @code{NULL}, in which case its name is defaulted to that of @c @code{stdin}. @c @end deftypefun @c @deftypefun void a2ps_close_input_session (struct a2ps_job * @var{job}) @c End the current input session. @c @end deftypefun @c @node Printing Functions, , File Jobs, Programming with the Library @c @section Printing Functions @c These are the functions to be used to send content to @code{liba2ps}. @c @deftypefun void a2ps_print_char (struct a2ps_job * @var{job}, unsigned char @var{c}, face_t @var{face}) @c Print the char @var{c} in @var{face} in @var{job}. @c @end deftypefun @c @deftypefun void a2ps_print_string (struct a2ps_job * @var{job}, unsigned char * @var{string}, face_t @var{face}) @c Print the @code{C} string @var{string} in @var{face} in @var{job}. @c @end deftypefun @c @deftypefun void a2ps_print_buffer (struct a2ps_job * @var{job}, unsigned char * @var{buffer}, size_t len, face_t @var{face}) @c Print the @var{len} first characters contained in @var{buffer} with @c @var{face} into @var{job}. @c @end deftypefun @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 * fixnt:: Fixing Microsoft NT PostScript Files * pdiff:: Produce Pretty Comparison of Files * psmandup:: Printing Duplex on Simplex Printers * psset:: Inserting calls to setpagedevice @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{@pack{}-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{@pack{}-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. It makes heavy use of the @code{psutils}. It is a good idea to use @code{fixps} in the PostScript delegations. It first tries to make simple fixes, but some really broken files may require a much deeper treatment. If @code{fixps} feels the need for such a major surgery act, it may give up local changes and ask @code{Ghostscript} for a global rewriting. @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} -n @defvrx {Option} -@b{-}no-fix Don't actually fix the @var{file} but still honor all of the other options. In particular, @samp{fixps -qn @var{file}} is equivalent to @samp{cat @var{file}}. @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 fixnt @section @code{fixnt} @code{fixnt} (see its @href{http://www.itsm.uni-stuttgart.de/~bauer/fixnt.html}, home page) is maintained by @email{bauer@@itsm.uni-stuttgart.de, Holger Bauer} and @email{rath@@itsm.uni-stuttgart.de, Michael Rath}. It is meant to fix the problems of the PostScript files generated by the Microsoft PostScript driver under Windows NT (3.5 and 4.0). @code{fixps} is aware of the cases where @code{fixnt} should be used, hence you should not worry of when to use @code{fixnt}. @menu * Invoking fixnt:: Command Line Interface @end menu @node Invoking fixnt @subsection Invoking @code{fixnt} @example fixnt < @samp{file.ps} @end example @noindent sanitize the PostScript file @var{file.ps} and produce the result on the standard output. @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{@pack{}-options}] @end example @noindent make a pretty comparison between @var{file-1} and @var{file-2}. @var{@pack{}-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 psmandup @section @code{psmandup} I personally hate to print documents of hundreds of pages on a single sided printer. Too bad, here there are no Duplex printers. The idea is then simply first to print the odd pages, then the even in reversed order. To make sure one flips the page in the meanwhile, the second half should be printed from the manual feed tray. Make a shell script that automates this, and you get @code{psmandup}. @menu * Invoking psmandup:: Command Line Interface @end menu @node Invoking psmandup @subsection Invoking @code{psmandup} @example psmandup [@var{options}] [@var{file}] @end example @noindent produce a manual duplex version of the PostScript @var{file} (or of the standard input if no @var{file} is given, or if @var{file} is @samp{-}). Once the first half is printed, put the sheet stack in the manual feed tray for the second half@footnote{Many people seem to ignore that you can insert @strong{several} sheets in the manual feed tray. Try at least once, it will save you from hours spent feeding page per page by hand!}. Be aware that there is a time out for manually fed jobs, usually short, hence do not miss the moment when the printer asks for the stack. If ever you missed that moment, see option @samp{--back} to recover the second half. 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} -o @var{file} @defvrx {Option} -@b{-}output=@var{file} specify the @var{file} in which is saved the output. @end defvr @defvr {Option} -n @defvrx {Option} -@b{-}no-fix @code{psmandup} will fail on ill designed PostScript (well, actually the psutils will). To avoid this, by default the PostScript file is sanitized by @code{fixps}. When given this option, don't run @code{fixps}. This is meant to be used when @code{fixps} has already been used higher in the processing chain. @end defvr @defvr {Option} -f @defvrx {Option} -@b{-}front Output only the front pages, with no special PostScript feature request. @end defvr @defvr {Option} -b @defvrx {Option} -@b{-}back Output only the back pages, with a manual feed request. This option is especially useful when the manual feed time out expired before you could insert back the stack in the manual feed tray. @end defvr @code{psmandup} assumes the printer is Level 2, and supports manual feeding. The @var{file} should be reasonably sane, otherwise @code{psmandup} fails miserably. Typical use is @example psmandup file.ps | lp @end example @noindent or can be put into @pack{}' printer commands (@pxref{Your Printers}). @node psset @section @code{psset} The shell script @code{psset} inserts calls to @code{setpagedevice} in a PostScript file. This is useful for instance to add Tumble or Manual feed request. Actually, @code{psmandup} uses @code{psset}. You should know nevertheless that @pack{} is able to make the calls to @code{setpagedevice} by itself, i.e., you can run @samp{a2ps -SManualFeed foo} to print @file{foo} onto the manually fed tray, or run @samp{a2ps -s2 foo} to print Duplex. There are no need of @code{psset} from @pack{}. @menu * Invoking psset:: Command Line Interface @end menu @node Invoking psset @subsection Invoking @code{psset} @example psset [@var{options}] [@var{file}] @end example @noindent produce a version of the PostScript @var{file} (or of the standard input if no @var{file} is given, or if @var{file} is @samp{-}) that makes protected calls to the PostScript operator @code{setpagedevice}. Typical use is making @var{file} print duplex, or on the manual tray etc. The call is protected so that the resulting file is safe, i.e., will still be portable, even with requests such as @samp{-Sfoo:bar}. It is safe to run @code{psset} with no feature requests. Depending upon the option @samp{--no-fix}, it is either equivalent to doing nothing, or to running @code{fixps} (@pxref{fixps}). @c I am not sure people really need to know this. @c Because they have to protect themselves, the @code{PSUtils} hide the @c PostScript operator @code{setpagedevice}. Because @code{psset} needs @c this operator, it knows how to fool the @code{PSUtils}. Therefore you @c should be aware that it is much safer to run the @code{PSUtils} before @c @code{psset}. 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} -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} -n @defvrx {Option} -@b{-}no-fix @code{psset} will fail on ill designed PostScript. Actually it is the psutils that fail. To avoid this, by default the PostScript file is sanitized by @code{fixps}. When given this option, don't run @code{fixps}. This is meant to be used when @code{fixps} has already been used higher in the processing chain. @end defvr @defvr {Option} -S @var{key}:@var{value} @defvrx {Option} -@b{-}setpagedevice=@var{key}:@var{value} Insert a @code{setpagedevice} call setting @var{key} to @var{value}. Multiple values accumulate. Lists of requests separated with @samp{;} are valid (e.g., @samp{-SDuplex:true;Tumble:false}). @end defvr @defvr {Option} -a @var{page} @defvrx {Option} -@b{-}at=@var{page} Specify the page where the @code{setpagedevice} call should be done. The @var{page} 0, which is the default, corresponds to the @samp{Setup} section of the document. More precisely, the insertion is performed at the end of the @samp{Setup} section, so that if there are multiple calls to @code{psset} on the same document (which is of course, a bad idea), the last call is winning. In a typical use you should not change the @var{page}. @end defvr @defvr {Option} -m @defvrx {Option} -@b{-}manualfeed Alias for @samp{-SManualFeed:true}, i.e., the request to print using the manual feed tray. @end defvr @defvr {Option} -s @defvrx {Option} -@b{-}simplex Alias for @samp{-SDuplex:false}, i.e., force simplex printing. @end defvr @defvr {Option} -d @defvrx {Option} -@b{-}duplex Alias for @samp{-SDuplex:true;Tumble:false}, i.e., the request to print in duplex mode, binding along the long edge of the paper. @end defvr @defvr {Option} -t @defvrx {Option} -@b{-}tumble Alias for @samp{-SDuplex:true;Tumble:true}, i.e., duplex printing such that binding should happen on the short edge of the medium. @end defvr @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{@pack{} 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 jet 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{@pack{} 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: @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: @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 * Non PostScript Printers:: Using GhostScript * 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. @samp{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, @xref{Defining Variables}. Finally, you can use @samp{Printer:} several times to reach a printer with different @code{lpr} options. @node Non PostScript Printers @subsection How Can I Print on Non PostScript Printers? @quotation @i{I use @pack{} at work and wish to use it at home, but my printer is not PostScript. How can I do?} @end quotation @code{Ghostscript} might be the tool you need (@pxref{Glossary}). It support conversion to many different non PostScript printers. Here are some tips on how to use a non PostScript printer. If somebody feels like writing a more precise documentation, she really is welcome. Please refer to the @code{Ghostscript} documentation for a precise description of the tuning you need. Basically, the first step you need is to achieve to call @code{Ghostscript} in a pipe chain. In other words, try to find out the right arguments @code{Ghostscript} needs in order to print with a command like this: @example $ cat file.ps | gs @var{more arguments} @end example In general it is the same command as for calling @code{Ghostscript} with a filename, except that the file name to use is @samp{-}: @example $ cat file.ps \ | gs -q -dNOPAUSE -sDEVICE=deskjet -sOutputFile=- - -c quit\ | lp -d@var{printer-name} @end example Once it works, it is then easy to settle the right @code{Printer:} line in your configuration file (@pxref{Your Printers}). For instance: @example Printer: djet \ | gs -q -dNOPAUSE -sDEVICE=deskjet -sOutputFile=- - -c quit\ | lp -d djet @end example @email{scancm@@biobase.dk, Christian Mondrup} uses @pack{} under Windows with a non PostScript printer. He uses: @example DefaultPrinter: | //c/gstools/gs5.10/Gswin32c.exe \ -Ic:\gstools\gs5.10;c:\gstools\gs5.10\fonts \ -sDEVICE=ljet4 -sPAPERSIZE=a4 -dNOPAUSE -r300 -dSAFER \ -sOutputFile="\\spool\HP LaserJet 5L (PCL)" \ -q - -c quit @end example @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 * The Options Have Changed:: Respect The Users * Why not using yacc:: Why Using Style Sheets * Why do you not use mozilla:: Using remote commands @end menu @node Is a2ps Y2K compliant? @subsection Is @pack{} Y2K compliant? The famous Y2K@footnote{Year 2000.} problem... Yes, @pack{} is Y2K compliant... provided that you have either a version more recent than 4.10.3. The expansions of the following escapes were broken (giving @samp{100} instead of @samp{00}): @samp{%D}, @samp{%W}, @samp{$D}, @samp{$W}. Nevertheless, please note that if you required a two digit year, expect to have @samp{Jan 1st, 00} someday. @strong{You} are responsible of the format you want for the date: @xref{Escapes}. @node The Options Have Changed @subsection Why Have the Options Changed? @quotation @i{The options of this @pack{} are not the same as in the previous versions.} @end quotation True. But the old scheme (up to version 4.6.1) prevented us from offering more options. We @strong{had} to drop it, and to fully redesign the options handling. Since that profound change, we try to change as little as possible between versions. Nevertheless, as the time passes, we discover that some never used options should be renamed, or used for something else. In these cases, compatibility code is left for a long time. Anywhere you put options but the command line (e.g., in @pack{} configuration files or in shell scripts), @strong{avoid using short options}, since short options are much more likely to be changed (there are not so many, so it is a precious resource). Since there are as many long options as one wants, we can leave compatibility code with the long options. @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}). @node Why do you not use mozilla @subsection Why do you not use mozilla To print with netscape (and other gecko browser as mozilla), we use remote commands (http://home.netscape.com/newsref/std/x-remote.html). But in mozilla, the remote command @code{saveas()} does not exist. And we cannot save open file as postscript file. @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{http://www.cs.wisc.edu/~ghost/index.html, @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 To may useful languages/formats: PDF, rewriting in portable PostScript or 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{http://www.dcs.ed.ac.uk/home/ajcd/psutils/index.html, @dfn{psutils}} is a set of tools for PostScript post processing written by @href{http://www.dcs.ed.ac.uk/home/ajcd/, Angus Duggan}. 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. For some common cases (e.g., Micro$oft tools), Angus Duggan included in the package some tools (named @code{fix...ps}) to fix typical problems. @code{fixps} is a collection of recipes on when to run what @code{fix} tool. @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 * Translators:: People who brought support of your tongue @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. @node Thanks @section Thanks Patrick Andries, from @href{http://www.alis.com/,Alis Technologies inc.} and Roman Czyborra (see his @href{http://czyborra.com/, home page}), provided us with important information on encodings. We strongly recommend that you go and read these pages: there is a lot to learn. 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. 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{}. Of course it doesn't sound right, yes it sounds a little childish, but we can tell you: we would @strong{never} have the strength and the faith of building and maintaining @pack{} without the support of all these guys. While @pack{} is finally just a couple of bits on a hard disk, to us it is an adventure we live with other humans, and, boy, that's a darn good pleasure! @node Translators @section Translators Some people worked on the translation of @pack{}: @itemize @minus @include translators.texi @end itemize @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.14/doc/sheets.texi0000644000175000017500000007031110735337376014600 0ustar mhattamhatta@deftp {Style Sheet} {68000} (@file{68000.ssh}) 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}) 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}) Second level of highligthing (option @samp{-g})) substitutes the LaTeX symbols. @end deftp @deftp {Style Sheet} {Ada} (@file{ada.ssh}) 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}) Suitable for both @code{configure.in} 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}) bc is an arbitrary precision calculator language. @end deftp @deftp {Style Sheet} {Bourne Shell} (@file{sh.ssh}) Some classical program names, or builtin, are highlighted in the second level of pretty-printing. @end deftp @deftp {Style Sheet} {C} (@file{c.ssh}) 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}) 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}) This style covers the usual ChangeLog files. @end deftp @deftp {Style Sheet} {Claire} (@file{claire.ssh}) 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{http://www.ens.fr/~laburthe/claire.html,claire home page}. @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}) 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}) 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}) 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}) 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}) 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 http::/www.haskell.org/ @end deftp @deftp {Style Sheet} {HTML} (@file{html.ssh}) Written by Wesley J. Chun. This style is meant to pretty print HTML source files, not to simulate its interpretation (i.e., @samp{foo} 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. http://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}) This is meant for the Eiffel equivalent of the Makefiles. @end deftp @deftp {Style Sheet} {Lex} (@file{lex.ssh}) 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}) 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}) 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 Lübeck. 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}) 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.research.digital.com/SRC/modula-3/html/home.html,Modula 3 home page}. @end deftp @deftp {Style Sheet} {o2c} (@file{o2c.ssh}) @end deftp @deftp {Style Sheet} {Oberon} (@file{oberon.ssh}) 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.math.tau.ac.il/~laden/Oberon.html,The Oberon Reference Site}. @end deftp @deftp {Style Sheet} {Objective C} (@file{objc.ssh}) Written by Paul Shum. @end deftp @deftp {Style Sheet} {OCaml} (@file{ocaml.ssh}) Written by Markus Mott. 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}) 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}) 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}) 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}) 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}) 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}) Help is needed on this sheet. @end deftp @deftp {Style Sheet} {Promela} (@file{promela.ssh}) There is no way for this program to highlight send and receive primitives. @end deftp @deftp {Style Sheet} {Python} (@file{python.ssh}) 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{http://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 `http://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}) 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{http://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 `http://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 `http://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}) 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{http://www.icsi.berkeley.edu/~sather/index.html,Sather home page}. Heavy highlighting uses symbols for common mathematical operators. @end deftp @deftp {Style Sheet} {Scheme} (@file{scheme.ssh}) 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}) 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}) 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}) 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}) 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}) 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}) Tiger is a toy language that serves as example of the book @href{http://www.cs.princeton.edu/~appel/modern/,Modern Compiler Implementation} by Andrew W. Appel. @end deftp @deftp {Style Sheet} {tk} (@file{tk.ssh}) Written by 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 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}) 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{http://vag.vrml.org/VRML2.0/FINAL/spec/part1/grammar.html,Grammar Definition Version 2.0 ISO/IEC CD 14772}. @end deftp @deftp {Style Sheet} {wdiff} (@file{wdiff.ssh}) 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}) 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.14/doc/translators.txt0000644000175000017500000000234310604711306015507 0ustar mhattamhatta Daniele Ghiotti Italian Tomek Burdziak Polish mvaro@dlsi.ua.es Miguel A. Varo Maintains Spanish and Catalan mw@miwie.in-berlin.de Michael Wiedmann Maintains German ck@held.mind.de Christian Kirsch German bamse@gmx.de Erwin Dieterich German jec@dcs.ed.ac.uk Juliusz Chroboczek Polish He is also the author of @code{Ogonkify} (@pxref{top,,Overview,ogonkify,Ogonkify manual}). Marcel.van.der.Laan@home.ict.nl Marcel van der Laan Dutch lorenzo@argon.roma2.infn.it Lorenzo M. Catucci Maintains Italian junker@jazz.snu.ac.kr Choi Jun Ho Korean uyar@cs.itu.edu.tr Turgut Uyar Turkish pavlovsk@ff.cuni.cz Jiri Pavlovsky Maintains Czech pnidv96@student.hv.se Peter Nilsson Maintains Swedish pmmm@camoes.rnl.ist.utl.pt Pedro Miguel Marques Morais Maintains Portugese voldemarus@geocities.com Vladimir Vodolazkiy Russian has a @href{http://come.to/vodolaz, home page}. pjsm@students.fct.unl.pt Paulo Matos Portugese jonr@sdata.no Jon Ross Maintains Norwegian IgorF@ix.netcom.com Igor Furlan Maintains Slovenian qrczak@knm.org.pl Marcin 'Qrczak' Kowalczyk Polish smoke@casema.net Tijs van Bakel Maintains Dutch dima@Chg.RU Dmitry S. Sivachenko Maintains Russian furukawa@vinelinux.org Yasuyuki Furukawa Japanese mhatta@gnu.org Masayuki Hatta Maintains Japanese a2ps-4.14/doc/stamp-vti0000644000175000017500000000013010735337375014250 0ustar mhattamhatta@set UPDATED 2 May 2007 @set UPDATED-MONTH May 2007 @set EDITION 4.14 @set VERSION 4.14 a2ps-4.14/doc/contributors.txt0000644000175000017500000000571710616012445015701 0ustar mhattamhattaA Costa Aaron S. Hawley Alexander Mai Alix Lourme Ben Pavon Bertrand Orvoine Chris Adamo Christian Mondrup Christophe Continente Christopher K. Davis Craig Stevenson Denis Girou Didier Verna Dirk Reiners Dylan Thurston Emmanuel Briot Erik Erik Terpstra Evan Kirshenbaum Flavien Astraud Franck Lombardi Graham Jenkins Halvard Moe Hao Li Harry Katz Jens Henrik Leonhard Jensen Jim Diamond Jim Meyering Joachim Backes Johan Garpendahl Johan Vromans John Interrante Jonathan Flynn Juliusz Chroboczek Karl Berry Lance W. Patterson Larry Barbieri Larry Jones Larry W. Virden Lorenzo M. Catucci Mai Markku Rossi Masayuki Hatta Max Waterman Michael Taeschner Mike Keenan Nelson H. F. Beebe Nix Oscar Nierstrasz Paul Shum Pavel Roskin Peter Bartke Peter Leven Philip J Hollenback Roderich Schupp Rudolf Cejka Samuel Tardieu Scott Henry Scott Lurndal Scott Pakin Sebastien Vandenbergh Shem Ogadhoh Stefan Weber Stephen Coffin Stephen Dowdy Steven Michael Robbins Thomas Parmelan Thomas Quinot Tim Clark Timo Karjalainen Tristan Gingold Tullemans Wstahw Zdenek Sekera a2ps-4.14/doc/ps-ref/0000755000175000017500000000000010735337375013603 5ustar mhattamhattaa2ps-4.14/doc/regex.info0000644000175000017500000036436510735337376014420 0ustar mhattamhattaThis is regex.info, produced by makeinfo version 4.11 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 `' 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) * \ <1>: List Operators. (line 6) * \: The Backslash Character. (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) * \`: Match-beginning-of-buffer Operator. (line 6) * \B: Match-within-word Operator. (line 6) * \b: Match-word-boundary Operator. (line 6) * \S: Match-not-syntactic-class Operator. (line 6) * \s: Match-syntactic-class Operator. (line 6) * \W: Match-non-word-constituent Operator. (line 6) * \w: Match-word-constituent Operator. (line 6) * \{: Interval Operators. (line 6) * \|: Alternation Operator. (line 6) * \}: Interval Operators. (line 6) * ]: List Operators. (line 6) * ^ <1>: Match-beginning-of-line Operator. (line 6) * ^: List 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 <1>: Match-end-of-line Operator. (line 6) * anchors: Match-beginning-of-line Operator. (line 6) * Awk: Predefined Syntaxes. (line 11) * back references: Back-reference Operator. (line 6) * backtracking <1>: Alternation Operator. (line 25) * backtracking: Match-zero-or-more Operator. (line 35) * 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 59) * 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) * fastmap_accurate field, set by re_compile_pattern: GNU Regular Expression Compiling. (line 71) * fastmaps: Searching with Fastmaps. (line 6) * 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 30) * nonmatching list: List Operators. (line 6) * not_bol field in pattern buffer: Match-beginning-of-line Operator. (line 26) * 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 11) * range argument to re_search: GNU Searching. (line 20) * 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 83) * RE_DOT_NOT_NULL: Syntax Bits. (line 87) * RE_INTERVALS: Syntax Bits. (line 91) * RE_LIMITED_OPS: Syntax Bits. (line 95) * RE_NEWLINE_ALT: Syntax Bits. (line 100) * RE_NO_BK_BRACES: Syntax Bits. (line 104) * RE_NO_BK_PARENS: Syntax Bits. (line 111) * RE_NO_BK_REFS: Syntax Bits. (line 117) * RE_NO_BK_VBAR: Syntax Bits. (line 121) * RE_NO_EMPTY_RANGES: Syntax Bits. (line 126) * re_nsub field, set by re_compile_pattern: GNU Regular Expression Compiling. (line 68) * 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 131) * 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) * regex.c: Overview. (line 37) * regex.h: Overview. (line 37) * 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) * 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 65) * 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 62) * word boundaries, matching: Match-word-boundary Operator. (line 6) * {: Interval Operators. (line 6) * |: Alternation Operator. (line 6) * }: Interval Operators. (line 6)  Tag Table: Node: Top1174 Node: Overview4672 Node: Regular Expression Syntax6859 Node: Syntax Bits8031 Node: Predefined Syntaxes14140 Node: Collating Elements vs. Characters17938 Node: The Backslash Character18907 Ref: The Backslash Character-Footnote-121267 Node: Common Operators22060 Node: Match-self Operator23514 Node: Match-any-character Operator24015 Node: Concatenation Operator24601 Node: Repetition Operators25104 Node: Match-zero-or-more Operator25529 Node: Match-one-or-more Operator27587 Node: Match-zero-or-one Operator28454 Node: Interval Operators29318 Node: Alternation Operator31125 Node: List Operators32630 Ref: List Operators-Footnote-135215 Node: Character Class Operators35416 Node: Range Operator37056 Ref: Range Operator-Footnote-138960 Node: Grouping Operators39095 Node: Back-reference Operator40419 Node: Anchoring Operators43248 Node: Match-beginning-of-line Operator43628 Node: Match-end-of-line Operator44970 Node: GNU Operators45719 Node: Word Operators45970 Node: Non-Emacs Syntax Tables46599 Node: Match-word-boundary Operator47684 Node: Match-within-word Operator48087 Node: Match-beginning-of-word Operator48494 Node: Match-end-of-word Operator48837 Node: Match-word-constituent Operator49167 Node: Match-non-word-constituent Operator49503 Node: Buffer Operators49824 Node: Match-beginning-of-buffer Operator50237 Node: Match-end-of-buffer Operator50545 Node: GNU Emacs Operators50835 Node: Syntactic Class Operators51180 Node: Emacs Syntax Tables51592 Node: Match-syntactic-class Operator52257 Node: Match-not-syntactic-class Operator52864 Node: What Gets Matched?53464 Node: Programming with Regex54115 Node: GNU Regex Functions54555 Node: GNU Pattern Buffers55402 Ref: GNU Pattern Buffers-Footnote-158475 Node: GNU Regular Expression Compiling58571 Node: GNU Matching61461 Node: GNU Searching63390 Node: Matching/Searching with Split Data65211 Node: Searching with Fastmaps66676 Node: GNU Translate Tables69238 Ref: GNU Translate Tables-Footnote-171093 Node: Using Registers71218 Node: Freeing GNU Pattern Buffers77336 Node: POSIX Regex Functions77938 Node: POSIX Pattern Buffers78617 Node: POSIX Regular Expression Compiling79069 Node: POSIX Matching83201 Node: Reporting Errors85163 Node: Using Byte Offsets86430 Node: Freeing POSIX Pattern Buffers87252 Node: BSD Regex Functions87866 Node: BSD Regular Expression Compiling88291 Node: BSD Searching89670 Node: Copying90380 Node: Index109532  End Tag Table a2ps-4.14/doc/sample.eps0000644000175000017500000003762307440740400014376 0ustar mhattamhatta%!PS-Adobe-3.0 EPSF %%Title: foo %%For: Akim Demaille %%Creator: a2ps 4.11.0a %%CreationDate: 98-12-30 22:45:04 %%BoundingBox: 24 24 100 258 %%DocumentData: Clean7Bit %%Orientation: Landscape %%DocumentNeededResources: font Courier %%+ font Courier-Bold %%+ font Courier-BoldOblique %%+ font Courier-Oblique %%+ font Helvetica %%+ font Helvetica-Bold %%+ font Helvetica-BoldOblique %%+ font Palatino-Roman %%+ font Symbol %%+ font Times-Bold %%DocumentProcessColors: Black %%DocumentSuppliedResources: encoding ISO-8859-1Encoding %%+ procset a2ps-a2ps-hdr %%+ procset a2ps-base-Prolog %%+ procset a2ps-black+white-text %%+ procset a2ps-simple-hdr %%EndComments /a2psdict 200 dict def a2psdict begin %%BeginProlog %%Copyright: (c) 1988, 89, 90, 91, 92, 93 Miguel Santana %%Copyright: (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana %%BeginResource: procset a2ps-base-Prolog 2.0 1 % 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 % Make sure to have the rect* procset (not available in PS level 1) % Because the Red bible says *not* to name the compatibility versions % with the same name as the original operators, the `rect*' series is % here spelled `box*' /rectfill where { %ifelse pop /boxfill /rectfill load def /boxstroke /rectstroke load def /boxclip /rectclip load def }{ %ifelse /*buildrect { dup type /integertype eq 1 index type /realtype eq or { %ifelse 4 -2 roll moveto dup 0 exch rlineto exch 0 rlineto neg 0 exch rlineto closepath }{ %else dup type /arraytype eq { aload length 4 div cvi { %repeat *buildrect } repeat } if } ifelse } bind def /boxfill { %def gsave *buildrect fill grestore } bind def /boxstroke { %def gsave *buildrect stroke grestore } bind def /boxclip { %def newpath *buildrect clip newpath } bind def } ifelse % Make sure to have selectfont (not in PS level 1) /selectfont where { pop }{ %ifelse /selectfont { %def exch findfont exch scalefont setfont } bind def } ifelse % 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 dup 0 eq { % if % If there is nothing to show, don't pop pop }{ % else % 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 } ifelse } bind def % Return the y size of the current font % - => fontsize /currentfontsize { currentfont /FontMatrix get 3 get 1000 mul } 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 % Define these in case they're not in the FontInfo (also, here % they're easier to get to. /UnderlinePosition 1 def /UnderlineThickness 1 def % Get the underline position and thickness if they're defined. currentdict /FontInfo known { FontInfo dup /UnderlinePosition known { dup /UnderlinePosition get 0 exch FontMatrix transform exch pop /UnderlinePosition exch def } if dup /UnderlineThickness known { /UnderlineThickness get 0 exch FontMatrix transform exch pop /UnderlineThickness exch def } if } if currentdict end } bind 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 lh sub store x0 y0 moveto } bind def % Function N: show and move to the next line /N { Show /y0 y0 lh sub store x0 y0 moveto } bind def /S { Show } bind def %%EndResource %%BeginResource: procset a2ps-simple-hdr 2.0 2 10 dict dup begin %%Copyright: (c) 1988, 89, 90, 91, 92, 93 Miguel Santana %%Copyright: (c) 1995, 96, 97 Akim Demaille, Miguel Santana % Function water: prints a water mark in background /water { %def gsave width 2 div height 2 div moveto height width atan rotate fTimes-Bold 100 scalefont setfont .97 setgray dup stringwidth pop 2 div neg -50 rmoveto show grestore } bind def % Function rhead: prints the header /rhead { %def fHelvetica top .6 mul scalefont setfont 0 height top .8 mul sub moveto show width 2 div height top .8 mul sub moveto c-show width height top .8 mul sub moveto l-show } bind def % Function footer (lf cf rf -> -) /footer { fHelvetica bottom .6 mul scalefont setfont 0 bottom .2 mul moveto show width 2 div bottom 0.2 mul moveto c-show width bottom 0.2 mul moveto l-show } bind def /before { water } bind def % after - /after { footer rhead % gsave % 1 1 0 setrgbcolor % left bottom width right left add sub height top bottom add sub boxstroke % grestore } bind def end % of plain dict %%EndResource /page_dict exch def 10 dict dup begin %%BeginResource: procset a2ps-a2ps-hdr 2.0 2 %%Copyright: (c) 1988, 89, 90, 91, 92, 93 Miguel Santana %%Copyright: (c) 1995, 96, 97 Akim Demaille, Miguel Santana % Function title: prints page header. % are passed as argument /title { % 1. Draw the good old gray box [ 0 height top sub width top ] dup gsave 0.95 setgray boxfill % We use the left margin as the width of the box left setlinewidth 0 setgray boxstroke grestore % Move inside the box 0 height top 0.7 mul sub moveto % stk: ct rt lt fHelvetica top 0.6 mul scalefont setfont % 3. The left title gsave % (XX) is used to leave some room between the items dup stringwidth pop (XX) stringwidth pop add exch % leave space took on stack % Move a bit so that we are not colliding with the border (X) stringwidth pop 0 rmoveto show % left title grestore exch % stk: ct ltw rt % 4. the right title gsave % (XX) is used to leave some room dup width 0 rmoveto stringwidth pop (XX) stringwidth pop add exch % leave space took on stack % Move a bit so that we are not colliding with the border (X) stringwidth pop neg 0 rmoveto l-show % right title grestore % stk: ct ltw rtw % 5. the center title gsave width 3 1 roll % stk: ct width ltw rtw 3 copy % Move to the center of the left room sub add 2 div 0 rmoveto % What is the available space in here? add sub top 0.8 mul sub top 0.8 mul sub % stk: ct space_left fTimes-Bold top 0.8 mul scalefont setfont cfshow grestore } bind def % Function border: prints virtual page border /border { %def gsave % We use the left margin as the width of the box left setlinewidth 0 0 width height boxstroke grestore } bind def % before - /after { title border } bind def end %%EndResource /virtual_dict exch def %%BeginResource: procset a2ps-black+white-text 3.0 1 /p { false UL false BX fCourier bfs scalefont setfont Show } bind def /sy { false UL false BX fSymbol bfs scalefont setfont Show } bind def /k { false UL false BX fCourier-Oblique bfs scalefont setfont Show } bind def /K { false UL false BX fCourier-Bold bfs scalefont setfont Show } bind def /c { false UL false BX fCourier-Oblique bfs scalefont setfont Show } bind def /C { false UL false BX fCourier-BoldOblique bfs scalefont setfont Show } bind def /l { false UL false BX fCourier-Oblique bfs scalefont setfont Show } bind def /L { false UL false BX fHelvetica-Bold bfs scalefont setfont Show } bind def /str { false UL false BX fPalatino-Roman,Times-Roman bfs scalefont setfont Show } bind def /e { false UL true BX fHelvetica-BoldOblique bfs scalefont setfont Show } bind def %%EndResource %%EndProlog %%BeginSetup %%IncludeResource: font Courier %%IncludeResource: font Courier-Bold %%IncludeResource: font Courier-BoldOblique %%IncludeResource: font Courier-Oblique %%IncludeResource: font Helvetica %%IncludeResource: font Helvetica-Bold %%IncludeResource: font Helvetica-BoldOblique %%IncludeResource: font Palatino-Roman %%IncludeResource: font Symbol %%IncludeResource: font Times-Bold %%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 % Initialization of a2ps variables page_dict begin /width 234.168 def /height 76.6921 def /left -0 def /right -0 def /top 15 def /bottom 15 def end % of page_dict virtual_dict begin /width 234.168 def /height 46.6921 def /left 0.784 def /right 0.784 def /top 15.51 def /bottom 1 def end % of virtual_dict /bfs 7.97132 def /lh 7.97132 def /cw 4.78279 def % Dictionary for ISO-8859-1 support /iso1dict 9 dict begin /fCourier ISO-8859-1Encoding /Courier reencode_font /fCourier-Bold ISO-8859-1Encoding /Courier-Bold reencode_font /fCourier-BoldOblique ISO-8859-1Encoding /Courier-BoldOblique reencode_font /fCourier-Oblique ISO-8859-1Encoding /Courier-Oblique reencode_font /fHelvetica ISO-8859-1Encoding /Helvetica reencode_font /fHelvetica-Bold ISO-8859-1Encoding /Helvetica-Bold reencode_font /fHelvetica-BoldOblique ISO-8859-1Encoding /Helvetica-BoldOblique reencode_font /fPalatino-Roman,Times-Roman ISO-8859-1Encoding /Palatino-Roman reencode_font /fTimes-Bold ISO-8859-1Encoding /Times-Bold 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 /sx 0 def /x0 0 def /y0 0 def %%EndSetup %%Page: (1) 1 %%BeginPageSetup /pagesave save def 100.692 24 translate 90 rotate %%EndPageSetup gsave iso1dict begin page_dict begin () before end % of page_dict % Move to the corner of the inside page heading area -0 15 translate gsave % begin virtual 0 0 translate /x0 4.68832 store /y0 22.9222 store x0 y0 moveto (This is the ) p (Text Body) L n (Which can use different ) p (Faces) K (, and even include) p n (special characters such as ) S (\334) sy (, ) p (\251) sy ( etc.) p n virtual_dict begin (Center Title) (Left Title) (Left Title) after end % of virtual_dict grestore % end virtual % End of the virtual pages section grestore page_dict begin (Header) () () (Right Footer) (Center Footer) (Left Footer) after end % of page_dict end % of iso1dict pagesave restore %%Trailer end % of a2ps_dict %%EOF a2ps-4.14/doc/make-authors.pl0000755000175000017500000000466210616012445015341 0ustar mhattamhatta#! /usr/local/bin/perl -w # Produce the list of the translators for the AUTHORS file. local ($mail, $name, $lang, $comment, %authors); sub title { $line = shift; $line =~ s/(.)/$1\b$1/g; print "$line\n"; } $translator_file = "translators.txt"; # List of the people who wrote the package title "Authors of this package."; print <<'EOC'; * Miguel Santana * Akim Demaille EOC print "\n"; # List of the people who maintain the package title "Interim Maintainer"; print <<'EOC'; * Masayuki Hatta EOC print "\n"; # List of the people who helped the translation title "Translators"; open (STDIN, $translator_file) || die "Could not open `$translator_file': $1\n"; while (<>) { chop ; ($mail, $name, $lang, $comment) = split (' '); if ($mail) { $mail = ' <' . $mail . '>'; } else { $mail = ""; } print " * $name ($lang)$mail\n"; } print "\n"; # List of the people who wrote style sheets title "Style Sheets Authors"; open (STDIN, "grep 'written by' ../sheets/*.ssh|"); while (<>) { chop; ($file, $names) = split (':'); $file =~ s|^.*/||; $file =~ s/\.ssh//; $names =~ s/.*"(.*)".*/$1/g; foreach $name (split (',', $names)) { # We don't want to see demailles next if ($name =~ /Akim Demaille/); # Avoid extraneous white spaces $name =~ s/[ \t]+/ /g; $name =~ s/^ //; $name =~ s/ $//; $authors{$name} .= ($authors{$name} ? ', ' : '') . $file; } } foreach $name (sort (keys (%authors))) { $sheets = $authors{$name}; if ($name =~ /(<[^>@]+@[^>]+>)/) { $mail = $1; $name =~ s/$mail//; # Avoid extraneous white spaces $name =~ s/[ \t]+/ /g; $name =~ s/^ //; $name =~ s/ $//; $mail = " $mail"; } else { $mail = ""; } print " * $name ($sheets)$mail\n"; } print "\n"; # People who package the package title "Packagers / Ports"; print <<'EOC'; * Alexander Mai (OS/2 port) * Ansgar Duelmer (DOS) * Chuck Robey (FreeBSD) * Dirk Eddelbuettel (formerly Debian) * Masayuki Hatta (Debian) * Michael Williams (Mac OS X) * Paulo Matos (RPM) EOC print "\n"; title "Various"; print <<'EOC'; * Bruce Ingalls (a2ps-print.el) EOC a2ps-4.14/doc/encoding.texi0000644000175000017500000001105610735337376015074 0ustar mhattamhattaThe known encodings are: @deftp {Encoding} {ASCII} (@file{ascii.edf}) US-ASCII. @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.14/etc/0000755000175000017500000000000010735337377012417 5ustar mhattamhattaa2ps-4.14/etc/a2ps_cfg.in0000644000175000017500000003757410735322462014440 0ustar mhattamhatta# 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: A3 842 1190 Medium: A4 595 842 Medium: A5 420 595 Medium: B4 729 1032 Medium: B5 516 729 Medium: Letter 612 792 Medium: Legal 612 1008 Medium: Tabloid 792 1224 Medium: Ledger 1224 792 Medium: Statement 396 612 Medium: Executive 540 720 Medium: Folio 612 936 Medium: Quarto 610 780 Medium: 10x14 720 1008 # Desk Jet users: bigger margins Medium: A4dj 595 842 24 50 571 792 Medium: Letterdj 612 792 24 40 588 752 ################################################################# # 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 # # Calling AcrobatReader for PDF to PostScript. @COM_acroread@Variable: del.acroread \ @COM_acroread@ @acroread@ -toPostScript # Acrobat 4 lets us specify the medium, which is precious sometimes, and # that we should shrink the document to the size of the medium. @COM_acroread4@Variable: del.acroread \ @COM_acroread4@ @acroread@ -toPostScript -size "#wx#h" -shrink # 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 # We use a modified texi2dvi which accepts -b (--batch), -c (--clean), # and -l (--language). Variable: del.texi2dvi \ texi2dvi4a2ps -b -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 @COM_distill@Variable: ps2pdf distill -pairs -pagesize #w #h pts # # 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 | fgrep 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} # Delegated to Netscape # Pass HTML to Netscape, hoping that there is an Netscape running... # Tricks: # 1. Netscape can't output on stdout, hence use a tmp file (#f0) # 2. openfile refuses relative paths, so prepend cwd (%d) when relative # 3. remote 'openfile' -remote 'saveas' is bad, because it is handled # asynchronously, and the output can correspond to a previously # loaded page (not that of openfile). So run Netscape twice. # 4. It asks the user if s/he wants to replace an existing output file, # so rm before. @COM_PSUTILS@@COM_netscape@Delegation: Netscape html:ps \ @COM_PSUTILS@@COM_netscape@ if test -L /home/kcnarf/.netscape/lock; then \ @COM_PSUTILS@@COM_netscape@ rm -f #f0; \ @COM_PSUTILS@@COM_netscape@ if echo '$f' | grep '^/' >/dev/null 2>&1; then \ @COM_PSUTILS@@COM_netscape@ ${NETSCAPE:-netscape} -noraise -remote 'openfile($f)'; \ @COM_PSUTILS@@COM_netscape@ else \ @COM_PSUTILS@@COM_netscape@ ${NETSCAPE:-netscape} -noraise -remote 'openfile(%d/$f)'; \ @COM_PSUTILS@@COM_netscape@ fi && \ @COM_PSUTILS@@COM_netscape@ ${NETSCAPE:-netscape} -noraise -remote 'saveas(#f0,postscript)' && \ @COM_PSUTILS@@COM_netscape@ #{del.psselect} #f0 | #{del.psnup}; \ @COM_PSUTILS@@COM_netscape@ elif (which html2ps) >/dev/null 2>&1; then \ @COM_PSUTILS@@COM_netscape@ html2ps -D -o #f0 '$f' && #{del.psselect} #f0 | #{del.psnup}; \ @COM_PSUTILS@@COM_netscape@ else \ @COM_PSUTILS@@COM_netscape@ echo "cannot delegate html: Netscape and html2ps are not available" >&2; \ @COM_PSUTILS@@COM_netscape@ exit 1; \ @COM_PSUTILS@@COM_netscape@ fi ########## 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} # Delegated to AcrobatReader @COM_PSUTILS@@COM_acroread@Delegation: Acrobat pdf:ps \ @COM_PSUTILS@@COM_acroread@ #{del.acroread} < '$f' | #{del.psselnup} ########## 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, | psset -nt | \ ! 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} @LPR@ #{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} @LPR@ #{lp.options} @LPR_QUEUE_OPTION@ # 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.14/etc/Makefile.am0000644000175000017500000000316607516000377014447 0ustar mhattamhatta## -*- Makefile -*- ## Makefile for a2ps' etc library directory. 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 time stamp to know the version. README: README.in Makefile sed "s!@date@!`date`!g;s!@version@!$(VERSION)!g" \ $(srcdir)/README.in > README a2ps-4.14/etc/Makefile.in0000644000175000017500000003441110735337307014460 0ustar mhattamhatta# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 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@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = etc DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(srcdir)/a2ps-site.cfg.in $(srcdir)/a2ps_cfg.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/a2_psutils.m4 \ $(top_srcdir)/m4/atexit.m4 $(top_srcdir)/m4/file.m4 \ $(top_srcdir)/m4/fp_echo.m4 $(top_srcdir)/m4/fullpath.m4 \ $(top_srcdir)/m4/gccwarn.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gperf-check.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \ $(top_srcdir)/m4/lex.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/lpr.m4 \ $(top_srcdir)/m4/m4.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \ $(top_srcdir)/m4/perl.m4 $(top_srcdir)/m4/prereq.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/protos.m4 \ $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/rename.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/strcasecmp.m4 \ $(top_srcdir)/m4/strftim.m4 $(top_srcdir)/m4/termios.m4 \ $(top_srcdir)/m4/tterm.m4 $(top_srcdir)/m4/uintmax_t.m4 \ $(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/winsz.m4 \ $(top_srcdir)/m4/xstrtoumax.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/auxdir/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = a2ps_cfg a2ps-site.cfg SOURCES = DIST_SOURCES = 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 = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(pkgdatadir)" pkgdataDATA_INSTALL = $(INSTALL_DATA) DATA = $(pkgdata_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ COM_DISPLAY = @COM_DISPLAY@ COM_LATEX = @COM_LATEX@ COM_PS2PDF = @COM_PS2PDF@ COM_PSUTILS = @COM_PSUTILS@ COM_TEXI = @COM_TEXI@ COM_acroread = @COM_acroread@ COM_acroread4 = @COM_acroread4@ COM_bzip = @COM_bzip@ COM_bzip2 = @COM_bzip2@ COM_convert = @COM_convert@ COM_distill = @COM_distill@ 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_netscape = @COM_netscape@ COM_pdf2ps = @COM_pdf2ps@ COM_ps2pdf = @COM_ps2pdf@ COM_psnup = @COM_psnup@ COM_psselect = @COM_psselect@ COM_tex = @COM_tex@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ ENCODING = @ENCODING@ EXEEXT = @EXEEXT@ EXTENSIONS_FALSE = @EXTENSIONS_FALSE@ EXTENSIONS_TRUE = @EXTENSIONS_TRUE@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ F77 = @F77@ FFLAGS = @FFLAGS@ FILE_LINK = @FILE_LINK@ GMSGFMT = @GMSGFMT@ GNU_PACKAGE = @GNU_PACKAGE@ GPERF = @GPERF@ GREP = @GREP@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBVERSION = @LIBVERSION@ LN_S = @LN_S@ LPR = @LPR@ LPR_QUEUE_OPTION = @LPR_QUEUE_OPTION@ LTALLOCA = @LTALLOCA@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ M4 = @M4@ MAKEINFO = @MAKEINFO@ MEDIUM = @MEDIUM@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ POSUB = @POSUB@ PSFONT_PATH = @PSFONT_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ U = @U@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ YACC = @YACC@ YFLAGS = @YFLAGS@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ acroread = @acroread@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ 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@ bzip = @bzip@ bzip2 = @bzip2@ convert = @convert@ datadir = @datadir@ datarootdir = @datarootdir@ distill = @distill@ docdir = @docdir@ dvidir = @dvidir@ dvips = @dvips@ exec_prefix = @exec_prefix@ file_prog = @file_prog@ ghostview = @ghostview@ 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@ netscape = @netscape@ oldincludedir = @oldincludedir@ pdf2ps = @pdf2ps@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ ps2pdf = @ps2pdf@ psdir = @psdir@ psnup = @psnup@ psselect = @psselect@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ tex = @tex@ 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 \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu etc/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu etc/Makefile .PRECIOUS: 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__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ 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 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 distclean-libtool: -rm -f libtool uninstall-info-am: install-pkgdataDATA: $(pkgdata_DATA) @$(NORMAL_INSTALL) test -z "$(pkgdatadir)" || $(mkdir_p) "$(DESTDIR)$(pkgdatadir)" @list='$(pkgdata_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(pkgdataDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgdatadir)/$$f'"; \ $(pkgdataDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgdatadir)/$$f"; \ done uninstall-pkgdataDATA: @$(NORMAL_UNINSTALL) @list='$(pkgdata_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(pkgdatadir)/$$f'"; \ rm -f "$(DESTDIR)$(pkgdatadir)/$$f"; \ done tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(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: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_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 distclean-libtool dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-data-local install-pkgdataDATA install-exec-am: install-info: install-info-am install-man: 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 mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am uninstall-local uninstall-pkgdataDATA .PHONY: all all-am all-local check check-am clean clean-generic \ clean-libtool 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-exec install-exec-am install-info install-info-am \ install-man install-pkgdataDATA install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ uninstall-info-am uninstall-local uninstall-pkgdataDATA 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 time stamp 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.14/etc/a2ps-site.cfg.in0000644000175000017500000000500710735322462015303 0ustar mhattamhatta# 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@ # Default medium Options: --medium=@MEDIUM@ ################################################################# # 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 ), but # is not specified below as a special case. # 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 psmandup to simulate Duplex. #Printer: dominique level2 | #?d#psmandup -n|## #{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: netscape >netscape.ps # 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.14/etc/README.in0000644000175000017500000000176410735322462013701 0ustar mhattamhattaThe 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.14/ChangeLog0000644000175000017500000026746110735336330013422 0ustar mhattamhatta2007-12-29 Masayuki Hatta * Released 4.14. * ANNOUNCE: Updated. * AUTHORS: Updated. * README: Updated. * po/nl.po: Updated. * sheets/perl.ssh: Updated. * GNU a2ps is now licensed under GPLv3 or later. 2007-09-20 Masayuki Hatta * afm/*.afm, afm/MustRead.html: Replaced license-wise vague AFMs with newer ones with explicit permission by Adobe (found in Adobe-Core35_AFMs-314.tar.gz, obtained from http://www.ctan.org/tex-archive/fonts/adobe/afm/). See afm/MustRead.html for detail. Thanks for Matthias Kilian from OpenBSD and Karl Berry for pointing this out. * afm/fontsmap: Updated. * tests/gps-ref/Converter.ps, tests/ps-ref/Converter.ps: Removed since they are non-free. Thanks for Matthias Kilian for pointing this out. * tests/gps-ref/fasttrig.ps, tests/ps-ref/fasttrig.ps: ditto. 2007-05-02 Masayuki Hatta * ANNOUNCE: Updated for 4.14. * NEWS: Updated for 4.14. * configure.in: Updated for 4.14. * doc/contributors.txt: Updated for 4.14. * doc/make-authors.pl: Updated for 4.14. * doc/a2ps.texi: Chenged URL of a2ps homepage. 2007-05-01 Masayuki Hatta * ps/base.ps: Rewrote reencode procedure for use with Adobe Distiller. See http://article.gmane.org/gmane.comp.printing.a2ps.bugs/2583 for detail. * man/psset.x: Fixed a typo (psmandup -> psset). 2007-04-26 Masayuki Hatta * src/main.c: Added #include . * lib/jobs.c: ditto. * src/main.c* Removed _GNU_SOURCE related codes. 2007-04-22 Masayuki Hatta * tests/tstfiles/*: Removed/Replaced non-commercial only test files * tests/defs.in: ditto. * contrib/*.m4: Fixed insecure temporary directory usage. See http://bugs.debian.org/286385 and http://bugs.debian.org/286387 for detail. See also CVE-2004-1377. * contrib/texi2dvi4a2ps: ditto. * sheets/sheets.map: Commented the rule for SCCS out. See http://bugs.debian.org/280671 for detail. * sheets/mail.ssh: Now correctly handle some Received: lines. See http://bugs.debian.org/330665 for detail. 2007-04-08 Masayuki Hatta * lib/verify.h: Added, derived from gnulib. 2007-04-05 Masayuki Hatta * configure.in: Use AC_PROG_GPERF. * lib/path-concat.c: Casting malloc to char (for SGI IRIX with C89). * m4/Makefile.am: Added gperf-check.m4, derived from GNOME. * m4/gperf-check.m4: Added. * m4/protos.m4: Killed underquote warnings. * m4/perl.m4: ditto. * m4/malloc.m4: ditto. * m4/lpr.m4: ditto. * m4/termos.m4: ditto. * m4/libpaper.m4: ditto. * m4/lex.m4: ditto. * m4/fp_echo.m4: ditto. * m4/a2_psutils.m4: ditto. * m4/tterm.m4: ditto. * m4/winsz.m4: ditto. * ogonkify/m4/perl.m4: ditto. * src/main.c: Changed URL of the GNU a2ps web site. 2007-04-04 Masayuki Hatta * .prev-version: Updated. * lib/strtoimax.c: Added, derived from gnulib. * doc/make-authors.pl: Revised for actual use. * doc/contributors.txt: Updated. * doc/translators.txt: ditto. * THANKS: Updated. 2007-04-03 Masayuki Hatta * sheets/Makefile.am: Added ruby.ssh to minor_sheets. * sheets/sheets.map: Added Ruby support. * sheets/ruby.ssh: Added. http://www.terpnet.nl/ruby.ssh * encoding/encoding.map: Added CP1251 support. See http://bugs.debian.org/286571 for detail. * encoding/ms-cp1251.edf: Added. * po/POTFILES.in: Added lib/parseppd.c. * AUTHORS: Updated. 2007-02-12 Masayuki Hatta * contrib/emacs/a2ps.el: Don't load non-existent make-regexp.el. * etc/a2ps_cfg.in: Give correct option to newer GV. See http://bugs.debian.org/291749 for detail. * configure.in: Added ja to ALL_LINGUAS. * po/ja.po: Added. * ogonkify/ogonkify.in: Added GNUPLOT support for Ogonkify. See http://bugs.debian.org/194464 for detail. * ogonkify/doc/ogonkify.1: Fixed a typo. * sheets/Makefile.am: Added php.ssh to minor_sheets. * sheets/php.ssh: Added. http://www.aperiodic.net/phil/configs/a2ps/php.ssh * sheets/sheets.map: Added PHP support. * contrib/pdiff.m4: Use sh mode instead of ksh mode in Emacs. * contrib/pdiff.m4: Now pdiff can accept standard input. * contrib/psset.m4: Only escape leading speaces, not all leading characters. See http://bugs.debian.org/259210 for detail. * sheets/Makefile.am: Added rd.ssh, s.ssh and st.ssh to minor_sheets. * sheets/sheets.map: Added S & GNU R support. * sheets/rd.ssh: Added. * sheets/s.ssh: ditto. * sheets/st.ssh: ditto. * AUTHORS: Updated. * THANKS: Updated. * NEWS: Updated. 2007-02-11 Masayuki Hatta * lib/path-concat.c: Commented out "char *malloc();" (fix for building with gcc 3.4 or later). * ps/diffcolor.pro: Added diffcolor.pro (for diffs). * ps/Makefile.am: Included diffcolor.pro. * sheets/udiff.ssh: Improved highlighting for diffs. See http://bugs.debian.org/132044 for detail. * src/sheets-map.l: Fixed ``too many includes'' bug. See http://lists.gnu.org/archive/html/bug-a2ps/2002-01/msg00005.html for detail. * lib/printlen.c: Fixed va_list misuses which cause segfaults on powerpc and amd64. See http://bugs.debian.org/294905 for detail. * lib/title.c: ditto. * src/main.c: More user-friendly description on the default output and the -d option. See http://bugs.debian.org/193530 for detail. * src/select.c: Quote arguments to file(1). See http://bugs.debian.org/202673 for detail. See also http://www.debian.org/security/2004/dsa-612. 2006-11-15 Masayuki Hatta * etc/a2ps_cfg.in: Fixed wrong default values for deskjet printers. See http://bugs.debian.org/185775 for detail. 2006-11-10 Masayuki Hatta * src/main.c: Applied a build fix for IA64. See http://bugs.debian.org/125996 for detail. 2003-01-15 Franck Lombardi * doc/a2ps.texi: Add a FAQ entry "Why do you not use mozilla". 2003-01-10 Franck Lombardi * THANKS: Completed. 2003-01-01 Alix Lourme / Axel * sheets/sheets.map: Change the stratego binary rule : /*.str/ in /*.r/ 2002-12-29 Franck Lombardi * README-cvs: Update with Autoconf 2.57. 2002-12-28 Franck Lombardi * configure.in: Require Autoconf 2.57. Run AC_CHECK_DECLS([sys_siglist]) instead of AC_DECL_SYS_SIGLIST. * lib/signame.c: Require Autoconf 2.57. Use HAVE_DECL_SYS_SIGLIST instead of SYS_SIGLIST_DECLARED. 2002-12-27 Lourme Alix / Axel * sheets/stratego.ssh : Add new style for Stratego. From Nicolas Tisserand * sheets/sheets.map : Add binary rule str for Stratego 2002-11-24 Franck Lombardi * sheets/sheets.map: Change the binary rule /*tar*/ in /*.tar.*/ 2002-10-03 Franck Lombardi * src/main.c: Fixe SEGV when use one delegated job and one or more failled jobs. 2002-10-03 Franck Lombardi * sheets/matlab4.ssh: Add old style sheet for Matlab. 2002-09-26 Alix Lourme * sheets/matlab4.ssh: Removing old style sheet for Matlab. * sheets/matlab.ssh: Add new style sheet for Matlab. From Joakim Lubeck 2002-09-24 Alix Lourme * sheets/small.ssh: Add new style sheet for Small language. From Christophe Continente . 2002-09-19 Alix Lourme * sheets/pic16f84.ssh: Add new style sheet for PIC16F84 ASM language. From Aleksandar Veselinovic. 2002-09-19 Franck Lombardi * sheets/nasm.ssh: Add new style sheet for NASM language. From Aleksandar Veselinovic. 2002-09-19 Franck Lombardi * sheets/csharp.ssh: Add new style sheet for C# language. From Karen Christenson. 2002-09-18 Franck Lombardi * sheets/specc.ssh: Add new style sheet for SpecC language. From Hideaki Yokota 2002-09-18 Franck Lombardi * etc/a2ps_cfg.in: Add html2ps delegation if netscape don't run. * configure.in: Check if netscape and html2ps is installed and check if netscape support remote-command. 2002-09-16 Franck Lombardi * po/fr.po: Revision of french translation. 2002-09-04 Akim Demaille * lib/Makefile.am (confg.c): Fail if gperf cannot be run. Reported by Ed Arthur. 2002-09-04 Akim Demaille * m4: Remove the files no longer used when not shipping intl/. 2002-09-04 Franck Lombardi * doc/a2ps.texi: Remove space in -E option. 2002-09-04 Franck Lombardi * src/parsessh.y: Remove parse error with bison 1.49b 2002-09-04 Franck Lombardi * lib/options.c: If `-SFeature' then remove Feature Reported by Daniel Jonsson. 2002-09-03 Akim Demaille * mbrtowc.m4, mbstate_t.m4, prereq.m4: New. * configure.in: Forbid `^jm_[A-Z]'. 2002-09-02 Akim Demaille Gettext 0.11.5. * configure.in (AM_GNU_GETTEXT_VERSION): New macro, replacing GETTEXT_VERSION var. Bump version to 0.11.5. (AM_GNU_GETTEXT): Use external gettext. (AC_OUTPUT): Remove intl/Makefile. (AC_CHECK_FUNCS): Add setlocale. * Makefile.am (AUTOMAKE_OPTIONS): 1.6.3. (SUBDIRS): Remove intl. 2002-07-19 Akim Demaille * etc/Makefile.am (uninstall-local): Fix. * m4/Makefile.am (EXTRA_DIST): Ship intdiv0.m4. 2002-07-19 Akim Demaille * m4/file.m4: Pass -f to rm. * configure.in: Require Gettext 0.11.3 and Autoconf 2.53b. Run AM_INIT_AUTOMAKE before AC_CONFIG_HEADERS. * Makefile.am (AUTOMAKE_OPTIONS): Require 1.6.2. * bootstrap: Fix `contrib' setup. * m4/gettext-version.m4: New, to work around a Gettext 0.11.3 bug. * m4/c-bs-a.m4: Remove, now in Autoconf. 2002-04-18 Akim Demaille * bootstrap, README-cvs: New. * ogonkify: Fix the PERL look up. Adjust to Autoconf 2.53. 2002-03-25 Akim Demaille Gettext 0.11.1. * lib/Makefile.am (noinst_HEADERS): Add gettext.h. * lib/system.h: Use lib/gettext.h. * src/Makefile.am, contrib/sample/Makefile.am: @LIBINTL@ instead of @INTLLIBS@. 2002-03-25 Akim Demaille * contrib/texi2dvi4a2ps: Update form Texinfo 4.1c. 2002-03-25 Akim Demaille * src/lexps.l: Don't use option yylineno, as (i), we don't read it, and (ii), for unknown reasons (a bug IMHO), this causes Flex to use fixed size buffers, causing the weird `input buffer overflow, can't enlarge buffer because scanner uses REJECT' messages. Fixes Debian #81684. 2002-03-25 Akim Demaille * doc/a2ps.texi (a2ps Mailing Lists): Update. 2002-03-22 Akim Demaille * doc/a2ps.texi: s/^(\@node[^,]*),.*/$1/. 2002-03-22 Akim Demaille * configure.in: Bump to 4.13c. 2002-03-22 Akim Demaille * Makefile.am: Automake 1.6. * configure.ac: Autoconf 2.53. 2002-03-07 Akim Demaille * tests/inline.tst: lib/confg.c's inline is OK. 2002-03-05 Akim Demaille * tests/tstfiles/ehandler, tests/tstfiles/eplv_chkr.v, * tests/tstfiles/ex1.asn1, tests/tstfiles/s-garnam.adb, * tests/tstfiles/sqlinit.ora, tests/tstfiles/vrcaml.ml: Don't rely on RCS keywords, as it causes spurious differences. 2002-03-03 Akim Demaille * tests/ps-ref/sunproc.ps, tests/ps-ref/temp.ps, * tests/gps-ref/sunproc.ps, tests/gps-ref/temp.ps: Remove, as the corresponding test files are no longer used. 2002-03-02 Akim Demaille Have distcheck work. * afm/Makefile.am (fonts.map): Don't copy fonts.map.new, rename it. * doc/Makefile.am (CLEANFILES): Add a2ps.tmp and a2ps.tps. * ogonkify/Makefile.am (CLEANFILES): Add $(bin_SCRIPTS). 2002-03-02 Akim Demaille Start adjusting the newer GNU Build System. * configure.in: s/AM_FUNC_ERROR_AT_LINE/AC_FUNC_ERROR_AT_LINE/. s/AM_FUNC_OBSTACKS/AC_FUNC_OBSTACKS/. Adjust AC_CHECK_DECLS invocation. * Makefile.am (ACLOCAL_AMFLAGS): Pass `-I m4', as now we are using a regular aclocal.m4. * m4/atexit.m4, m4/malloc.m4, m4/strcasecmp.m4, m4/fullpath.m4, * m4/realloc.m4, m4/strftim.m4: Update to newer Autoconf. * src/ccstdc.m4, src/cond.m4, src/depend.m4, src/depout.m4, * src/error.m4, src/gettext.m4, src/header.m4, src/init.m4, * src/lcmessage.m4, src/libtool.m4, src/lispdir.m4, src/missing.m4, * src/obstack.m4, src/progtest.m4, src/sanity.m4: Remove, obsolete. * m4/m4.m4: New, from CVS Autoconf. 2000-02-08 Akim Demaille * src/lexps.l: Don't smash blank lines. * contrib/fixps.m4: Version 1.6. Don't try to smash blank lines, it can break some valid PostScript code. Reported by... * sheets/for77kwds.ssh (0.60): Remove `.' from alphabets. Moved `.these.' from keywords to operators. From Manfred Schwarb and Alexander Mai. 2000-02-06 Akim Demaille * contrib/texi2dvi4a2ps (usage): Follow the fp-standards. Start sentence in lower case, no final period. Split paragraphs of options. Document --output. (oname): New variable. (--output): New option. (prologue): Check that `--output' is used only when there is a single argument. (epiloque): Honor oname. * etc/a2ps_cfg.in (Delegations Texinfo, LaTeX): Use texi2dvi4a2ps' --output. This fixes a bug: if you had `foo.dvi' and used `a2ps foo.tex', a2ps removed `foo.dvi' Reported by Flavien Astraud. 2000-02-04 Akim Demaille * src/sheets-map.l ({key}): Add `-' so that one can use `foo-bar' in sheets.map. From Ilya Beylin. * arch/os2/README: Updated from Alexander. * arch/os2/config.h.os2: Likewise. * arch/os2/Makefile.os2: Likewise. * sheets/c.ssh (1.6): Handle `case' as an optional operator so that we never go further than the current line. Insert `case' as a plain Keyword_strong. * contrib/Makefile.am (.m4.in): Remove a trailing space in the sed which causes some `sed' to die. From Graham. * configure.in: Bump to 4.12l. * sheets/lout.ssh: New file. From Jean-Baptiste Nivoit. * sheets/mly.ssh: Likewise. * sheets/pov.ssh: Likewise. * sheets/haskell.ssh: New file. From Ilya Beylin. * sheets/sheets.map: Adjusted. 2000-02-04 Akim Demaille * configure.in (ad_REPLACE_FUNC_RENAME): Not ad_CHECK_FUNC_RENAME! From Alexander. * m4/rename.m4: Fixed the cache variable name. 2000-01-27 Akim Demaille * sheets/cxx.ssh: Added `export'. From Alexander Mai. * configure.in: Bump to 4.12k. * THANKS: Updated. * TODO: Updated. * contrib/card.m4: Don't forget to break out of the loops when success=:. From Alexander Mai. * a2ps.texi: Replaced @pack with @pack{} (newer texinfo.tex eat the space after @pack). Use @noindent at a few critical places. Beware the TeX wrapping. Updated at various places. * sheets/autoconf.ssh: Document. * src/main.c: We're in 2000 now. 2000-01-19 Paul Eggert Quote multibyte characters correctly. * lib/quotearg.c (ISGRAPH): Remove. (ISPRINT): New macro. (): Include if HAVE_MBRTOWC && HAVE_WCHAR_H. (isprint, mbrtowc, mbsinit, mbstate_t): New macros, defined if ! (HAVE_MBRTOWC && HAVE_WCHAR_H). (quotearg_buffer_restyled): New function, with most of the old quotearg_buffer's contents. Major rewrite to support multibyte characters. (quotearg_buffer): Now just calls quotearg_buffer_restyled. * m4/c-bs-a.m4: New file. * m4/prereq.m4 (jm_PREREQ_QUOTEARG): New macro. (jm_PREREQ): Use it. 2000-01-19 Akim Demaille Update to libtool 1.3.4. * auxdir/config.guess: Updated. * auxdir/config.sub: Updated. * auxdir/ltconfig: Updated. * auxdir/ltmain.sh: Updated. 2000-01-19 Akim Demaille Update OS/2 files. From Alexander Mai. * arch/os2/Makefile.os2: Updated. * arch/os2/README: Updated. * arch/os2/config.h.os2: Updated. 2000-01-16 Akim Demaille * configure.in: Check for distill and pdf2ps. Bump to 4.12j. * etc/a2ps_cfg.in (s1, simplex): New user options. * contrib/card.m4: Work around netscape's failure (it exits 255 when given -help). 2000-01-16 Akim Demaille Apply a patch written by Scott Pakin to display the number of lines which were wrapped. * lib/jobs.h (a2ps_job): Added lines_folded. * lib/jobs.c (a2ps_job_new): Initalize lines_folded to 0. * lib/psgen.c (fold_line): Update lines_folded. * src/generate.c (msg_job_pages_printed): Display the number of lines which were wrapped. 2000-01-13 Akim Demaille * ps/ul.pro: New file. * ps/fixed.pro: New file. * ps/Makefile.am (prologues): Added ul.pro and fixed.pro. * src/read.c (plain_getc): Support `x;\b;_' underlining. 1999-12-04 Akim Demaille * sheets/for77kwds.ssh: A comma was missing after atan2. From Sturle. * contrib/card.m4: Create the tmp dir under strict rights. From Dirk Eddelbuettel. * sheets/sheets.map (tex): Don't shadow DVI files. From Dirk too. * ogonkify/Makefile.am (DISTCLEANFILES): Add $(CREATED_PFAS). From Dirk again :) 1999-11-30 Akim Demaille Version 4.12h. * sheets/ocaml.ssh: New sheet. * sheets/caml.ssh: Emptied. Inherit from ocaml. 1999-11-25 Akim Demaille * sheets/cxx.ssh (1.4): Remove some non C++ keywords: all, dynamic, except, exception, overload, raise, raises, reraises. Reported by Falk Hueffner . * sheets/c.ssh (1.6): Include typeof too. * sheets/xs.ssh: New sheet. From Kestutis Kupciunas. * sheets/js.ssh: New sheet. From Scott Pakin . Updated to current syntax. * sheets/Makefile.am (minor_sheets): Added js.ssh, and xs.ssh. * src/sheets-map.l (obstack_hexa_grow, obstack_octal_grow): New functions, to factorize scanning. * src/select.c (struct pattern_rule): Added an `insensitive_p' flag. All dependencies changed. * sheets/sheets.map: Added the `i' tag to several rules. 1999-11-21 Akim Demaille Revamp the file sheets.map. * doc/a2ps.texi: Document. * sheets/sheets.map: Rewrite. * configure.in: Check for acroread 4. * etc/a2ps_cfg.in: Use it. * configure.in: Define DIRECTORY_SEPARATOR and PATH_SEPARATOR instead of DIR_SEP and PATH_SEP. All callers changed. * lib/xalloc.h: Prototype xstrndup. * src/xstrdup.c: Implement xstrndup. * m4/a2_psutils.m4: Fixed various bugs. * m4/fullpath.m4: Updated. 1999-10-25 Akim Demaille Version 4.12g. * sheets/sed.ssh: New file. * sheets/sheets.map: Add sed entry. 1999-10-21 Akim Demaille * contrib/shell.m4: The quote are now [ and ] as in Ad'HoC and in Autoconf, no longer [[ and ]], though it *was* smarter. * contrib/pdiff.m4: Change the a2ps options handling: they now have to be given after `--'. * contrib/card.m4 (arg_sep): Likewise. Reported by Joachim Backes, Jim Meyering, and Alexander Mai. 1999-10-12 Akim Demaille * configure.in: Version 4.12d. 1999-10-01 Akim Demaille * etc/a2ps_cfg.in: Changed the occurences of $f by '$f', so that we handle cleanly files with active shells characters or spaces in their names. Reported by FIXME: who? * doc/a2ps.texi (Guide Line for Delegations): Document the need for '$f'. 1999-09-25 Akim Demaille * etc/a2ps_cfg.in (UserOption): Added display. * sheets/sheets.map: Added rules for PDF via file(1). * src/select.c (get_command): Do a case insensitive globbing. Reported by Théo. * contrib/fixnt.l: Undefine malloc and realloc. Reported by Mike Keenan. * arch/os2: Updated. From Alexander Mai. 1999-09-22 Akim Demaille * configure.in: Call jm_AC_TYPE_UINTMAX_T. * lib/message.c (msg_verbosity_argmatch): Initialize res. * lib/confg.gperf (keyword_e): Remove Temporary directory. * lib/lister.c: Include more headers. And various other fixes suggested by Alexandre Mai. 1999-09-22 Akim Demaille Version 4.12b. 1999-09-19 Akim Demaille * Renamed check/ as tests/, since that's the usual name. All dependancies changed. 1999-09-18 Akim Demaille a2ps was handling the temporary directory by itself. Now it uses the system's default. Should help portability to micros. * lib/routines.h (tempname_ensure): Let arg1 of tempnam be NULL. All callers changed. * lib/common.h (struct a2ps_common_s): No longer include a member `tmpdir'. All callers changed. 1999-09-07 Akim Demaille * sheets/sml.ssh: Merged in parts of sml.ssh from Daniel Wang. * configure.in (PostScriptum): Display a more friendly message. People are afraid of reading a configuration file. 1999-09-02 Akim Demaille * contrib/psset.m4: When quiet, pass -q to fixps. * contrib/psmandup.m4: Likewise. Reported by Christopher K. Davis. 1999-08-31 Akim Demaille * lib/userdata.c (userdata_free): New function. * lib/jobs.c (a2ps_job_register_user): Use it. 1999-08-31 Akim Demaille * configure.in: Bump to 4.12b. * src/xmalloc.h: Remove, use Jim's xalloc.h only. All callers changed. * src/xstrdup.h: Removed. * src/version_etc: Allow for a different copyright owner. * lib/malloc.c: Imported from fileutils.c. * lib/realloc.c: Likewise. * lib/strtoull.c: Likewise. * lib/strtoumax.c: Likewise. * m4/Makefile.am.in: Likewise. * m4/README: Likewise. * m4/uintmax_t.m4: Likewise. * m4/ulonglong.m4: Likewise. * m4/xstrtoumax.m4: Likewise. * configure.in: Call jm_AC_PREREQ_XSTRTOUMAX. Reported by Alexander Mai. 1999-08-31 Akim Demaille Version 4.12a. * lib/userdata.c: New file, encapsulates getpwuid (getuid ()). * lib/jobs.c (a2ps_job_register_user): Use it. 1999-08-28 Akim Demaille * lib/message.c (msg_verbosity_argmatch): Return the result. Reported by Joachim Backes. * contrib/fixps.m4: Support option --dry-run, and -no-fix. * doc/a2ps.texi (Invoking fixps): Document them. * contrib/Makefile.am (EXTRA_DIST): Removed report.c which is no longer distributed. * sheets/sheets.map: Check gzip before roff to type correctly .../man/man1/a2ps.1.gz 1999-08-17 Akim Demaille * src/main.c (usage): Provide a few sample uses. Reported by Karl. 1999-08-16 Akim Demaille * contrib/fixnt.l: Updated from Holger. 1999-08-10 Akim Demaille * src/main.c (main): Implemented support for --list=which and glob. (usage): Reflect these news options. * src/main.c (usage): Undocument -V for --version, and -h for --help: short options are too precious. In the future there support may be dropped.. * lib/filtdir.c (filterdir): More generic. (filterdir_pattern): Removed. * man/Makefile.am (texi2dvi4a2ps.1): New file. 1999-08-09 Akim Demaille * src/main.c: Implemented support for --list=expand, but it is left undocumented for the time being. 1999-08-09 Akim Demaille * src/Makefile.am: -I$(srcdir) is needed for files with #line. 1999-08-09 Akim Demaille * src/ssheet.c (keyword_rule_new): Grouping operator must not be backslashed. 1999-08-08 Akim Demaille * src/main.c (RE_SYNTAX_A2PS): Change to a simpler form. * doc/a2ps.texi (Syntax for the P-Rules): Reflect this change. * sheets/cpproc.ssh: Implements CPP. * sheets/c.ssh: Inherit cpproc. * sheets/asm.ssh: Likewise. * sheets/*.ssh: Adapt to the new syntax of regular expressions. 1999-06-04 Akim Demaille * contrib/fixps.m4 (version): Check needed DSC comments depending upon PS or EPS. Reported by Sven Grundmann. 1999-05-31 Akim Demaille * src/ssheet.c (style_sheet_html_print_signature): Print correctly the separators of the ancestors list. 1999-05-29 Akim Demaille * src/ssheet.c (rule_new_internal_regexp): Don't use quotearg when reporting an error on regex: it obfuscates. (rule_new): Report filename and line when a regex fails to compile. All callers and callees changed. * lib/system.h: Extended and cleaned up. Removed several small auxialiary header files. 1999-05-28 Akim Demaille * sheets/b.ssh: New file, from Philippe Coucaud. * sheets/asn1.ssh: Likewise. * sheets/sheets.map: Added ASN.1 and B. 1999-05-24 Akim Demaille * configure.in: Check stdbool.h. * lib/a2ps.h: Don't define bool. * lib/system.h: Use fileutils' definition of booleans. * lib/xunistd.h: Removed. All callers changed. * lib/xsystypes.h: Likewise. * lib/xsysstat.h: Likewise. * lib/xstdlib.h: Likewise. * lib/xstdarg.h: Likewise. 1999-05-23 Akim Demaille * lib/Makefile.am (libitsources): Added closeout.c from fileutils. * src/version-etc.c: Stolen from fileutils 4.0h. * src/version-etc.h: Likewise. * src/long-options.h: Likewise. * src/long-options.c: Likewise. 1999-05-23 Akim Demaille * sheets/for77kwds.ssh: Updated from Alex. * sheets/for90kwds.ssh: Likewise. * doc/a2ps.texi (Page Device Options): Update the reference to PLRM 3rd edition. From Philippe Ferrucci . 1999-05-22 Akim Demaille * lib/: Updated from fileutils. * lib/argmatch.h: Don't include. * lib/argmatch.c: Include more. * lib/backupfile.h: Likewise. * lib/backupfile.c: Likewise. * ogonkify/configure.in: Fixed looking for Perl. Reported by Harry Katz . * encoding/iso15.edf (Default): Adapted to use Ogonkify's Euro. * ogonkify/doc/Makefile.am (EXTRA_DIST): Removed ogonkify.man, makedoc and clean. * ogonkify: Updated from Juliusz. 1999-05-22 Akim Demaille * src/main.c (usage): Gnitsize the web page from version to usage message. * po/*.po: Tried to automate the move to the new layout of --help and --version. 1999-05-14 Akim Demaille * ogonkify: Updated from Juliusz. * ogonkify/Makefile.am: Added latin7. * encoding/iso13.edf: New file, built out of Ogonkify * encoding/encoding.map: Added iso13. 1999-05-13 Akim Demaille * sheets/tiger.ssh: New style sheet. 1999-05-04 Akim Demaille * sheets/scheme.ssh: More keywords. Reported by Greg Badros . 1999-04-30 Akim Demaille * check/printers.tst: Check that a2ps does not dump core when no cmd is defined for -d. * lib/printers.c (a2ps_printers_command_get): Report properly an error when there is no command for default/unknown printer. Fixes printers.tst. * sheets/sheets.map: New file rule for zsh. Reported by Philip J Hollenback. * configure.in: Updated for latest Automake and libtool 1.3. * check/styles.tst: Remove empty diff files. 1999-04-28 Akim Demaille * lib/getnum.c (get_float_in_range): Be user friendly when given non numeric argument. Reported by Zdenek. 1999-04-20 Akim Demaille * contrib/psset.m4: New option, --simplex. Insert before %%EndSetup instead of after %%BeginSetup so that the last settings win. (sedscript): No longer try to make the script look nice thanks to indentation: Solaris' /usr/bin/sed does not remove the leading spaces of an insertation (even if later there is a protecting \). I.e.: i\ \foo inserts " foo", not "foo" as with most other seds. 1999-04-19 Akim Demaille * src/main.c: Force recognition of `yes' and `no' by gettext. * contrib/psset.m4: Append `;' instead of prepending when building a list: some shell then give an empty argument when looping. Reported by Roderich Schupp. 1999-04-07 Akim Demaille * contrib/fixps.m4: When extracting PS, be ready to receive non Unix end of lines. 1999-04-02 Akim Demaille * etc/Makefile.am (install-data-local): a2ps-site.cfg is to be found in build tree, not src tree. 1999-03-30 Akim Demaille * sheets/perl2.ssh: Support of more tr/// variants. 1999-03-26 Akim Demaille * sheets/sheets.map: Move `** data' up so that it hides no rules such as bzip2's. 1999-03-24 Akim Demaille * sheets/perl.ssh: Fixed handling of s|||. Reported by Ben Pavon. 1999-03-19 Akim Demaille * sheets/zsh.ssh: Inherit sh.ssh. * sheets/sh.ssh: Inherit shell.ssh. * sheets/csh.ssh: Inherit shell.ssh. * sheets/shell.ssh: New sheet. 1999-03-17 Akim Demaille * lib/options.c (a2ps_handle_options): Read correctly the value for --truncate. Reported by Hao Li. 1999-03-14 Akim Demaille * sheets/sml.ssh: New file. Contributed by Franklin Chen. * sheets/Makefile.am (minor_sheets): Added sml.ssh 1999-03-12 Akim Demaille * etc/Makefile.am (EXTRA_DIST): Don't include a2ps_cfg.in, nor a2ps-site.cfg. Reported by Steven Michael Robbins. 1999-03-11 Akim Demaille * sheets/sheets.map: Type *.cgi as html. Reported by Karl. Added javascripts. Fixed *.java (not *java). Reported by Christian Borup. * Lots of warnings avoided thanks to Zdenek. 1999-03-08 Akim Demaille * doc/a2ps.texi: Fixed capitalization of Ghostview and Ghostscript. Reported by Karl. 1999-03-05 Akim Demaille * doc/a2ps.texi (Top): Give the version number. Reported by Karl Berry. * sheets/perl.ssh: Handle `..` as strings. Reported by Larry Virden. 1999-03-04 Akim Demaille * encoding/iso9.edf (Vector): Replace dotlessi with onesuperior. * contrib/fixnt.l (reassemble): Declare xx as an int, not a char. 1999-03-01 Akim Demaille * doc/a2ps.texi: Fixed many typos. Reported by Joachim Backes. 1999-02-28 Akim Demaille * contrib/fixps.in (maxlen_awk): Don't use `?:'. Reported by Stephen Dowdy. 1999-02-24 Akim Demaille * sheets/for77kwds.ssh: Update from Alex Mai. Added `elseif'. Reported by Shem Ogadhoh. * sheets/for90kwds.ssh: Likewise. * etc/Makefile.am (README): Use s!!!, not s/// since date's output may include `/'. Reported by Pavel Roskin. * lib/Makefile.am (libitsources): Don't include lister.[ch] twice. Reported by Pavel Roskin. 1999-02-10 Akim Demaille * configure.in: Bump to 4.12. 1999-02-09 Akim Demaille * src/buffer.c (eol_types): Rectify correspondance between "pc" and eol_rn. 1999-01-23 Akim Demaille * lib/lexppd.l: Implement "*Include:" support. 1999-01-19 Akim Demaille * check/contrib.tst: New test to track stupid syntax errors in shell scripts. 1999-01-15 Akim Demaille * texi2dvi4a2ps (Options): Restore --batch. Implied by --quiet. 1999-01-15 Akim Demaille * lib/jobs.h (a2ps_job): file_align replaces compact_mode. 1999-01-11 Akim Demaille * Reverted to use `' around quotearg. * etc/a2ps-local.cfg: New file. 1999-01-08 Akim Demaille * texi2dvi4a2ps: Use $program instead of $0 for messages. Include new envvar in --help. Don't exit 1 from the trap, trap will anyway exit with the status it was called with. 1999-01-04 Akim Demaille * options-check/3.tst: New test checking interaction between options and user options and files. 1999-01-04 Akim Demaille * lib/options.c (a2ps_handle_option): Remember optind as res before processing the options. 1998-12-28 Akim Demaille * lib/system.h (PARAM_UNUSED): Replaces ATTRIBUTE_UNUSED. Not to be used before gcc lib/2.8. 1998-12-28 Akim Demaille * afm/make_fonts_map.sh (shortname): Add the missing '. 1998-12-26 Akim Demaille * lib/routines.h (tempname_ensure): Don't strdup it since tempnam mallocs. 1998-12-20 Akim Demaille * lib/confg.gperf: Parse the configuration files with gperf. 1998-12-18 Akim Demaille * src/main.c (list_options): Improve output. 1998-12-13 Akim Demaille * src/ssheet.c (style_sheet_mixed_new): Implement mixed style sheets. 1998-12-11 Akim Demaille * src/main.c (handle_a2ps_option): No longer override the handling of 'v' by liba2ps. (main): No longer handle the defaults for message_verbosity. Handled by the lib. 1998-12-11 Akim Demaille * sheets/make.ssh: Don't output false errors. Reported by Alexander Mai. 1998-12-11 Akim Demaille * lib/jobs.c (a2ps_job_new): Handle the envvar A2PS_VERBOSITY. * lib/options.c (a2ps_handle_option): Use message_verbosity_argmatch. * lib/message.c (message_verbosity_argmatch): Remove from src/lib/main.c, put this here. 1998-12-08 Akim Demaille * contrib/fixps.in: Handle Windows 95's showpage definition. 1998-12-07 Akim Demaille * sheets/Makefile.am (minor_sheets): Add sheets/tcsh.ssh. 1998-12-07 Akim Demaille * doc/a2ps.texi (Predefined Variables): New node. Document user.* variables. 1998-12-04 Akim Demaille * lib/jobs.h: No longer use user_info. Now, user data are stored as variables. 1998-12-03 Akim Demaille * lib/fonts.l (dump_fonts): Allow for gsf font files. 1998-12-02 Akim Demaille * src/main.c (main)[__EMX__]: Wildcard expansion. Reindent correctly. 1998-11-23 Akim Demaille * lib/pathwalk.c (pw_glob): Use strverscmp instead of strcoll. 1998-11-20 Akim Demaille * contrib/texi2dvi4a2ps: Updated. * sheets/perl.ssh: Better handling of perl's regexps. * lib/lister.c: Use specific functions for length computation and printing. All callers changed. 1998-11-13 Akim Demaille * lib/printers.c (a2ps_open_output_stream): Enable backups also for printers! 1998-11-11 Akim Demaille * texi2dvi4a2ps: Update from Karl Berry. 1998-11-11 Akim Demaille * sheets/mail.ssh: Cleaned up some of the Strong_comment in order to have a better support of --strip-level=1. * src/ssheets.c: Use var expansion for html output. * lib/.gethostname.c: Include string.h. 1998-11-11 Akim Demaille * lib/Makefile.am (libitsources): Add lib/quotearg.c. (mylibitsources): Add lib/lister.c. 1998-10-23 Akim Demaille * texi2dvi4a2ps: Updated from Karl Berry. 1998-10-23 Akim Demaille * lib/gethostname.c: Include lib/string.h for os/2. 1998-10-22 Akim Demaille * src/ssheet.c (list_style_sheets_html): Use variables to avoid polluting the binary. See sheets/.a2psrc for values of these variables. 1998-10-21 Akim Demaille * lib/options.c (a2ps_handle_string_options): Use a smarter function to build the argv out of a string. 1998-10-21 Akim Demaille * check/options2.tst: Test that the user options work correctly. 1998-10-19 Akim Demaille * auxdir/ansi2knr.c: Move it... * lib/ansi2knr.c: Here. * auxdir/ansi2knr.1: likewise. 1998-10-15 Akim Demaille * m4/ogonkify.m4: Be robust to jm_PERL with can set PERL to "missing perl". 1998-10-12 Akim Demaille * sheets/sheets.map: *.prn for ps. 1998-09-24 Akim Demaille * m4/Makefile.am: New file. Move all the m4 macros from auxdir/ to m4/. 1998-09-21 Akim Demaille * arch/os2/Makefile.am (EXTRA_DIST): Renamed config.h as config.h.os2. 1998-09-18 Akim Demaille * lib/encoding.c (char_WX): Synchronize with ps_escape_char. * lib/psgen.c (ps_print_char): No longer use string_WX. Reported by Rudolf Cejka. 1998-09-18 Akim Demaille * auxdir/help2man.PL: Updated. * doc/Makefile.am: No longer generate man pages. * man/Makefile.am (a2ps.1): Set LC_ALL to C. (psmandup.1): Likewise. (fixps.1): Likewise. (pdiff.1): Likewise. (card.1): Likewise. Reported by Joachim Backes. * man: New directory, modeled after that of the fileutils. 1998-09-17 Akim Demaille * lib/xbackupfile.c (create_file_for_backup): New function contributed by Paul Eggert, but disabled, coz' I couldn't use it correctly :(. 1998-09-17 Akim Demaille * configure.in: No longer make special case for getopt. 1998-09-16 Akim Demaille * lib/obstack.c: Update from fileutils. * lib/obstack.h: Likewise. 1998-09-15 Akim Demaille * lib/xsysstat.h: Update from fileutils. * lib/routines.c (xfind_backup_file_name): Backup_type is now an arg. (xbackup_file) Ditto. Move them: * lib/xbackupfile.c: here. New file. * lib/Makefile.am (libitsources): Added lib/addext.c and lib/basename.c from fileutils lib/3.16x. * lib/backupfile.c: Update from fileutils lib/3.16.x * lib/backupfile.h: Ditto. 1998-09-15 Akim Demaille * check/backup.tst: New file, in charge of testing the backup system. 1998-03-06 Akim Demaille * Release 4.9.10. Yupee! 1998-03-06 Akim Demaille * doc/Makefile.am (book): New target. 1998-03-05 Akim Demaille * src/generate.c (print): Test against delegate_p, not delegate! 1998-03-04 Akim Demaille * lib/darray.c (da_merge): Don't da_remove when no FREE_FUNC is given. 1998-03-04 Akim Demaille * lib/darray.c (_da_free_content): Don't free if FREE_FUNC is NULL. All callers changed. 1998-03-04 Akim Demaille * Alpha release 4.9.9k. 1998-03-03 Akim Demaille * src/versions.c (version_length): Safer inline use. 1998-03-03 Akim Demaille * lib/darray.c (_da_free_content): Safer inline use. * lib/faces.c (_face_to_string): Ditto. * lib/pair_ht.c (pair_table_map): Ditto. * lib/routines.c (xwpopen): Ditto. * lib/stream.c (stream_wopen): Ditto. 1998-03-03 Akim Demaille * contrib/psfix.in: New file. Calls the psutils in order to fix common PS problems. * contrib/psmandup.in: Calls psfix instead of fixing itself. 1998-03-03 Akim Demaille * Alpha release 4.9.9j. 1998-03-02 Akim Demaille * texi2dvi4a2ps: Updated according to texinfo release. 1998-03-02 Akim Demaille * lib/routines.h (strsuffix): New macro. 1998-03-02 Akim Demaille * Alpha release 4.9.9i. 1998-02-25 Akim Demaille * src/parsessh.y: Added support for spread regex. 1998-02-25 Akim Demaille * lib/message.c: Made message be a macro. There are so many messages that I think it's a win. 1998-02-24 Akim Demaille * contrib/psmandup.in: New file. 1998-02-23 Akim Demaille * Alpha release 4.9.9f. 1998-02-20 Akim Demaille * doc/Makefile.am (doc/a2ps.1): Make it with help2man. (doc/card.1) Likewise. 1998-02-19 Akim Demaille * src/select.c (get_command): Take a boolean which says whether to call or not file(1). 1998-02-19 Akim Demaille * lib/title.c (title): New function, as printf, but underlines. 1998-02-19 Akim Demaille * lib/ppd.c (_a2ps_ppd_get): Moved here from lib/printer.c (_a2ps_ppd_list_short): Idem. (_a2ps_ppd_list_long): Idem. 1998-02-18 Akim Demaille * Alpha release 4.9.9e. 1998-02-17 Akim Demaille * lib/options.c (long_options): Removed --list-html-style-sheets, --list-texinfo-style-sheets and --list-macro-meta-sequences from the list of options. Now done through argument of --list. 1998-02-15 Akim Demaille * src/main.c (main): Support --list=ppd. Report PPD in --list=features too. 1998-02-15 Akim Demaille * lib/ppd.c (ppd_list_short): New function. (ppd_list_short): Idem. 1998-02-13 Akim Demaille * src/parsessh.y: Use "\n" as closer when the closers is not specified, instead of /$/. It helps killing white lines when stripping. It may not be the best solution :(. 1998-02-13 Akim Demaille * Alpha release 4.9.9d. 1998-02-13 Akim Demaille * check/stdinout.tst (nlines): Do not use `[ \t]*' in the sed script, coz it loses SunOS' sed. 1998-02-12 Akim Demaille * src/ssheet.c (words_merge_clauses_unique): Erase the NEW strcuture * src/parsessh.c: no longer call words_erase itself. 1998-02-12 Akim Demaille * lib/prolog.c (prologues_list_texinfo): New. Called upon --list=pro-texi. 1998-02-11 Akim Demaille * Released 4.9.9c. 1998-02-11 Akim Demaille * lib/metaseq.c (macro_meta_sequence_add): Make it check that the macro identifier is valid. * lib/metaseq.c (grow_user_string_obstack): $E and %E: use long form for the years. Reported by Joachim Backes. 1998-02-11 Akim Demaille * check/stdinout.tst: New test, because a2ps sometimes had the bad idea to dump core when printing stdin with -E. 1998-02-10 Akim Demaille * src/generate.c (input_new): Don't run file(1) upon stdin. Reported by Joachim Backes. 1998-02-06 Akim Demaille * lib/metaseq.c (grow_user_string_obstack): Added support for ${param:-word} and ${param:+word}. Likewise for #{}. 1998-02-04 Akim Demaille * lib/options.c (a2ps_handle_option): Fixed handling of --print-anyway. Reported by Joachim Backes. 1998-02-02 Akim Demaille * src/sshread.c (match_keyword): Now strings have precedence over regex. * src/sshread.c (match_operator): Likewise. 1998-01-31 Akim Demaille * lib/printers.c: Cleaned up. Ready for ppd. 1998-01-30 Akim Demaille * src/main.c (behavior_args): New function that allow easier to read/write --verbose arguments. 1998-01-30 Akim Demaille * lib/printers.c (struct printer): We can't use pair_table any longer since we need to keep the ppd type too. 1998-01-30 Akim Demaille * lib/options.c (handle_option): Now the application is asked the handle the options before the lib. 1998-01-29 Akim Demaille * lib/msg.h: Less bits are used. 1998-01-29 Akim Demaille * configure.in: use ad_FUNC_GNU_GETOPT. 1998-01-28 Akim Demaille * src/parsessh.y: No difference between tSTRING and tSYMBOL. The latter disappears. 1998-01-28 Akim Demaille * lib/faces.h (enum face_t): Removed the special faces. There is no longer a typedef ---use enum. 1998-01-27 Akim Demaille * src/ffaces.c: New file, in charge of fface_t which mixes plain face_t as used in liba2ps, and sepcial flags ---Invisible etc. 1998-01-21 Akim Demaille * src/ssheet.c (style_sheet_self_print): Report when alphabets are undefined. 1998-01-19 Akim Demaille * lib/prolog.c (prologue_print_signature): New function, used to document the prologues. 1998-01-16 Akim Demaille * src/main.c (get_behavior): In charge to `understand' TOPIC in --list=TOPIC. (usage): Adapted to --list=TOPIC. 1998-01-16 Akim Demaille * lib/options.c (long_options): Removed many of the --list-topic to be replaced by --list=TOPIC. 1998-01-15 Akim Demaille * src/main.c (copyright): New function, do display the short GPL. 1998-01-14 Akim Demaille * lib/hashtab.c (hash_free_items): Added as parameter the free function to be used. (hash_free): Use it. 1998-01-12 Akim Demaille * lib/prange.c (a2ps_page_range_set_string): Check that there is no junk afer intervals such as "1-4d". 1998-01-12 Akim Demaille * check/pages.test: Check ill defined page ranges. Use test_files/check/formfeed.txt instead of check/report.pre. 1998-01-12 Akim Demaille * check/cut.test (IN_NAME): Use check/tabulation.pre instead of check/report.pre. 1998-01-09 Akim Demaille * src/ssheet.c (load_style_sheet): New function allowing loading of a style sheet thanks to its key, or its path. * src/parsessh.y (parse_style_sheet): Now return the parsed style sheet instead of accessing itself to the hash tab. * src/main.c (handle_a2ps_option): Define a strip_mask together with the handling of --strip. * src/sshread.c (ssh_print_postscript): Processing of INVISIBLE and stripping of comments goes through a mask. 1998-01-09 Akim Demaille * sheets/symbols.ssh: New file, defining latex-like symbols. * sheets/pre.ssh: Made it inherit from sheets/symbols.ssh. 1998-01-06 Akim Demaille * lib/confg.c (a2_read_config): Made parsing of Printer's command more robust. 1997-11-07 Akim Demaille * check/delegate.test: New file. 1997-10-31 Akim Demaille * check/styles.test: Use no functions. Idem for other test files. 1997-10-27 Akim Demaille * lib/psgen.c (begin_page): Don't FREE page_label since it is not malloc'd. From Mark Burton . 1997-10-20 Akim Demaille * src/parsessh.y (const): Made prototypes use the same const as bison. 1997-10-13 Akim Demaille * lib/options.c (get_symbolic_value): Improved error report. 1997-10-07 Akim Demaille * src/ssheet.c: Changed the version numbers from string to int[4]. 1997-10-07 Akim Demaille * doc/Makefile.am (EXTRA_DIST): removed doc/a2ps.dvi and doc/regex.dvi. 1997-09-30 Akim Demaille * lib/printers.c: Removed local implementation of hash table: now uses hashstr.[ch]. 1997-09-26 Akim Demaille * lib/jobaux.c (user_options_table_new): The hash functions about user options are now using hashstr.[ch] functions. 1997-09-25 Akim Demaille * lib/psgen.c (dump_prolog_comments): The prologue contains a copy of the command line call when --debug. 1997-09-25 Akim Demaille * lib/metaseq.c (grow_user_string_obstack): Added $[arg] and #!$. 1997-09-24 Akim Demaille * src/delegate.c (subcontract): Added an awful kludge [a temp file in which stdin is copied] so that delegations can be used even when a2ps is called on stdin. 1997-09-22 Akim Demaille * src/main.c: Changed the --help and --list-option: the topics are no longer part of the same string [sorry for translators], to get easier changes of appearance. 1997-09-22 Akim Demaille * lib/encoding.c (encoding_output_ps_vector): New function. * lib/encoding.c (load_encoding_description_file): Changed `Endoding:' to `Named:'. 1997-09-17 Akim Demaille * ps/base.ps (reencode_font): Was from reencode_font_good. 1997-09-17 Akim Demaille * ps/base.ps (currentfontsize): New function, used in boxing and backgrounding of a string. 1997-09-17 Akim Demaille * lib/output.c (output_file): Added add_required_font in the case %Font, so that fonts used in headers get registered too. 1997-09-17 Akim Demaille * lib/Makefile.am: Updated to the most recent version of fnmatch [found in GNU make lib/3.76]. 1997-09-17 Akim Demaille * lib/fonts.l (dump_fonts): Fixed the name of the resource [before alias, not after!], made it depend on the DSC storage instead of the encodinds. 1997-09-17 Akim Demaille * lib/dsc.h, lib/dsc.c: new files, that extract the handling of the PS resources from psstat.[ch]. 1997-09-17 Akim Demaille * lib/dsc.c: Rewrote and simplify the handling of the resources. Now it goes by two layers of hash tables [one for the type, say "font"; and the other for the value, say "Courier"]. 1997-09-17 Akim Demaille * configure.in: Added AC_FUNC_STRCOLL, which will be used by glob.[ch]. 1997-09-16 Akim Demaille * lib/jobaux.c (interval_to_buffer): Opened interval on the left prints 1 [lib/i.e., no longer -pp-10, but -pp1-10]. 1997-09-12 Akim Demaille * src/ssheet.c (style_sheet_print_signature): Made it look better. 1997-09-12 Akim Demaille * src/ssheet.c (list_html_style_sheets): Ordered by name, not key. (list_texinfo_style_sheets): Id. (list_style_sheets_long): Id. 1997-09-12 Akim Demaille * lib/jobaux.c (da_get_lib_files_by_suffix): New function, which fatorizes a job implemented in several places. 1997-09-12 Akim Demaille * lib/encoding.c (encoding_entry_print_signature): Made it look better. 1997-09-12 Akim Demaille * lib/darray.c (da_qsort_with_arg): New function. 1997-09-09 Akim Demaille * lib/Makefile.am (libpath): Move pkgdatadir (/share/a2ps) at the end of the path, so that users who did not remove a2ps lib/4.8.* stuff don't get problems. 1997-09-09 Akim Demaille * lib/jobs.c (a2ps_job_finalize): New function that groups what has to be done once the lib path is done, lib/i.e., after having read the lib/a2ps.cfg * lib/pathwalk.c (pw_append_dir_to_path): New function. * lib/pathwalk.c (pw_prepend_dir_to_path): New function. 1997-09-09 Akim Demaille * configure.in: Modification of a2ps.cfg is handled in etc/Makefile. 1997-09-04 Akim Demaille * ogonkify/Makefile.am: Original AFM are no longer installed. 1997-09-04 Akim Demaille * lib/encoding.c (list_encodings_long): New function, answering to --list-encodings. 1997-09-03 Akim Demaille * lib/routines.h (astrdup): Fixed the too short len allocated [+1 !!!] 1997-09-02 Akim Demaille * ogonkify/Makefile.am: Updated what gets installed, and what gets distributed. 1997-08-29 Akim Demaille * afm/Makefile.am (afm_DATA): Added may afm files, and afm/make_fonts_map.sh 1997-08-20 Akim Demaille * lib/fonts.l (binary_font_dump_segment): New function for download of binary encoded fonts. 1997-08-18 Akim Demaille * lib/psgen.c (ps_end_encoding): Fixed a bug occuring when a change of encoding was done on a blank sheet, before any real output. * lib/lexafm.l: First sketch of AFM parsing [actually, no need to parse, lexical is widely enough]. * lib/output.c (output_file): Made the parsing more robust [checks for the missing arguments instead of crashing!]. 1997-08-16 Akim Demaille * lib/Makefile.am (liba2pssources): Got rid of the AFC files, and of fonts.[ch]. 1997-08-15 Akim Demaille * src/generate.c (print): Made it create itself the input buffer that it passes to read of sshread. Therefore the input buffer can now be a string stream. 1997-08-15 Akim Demaille * lib/metaseq.c (grow_user_string_obstack): Added padding, lib/e.g. `$+.20n' to get the name of the file in 20 chars completed with dots. 1997-08-15 Akim Demaille * check/toc.test: New test, replaces check/all.test * .a2psrc: Defined the UnknownPrinter: entry which sed's away some annoying DSC differences (date etc.) * check/cut.test: Use it. * check/toc.test: Use it. * check/pages.test: Use it. * check/styles.test: Use it. 1997-08-14 Akim Demaille * src/buffer.c (buffer_get): No longer use getline nor getdelim, but obstacks. (buffer_stream_get_line): Added support for various eol encodings. 1997-08-14 Akim Demaille * lib/encoding.h: An encoding no longer encloses is eol. * lib/Makefile.am: getline.[ch] is no longer used. 1997-08-13 Akim Demaille * lib/encoding.c (load_encodings_map): Now it is used, so that aliases for encodings do function. 1997-08-12 Akim Demaille * etc/base.ps: Added wrapping functions for PS and EPS inclusion. 1997-08-11 Akim Demaille * lib/psgen.c (ps_init): Made it set the encoding (can cause a SEGV if page 1 is not in --pages). * lib/jobaux.c (add_pages_interval_string): Implemented page selection. 1997-08-11 Akim Demaille * check/Makefile.am: Added a test for --pages. 1997-08-07 Akim Demaille * lib/faces.h: Added the face Error. 1997-08-05 Akim Demaille * src/parsessh.y: Implemented multiple expansions of symbols. Factorized a bit. * src/ssheet.c (destinations_new): Started the modifications of several files to allow multiple expansion of mached strings. 1997-08-04 Akim Demaille * src/lexssh.l: Fixed a bug in handling of hexa escapes. 1997-08-04 Akim Demaille * lib/psgen.c (begin_sheet): Page labels are delayed, so that we know the files printed in the current sheet. 1997-07-31 Akim Demaille * lib/metaseq.c (grow_user_string_obstack): Added #!s. 1997-07-30 Akim Demaille * lib/metaseq.c (grow_user_string_obstack): Profound revision of meta sequences related to lines, pages and sheets. * lib/metaseq.c (grow_user_string_obstack): #? uses SPLIT too. 1997-07-29 Akim Demaille * lib/metaseq.c: Added the hash table functions for macro MS. (grow_user_string_obstack): Added '\' for usal characters, especially `\n'. * lib/metaseq.c (grow_user_string_obstack): Expand the macro meta sequences (#(macro)). * hashstr.[ch]: New file, factorising the various hash tables with a char * key, and a char * value. * lib/xmalloc.h: Fixed prototype of free. Include stdlib. 1997-07-28 Akim Demaille * src/main.c (handle_a2ps_option): New, in charge of handling the options of the program (not the library). * src/sshread.c (ssh_print_postscript): Removed the breaking free_token. 1997-07-28 Akim Demaille * lib/options.c: New file in charge of the options only. * lib/confg.c: Removed option related routines. 1997-07-28 Akim Demaille * doc/a2ps.1: Mini doc is included. 1997-07-25 Akim Demaille * lib/metaseq.c (grow_user_string_obstack): Implemented #!f. (grow_user_string_obstack): Added #!F. * lib/psgen.c (dump_prolog_comments): New function, globally delayed, instead of several delayed functions in output_prolog. 1997-07-25 Akim Demaille * config.h.in: Removed the now unecessary #define for PARAMS and ___P. 1997-07-24 Akim Demaille * src/ssheet.c (style_sheet_finalize): Inheritance of the alphabets. (check_style_sheet): Now checks keywords, sequences, and operators, even with regexp. (style_sheet_finalize): Inheritance of case sensitivity. 1997-07-23 Akim Demaille * src/ssheet.c (get_style_sheet): Add update of re_syntax_table which could cause a BUS error. * src/parsessh.y: Cleaned the trash was was still here from previous handling scheme of the symbols. * src/sshread.c (match_symbols_array): New function, replaces match_exception, and match_sequence_end. 1997-07-22 Akim Demaille * delegate.[ch]: New names of subcont.[ch] to reflect the terminology chosen for the interface. 1997-07-22 Akim Demaille * contrib/emacs/a2ps.el: new name of contrib/emacs/ssh.el, because there is yet an contrib/emacs/ssh.el for `ssh(1)'. 1997-07-21 Jim Meyering * check/check/Makefile.am (TESTS_ENVIRONMENT): Set it so SRCDIR gets passed to each test script. * check/check/cut.test (SRCDIR): Use it. * check/check/guess.test (SRCDIR): Use it. * check/check/prologues.test (SRCDIR): Use it. * check/check/styles.test (SRCDIR): Use it. * check/check/ps.test (SRCDIR): Use it. * check/check/Makefile.am (CLEANFILES): Add defs. 1997-07-21 Akim Demaille * src/parsessh.y: Solved shift/reduce conflicts by inlining. 1997-07-21 Akim Demaille * lib/psgen.c (begin_page): Merged ps_skip_page in. 1997-07-18 Akim Demaille * src/subcont.c (subcontract): Better error messages. 1997-07-18 Akim Demaille * lib/metaseq.c (format_user_string): Moved %o, %O as #o, #O. (expand_user_string): Replaces format_user_string. It has now no arbitrary limitation on the size of the expanded string, thanks to obstacks. * metaseq.[ch]: New files, in charge of the meta sequences handling. 1997-07-17 Akim Demaille * src/ssheet.h: Now the struxt words encodes the address of the first and last possible matches, not there index in the array. 1997-07-17 Akim Demaille * lib/liba2ps.h: Changed the name of something important functions (such as new_print_job etc.) so that everything is prefixed by a2_. 1997-07-16 Akim Demaille * src/ssheet.c (style_sheet_texinfo_print_signature): I know this is bad, but I couldn't help it... 1997-07-16 Akim Demaille * lib/stpncpy.c (stpncpy): Fixed a nasty bug. 1997-07-16 Akim Demaille * doc/a2ps.texi (Known languages): Made it depend on a file generated by a2ps to describe the languages. 1997-07-15 Akim Demaille * lib/encoding.c (load_encodings_map): New function, in charge of reading the lib/encoding.map files. 1997-07-15 Akim Demaille * etc/Makefile.am (ps_DATA): All files have a lower case name. 1997-07-10 Akim Demaille * lib/Makefile.am (libitsources): Removed regex.[ch] from here, so that it does not polute lib/liba2ps.h with its undefined symbols. 1997-07-09 Akim Demaille * all: Standardized the error messages (in particular, "cannot do something", no longer "couldn't do" nor "unable to", nor "could not do"). 1997-07-08 Akim Demaille * src/parsessh.y: The handling of closing alternatives is now handled by the parser, instead of a post processing. 1997-07-08 Akim Demaille * lib/psstat.c (ps_status_free): Quite all the memory malloc'ed is now freed. 1997-07-07 Akim Demaille * lib/confg.c (read_sys_config): Fixed the behavior when sysconfdir does not hold lib/a2ps.cfg. 1997-07-06 Akim Demaille * subcont.[ch]: New file in charge of the subcontractors. 1997-07-06 Akim Demaille * lib/jobs.c (new_file_job): It is no longer the library that opens the files... * lib/output.c (output_dump): Make it accept any FILE as output stream. This is to avoid closing stdout in a near future. (That was _bad_ when using the library). 1997-07-04 Akim Demaille * src/ssheet.h (struct style sheet): New field: ancestors. Parsing etc. are revisited to take these ancestors into account. NOTE: no checking for infinite recursion is currently done. * src/ssheet.c: Simplified handling of the style sheets hash table. The style sheets by themselves did not require an extra embedding structure. 1997-07-04 Akim Demaille * sheets/objc.ssh: Made it inherit from sheets/c.ssh. 1997-07-04 Akim Demaille * lib/routines.c (format_user_string): Made it depend upon a file_job, so that it will be usable for indexes and toc. * lib/darray.c (da_prefix): New function which prefixes the content of the first arr, by the content of the second (kind of converse of concat). 1997-07-04 Akim Demaille * configure.in: REPLACE_FUNC strtoul, absent on SunOS cc. 1997-07-03 Akim Demaille * src/lexssh.l: Now uses obstacks for scanning strings. Flex power is exploited (exclusive states). 1997-07-03 Akim Demaille * caret.[ch]: New files, in charge of escape unprintables. * lib/a2ps.h: Got rid of ustring and const_ustring. Redesigned the access to system headers (it relies now more on lib/xstring.h etc. which take care by themselves of multiple inclusions). 1997-07-03 Akim Demaille * *.*: Has remarked by Turgut Uyar, media is yet plurial! Changed everywhere. 1997-07-01 Akim Demaille * psstat.[ch]: New files, to split the very big structure that is print_job in smaller, quasi-independent elements. 1997-06-25 Akim Demaille * lib/printers.c: New file, which is responsible of printers management. (printers are in fact any kind of output). 1997-06-20 Akim Demaille * check/styles.test: Presentation is much better. 1997-06-18 Akim Demaille * sheets/vrml.ssh: New. 1997-06-18 Akim Demaille * ogonkify.m4: New macros to check if ogonkify can be installed (depends on perl), and is desired. * configure.in: More robust tests for portability. 1997-06-13 Akim Demaille * src/parsessh.y: Added support for version requirement in style sheets. 1997-06-13 Akim Demaille * lib/a2ps.h: More robust wrt errno. 1997-06-11 Akim Demaille * lib/confg.c (get_symbolic_value): New function to have clearer error messages for argument mismatches. 1997-06-10 Akim Demaille * styles.*: removed. 1997-06-10 Akim Demaille * lib/pathwalk.c (path_walk): Now the whole file uses pre separated components of the path (string_to_path). 1997-06-09 Akim Demaille * All files: put the copyright notice. 1997-06-06 Akim Demaille * lib/jobs.c (new_user_info): New function, due to new structure of struct print_job. 1997-06-05 Akim Demaille * lib/medias.c (list_medias_short): New function. * lib/config.c: "Media: " entries. 1997-06-04 Akim Demaille * contrib/emacs/ssh.el: New file, built by modification of contrib/emacs/m4.el by Drew Csillag . * make-contrib/emacs/regexp.el: Included because some day there will be support for regexp in a2ps. 1997-06-03 Akim Demaille * src/parsessh.y: Removed "end comment". 1997-06-02 Akim Demaille * lib/Makefile.am: Build lib/liba2ps.h from source files. 1997-05-30 Akim Demaille * src/parsessh.y: Add support for version and author of a style sheet. 1997-05-30 Akim Demaille * lib/darray.c (da_qsort): New implementation. Comparison functions in darrays no longer need to have a void ** as argument. 1997-05-28 Akim Demaille * lib/liba2ps.h.in: New file which is a precursor of the a2ps library header. 1997-05-25 Akim Demaille * lib/jobs.h: Jobs are now under darray. * lib/jobs.c (print_job_free): New function. * lib/dstring.c (ds_vsprintf, ds_cat_vsprintf...): New functions. * lib/output.c: Globally cleaned up, using dstring. 1997-05-24 Akim Demaille * lib/output.c: Globally cleaned, using darrays. 1997-05-23 Akim Demaille * sheets/Makefile.am (sheets_DATA): Renamed sheets/perl.ssh as sheets/Perl.ssh 1997-05-23 Akim Demaille * lib/jobs.h: Added backup support (versioning). * lib/dstring.c (ds_report): New function. 1997-05-22 Akim Demaille * lib/dstring.c: extended so that it is darray-like. 1997-05-22 Akim Demaille * etc/Makefile.am: Renamed black+etc/white.pro as etc/bw.pro, *.enc to .ps, removed style-def. Renamed the ps library dir (former postscript) as ps. 1997-05-20 Akim Demaille * ogonkify/Makefile.am: Fixed a bug in handling of @LIBDIR@. 1997-05-16 Akim Demaille * lib/Makefile.am (libitheaders): Added backupfile.[ch] for version control, lib/getversion.c for get version control settings, and argmatch.[ch] as support for lib/getversion.c * lib/Makefile.am: new files dstring.[ch] that will replace portions of output.[ch] 1997-05-11 Akim Demaille * sheets/ChangeLog.ssh: Added. 1997-05-11 Akim Demaille * doc/a2ps.texi (Writing new style sheets): Added a tutorial on ChangeLogs. 1997-05-09 Akim Demaille * check/guess.test: Tests only what file says. Guesses depend far too much from what people wrote in check/sheets.map 1997-05-08 Akim Demaille * check/ps.test (XPS_DIR): New test, that tries to find what can break a level 1 PS interpreter. 1997-05-07 Akim Demaille * lib/darray.c (da_remove_at, da_merge_unique): New functions. 1997-05-03 Akim Demaille * src/ssheet.h: Removed the global exceptions (former verbatims), since they can easily be included as an alternative closer in the sequences. * src/styles04.m4 (and others): Tuned for easy convertion to new style of style sheets. * src/read.c: New file to speed up plain printing. * src/sshread.c: New file for style sheet pretty printing reading of files to print. * src/buffer.c: Replaced by the two files above. * src/parsessh.y, src/lexssh.l: new names of src/sshparse.y and src/lexer.l 1997-05-03 Akim Demaille * lib/Makefile.am: Changed hash.[ch] to hasshtab.[ch] to avoid conflict with other libit sources. Changed xfnmatch.[ch] to Fnmatch for the same reason. 1997-04-30 Akim Demaille * sheets/Makefile.am (sheets_DATA): Added sheets/ObjectiveC.ssh. 1997-04-28 Akim Demaille * src/select.c (load_sheets_map): `***' to read another src/sheets.map file. 1997-04-27 Akim Demaille * src/main.c (main): libefence cannot be used because of &^% Sun's str* functions. * src/select.c (load_sheets_map): Able to match on file(1) result. 1997-04-27 Akim Demaille * sheets/sheets.map: Added `**' special pattern to specify matching against result of file(1). 1997-04-27 Akim Demaille * etc/base.ps: Merged in etc/color.ps, since now a lot is common [added box and underline features]. 1997-04-25 Akim Demaille * etc/color.ps: Added box and underline routines. 1997-04-23 Akim Demaille * src/ssheet.c (load_style_sheet): New functions. (get_style_sheet): New function. Style sheets are stored in a hash table. 1997-04-23 Akim Demaille * lib/confg.c (long_options): Changed --column-per-page to --chars-per-line which is less confusing. 1997-04-21 Akim Demaille * src/buffer.c (mygetstring): Started adaptation to src/ssheet.c. 1997-04-20 Akim Demaille * src/select.c (read_sheets_map): New function, that reads the src/sheets.map files. 1997-04-20 Akim Demaille * sheets/Makefile.am: New file. All the style sheets belong to this directory. 1997-04-20 Akim Demaille * lib/jobs.c (new_a2ps_status): Removed the pattern rules: they are no longer part of .a2psrc files. * jobaux.[ch]: new files to make jobs.[ch] only handle the job structure, not the asides. 1997-04-19 Akim Demaille * src/ssheet.h: Unified implementation of keywords, symbols and operators. * ss-src/parser.y: Extended to verbatims, escapes, and comment. * src/ssheet.c (match_keyword, match_symbol, match_operator): New functions 1997-04-16 Akim Demaille * Makefile.am (SUBDIRS): Changed the order so that painful info problems at install can be easily avoided. 1997-04-16 Akim Demaille * lib/output.c (output_file): Restructured, so that only used fonts are built. * lib/encodings.c: Fix the ISO names. 1997-04-12 Akim Demaille * lib/postscript.c (output_prolog): In debug mode, download a ps error handler. 1997-04-11 Akim Demaille * src/ssheet.c: More jobs done (should replace style-src/utils.c). * ss-src/parser.y: Reads the sequences. * src/lexer.l: Extented the base alphabet to the maximum. * src/lexer.l: Included the LaTeX equivalent for the symbols and operators. 1997-04-11 Akim Demaille * NEWS: Release of 4.8. 1997-04-11 Akim Demaille * lib/jobs.h: Changed major to Major, because of a sys macro on SunOS CC. 1997-04-10 Larry Jones * src/report.c, style-src/utils.c (sort_keywords, sort_regulars, sort_specials, sort_symbols): make min and max optional to avoid unneeded work and prevent referencing uninitialized variables. * style-src/utils.c (guess_language): free file_command when done, fclose ptr all the time (not pclose!), check for sscanf failure. 1997-04-10 Larry Jones * lib/faces.c, lib/faces.h (check_face_to_font, init_face_to_font): correct argument type. * lib/jobs.c (initialize_ps_status): intialize wx and last_line_num since they can be referenced before they're otherwise set. * lib/jobs.c (new_print_job): get name to capitalize from res->pw_name instead of passwd->pw_name since passwd might be NULL. * lib/output.c (output_file): add 1 for trailing NUL when allocating filename. * lib/postscript.c (clean_up): when printing blank 2nd page for rectoverso, leave job->virtual alone so that paging logic works correctly. * lib/postscript.c (ps_init): set title_font_size even when not printing titles since it's still referenced. 1997-04-10 Larry Jones * lib/faces.c, lib/faces.h (check_face_to_font, init_face_to_font): correct argument type. * lib/jobs.c (initialize_ps_status): intialize wx and last_line_num since they can be referenced before they're otherwise set. * lib/jobs.c (new_print_job): get name to capitalize from res->pw_name instead of passwd->pw_name since passwd might be NULL. * lib/output.c (output_file): add 1 for trailing NUL when allocating filename. * lib/postscript.c (clean_up): when printing blank 2nd page for rectoverso, leave job->virtual alone so that paging logic works correctly. * lib/postscript.c (ps_init): set title_font_size even when not printing titles since it's still referenced. 1997-04-10 Akim Demaille * src/ssheet.c: New file, in charge of handling the new scheme for style sheets. 1997-04-10 Akim Demaille * lib/faces.h: Changed COURIER to PLAIN. 1997-04-09 Akim Demaille * ss-src/parser.y: New file, for reading dynamically the style sheets. * src/lexer.l: New file, used for all the parsers in a2ps. 1997-04-07 Akim Demaille * lib/confg.c (read_sysconfig): Made it able to read in the lib path so that it is easier for micro ports. 1997-04-06 Akim Demaille * style-src/utils.c (guess_language): Adapted to the new structure, and fixed a bug related to a bad space in file_link. * src/main.c: Configuration related functions have moved in lib/src/confg.c. 1997-04-06 Akim Demaille * lib/jobs.h: New structure (a2ps_status) to store what belongs to the program, and not the lib. * lib/confg.c: new file with all the necessary to read configuration at run time (from config files to command line options). 1997-04-06 Akim Demaille * file.m4: Fixed a bug which caused an extra blank in the file command, which could break the call to file. 1997-04-03 Akim Demaille * lib/Makefile.am: Added support for Helvetica's 1997-03-28 Akim Demaille * lib/postscript.c (begin_document): added support for -major 1997-03-27 Akim Demaille * lib/postscript.c (ps_end_file): Moved the test here, instead of page per page. It now cancels the whole job. 1997-03-26 Akim Demaille * lib/postscript.c (begin_document): added a test to make sure faces are known. 1997-03-25 Akim Demaille * src/main.c (long_options): Changed --font into --font-size, because the prologues are the good place to change the base font. * style-src/utils.c (guess_with_rules): Fixed a problem on the definition of success for fnmatch. Now more portable. 1997-03-23 Akim Demaille * lib/xstrrpl.c (xvstrrpl): new function, that takes vargars intead of an array. * lib/xstrrpl.c: destructive counterparts are added. 1997-03-22 Akim Demaille * lib/postscript.c (ps_print_char): Now there is a ps function to print line numbers. 1997-03-18 Akim Demaille * lib/postscript.c (ps_font): Got rid of the hard coded fonts: now only Keyword, Comment, and such. * lib/afm.c: Moved more responsibility to Ogonkify. 1997-03-17 Akim Demaille * src/buffer.c (mygetstring): Deeply modified to support the very strange nroff sequences that may include ^H. Now I can get rid of CourierBack, which was not portable to built char sets such as those of Ogonkify. 1997-03-17 Akim Demaille * lib/postscript.c (ps_print_char): case '\b' removed. 1997-03-17 Akim Demaille * etc/base.ps: Got rid of CourierBack and reencoded_backspace_font. Now the C has to handle this by itself. 1997-03-16 Akim Demaille * src/main.c (read_config): Use getshline_numbered, so that long lines continued by a `\' at eol are considered. 1997-03-16 Akim Demaille * lib/pathwalk.c: new file, now reusable * lib/getshline.c (main): new file, with functions specialized in reading configuration files with lines continued by a '\' 1997-03-14 Akim Demaille * lib/encodings.c (expand_wx): fixed a bug: order between times and Symbol. * lib/postscript.c (FOLD_LINE): Fixed a bug in printing line-numbers when not in Courier. 1997-03-12 Akim Demaille * lib/message.c: New file. Function removed from lib/routines.c as the other varargs functions. 1997-03-10 Akim Demaille * src/styles05.m4: Included the Octave/MATLAB style, provided by Craig P. Earls . 1997-03-07 Akim Demaille * src/main.c (guess_language): Now file is used only if a2ps didn't guess anything. This speeds up, and avoids some of the common mistakes of file. 1997-03-07 Akim Demaille * lib/xfnmatch.h: Changed the name to xfnmatch, so that there could never be interferences between the system's lib/fnmatch.h, and the provided fnmatch. 1997-03-01 Akim Demaille * src/jobs.c (ps_set_encoding, ps_end_encoding, ps_switch_encoding): new functions. * src/jobs.c (output_file): grabs the setup parts of ps files, so that they are put in the %%DocumentSetup. 1997-03-01 Akim Demaille * *.enc: they build their own dictionaries, to ease multi lingual documents. 1997-02-28 Akim Demaille * src/jobs.c (new_job): Put default value of startpage to TRUE, and then simplified beginning of printing a document. 1997-02-25 Akim Demaille * src/job.h (print_job): now has a field NeededResources. * src/output.c (output_file): now recognises the NeededResources. * src/postscript.c (begin_document): NeededResources are delayed through a hash table in print_job. 1997-02-24 Akim Demaille * src/jobs.c (new_print_job): Better handling of strange configurations (no HOME var env, no passwd etc.) 1997-02-23 Akim Demaille * src/postscript.c: changed handling of line, font and columns requested, so that big size are better treated. 1997-02-13 Akim Demaille * lib/: better support of non ANSI platforms. * src/: less globals. * src/medias.h, src/medias.c: new files. 1997-02-09 Akim Demaille * src/main.c (add_fn_rule): New function. * src/main.c (read_config): `Pattern:' is new in the config. files. 1997-02-08 Akim Demaille * src/styles??.m4: Use of $ are the symbol for eol, instead of hard-coded \n (bad with Mac which closes with \r). 1997-02-07 Akim Demaille * src/styles.c.in: split in several files. * src/postscript.c (print_file): handling of cut by the main loop. 1997-02-04 Akim Demaille * src/report.c: fixed report wrt to new font schemes. * src/buffer.c (mygetc): Moved grabbing of tags in here. * src/postscript.c (print_file) No more dealing with font and "true font". Everything is handled by buffer.c 1997-02-01 Akim Demaille * src/style-utils.c (sort_keywords): precalculate the arrays min and max which correspond to the first and last keyword in the array that begin with the char which is the index of the array. * src/style-utils.c (sort_regulars): Idem. * src/style-utils.c (sort_specials): Idem. * src/buffer.c: simplified thanks to the six above arrays. 1997-01-31 Akim Demaille * src/style-util.c: Different handling of alternatives in the sequences. * src/buffer.c (is_sequence_begin): Now in the sequences, close_font is attached to its closer. * src/styles.c.in: removed old syntax of closing alternatives. 1997-01-28 Akim Demaille * src/routines.c (list_suffixp): New function. * src/main.c (list_features): Lists the prologues. * src/postscript.c (start_sheet): job->margin handled. * src/main.c (guess_language): Use of readpipe for speed improvement. 1997-01-26 Akim Demaille * postscript.c: job->strip handled, but not enough. 1997-01-21 Akim Demaille * src/jobs.[ch], src/postscript.c (job->statusdict, job->pagedevice): new variable. * src/main.c: support of the two previous through -D and -S. 1997-01-19 Akim Demaille * src/postscript.c (print_file): introduced true_font to avoid bugs because of "virtual information" in fonts, such as TAG1 etc. * src/main.c: news options --margin, --strip-comments * src/postscript.c, routines.c, styles.c: changed handling of tags to something more uniform. * src/jobs.c, jobs.h: more rigorous handling of the information related to files/print job. * output.c, output.h: new files, in charge with the second pass. * doc/mika.texi: updated. * doc/mika.1, doc/prescript.1: no longer distributed. 1997-01-05 Akim Demaille * src/postscript.c, misc/a2ps.pro: redesigned the definition of the fonts (to be more flexible). * misc/pcg.enc: now fully supported. * misc/a2ps.pro: prepared for color. * misc/gray.pro: prolog with gray shades. 1997-01-04 Akim Demaille * src/postscript.c, misc/a2ps.pro: uniformization of the variable names. * src/postscript.c: fixed problems with counting of pages/sheets. 1997-01-03 Akim Demaille * src/postscript.c: now a2ps respects the drawing area. * src/a2ps.c (handle_options): more predefined layouts. 1997-01-02 Akim Demaille * src/postscript.c: moved more definitions in the document Setup. * src/postscript.c: in the ps, orientation is invisible (i.e., the sheet width is the paper height in landscape etc.). * src/a2ps.c (handle_options): new options --columns, --rows. 1996-12-31 Akim Demaille * src/postscript.c: More than two virtual pages may be used. * src/postscript.c (clean_up): fixed. * configure.in: got closer to GNU directories. Used libit. * src/routines.c (xgethostname): replaces get_host. * src/a2ps.c: $HOME is used for .a2psrc, instead of id->pwdir. 1996-12-29 Akim Demaille * src/postscript.c: Fixed DSC compliance. * lib/a2ps.pro: DSC compliance. 1996-12-21 Akim Demaille * src/routines.c (format_usr_string): introduced `%?'. 1996-12-19 Akim Demaille * buffer.c (is_sequence_open, is_sequence_close): implemented a more general scheme for sequences. * styles.c.in (fortran_mode, mail_mode): use of '^' specificator. 1996-12-18 Akim Demaille * buffer.c: prepared the matching sequences 1996-12-18 Akim Demaille * buffer.c: improved management of alphabets. * configure.in: fixed a problem when no${prefix} is given. 1996-12-16 Akim Demaille * buffer.c: used getline instead of "sliding buffers". It should make Fortran comments easier. 1996-12-15 Akim Demaille * libc/: added getline. 1996-12-14 Akim Demaille * lib/a2ps.pro (cfshow): new function. * lib/a2ps.pro (hp): position and size of center title fixed. * src/postscript.c (print_sheet_prologue): simplified. 1996-12-11 Akim Demaille * postscript.c: fixed prefix_size. * postscript.c: fixed handling of twinfiles. * postscript.c: fixed handling of wx of escaped strings. * a2ps.c (handle_options): fixed handling of --non-printable. 1996-12-08 Akim Demaille * postscript.c (print_sheet_prologue) fixed the handling of water marks. * a2ps.texi: added chapter on pretty printing. 1996-12-06 Akim Demaille * a2ps.c, postscript.c: dynamic headers are fixed. * a2ps.c: orientation may be implied by number of pages per sheet (unless specified). 1996-12-06 Akim Demaille * a2ps.c (main): made full use of library path. 1996-12-03 Akim Demaille * a2ps.c: handling of the headers (hanlde_options) is now finished ---I hope. * src/postscript.c, lib/a2ps.pro: water is given the angle to follow. * routines.h (IS_EMPTY): fixed a problem. 1996-12-02 Akim Demaille * src/a2ps.c (handle_option): use of GNU getopt. * src/a2ps.c (list_options): separated from --version. * src/afm.c: handling of WX's goes through a table, to improve speed. 1996-11-29 Akim Demaille * postscript.c (print_prologue): now the media used is specified in the PS prologue. * afm.c: added mac and latin2 encodings. PS support is needed in order to use them --to do. * configure.in: added tests on "uchar", supposed to be unsigned char, unless char is unsigned. Most src's are adapted to uchar. 1996-11-27 Akim Demaille * everyfile: the handling of the various options is no longer dynamic, hence many "new_" variables were killed. * postscript.c: better PostScript prologue. Most variables in common with a2ps.c is shared through the struct print_job. * a2ps.pro: less variables, more stack management. 1996-11-24 Akim Demaille * everyfile: Used a more general scheme for the handling of date, footers etc. 1996-11-21 Akim Demaille * a2ps.c: (main) reading a2psrc files (system's, home's, and ./'s). * routines.c: (path_walk, paste_file, xstrdup, xmalloc, xfree, message, file_lookup, file_existsp) new functions, stolen from GNU enscript. * report.c: uses library files instead of big printfs. * postscript.c: uses library files. * configure.in: configuration time options are useless, since a2psrc is --at last-- born. 1996-11-18 Akim Demaille * xmalloc.c: new file. Stollen from GNU enscript. * routines.c (fatal, error): new functions. Every error msg has been check and uses errno when possible. * po/, intl/: updated to GNU gettext-0.10.24 1996-11-17 Akim Demaille * postscript.c, main.c: Dates are I16ed. 1996-11-16 Akim Demaille * postscript.c Header and footer better suported (parenthesis etc.). * styles.c.in (prescript_tyle) Added support for \footer and \header. * report.c (report, report_language) Defined dynamic header and footer). * configure.in Fixed bug with --enable-print-default 1996-11-15 Akim Demaille * postscript.c Introduced new font modifiers: HEADER and FOOTER that allows to define footer and header on-the-fly, from the file. * styles.c.in (mail_style) Added HEADER and FOOTER to sequences on Subject and From. 1996-11-15 Akim Demaille * po/it.po. Added Italian support with Daniele Ghiotti. 1996-11-13 Akim Demaille * NLS supported with GNU gettext. * Keywords, Symbols are now sorted. * Changed the encoding of the fonts in the style sheet base. * (routines.c, a2ps.c) When style is mailfolder, use subject and sender as header and footer. Edit history: 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 Highligting mode Modified by Akim Demaille (demaille@inf.enst.fr) 43) Fixed line numbering, folding, managing of strings and escapes 44) Added alphabet, case sensitiveness, symbol translation (-t, -nt) 45) Added -L, -nk, -u, and made -k, -nH, -i, -ni positionnnal 46) Sequences now have three fonts (open, in, close) 47) Changed handling of exceptions (e.g. \", \\, etc.) 48) Small fix to allow print without LPR_OPT and with LPR_DEST_OPT 49) Introduced options -V, -a, -o, -W, -G and -k(none) 50) Added a "window" to the buffer to ensure that keywords, even at the edge of the buffer, are recognized 51) Manage the real length (WX field in afms) of chars 52) fread is used instead of fgets: \0 no longer ends the line 53) tabs in ps are "absolute": they always correspond to Courier 54) text footer now is `relative' (i.e. it is affected by MARGIN) 55) Change the architecture: behavior 56) Introduced a general scheme for various char encodings * Tried as hard as I could to have the shortest number possible of warnings with a strict compiler. * Form feed handeling changed so that - the line numbering is exactely the same as Emacs or others would have done (i.e. number of previous \n plus one) - a form feed immediately followed by a new line won't appear as a blank line at the beginning of the next page - every formfeed is correctly handled (even if there two adjacent \f). a2ps-4.14/README-cvs0000644000175000017500000000337310735323065013310 0ustar mhattamhattaThese notes intend to help people working on the CVS versions of a2ps. Only the sources are installed in the CVS repository (to ease the maintenance, merges etc.), therefore you will have to the maintainer tools we depend upon: - Automake 1.6.3 - Autoconf 2.57 (ftp://ftp.gnu.org/pub/gnu/autoconf/autoconf-2.57.tar.gz) - Gettext 0.11.5 - Libtool 1.4.2a I'm using the Debian package. - Gperf 2.7.2 Only building the initial full source tree will be a bit painful, later, a plain `cvs update -P & make' should be sufficient. * First CVS checkout Obviously, if you are reading these notes, you did manage to check out Bison from CVS. For the records, you will find all the relevant information on: http://savannah.gnu.org/cvs/?group_id=56 The next step is asking the installation of all the missing files: $ ./bootstrap At this point, there should be no difference between your local copy, and the CVS master copy: $ cvs diff should output no difference, except maybe the date in po/*.po files. Enjoy! ----- Copyright (C) 2002 Free Software Foundation, Inc. This file is part of GNU a2ps. GNU a2ps is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. GNU a2ps is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU a2ps; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. a2ps-4.14/lib/0000755000175000017500000000000010735337377012412 5ustar mhattamhattaa2ps-4.14/lib/options.c0000644000175000017500000005110510735324675014250 0ustar mhattamhatta/* * options.c * * Read and understanding everything about the options * * 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: options.c,v 1.1.1.1.2.2 2007/12/29 01:58:21 mhatta Exp $ */ /************************************************************************/ /* */ /* I n c l u d e f i l e s */ /* */ /************************************************************************/ #include #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" #define MAN_LINES 66 /* no lines for a man */ extern char *program_name; extern const char *program_invocation_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_ASSERT (bool_args, bool_types); return XARGCASEMATCH (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_invocation_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 */ xustrcpy (job->header, optarg); break; case 'B': /* No headers at all */ /* Free them if they were allocated */ XFREE (job->header); XFREE (job->left_footer); XFREE (job->footer); XFREE (job->right_footer); XFREE (job->left_title); XFREE (job->center_title); XFREE (job->right_title); XFREE (job->water); job->header = UNULL; job->left_footer = UNULL; job->footer = UNULL; job->right_footer = UNULL; job->left_title = UNULL; job->center_title = UNULL; job->right_title = UNULL; job->water = UNULL; 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 ? 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 = 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 = 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 = 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_ASSERT (duplex_args, duplex_types); job->duplex = XARGCASEMATCH ("--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 */ xustrcpy (job->title, optarg); break; case 'T': job->tabsize = get_integer_in_range ("--tabsize", optarg, 1, 0, range_min); break; case 'u': /* water mark (under lay) */ xustrcpy (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 */ XFREE (job->requested_encoding_name); job->requested_encoding_name = xstrdup (optarg); break; case 132: /* Number of columns */ job->columns = get_integer_in_range ("--columns", optarg, 1, 0, range_min); break; case 133: /* Number of rows */ job->rows = 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_ASSERT (non_printable_args, non_printable_types); job->unprintable_format = XARGCASEMATCH ("--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: xustrcpy (job->left_title, optarg); break; case 141: xustrcpy (job->right_title, optarg); break; case 149: xustrcpy (job->center_title, optarg); break; case 142: xustrcpy (job->left_footer, optarg); break; case 143: xustrcpy (job->footer, optarg); break; case 144: xustrcpy (job->right_footer, optarg); break; case 146: /* --debug */ job->debug = true; break; case 147: /* --margin */ if (optarg) job->margin = 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 */ xustrcpy (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 them run a2ps_handle_options onto the arguement vector. Return optind, i.e., the index of the 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); /* Cleanup. */ freeargv_from (argv, 1); return res; } a2ps-4.14/lib/getshline.c0000644000175000017500000001232610735322362014530 0ustar mhattamhatta/* getshline.c -- read a meaningfull line from a file Copyright (C) 1993, 1996 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 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. */ #if HAVE_CONFIG_H # include #endif #include #if HAVE_SYS_TYPES_H # include #endif #include #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 int getshstr (int * firstline, int * lastline, char ** lineptr, size_t * n, FILE * stream, char terminator, int terminator_quote, int commentor, size_t offset) { int nchars_avail; /* Allocated but unused chars in *LINEPTR. */ char *read_pos; /* Where we're reading into *LINEPTR. */ int ret; if (!lineptr || !n || !stream) return -1; if (!*lineptr) { *n = MIN_CHUNK; *lineptr = XMALLOC (char, *n); if (!*lineptr) return -1; } /* We are reading a new line */ *firstline = ++(*lastline); nchars_avail = *n - offset; read_pos = *lineptr + offset; for (;;) { register 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 = *n + *lineptr - read_pos; *lineptr = XREALLOC (*lineptr, char, *n); 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++ = c; nchars_avail--; if (c == terminator) { /* The comment lines can not 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'; ret = read_pos - (*lineptr + offset); return ret; } int getshline_numbered (int * firstline, int * lastline, char ** lineptr, size_t * n, FILE * stream) { return getshstr (firstline, lastline, lineptr, n, stream, '\n', '\\', '#', 0); } int getshline (char ** lineptr, size_t * n, FILE * stream) { int firstline, lastline; return getshstr (&firstline, &lastline, lineptr, n, stream, '\n', '\\', '#', 0); } int getshdelim_numbered (int * firstline, int * lastline, char ** lineptr, size_t * n, int delimiter, int delimiter_quote, int commentor, FILE * stream) { return getshstr (firstline, lastline, lineptr, n, stream, delimiter, delimiter_quote, commentor, 0); } int getshdelim (char ** lineptr, size_t * n, int delimiter, int delimiter_quote, int commentor, FILE * stream) { int firstline, lastline; return getshstr (&firstline, &lastline, lineptr, n, stream, 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 (1); file = fopen (argv[1], "r"); if (!file) exit (1); while ((res = getshline_numbered (&firstline, &lastline, &line_content, &line_size, file)) != -1) printf ("%3d-%3d:%s", firstline, lastline, line_content); free (line_content); return 0; } #endif a2ps-4.14/lib/hashtab.h0000644000175000017500000001730510735322367014174 0ustar mhattamhatta/* hash.h -- decls for hash table Copyright (C) 1995 Free Software Foundation, Inc. Written by Greg McGary This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 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. */ /* * This version has been modified by Akim Demaille * so that * - hash_free_item takes as argument the free function to be applied * to the items. * - hash_free takes a function pointer supposed to be the free * function to be used, instead of an integer which was saying if * free should have been called or not. * - hash_out made to print a hash_table. */ #ifndef HASHTAB_H_ # define HASHTAB_H_ # ifndef PARAMS # if defined (__GNUC__) || (defined (__STDC__) && __STDC__) # define PARAMS(args) args # else # define PARAMS(args) () # endif /* GCC. */ # endif /* Not PARAMS. */ typedef unsigned long (*hash_func_t) PARAMS((void const *key)); typedef int (*hash_cmp_func_t) PARAMS((void const *x, void const *y)); typedef int (*hash_select_func_t) PARAMS ((void const *item)); typedef void (*hash_map_func_t) PARAMS((void const *item)); typedef void (*hash_maparg_func_t) PARAMS((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) PARAMS((void const *, void const *)); void hash_init PARAMS((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 PARAMS((struct hash_table_s *ht, void *item_table, unsigned long cardinality, unsigned long size)); void **hash_find_slot PARAMS((struct hash_table_s *ht, void const *key)); void *hash_find_item PARAMS((struct hash_table_s *ht, void const *key)); void *hash_insert PARAMS((struct hash_table_s *ht, void *item)); void *hash_insert_at PARAMS((struct hash_table_s *ht, void *item, void const *slot)); void *hash_delete PARAMS((struct hash_table_s *ht, void const *item)); void *hash_delete_at PARAMS((struct hash_table_s *ht, void const *slot)); void hash_delete_items PARAMS((struct hash_table_s *ht)); void hash_free_items PARAMS((struct hash_table_s *ht, hash_map_func_t free_fn)); void hash_free PARAMS((struct hash_table_s *ht, hash_map_func_t free_fn)); void hash_map PARAMS((struct hash_table_s *ht, hash_map_func_t map)); void hash_maparg PARAMS((struct hash_table_s *ht, hash_maparg_func_t map, void const *arg, qsort_cmp_t compare)); void hash_print_stats PARAMS((struct hash_table_s *ht, FILE *out_FILE)); void **hash_dump PARAMS((struct hash_table_s *ht, void **vector_0, qsort_cmp_t compare)); void **hash_dump_select PARAMS((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_) += (*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_) += (*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 { \ unsigned char const *xx = (unsigned char const *) (_x_) - 1; \ unsigned char const *yy = (unsigned 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_) += (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 { \ unsigned char const *xx = (unsigned char const *) (_x_) - 1; \ unsigned char const *yy = (unsigned 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.14/lib/fonts.c0000644000175000017500000020142010735337342013676 0ustar mhattamhatta#line 2 "fonts.c" #line 4 "fonts.c" #define YY_INT_ALIGNED short int /* A lexical scanner generated by flex */ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 #define YY_FLEX_SUBMINOR_VERSION 33 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ #include #include #include #include /* end standard C headers. */ /* flex integer type definitions */ #ifndef FLEXINT_H #define FLEXINT_H /* C99 systems have . Non-C99 systems may or may not. */ #if __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 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; #endif /* ! C99 */ /* 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 #endif /* ! FLEXINT_H */ #ifdef __cplusplus /* The "const" storage-class-modifier is valid. */ #define YY_USE_CONST #else /* ! __cplusplus */ #if __STDC__ #define YY_USE_CONST #endif /* __STDC__ */ #endif /* ! __cplusplus */ #ifdef YY_USE_CONST #define yyconst const #else #define yyconst #endif /* Returned upon end-of-file. */ #define YY_NULL 0 /* Promotes a possibly negative, possibly signed char to an unsigned * integer for use as an array index. If the signed char is negative, * we want to instead treat it as an 8-bit unsigned char, hence the * double cast. */ #define YY_SC_TO_UI(c) ((unsigned int) (unsigned 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 afmrestart(afmin ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE #define YY_BUF_SIZE 16384 #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 extern int afmleng; extern FILE *afmin, *afmout; #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 afmlex. * One obvious solution it to make yy_act a global. I tried that, and saw * a 5% performance hit in a non-afmlineno 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 < afmleng; ++yyl )\ if ( afmtext[yyl] == '\n' )\ --afmlineno;\ }while(0) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ do \ { \ /* Undo effects of setting up afmtext. */ \ 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 afmtext again */ \ } \ while ( 0 ) #define unput(c) yyunput( c, (yytext_ptr) ) /* The following is because we cannot portably get our hands on size_t * (without autoconf's help, which isn't available because we want * flex-generated scanners to compile on their own). */ #ifndef YY_TYPEDEF_YY_SIZE_T #define YY_TYPEDEF_YY_SIZE_T typedef unsigned int yy_size_t; #endif #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. */ yy_size_t 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 afmrestart()), so that the user can continue scanning by * just pointing afmin 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 = 0; /**< 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 afmtext is formed. */ static char yy_hold_char; static int yy_n_chars; /* number of characters read into yy_ch_buf */ int afmleng; /* Points to current character in buffer. */ static char *yy_c_buf_p = (char *) 0; static int yy_init = 0; /* whether we need to initialize */ static int yy_start = 0; /* start state number */ /* Flag which is used to allow afmwrap()'s to do buffer switches * instead of setting up a fresh afmin. A bit of a hack ... */ static int yy_did_buffer_switch_on_eof; void afmrestart (FILE *input_file ); void afm_switch_to_buffer (YY_BUFFER_STATE new_buffer ); YY_BUFFER_STATE afm_create_buffer (FILE *file,int size ); void afm_delete_buffer (YY_BUFFER_STATE b ); void afm_flush_buffer (YY_BUFFER_STATE b ); void afmpush_buffer_state (YY_BUFFER_STATE new_buffer ); void afmpop_buffer_state (void ); static void afmensure_buffer_stack (void ); static void afm_load_buffer_state (void ); static void afm_init_buffer (YY_BUFFER_STATE b,FILE *file ); #define YY_FLUSH_BUFFER afm_flush_buffer(YY_CURRENT_BUFFER ) YY_BUFFER_STATE afm_scan_buffer (char *base,yy_size_t size ); YY_BUFFER_STATE afm_scan_string (yyconst char *yy_str ); YY_BUFFER_STATE afm_scan_bytes (yyconst char *bytes,int len ); void *afmalloc (yy_size_t ); void *afmrealloc (void *,yy_size_t ); void afmfree (void * ); #define yy_new_buffer afm_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ afmensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ afm_create_buffer(afmin,YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ afmensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ afm_create_buffer(afmin,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 unsigned char YY_CHAR; FILE *afmin = (FILE *) 0, *afmout = (FILE *) 0; typedef int yy_state_type; extern int afmlineno; int afmlineno = 1; extern char *afmtext; #define yytext_ptr afmtext 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 yy_fatal_error (yyconst char msg[] ); /* Done after the current pattern has been matched and before the * corresponding action - sets up afmtext. */ #define YY_DO_BEFORE_ACTION \ (yytext_ptr) = yy_bp; \ afmleng = (size_t) (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 yyconst 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 yyconst flex_int32_t 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 yyconst flex_int32_t 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 yyconst 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 yyconst 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 yyconst 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 yyconst 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 yyconst 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 afm_flex_debug; int afm_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 *afmtext; #line 1 "fonts.l" #line 2 "fonts.l" /* * 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. */ /* * $Id: fonts.l,v 1.1.1.1.2.1 2007/12/29 01:58:18 mhatta Exp $ */ #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. Down load a font file */ /************************************************************************/ /* fonts.map handling */ /************************************************************************/ struct pair_htable * fonts_map_new (void) { return pair_table_new (); } void fonts_map_free (struct pair_htable * table) { pair_table_free (table); } 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); free (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 PARAMS ((struct hash_table_s * table, const char * glyph, int the_index, unsigned int wx)); int afmlex PARAMS ((void)); #line 692 "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 #endif #ifndef YY_EXTRA_TYPE #define YY_EXTRA_TYPE void * #endif static int yy_init_globals (void ); /* Macros after this point can all be overridden by user definitions in * section 1. */ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus extern "C" int afmwrap (void ); #else extern int afmwrap (void ); #endif #endif static void yyunput (int c,char *buf_ptr ); #ifndef yytext_ptr static void yy_flex_strncpy (char *,yyconst char *,int ); #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (yyconst 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 #define YY_READ_BUF_SIZE 8192 #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 (void) fwrite( afmtext, afmleng, 1, afmout ) #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 = '*'; \ size_t n; \ for ( n = 0; n < max_size && \ (c = getc( afmin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ if ( c == '\n' ) \ buf[n++] = (char) c; \ if ( c == EOF && ferror( afmin ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ result = n; \ } \ else \ { \ errno=0; \ while ( (result = fread(buf, 1, max_size, afmin))==0 && ferror(afmin)) \ { \ if( errno != EINTR) \ { \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ break; \ } \ errno=0; \ clearerr(afmin); \ } \ }\ \ #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 afmlex (void); #define YY_DECL int afmlex (void) #endif /* !YY_DECL */ /* Code executed at the beginning of each rule, after afmtext and afmleng * 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 break; #endif #define YY_RULE_SETUP \ YY_USER_ACTION /** The main scanner function which does all the work. */ YY_DECL { register yy_state_type yy_current_state; register char *yy_cp, *yy_bp; register int yy_act; #line 190 "fonts.l" #line 849 "fonts.c" if ( !(yy_init) ) { (yy_init) = 1; #ifdef YY_USER_INIT YY_USER_INIT; #endif if ( ! (yy_start) ) (yy_start) = 1; /* first start state */ if ( ! afmin ) afmin = stdin; if ( ! afmout ) afmout = stdout; if ( ! YY_CURRENT_BUFFER ) { afmensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = afm_create_buffer(afmin,YY_BUF_SIZE ); } afm_load_buffer_state( ); } while ( 1 ) /* loops until end-of-file is reached */ { yy_cp = (yy_c_buf_p); /* Support of afmtext. */ *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 { register 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[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) 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 < afmleng; ++yyl ) if ( afmtext[yyl] == '\n' ) afmlineno++; ; } 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 192 "fonts.l" { BEGIN STATE_CHAR_METRICS; } YY_BREAK case 2: /* rule 2 can match eol */ YY_RULE_SETUP #line 194 "fonts.l" { /* Ignore */; } YY_BREAK /* string of characters */ case 3: YY_RULE_SETUP #line 198 "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 206 "fonts.l" { char *cursor = afmtext + 3; last_index_read = afmtext[2] - '0'; while (*cursor) last_index_read = 10 * last_index_read + *cursor++ - '0'; } YY_BREAK case 5: YY_RULE_SETUP #line 214 "fonts.l" { char *cursor = afmtext + 4; last_index_read = afmtext[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 223 "fonts.l" { char *cursor = afmtext + 4; last_wx_read = afmtext[3] - '0'; while (*cursor) last_wx_read = 10 * last_wx_read + *cursor++ - '0'; } YY_BREAK case 7: YY_RULE_SETUP #line 231 "fonts.l" { char *cursor = afmtext + 2; wx_entry_add (font_info_being_parsed->wx, cursor, last_index_read, last_wx_read); } YY_BREAK case 8: YY_RULE_SETUP #line 237 "fonts.l" { /* Ignore */; } YY_BREAK case 9: /* rule 9 can match eol */ YY_RULE_SETUP #line 238 "fonts.l" { /* Ignore */; } YY_BREAK case 10: YY_RULE_SETUP #line 241 "fonts.l" ECHO; YY_BREAK #line 1026 "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 afmin at a new source and called * afmlex(). 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 = afmin; 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 ( afmwrap( ) ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up * afmtext, 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 afmlex */ /* 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) { register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; register char *source = (yytext_ptr); register 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; 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. */ afmrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); } else /* Can't grow it, we don't own it. */ b->yy_ch_buf = 0; 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), (size_t) 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; afmrestart(afmin ); } 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; (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) { register yy_state_type yy_current_state; register char *yy_cp; yy_current_state = (yy_start); for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) { register 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[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) 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 ) { register int yy_is_jam; register char *yy_cp = (yy_c_buf_p); register 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[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; yy_is_jam = (yy_current_state == 56); return yy_is_jam ? 0 : yy_current_state; } static void yyunput (int c, register char * yy_bp ) { register char *yy_cp; yy_cp = (yy_c_buf_p); /* undo effects of setting up afmtext */ *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. */ register int number_to_move = (yy_n_chars) + 2; register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; register 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) = 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' ){ --afmlineno; } (yytext_ptr) = yy_bp; (yy_hold_char) = *yy_cp; (yy_c_buf_p) = yy_cp; } #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 = (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. */ afmrestart(afmin ); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { if ( afmwrap( ) ) return EOF; 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 afmtext */ (yy_hold_char) = *++(yy_c_buf_p); if ( c == '\n' ) afmlineno++; ; 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 afmrestart (FILE * input_file ) { if ( ! YY_CURRENT_BUFFER ){ afmensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = afm_create_buffer(afmin,YY_BUF_SIZE ); } afm_init_buffer(YY_CURRENT_BUFFER,input_file ); afm_load_buffer_state( ); } /** Switch to a different input buffer. * @param new_buffer The new input buffer. * */ void afm_switch_to_buffer (YY_BUFFER_STATE new_buffer ) { /* TODO. We should be able to replace this entire function body * with * afmpop_buffer_state(); * afmpush_buffer_state(new_buffer); */ afmensure_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; afm_load_buffer_state( ); /* We don't actually know whether we did this switch during * EOF (afmwrap()) processing, but the only time this flag * is looked at is after afmwrap() is called, so it's safe * to go ahead and always set it. */ (yy_did_buffer_switch_on_eof) = 1; } static void afm_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; afmin = 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 afm_create_buffer (FILE * file, int size ) { YY_BUFFER_STATE b; b = (YY_BUFFER_STATE) afmalloc(sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in afm_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 *) afmalloc(b->yy_buf_size + 2 ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in afm_create_buffer()" ); b->yy_is_our_buffer = 1; afm_init_buffer(b,file ); return b; } /** Destroy the buffer. * @param b a buffer created with afm_create_buffer() * */ void afm_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 ) afmfree((void *) b->yy_ch_buf ); afmfree((void *) b ); } #ifndef __cplusplus extern int isatty (int ); #endif /* __cplusplus */ /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a afmrestart() or at EOF. */ static void afm_init_buffer (YY_BUFFER_STATE b, FILE * file ) { int oerrno = errno; afm_flush_buffer(b ); b->yy_input_file = file; b->yy_fill_buffer = 1; /* If b is the current buffer, then afm_init_buffer was _probably_ * called from afmrestart() 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 afm_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 ) afm_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 afmpush_buffer_state (YY_BUFFER_STATE new_buffer ) { if (new_buffer == NULL) return; afmensure_buffer_stack(); /* This block is copied from afm_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 afm_switch_to_buffer. */ afm_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 afmpop_buffer_state (void) { if (!YY_CURRENT_BUFFER) return; afm_delete_buffer(YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; if ((yy_buffer_stack_top) > 0) --(yy_buffer_stack_top); if (YY_CURRENT_BUFFER) { afm_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 afmensure_buffer_stack (void) { int 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; (yy_buffer_stack) = (struct yy_buffer_state**)afmalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); 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. */ int grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; (yy_buffer_stack) = (struct yy_buffer_state**)afmrealloc ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state*) ); /* 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 afm_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 0; b = (YY_BUFFER_STATE) afmalloc(sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in afm_scan_buffer()" ); b->yy_buf_size = 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 = 0; 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; afm_switch_to_buffer(b ); return b; } /** Setup the input buffer state to scan a string. The next call to afmlex() 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 * afm_scan_bytes() instead. */ YY_BUFFER_STATE afm_scan_string (yyconst char * yystr ) { return afm_scan_bytes(yystr,strlen(yystr) ); } /** Setup the input buffer state to scan the given bytes. The next call to afmlex() will * scan from a @e copy of @a bytes. * @param bytes the byte buffer to scan * @param len the number of bytes in the buffer pointed to by @a bytes. * * @return the newly allocated buffer state object. */ YY_BUFFER_STATE afm_scan_bytes (yyconst 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 = _yybytes_len + 2; buf = (char *) afmalloc(n ); if ( ! buf ) YY_FATAL_ERROR( "out of dynamic memory in afm_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 = afm_scan_buffer(buf,n ); if ( ! b ) YY_FATAL_ERROR( "bad buffer in afm_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 yy_fatal_error (yyconst char* msg ) { (void) 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 afmtext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ afmtext[afmleng] = (yy_hold_char); \ (yy_c_buf_p) = afmtext + yyless_macro_arg; \ (yy_hold_char) = *(yy_c_buf_p); \ *(yy_c_buf_p) = '\0'; \ afmleng = yyless_macro_arg; \ } \ while ( 0 ) /* Accessor methods (get/set functions) to struct members. */ /** Get the current line number. * */ int afmget_lineno (void) { return afmlineno; } /** Get the input stream. * */ FILE *afmget_in (void) { return afmin; } /** Get the output stream. * */ FILE *afmget_out (void) { return afmout; } /** Get the length of the current token. * */ int afmget_leng (void) { return afmleng; } /** Get the current token. * */ char *afmget_text (void) { return afmtext; } /** Set the current line number. * @param line_number * */ void afmset_lineno (int line_number ) { afmlineno = line_number; } /** Set the input stream. This does not discard the current * input buffer. * @param in_str A readable stream. * * @see afm_switch_to_buffer */ void afmset_in (FILE * in_str ) { afmin = in_str ; } void afmset_out (FILE * out_str ) { afmout = out_str ; } int afmget_debug (void) { return afm_flex_debug; } void afmset_debug (int bdebug ) { afm_flex_debug = bdebug ; } static int yy_init_globals (void) { /* Initialization is the same as for the non-reentrant scanner. * This function is called from afmlex_destroy(), so don't allocate here. */ /* We do not touch afmlineno unless the option is enabled. */ afmlineno = 1; (yy_buffer_stack) = 0; (yy_buffer_stack_top) = 0; (yy_buffer_stack_max) = 0; (yy_c_buf_p) = (char *) 0; (yy_init) = 0; (yy_start) = 0; /* Defined in main.c */ #ifdef YY_STDINIT afmin = stdin; afmout = stdout; #else afmin = (FILE *) 0; afmout = (FILE *) 0; #endif /* For future reference: Set errno on error, since we are called by * afmlex_init() */ return 0; } /* afmlex_destroy is for both reentrant and non-reentrant scanners. */ int afmlex_destroy (void) { /* Pop the buffer stack, destroying each element. */ while(YY_CURRENT_BUFFER){ afm_delete_buffer(YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; afmpop_buffer_state(); } /* Destroy the stack itself. */ afmfree((yy_buffer_stack) ); (yy_buffer_stack) = NULL; /* Reset the globals. This is important in a non-reentrant scanner so the next time * afmlex() is called, initialization will occur. */ yy_init_globals( ); return 0; } /* * Internal utility routines. */ #ifndef yytext_ptr static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) { register int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (yyconst char * s ) { register int n; for ( n = 0; s[n]; ++n ) ; return n; } #endif void *afmalloc (yy_size_t size ) { return (void *) malloc( size ); } void *afmrealloc (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 (void *) realloc( (char *) ptr, size ); } void afmfree (void * ptr ) { free( (char *) ptr ); /* see afmrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" #line 241 "fonts.l" int afmwrap (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); } #if 0 /* * For sorting them in alpha order */ static int wx_entry_hash_qcmp (struct wx_entry **x, struct wx_entry **y) { return_STRING_COMPARE ((*x)->glyph, (*y)->glyph); } #endif /* * 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, 1); 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; } /* * Free a wx_entry entry */ static void hash_free_wx_entry (struct wx_entry * wx_entry) { free (wx_entry->glyph); free (wx_entry); } /* * Free the whole structure */ static void wx_entry_table_free (struct hash_table_s * table) { hash_free (table, (hash_map_func_t) hash_free_wx_entry); free (table); } /* * 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, 1); 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; } #if 0 /* * Typically for --list-features */ static void wx_entry_list_short (struct hash_table_s * table, FILE * stream) { int i, tab; struct wx_entry ** entries; entries = (struct wx_entry **) hash_dump (table, NULL, (hash_cmp_func_t) wx_entry_hash_qcmp); tab = 0; for (i = 0 ; entries[i] ; i++) { if (!(tab % 7)) fputs ("\n ", stream); fprintf (stream, "%-10s", entries[i]->glyph); tab++; } putc ('\n', stream); free (entries); } /* * Typically for --list- */ static void wx_entry_list_long (struct hash_table_s * table, FILE * stream) { int i; struct wx_entry ** entries; entries = (struct wx_entry **) hash_dump (table, NULL, (hash_cmp_func_t) wx_entry_hash_qcmp); for (i = 0 ; entries[i] ; i++) fprintf (stream, " %-10s (%d) = %d\n", entries[i]->glyph, entries[i]->index, entries[i]->wx); putc ('\n', stream); free (entries); } #endif /* * 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); } #if 0 /* * For sorting them in alpha order */ static int font_info_hash_qcmp (struct font_info **x, struct font_info **y) { return_STRING_COMPARE ((*x)->key, (*y)->key); } #endif /* * Create the structure that stores the list of font_infos */ struct hash_table_s * font_info_table_new (void) { NEW (struct hash_table_s, res); 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; } /* * Free a font_info entry */ static void hash_free_font_info (struct font_info * font_info) { free (font_info->key); wx_entry_table_free (font_info->wx); free (font_info); } /* * Free the whole structure */ void font_info_table_free (struct hash_table_s * table) { hash_free (table, (hash_map_func_t) hash_free_font_info); free (table); } /* * Create and return a new font_info cell, with key = KEY */ static inline struct font_info * font_info_new (const char * key) { NEW (struct font_info, res); 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; afmlineno = 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; afmrestart (stream); afmlex (); fclose (stream); free (file); } /* * 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 (PARAM_UNUSED struct a2ps_job * job, const char * key) { return !strequ (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; uchar 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); free (filename); } free (fonts); } a2ps-4.14/lib/dirname.c0000644000175000017500000000352710735322362014170 0ustar mhattamhatta/* dirname.c -- return all but the last element in a path Copyright (C) 1990, 1998 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if HAVE_CONFIG_H # include #endif #ifdef STDC_HEADERS # include #else char *malloc (); #endif #if defined STDC_HEADERS || defined HAVE_STRING_H # include #else # include # ifndef strrchr # define strrchr rindex # endif #endif #include "dirname.h" /* Return the leading directories part of PATH, allocated with malloc. If out of memory, return 0. Assumes that trailing slashes have already been removed. */ char * dir_name (const char *path) { char *newpath; char *slash; int length; /* Length of result, not including NUL. */ slash = strrchr (path, '/'); if (slash == 0) { /* File is in the current directory. */ path = "."; length = 1; } else { /* Remove any trailing slashes from the result. */ while (slash > path && *slash == '/') --slash; length = slash - path + 1; } newpath = (char *) malloc (length + 1); if (newpath == 0) return 0; strncpy (newpath, path, length); newpath[length] = 0; return newpath; } a2ps-4.14/lib/basename.c0000755000175000017500000000347610735322361014331 0ustar mhattamhatta/* basename.c -- return the last element in a path Copyright (C) 1990, 1998, 1999 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if HAVE_CONFIG_H # include #endif #ifndef FILESYSTEM_PREFIX_LEN # define FILESYSTEM_PREFIX_LEN(Filename) 0 #endif #ifndef PARAMS # if defined PROTOTYPES || (defined __STDC__ && __STDC__) # define PARAMS(Args) Args # else # define PARAMS(Args) () # endif #endif #ifndef ISSLASH # define ISSLASH(C) ((C) == '/') #endif char *base_name PARAMS ((char const *name)); /* In general, we can't use the builtin `basename' function if available, since it has different meanings in different environments. In some environments the builtin `basename' modifies its argument. If NAME is all slashes, be sure to return `/'. */ char * base_name (char const *name) { char const *base = name += FILESYSTEM_PREFIX_LEN (name); int all_slashes = 1; char const *p; for (p = name; *p; p++) { if (ISSLASH (*p)) base = p + 1; else all_slashes = 0; } /* If NAME is all slashes, arrange to return `/'. */ if (*base == '\0' && ISSLASH (*name) && all_slashes) --base; return (char *) base; } a2ps-4.14/lib/ppd.h0000644000175000017500000000364510735324676013354 0ustar mhattamhatta/* * ppd.h * * PostScript Printer Description files * * 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: ppd.h,v 1.1.1.1.2.1 2007/12/29 01:58:22 mhatta Exp $ */ #ifndef PPD_H_ # define PPD_H_ struct a2ps_job; struct string_htable; int font_is_ps_known PARAMS ((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 PARAMS ((struct ppd * pdd, const char * fontname)); int ppd_font_known_p PARAMS ((struct ppd * pdd, const char * fontname)); /* * The whole struct */ struct ppd * ppd_new PARAMS ((void)); void ppd_free PARAMS ((struct ppd * pdd)); struct ppd * _a2ps_ppd_get PARAMS ((char * const * path, const char * key)); /* * Report them */ void _a2ps_ppd_list_short PARAMS ((char * const * path, FILE * stream)); void _a2ps_ppd_list_long PARAMS ((char * const * path, FILE * stream)); /* From parsepdd.y */ struct ppd * a2ps_ppd_parse PARAMS ((const char * filename, char * const *path)); #endif /* !defined(PPD_H_) */ a2ps-4.14/lib/filalign.c0000644000175000017500000000417410735324671014342 0ustar mhattamhatta/* * filalign.c * * File alignment managing. * * Copyright (c) 1988-1993 Miguel Santana * Copyright (c) 1995-1999 Akim Demaille, Miguel Santana * $Id: filalign.c,v 1.1.1.1.2.1 2007/12/29 01:58:17 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. */ #include "a2ps.h" #include "filalign.h" #include "argmatch.h" #include "getnum.h" #include /* * 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) { int i; ARGMATCH_ASSERT (file_align_args, file_align_types); i = ARGCASEMATCH (arg, file_align_args, file_align_types); if (i >= 0) return file_align_types[i]; i = get_integer_in_range (option, arg, 1, 0, range_min); return i; } /* 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 (file_align, file_align_args, file_align_types); sprintf (buf, "%d", file_align); return buf; } a2ps-4.14/lib/strdup.c0000644000175000017500000000226210735322362014065 0ustar mhattamhatta/* strdup.c -- return a newly allocated copy of a string Copyright (C) 1990, 1998 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if HAVE_CONFIG_H # include #endif #ifdef STDC_HEADERS # include # include #else char *malloc (); char *strcpy (); #endif /* Return a newly allocated copy of STR, or 0 if out of memory. */ char * strdup (const char *str) { char *newstr; newstr = (char *) malloc (strlen (str) + 1); if (newstr) strcpy (newstr, str); return newstr; } a2ps-4.14/lib/darray.c0000644000175000017500000003373210735322362014034 0ustar mhattamhatta/* darray.c -- dynamic arrays handling Copyright (c) 1996-99 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, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Author: Akim Demaille */ #include #include "darray.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': %d", name, size); if (increment == 0 && growth != da_steady) error (da_exit_error, 0, "invalid increment for dynamic array `%s': %d", name, increment); res = XMALLOC (struct darray, 1); res->name = name; res->original_size = size; res->size = size; res->content = XCALLOC (void *, res->size); res->growth = growth; res->increment = increment; res->len = 0; /* Routines */ res->self_print = self_print; res->cmp = cmp; return res; } static inline void _da_erase (struct darray * arr) { if (arr) { XFREE (arr->content); free (arr); } } void da_erase (struct darray * arr) { _da_erase (arr); } /* * Set length of ARR to 0, and free with FREE_FUNC if non NULL */ static inline void _da_free_content (struct darray * arr, da_map_func_t free_func) { size_t i; if (free_func) for (i = 0 ; i < arr->len ; i++) (*free_func) (arr->content [i]); arr->len = 0; } void da_free_content (struct darray * arr, da_map_func_t free_func) { _da_free_content (arr, free_func); } /* * Set length of ARR to 0, and free with FREE_FUNC if non NULL * and free the structure */ void da_free (struct darray * arr, da_map_func_t free_func) { _da_free_content (arr, free_func); _da_erase (arr); } /* * 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: %d/%d (%2.1f%%)\n"), arr->len, arr->size, 100.0 * arr->len / 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: %d, growth: %s %d\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 = XREALLOC (arr->content, void *, arr->size); } } /* * 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 = XREALLOC (arr->content, void *, arr->size); } /* * Make a clone */ struct darray * da_clone (struct darray * array) { struct darray * res; res = CLONE (array); res->content = CCLONE (array->content, array->len); 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 %d in darray %s [0,%d]\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, da_map_func_t free_func) { size_t i; if (where >= arr->len) error (da_exit_error, 0, "can't remove at %d in darray %s [0,%d]\n", where, arr->name, arr->len - 1); if (free_func) (*free_func) (arr->content [where]); 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 = XREALLOC (arr->content, void *, arr->size); } 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) { int i; size_t len = arr->len + arr2->len; if (len > arr->size) { arr->size = len + 1; arr->content = XREALLOC (arr->content, void *, arr->size); } /* Move the content of ARR */ for (i = (int) arr->len - 1 ; i >= 0 ; i--) arr->content [ i + arr2->len ] = arr->content [ i ]; /* Copy the content of ARR2 */ for (i = 0 ; i < (int) 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) { int ir, j, k, l, i; int jstack, *istack; void * a, * tmp; /* Do not sort an empty array */ if (arr->len <= 1) return; istack = XMALLOC (int, QSORT_STACK); 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 - 1 ; i >= l ; i--) { 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; } } } free (istack); } /* * Implementation of QSORT as given by Sedgewick */ void da_qsort_with_arg (struct darray * arr, da_cmp_arg_func_t cmp, const void * arg) { int ir, j, k, l, i; int jstack, *istack; void * a, * tmp; /* Do not sort an empty array */ if (arr->len <= 1) return; istack = XMALLOC (int, QSORT_STACK); 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 - 1 ; i >= l ; i--) { 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; } } } free (istack); } /* * Leave the first of each doubles */ void da_unique (struct darray * arr, da_map_func_t free_func) { 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, free_func); 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, da_map_func_t free_func, 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) { if (free_func) da_remove_at (a2, c2, free_func); else c2++; } else { if (free_func) da_remove_at (a1, c1, free_func); else c1++; } /* Take what is 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, "[%2d] = ", 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.14/lib/xdirent.h0000644000175000017500000000320310735322367014227 0ustar mhattamhatta/* xdirent.h -- dirent declarations wrapper Copyright (C) 1996 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef _xdirent_h_ #define _xdirent_h_ #if HAVE_DIRENT_H # include #endif #if HAVE_NDIR_H # include #endif #if HAVE_SYS_DIR_H # include #endif #if HAVE_SYS_NDIR_H # include #endif /* Interpret `HAVE_LINK' as meaning `UN*X style' directory structure (e.g., A single root called `/', with `/' separating links), and !HAVE_LINK as `DOS|OS/2|Windows style' (e.g., Multiple root volues named `x:', with `\' separating links). */ #if HAVE_LINK # define IS_ABSOLUTE(_dir_) ((_dir_)[0] == '/') # define SLASH_STRING "/" # define SLASH_CHAR '/' # define DOT_DOT_SLASH "../" #else /* NEEDSWORK: prefer forward-slashes as a user-configurable option. */ # define IS_ABSOLUTE(_dir_) ((_dir_)[1] == ':') # define SLASH_STRING "\\/" # define SLASH_CHAR '\\' # define DOT_DOT_SLASH "..\\" #endif #endif /* not _xdirent_h_ */ a2ps-4.14/lib/title.h0000644000175000017500000000260210735322367013675 0ustar mhattamhatta/* title.h -- declaration for verbosity sensitive feedback function Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana Copyright (c) 1995, 96, 97, 98 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, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* * Note: * very strong inspiration was taken in error.[ch] by * David MacKenzie */ #ifndef _TITLE_H_ #define _TITLE_H_ # if defined (__STDC__) && __STDC__ /* Print the title TITLE, which is a printf-style format string with optional args if msg_level is bigger than title_verbosity.*/ extern void title (FILE * stream, char c, int center_p, const char *format, ...) __attribute__ ((__format__ (__printf__, 4, 5))); # else void title (); # endif #endif /* not TITLE_H_ */ a2ps-4.14/lib/metaseq.c0000644000175000017500000010465210735324674014221 0ustar mhattamhatta/* * metaseq.c * * Handling of the meta sequences * Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana * Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana * $Id: metaseq.c,v 1.1.1.1.2.1 2007/12/29 01:58:20 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. */ /* * $Id: metaseq.c,v 1.1.1.1.2.1 2007/12/29 01:58:20 mhatta Exp $ */ #include "a2ps.h" #include "routines.h" #include "jobs.h" #include "fjobs.h" #include "stpncpy.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 (); } /* * Destruction */ void macro_meta_sequence_table_free (struct pair_htable * table) { pair_table_free (table); } /* * 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 = ustrlen (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 = ustrchr (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 uchar * context_name, const uchar * str) { uchar * cp, * cp2; size_t i = 0, j; uchar padding = ' ' ; /* Char used to complete %20 (usually ` ' or `.' */ uchar 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 + 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 ((char *) 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 ((char *) buf3, _("Printed by %s from %s"), cp, cp2); else sprintf ((char *) buf3, _("Printed by %s"), cp); APPEND_STR (buf3); break; case 'c': /* `%c' trailing component of pwd. */ cp = (uchar *) xgetcwd (); if (!cp) error (1, errno, _("cannot get current working directory")); cp2 = ustrrchr (cp, DIRECTORY_SEPARATOR); if (cp2) cp2++; else cp2 = cp; APPEND_STR (cp2); XFREE (cp); break; case 'C': /* `%C' runtime in `hh:mm:ss' format */ sprintf ((char *)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 = (uchar *) xgetcwd (); if (!cp) error (1, errno, _("cannot get current working directory")); APPEND_STR (cp); XFREE (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'; strftime ((char *) buf, sizeof (buf), (char *) buf2, &job->run_tm); } else { /* `%D' run date in `yy-mm-dd' format */ sprintf ((char *)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 ((char *) 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 ((char *) 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 ((char *)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); cp2 = ALLOCA (uchar, strlen (cp) + 1); strcpy (cp2, cp); cp = ustrchr (cp2, '.'); if (cp) *cp = '\0'; APPEND_STR (cp2); 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 ((char *)buf, "%d", 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 %d' */ sprintf ((char *)buf, _("Page %d"), job->pages); APPEND_STR (buf); break; case 'Q': /* `%Q' localized `Page %d/%c' */ sprintf ((char *)buf, _("Page %d/%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 ((char *)buf, "%d", 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 ((char *)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 ((char *)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 ((char *)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 ((char *) buf, "%s %s", PACKAGE, VERSION); APPEND_STR (buf); break; case 'W': /* `%W' run date in `mm/dd/yy' format */ sprintf ((char *)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 ((char *)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 = (uchar *) getenv ((char *)buf); if (cp) APPEND_STR (cp); break; case '{': /* ${ENVVAR} or ${ENVVAR:-word} or ${ENVVAR:+word} */ cp2 = UNULL; 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 = (uchar *) getenv ((char *)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 + 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 < job->argc) APPEND_STR (job->argv [value]); } break; case '#': /* `$#': input file number */ sprintf ((char *)buf, "%d", file->num); APPEND_STR (buf); break; case 'C': /* `$C' modtime in `hh:mm:ss' format */ sprintf ((char *)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 = ustrrchr (file->name, DIRECTORY_SEPARATOR); if (cp) { ustrncpy (buf, file->name, 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'; strftime ((char *) buf, sizeof (buf), (char *) buf2, &(file->mod_tm)); } else { /* `$D' mod date in `yy-mm-dd' format */ sprintf ((char *)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 ((char *) buf, sizeof (buf), (_("%b %d, %y")), &(file->mod_tm)); APPEND_STR (buf); break; case 'E': /* `$E' mod date in localized long format */ strftime ((char *) 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 ((char *)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 ((char *)buf, "%d", file->top_line); APPEND_STR (buf); break; case '.': /* `$l.' current line */ sprintf ((char *)buf, "%d", 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 ((char *)buf, "%d", 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 = ustrrchr (file->name, DIRECTORY_SEPARATOR); if (cp == NULL) cp =file->name; else cp ++; /* Then, until the last dot */ cp2 = ustrrchr (cp, '.'); if (cp2) { ustrncpy (buf, cp, cp2 - cp); buf [cp2 - cp] = '\0'; APPEND_STR (buf); } else APPEND_STR (cp); break; case 'n': /* `$n' input file name without directory */ cp = ustrrchr (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 ((char *)buf, "%d", 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 ((char *)buf, "%d", file->top_page); else sprintf ((char *)buf, "%d-%d", file->top_page, file->pages); APPEND_STR (buf); break; case '<': /* `$p<' first page number for this file */ sprintf ((char *)buf, "%d", file->first_page); APPEND_STR (buf); break; case '.': /* `$p.' current page number */ sprintf ((char *)buf, "%d", 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 ((char *)buf, "%d", 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 ((char *)buf, "%d", 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 ((char *)buf, _("Page %d"), 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 ((char *) buf, _("Page %d/%d"), file->pages, file->pages); else /* It is not know: delay it to the end of the job */ sprintf ((char *) buf, _("Page %d/%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 ((char *)buf, "%d", file->first_sheet); APPEND_STR (buf); break; case '.': /* `$s.' current sheet number */ sprintf ((char *)buf, "%d", 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 ((char *)buf, "%d", 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 ((char *)buf, "%d", 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 ((char *)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 ((char *)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 ((char *)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 = (uchar *) macro_meta_sequence_get (job, (char *) 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 = UNULL; 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 = (uchar *) macro_meta_sequence_get (job, (char *) 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; uchar cond, sep; uchar * if_true, * if_false; uchar * next; cond = str[++i]; sep = str[++i]; next = xustrdup(str + ++i); SPLIT (if_true, sep, "#?", cond); SPLIT (if_false, sep, "#?", cond); i += 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 * while 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); free (if_true); } break; case '!': /* `#!' a enumeration of a category */ { uchar category, sep; uchar * in, * between; uchar * next; category = str[++i]; sep = str[++i]; next = xustrdup(str + ++i); SPLIT (in, sep, "#!", category); SPLIT (between, sep, "#!", category); i += next - in - 1; switch (category) { case '$': /* `#!$': enumeration of the arguments */ { size_t fnum, fmax; fmax = limit_by_width (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); } da_erase (ordered); } 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, NULL); 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); } da_erase (selected); } break; default: error (1, 0, _("%s: unknown `%s' escape `%c' (%d)"), context_name, "#!", category, category); break; } free (in); } 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 ((char *) buf, "%d", 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, (const uchar *) _("output command"), (const uchar *) 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 ((char *) buf, "%d", job->rows * job->columns); APPEND_STR (buf); break; case 'w': /* `#w' medium width in PS points */ sprintf ((char *) buf, "%d", 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. */ uchar * expand_user_string (struct a2ps_job * job, struct file_job * file, const uchar * context_name, const uchar * str) { static int first_time = 1; static struct obstack user_string_stack; uchar * 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'); res = (uchar *) obstack_finish (&user_string_stack); 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.14/lib/psstat.h0000644000175000017500000001007210735324676014077 0ustar mhattamhatta/* * psstat.h * * Recording information about the PostScript jobs * 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: psstat.h,v 1.1.1.1.2.1 2007/12/29 01:58:22 mhatta Exp $ */ #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 */ int 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 */ uchar * magic_number; /* The very first line of a PS file */ uchar * 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 */ uchar ** 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? */ int nonprinting_chars; int chars; /* Number of nonprinting and total chars */ int line; /* Line number (in current page) */ unsigned int 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 PARAMS ((void)); void ps_status_free PARAMS ((struct ps_status * status)); void initialize_ps_status PARAMS ((struct ps_status * status)); /* * Dealing with its content */ /* * setpagedevice */ void output_pagedevice PARAMS ((struct a2ps_job * job)); void pagedevice_dump PARAMS ((FILE *stream, struct a2ps_job * job)); void dump_requirements PARAMS ((FILE * stream, struct a2ps_job * job)); void setpagedevice PARAMS ((struct a2ps_job * job, const char * key, const char * value)); void delpagedevice PARAMS ((struct a2ps_job * job, const char * key)); void list_pagedevice PARAMS ((struct a2ps_job * job, FILE * stream)); /* * statusdict */ void output_statusdict PARAMS ((struct a2ps_job * job)); void setstatusdict PARAMS ((struct a2ps_job * job, const char * key, const char * value, int def)); void delstatusdict PARAMS ((struct a2ps_job * job, const char * key)); void list_statusdict PARAMS ((struct a2ps_job * job, FILE * stream)); #endif a2ps-4.14/lib/common.c0000644000175000017500000000365210735324670014044 0ustar mhattamhatta/* * shmem.c * * liba2ps shared memory (data used by several modules) * * 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: common.c,v 1.1.1.1.2.1 2007/12/29 01:58:16 mhatta Exp $ */ #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) { NEW (struct a2ps_common_s, res); a2ps_common_reset (res); return res; } /* * Free the common mem */ void a2ps_common_free (struct a2ps_common_s * common) { pw_free_path (common->path); } /* * 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.14/lib/realloc.c0000644000175000017500000000237210735322362014167 0ustar mhattamhatta/* Work around bug on some systems where realloc (NULL, 0) fails. Copyright (C) 1997 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* written by Jim Meyering */ #if HAVE_CONFIG_H # include #endif #undef realloc #include char *malloc (); char *realloc (); /* Change the size of an allocated block of memory P to N bytes, with error checking. If N is zero, change it to 1. If P is NULL, use malloc. */ char * rpl_realloc (p, n) char *p; size_t n; { if (n == 0) n = 1; if (p == 0) return malloc (n); return realloc (p, n); } a2ps-4.14/lib/stream.c0000644000175000017500000000706510735324700014043 0ustar mhattamhatta/* * stream.c * * Uniform access to pipe and files * * 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: stream.c,v 1.1.1.1.2.1 2007/12/29 01:58:24 mhatta Exp $ */ #include "a2ps.h" #include "stream.h" #include "routines.h" #include "message.h" #include "quotearg.h" #include /* Open for reading. */ static inline struct stream * _stream_ropen (const char * command, bool is_file) { NEW (struct stream, res); 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) { NEW (struct stream, res); 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, none); } 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; int 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, none); 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); free (stream); } a2ps-4.14/lib/getpwuid.c0000644000175000017500000000233610735322362014376 0ustar mhattamhatta/* * Replacement for the passwd related functions for micro ports. * Copyright (c) 1996 Markku Rossi. * * Author: Markku Rossi */ /* * This file is part of GNU enscript. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 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 #include #include "dummypwd.h" /* * Static variables */ static struct passwd dummy_passwd = { "dos", "Dos User", "/home", }; /* * Global functions */ struct passwd * getpwuid () { return &dummy_passwd; } struct passwd * getpwnam (name) char *name; { return &dummy_passwd; } a2ps-4.14/lib/liba2ps.h0000644000175000017500000000732110735337331014110 0ustar mhattamhatta/* -*- 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 #ifndef VOID # if defined (__GNUC__) || __STDC__ # define VOID void # else # define VOID char # endif #endif #ifndef PARAMS # if PROTOTYPES || defined (__STDC__) || defined (_AIX) \ || (defined (__mips) && defined (_SYSTYPE_SVR4)) \ || defined(WIN32) || defined(__cplusplus) # define PARAMS(protos) protos # else # define PARAMS(protos) () # endif #endif /* * The type bool must be defined, for instance with #if HAVE_STDBOOL_H # include #else typedef enum {false = 0, true = 1} bool; #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 PARAMS ((struct a2ps_job * job, int c, enum face_e face)); /* Print a C string (nul terminated) in FACE */ void a2ps_print_string PARAMS ((struct a2ps_job * job, const unsigned char * string, enum face_e face)); /* Print the N chars contained in BUFFER, in FACE */ void a2ps_print_buffer PARAMS ((struct a2ps_job * job, const unsigned char * buffer, size_t start, size_t end, enum face_e face)); /* Open/close the outer structure */ void a2ps_open_output_session PARAMS ((struct a2ps_job * job)); void a2ps_close_output_session PARAMS ((struct a2ps_job * job)); /* Open/Close the section structure */ void a2ps_open_input_session PARAMS ((struct a2ps_job * job, unsigned char * name)); void a2ps_close_input_session PARAMS ((struct a2ps_job * job)); /* From jobs.h */ /* Return a newly allocated output session storage */ struct a2ps_job * a2ps_job_new PARAMS ((void)); /* Finalize it */ void a2ps_job_finalize PARAMS ((struct a2ps_job * job)); /* Free the memory used by JOB */ void a2ps_job_free PARAMS ((struct a2ps_job * job)); /* From confg.h */ /* * Read the configuration file */ int a2_read_config PARAMS ((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 PARAMS ((struct a2ps_job * job)); __END_DECLS #endif /* !defined(LIBA2PS_H_) */ a2ps-4.14/lib/fonts.l0000644000175000017500000004626710735324672013731 0ustar mhattamhatta%{ /* -*- 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. */ /* * $Id: fonts.l,v 1.1.1.1.2.1 2007/12/29 01:58:18 mhatta Exp $ */ #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. Down load a font file */ /************************************************************************/ /* fonts.map handling */ /************************************************************************/ struct pair_htable * fonts_map_new (void) { return pair_table_new (); } void fonts_map_free (struct pair_htable * table) { pair_table_free (table); } 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); free (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 PARAMS ((struct hash_table_s * table, const char * glyph, int the_index, unsigned int wx)); int yylex PARAMS ((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 */; } { /* 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); } #if 0 /* * For sorting them in alpha order */ static int wx_entry_hash_qcmp (struct wx_entry **x, struct wx_entry **y) { return_STRING_COMPARE ((*x)->glyph, (*y)->glyph); } #endif /* * 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, 1); 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; } /* * Free a wx_entry entry */ static void hash_free_wx_entry (struct wx_entry * wx_entry) { free (wx_entry->glyph); free (wx_entry); } /* * Free the whole structure */ static void wx_entry_table_free (struct hash_table_s * table) { hash_free (table, (hash_map_func_t) hash_free_wx_entry); free (table); } /* * 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, 1); 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; } #if 0 /* * Typically for --list-features */ static void wx_entry_list_short (struct hash_table_s * table, FILE * stream) { int i, tab; struct wx_entry ** entries; entries = (struct wx_entry **) hash_dump (table, NULL, (hash_cmp_func_t) wx_entry_hash_qcmp); tab = 0; for (i = 0 ; entries[i] ; i++) { if (!(tab % 7)) fputs ("\n ", stream); fprintf (stream, "%-10s", entries[i]->glyph); tab++; } putc ('\n', stream); free (entries); } /* * Typically for --list- */ static void wx_entry_list_long (struct hash_table_s * table, FILE * stream) { int i; struct wx_entry ** entries; entries = (struct wx_entry **) hash_dump (table, NULL, (hash_cmp_func_t) wx_entry_hash_qcmp); for (i = 0 ; entries[i] ; i++) fprintf (stream, " %-10s (%d) = %d\n", entries[i]->glyph, entries[i]->index, entries[i]->wx); putc ('\n', stream); free (entries); } #endif /* * 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); } #if 0 /* * For sorting them in alpha order */ static int font_info_hash_qcmp (struct font_info **x, struct font_info **y) { return_STRING_COMPARE ((*x)->key, (*y)->key); } #endif /* * Create the structure that stores the list of font_infos */ struct hash_table_s * font_info_table_new (void) { NEW (struct hash_table_s, res); 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; } /* * Free a font_info entry */ static void hash_free_font_info (struct font_info * font_info) { free (font_info->key); wx_entry_table_free (font_info->wx); free (font_info); } /* * Free the whole structure */ void font_info_table_free (struct hash_table_s * table) { hash_free (table, (hash_map_func_t) hash_free_font_info); free (table); } /* * Create and return a new font_info cell, with key = KEY */ static inline struct font_info * font_info_new (const char * key) { NEW (struct font_info, res); 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); free (file); } /* * 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 (PARAM_UNUSED struct a2ps_job * job, const char * key) { return !strequ (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; uchar 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); free (filename); } free (fonts); } a2ps-4.14/lib/xfnmatch.h0000644000175000017500000000204310735322367014363 0ustar mhattamhatta/* xfnmatch.h -- fnmatch declarations wrapper Copyright (C) 1996 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef _xfnmatch_h_ #define _xfnmatch_h_ #include #ifndef FNM_FILE_NAME # define FNM_FILE_NAME FNM_PATHNAME #endif #if HAVE_LINK # define MAYBE_FNM_CASEFOLD 0 #else # define MAYBE_FNM_CASEFOLD FNM_CASEFOLD #endif #endif /* not _xfnmatch_h_ */ a2ps-4.14/lib/psgen.h0000644000175000017500000000361510735324676013702 0ustar mhattamhatta/* * psgen.h * * routines for the postscript output * 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: psgen.h,v 1.1.1.1.2.1 2007/12/29 01:58:22 mhatta Exp $ */ #ifndef _PSGEN_H_ #define _PSGEN_H_ struct a2ps_job; struct encoding; #include "faces.h" void ps_print_char PARAMS ((struct a2ps_job * job, int c, enum face_e face)); void ps_print_string PARAMS ((struct a2ps_job * job, uchar * string, enum face_e face)); void ps_print_buffer PARAMS ((struct a2ps_job * job, const uchar * buffer, size_t start, size_t end, enum face_e face)); void ps_begin_file PARAMS ((struct a2ps_job * job)); void ps_end_file PARAMS ((struct a2ps_job * job)); void page_flush PARAMS ((struct a2ps_job * job)); void require_fresh_page PARAMS ((struct a2ps_job * job)); /* * Multi-lingual routines */ void ps_set_encoding PARAMS ((struct a2ps_job * job, struct encoding * encoding)); void ps_end_encoding PARAMS ((struct a2ps_job * job)); void ps_switch_encoding PARAMS ((struct a2ps_job * job, struct encoding * encoding)); #endif a2ps-4.14/lib/msg.c0000644000175000017500000000263610735322362013337 0ustar mhattamhatta/* msg.c -- declaration for verbosity levels Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana Copyright (c) 1995, 96, 97, 98 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, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* This file should not be compiled, but included by message.c. */ /* Definition of the arguments/values for argmatching the verbosity level. */ 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.14/lib/dsc.c0000644000175000017500000002426210735324670013325 0ustar mhattamhatta/* * dsc.c * * Recording information about the PostScript resources * * 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: dsc.c,v 1.1.1.1.2.1 2007/12/29 01:58:16 mhatta Exp $ */ #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) { NEW (struct multivalued_entry, res); res->key = xstrdup (type); res->entries = string_htable_new (); return res; } /* * Completely free ENTRY and content. */ static void multivalued_entry_free (struct multivalued_entry * entry) { free (entry->key); string_htable_free (entry->entries); free (entry); } /* * 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) { struct multivalued_entry * old_item; old_item = multivalued_entry_get (table, item->key); if (old_item) multivalued_entry_free (old_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, 1); 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; } void multivalued_table_free (struct hash_table_s * table) { hash_free (table, (hash_map_func_t) multivalued_entry_free); free (table); } /************************************************************************ * 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); } #if 0 /* * Returned the needed resource if it is known, * NULL otherwise */ static const char * supplied_resource_get (a2ps_job * job, const char * key, const char * value) { return multivalued_entry_get_sub_item (job->status->supplied_resources, key, value); } #endif 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++) if (first) { fprintf (stream, fmt_first, entry->key, values[i]); first = false; } else { fprintf (stream, fmt_others, entry->key, values[i]); } /* Release mem */ free (values); } /* * 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]); free (list); } /* * 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 (strequ (list [i]-> key, "color") /* nor files, since they are yet included */ || strequ (list [i]-> key, "file")) continue; multivalued_entry_dump (stream, first, "%%%%DocumentNeededResources: %s %s\n", "%%%%+ %s %s\n", list [i]); first = false; } free (list); } /* * 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); } free (colors); } } /************************************************************************/ /* 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.14/lib/userdata.c0000644000175000017500000000627410735322362014363 0ustar mhattamhatta/* * userdata.c -- Get data on users (from /etc/passwd). * 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. */ #include "system.h" #include "xalloc.h" #include "userdata.h" char *stpcpy PARAMS ((char *dest, const char *src)); #if !HAVE_PWD_H struct passwd { const char *pw_name; const char *pw_gecos; const char *pw_dir; }; #endif /* Free the memory hold by UDATA, but not UDATA itself. */ void userdata_free (struct userdata *udata) { XFREE (udata->login); XFREE (udata->name); XFREE (udata->comments); XFREE (udata->home); } void userdata_get (struct userdata *udata) { struct passwd *passwd = NULL; const char *home, *login; char *comments = NULL, *name = NULL, *cp; #if HAVE_GETPWUID passwd = getpwuid (getuid ()); #endif /* 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. */ #ifdef HAVE_STRUCT_PASSWD_PW_GECOS 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++ = 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++; } } #endif 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.14/lib/getnum.h0000644000175000017500000000321710735322367014056 0ustar mhattamhatta/* * getnum.h -- Get number in a given interval, get length with units * * 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. */ #ifndef GETNUM_H_ #define GETNUM_H_ #ifndef PARAMS # if PROTOTYPES || (defined (__STDC__) && __STDC__) # define PARAMS(args) args # else # define PARAMS(args) () # endif /* GCC. */ #endif /* Not PARAMS. */ 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 PARAMS ((const char * option, const char * arg, int min, int max, enum range_type_e range_type)); float get_length PARAMS ((const char * option, const char * arg, float min, float max, const char * unit, enum range_type_e range_type)); #endif /* !GETNUM_H_ */ a2ps-4.14/lib/strtoumax.c0000644000175000017500000000005210735322362014605 0ustar mhattamhatta#define UNSIGNED 1 #include "strtoimax.c" a2ps-4.14/lib/pair_ht.c0000644000175000017500000001571210735324675014207 0ustar mhattamhatta/* * hasstr.c * * 2 char * hash tables * 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. */ /* * $Id: pair_ht.c,v 1.1.1.1.2.1 2007/12/29 01:58:21 mhatta Exp $ */ #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; }; /* * 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); } /* * Free a pair, and its content */ static void pair_free (struct pair * pair) { XFREE (pair->key); XFREE (pair->value); XFREE (pair); } /* 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 void pair_key_fputs (struct pair * pair, FILE * stream) { 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, 1); 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; } /* * Free the whole structure */ void pair_table_free (struct hash_table_s * table) { hash_free (table, (hash_map_func_t) pair_free); free (table); } /* * 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) { if (item->value) free (item->value); } else { item = XMALLOC (struct pair, 1); item->key = xstrdup(key); } if (value) item->value = xstrdup (value); else item->value = NULL; hash_insert (table, item); } /* * Remove a pair and free it. * 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); pair_free (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; } /* * 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++; } } free (entries); } /* * 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); free (entries); } /* * For typically for --list- */ 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 : ""); putc ('\n', stream); free (entries); } /* * 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 : ""); putc ('\n', stream); free (entries); } #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, 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; int 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 (strequ (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); } } free (buf); fclose (fp); return 1; } a2ps-4.14/lib/argv.c0000644000175000017500000001570710735322361013512 0ustar mhattamhatta/* Create and destroy argument vectors (argv's) Copyright (C) 1992 Free Software Foundation, Inc. Written by Fred Fish @ Cygnus Support Modified by Akim Demaille so that it can compile out of liberty This file is part of the libiberty library. Libiberty 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. Libiberty is distributed in the hope that 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 libiberty; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Create and destroy argument vectors. An argument vector is simply an array of string pointers, terminated by a NULL pointer. */ #if HAVE_CONFIG_H # include #endif #ifndef alloca # ifdef __GNUC__ # define alloca __builtin_alloca # define HAVE_ALLOCA 1 # else # if defined HAVE_ALLOCA_H || defined _LIBC # include # else # ifdef _AIX #pragma alloca # else # ifndef alloca char *alloca (); # endif # endif # endif # endif #endif #if defined STDC_HEADERS || defined _LIBC # include #else # ifdef HAVE_MALLOC_H # include # else extern void free (); extern void * calloc (); extern void * malloc (); extern void * realloc (); # endif #endif #ifdef HAVE_STRING_H # if !STDC_HEADERS && HAVE_MEMORY_H # include # endif # include #else # include char *memchr (); #endif #include /* 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." */ #if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII)) #define ISASCII(c) 1 #else #define ISASCII(c) isascii((int) c) #endif #define ISSPACE(c) (ISASCII (c) && isspace ((int) c)) #include "argv.h" #ifndef NULL #define NULL 0 #endif #ifndef EOS #define EOS '\0' #endif #define INITIAL_MAXARGC 8 /* Number of args + NULL in initial argv */ /* dupargv -- duplicate an argument vector */ char ** dupargv (argv) char **argv; { int argc; char **copy; if (argv == NULL) return NULL; /* the vector */ for (argc = 0; argv[argc] != NULL; argc++); copy = (char **) malloc ((argc + 1) * sizeof (char *)); if (copy == NULL) return NULL; /* the strings */ for (argc = 0; argv[argc] != NULL; argc++) { int len = strlen (argv[argc]); copy[argc] = malloc (sizeof (char *) * (len + 1)); if (copy[argc] == NULL) { freeargv (copy); return NULL; } strcpy (copy[argc], argv[argc]); } copy[argc] = NULL; return copy; } /* freeargv -- free an argument vector */ void freeargv (vector) char **vector; { register char **scan; if (vector != NULL) { for (scan = vector; *scan != NULL; scan++) { free (*scan); } free (vector); } } void freeargv_from (vector, from) char **vector; int from; { register char **scan; if (vector != NULL) { for (scan = vector ; (from > 0) && (*scan != NULL) ; from--) scan ++; for (/* nothing */ ; *scan != NULL; scan++) free (*scan); free (vector); } } /* buildargv -- build an argument vector from a string */ char **buildargv_argc (input, 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 (maxargc * sizeof (char *)); } else { maxargc *= 2; nargv = (char **) realloc (argv, maxargc * sizeof (char *)); } if (nargv == NULL) { if (argv != NULL) { freeargv (argv); 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) { freeargv (argv); 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.14/lib/xalloc.h0000644000175000017500000000614010735322367014037 0ustar mhattamhatta/* xalloc.h -- malloc with out-of-memory checking Copyright (C) 1990-1998, 1999 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef XALLOC_H_ # define XALLOC_H_ # ifndef PARAMS # if defined PROTOTYPES || (defined __STDC__ && __STDC__) # define PARAMS(Args) Args # else # define PARAMS(Args) () # endif # endif # ifndef __attribute__ # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || __STRICT_ANSI__ # define __attribute__(x) # endif # endif # ifndef ATTRIBUTE_NORETURN # define ATTRIBUTE_NORETURN __attribute__ ((__noreturn__)) # endif /* Exit value when the requested amount of memory is not available. It is initialized to EXIT_FAILURE, but the caller may set it to some other value. */ extern int xalloc_exit_failure; /* If this pointer is non-zero, run the specified function upon each allocation failure. It is initialized to zero. */ extern void (*xalloc_fail_func) PARAMS ((void)); /* If XALLOC_FAIL_FUNC is undefined or a function that returns, this message must be non-NULL. It is translated via gettext. The default value is "Memory exhausted". */ extern char *const xalloc_msg_memory_exhausted; /* This function is always triggered when memory is exhausted. It is in charge of honoring the three previous items. This is the function to call when one wants the program to die because of a memory allocation failure. */ extern void xalloc_die PARAMS ((void)) ATTRIBUTE_NORETURN; void *xmalloc PARAMS ((size_t n)); void *xcalloc PARAMS ((size_t n, size_t s)); void *xrealloc PARAMS ((void *p, size_t n)); char *xstrdup PARAMS ((const char *str)); char *xstrndup PARAMS ((const char *str, size_t n)); # define XMALLOC(Type, N_items) ((Type *) xmalloc (sizeof (Type) * (N_items))) # define XCALLOC(Type, N_items) ((Type *) xcalloc (sizeof (Type), (N_items))) # define XREALLOC(Ptr, Type, N_items) \ ((Type *) xrealloc ((void *) (Ptr), sizeof (Type) * (N_items))) /* Declare and alloc memory for VAR of type TYPE. */ # define NEW(Type, Var) Type *(Var) = XMALLOC (Type, 1) /* Free VAR only if non NULL. */ # define XFREE(Var) \ do { \ if (Var) \ free (Var); \ } while (0) /* Return a pointer to a malloc'ed copy of the array SRC of NUM elements. */ # define CCLONE(Src, Num) \ (memcpy (xmalloc (sizeof (*Src) * (Num)), (Src), sizeof (*Src) * (Num))) /* Return a malloc'ed copy of SRC. */ # define CLONE(Src) CCLONE (Src, 1) #endif /* !XALLOC_H_ */ a2ps-4.14/lib/confg.gperf0000644000175000017500000002245010735326366014532 0ustar mhattamhatta%{ /* -*- 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 "path-concat.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; fname = xpath_concat (path, file, NULL); fp = fopen (fname, "r"); if (fp == NULL) { free (fname); 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, eg '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 = xpath_concat (dir, argv[1], NULL); error_at_line (0, errno, fname, firstline, _("cannot open file `%s'"), quotearg (included_file)); free (included_file); } XFREE (dir); } 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: xustrcpy (job->status->magic_number, argv[1]); break; case PageLabelFormat: xustrcpy (job->status->page_label_format, argv[1]); break; case Medium: { int w, h, llx, lly, urx, ury; switch (sscanf (argv[2], "%d %d %d %d %d %d", &w, &h, &llx, &lly, &urx, &ury)) { case 6: /* BBox is also given */ break; case 2: /* A short hand has been used: use 24 points as a margin all around */ llx = lly = 24; urx = w - 24; ury = h - 24; break; default: error_at_line (1, 0, fname, firstline, "invalid number of arguments for `%s'", quotearg (argv[0])); } add_medium (job, argv[1], w, h, llx, lly, urx, ury); } 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: XFREE (job->common.path); 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; } } XFREE (fname); fclose (fp); /* BUF was allocated by getshlinenumbered. */ free (buf); 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.14/lib/parseppd.h0000644000175000017500000000474010735337331014374 0ustar mhattamhatta/* A Bison parser, made by GNU Bison 2.3. */ /* Skeleton interface for Bison's Yacc-like parsers in C Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* 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. */ /* Tokens. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE /* Put the tokens into the symbol table, so that GDB and other debuggers know about them. */ enum yytokentype { EOL = 258, tDefaultFont = 259, tFont = 260, tModelName = 261, tNickName = 262, STRING = 263, SYMBOL = 264, USTRING = 265 }; #endif /* Tokens. */ #define EOL 258 #define tDefaultFont 259 #define tFont 260 #define tModelName 261 #define tNickName 262 #define STRING 263 #define SYMBOL 264 #define USTRING 265 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE #line 71 "parseppd.y" { char * string; uchar * ustring; struct ppd * ppd; } /* Line 1489 of yacc.c. */ #line 75 "parseppd.h" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 # define YYSTYPE_IS_TRIVIAL 1 #endif extern YYSTYPE yylval; a2ps-4.14/lib/madir.h0000644000175000017500000000241710735324674013657 0ustar mhattamhatta/* * madir.h * * madir direction * * Copyright (c) 1988-1993 Miguel Santana * Copyright (c) 1995-1999 Akim Demaille, Miguel Santana * $Id: madir.h,v 1.1.1.1.2.1 2007/12/29 01:58:20 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 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 PARAMS ((const char * option, const char * arg)); const char * madir_to_string PARAMS ((madir_t madir)); #endif /* !defined (MADIR_H_) */ a2ps-4.14/lib/gen.c0000644000175000017500000000730510735324672013326 0ustar mhattamhatta/* * postscript.c * * routines for the postscript generation * Copyright (c) 1988-1993 Miguel Santana * Copyright (c) 1995-1999 Akim Demaille, Miguel Santana * $Id: gen.c,v 1.1.1.1.2.1 2007/12/29 01:58:18 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. */ #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, int 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 uchar * 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 uchar * 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, uchar * 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 (); } } 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.14/lib/parseppd.c0000644000175000017500000013136010735337331014366 0ustar mhattamhatta/* A Bison parser, made by GNU Bison 2.3. */ /* Skeleton implementation for Bison's Yacc-like parsers in C Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ /* 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. */ /* 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. */ #define YYBISON 1 /* Bison version. */ #define YYBISON_VERSION "2.3" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" /* Pure parsers. */ #define YYPURE 0 /* Using locations. */ #define YYLSP_NEEDED 0 /* Tokens. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE /* Put the tokens into the symbol table, so that GDB and other debuggers know about them. */ enum yytokentype { EOL = 258, tDefaultFont = 259, tFont = 260, tModelName = 261, tNickName = 262, STRING = 263, SYMBOL = 264, USTRING = 265 }; #endif /* Tokens. */ #define EOL 258 #define tDefaultFont 259 #define tFont 260 #define tModelName 261 #define tNickName 262 #define STRING 263 #define SYMBOL 264 #define USTRING 265 /* Copy the first part of user declarations. */ #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 "a2ps.h" /* 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 #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 PARAMS ((const char *msg)); static void yyprint (); /* Initilizes the obstacks */ void ppdlex_initialize PARAMS ((void)); int yylex PARAMS ((void)); static struct ppd * ppd_parse_result; /* Enabling traces. */ #ifndef YYDEBUG # define YYDEBUG 1 #endif /* Enabling verbose error messages. */ #ifdef YYERROR_VERBOSE # undef YYERROR_VERBOSE # define YYERROR_VERBOSE 1 #else # define YYERROR_VERBOSE 0 #endif /* Enabling the token table. */ #ifndef YYTOKEN_TABLE # define YYTOKEN_TABLE 0 #endif #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE #line 71 "parseppd.y" { char * string; uchar * ustring; struct ppd * ppd; } /* Line 187 of yacc.c. */ #line 192 "parseppd.c" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 # define YYSTYPE_IS_TRIVIAL 1 #endif /* Copy the second part of user declarations. */ /* Line 216 of yacc.c. */ #line 205 "parseppd.c" #ifdef short # undef short #endif #ifdef YYTYPE_UINT8 typedef YYTYPE_UINT8 yytype_uint8; #else typedef unsigned char yytype_uint8; #endif #ifdef YYTYPE_INT8 typedef YYTYPE_INT8 yytype_int8; #elif (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) typedef signed char yytype_int8; #else typedef short int yytype_int8; #endif #ifdef YYTYPE_UINT16 typedef YYTYPE_UINT16 yytype_uint16; #else typedef unsigned short int yytype_uint16; #endif #ifdef YYTYPE_INT16 typedef YYTYPE_INT16 yytype_int16; #else typedef short int yytype_int16; #endif #ifndef YYSIZE_T # ifdef __SIZE_TYPE__ # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else # define YYSIZE_T unsigned int # endif #endif #define YYSIZE_MAXIMUM ((YYSIZE_T) -1) #ifndef YY_ # if YYENABLE_NLS # if ENABLE_NLS # include /* INFRINGES ON USER NAME SPACE */ # define YY_(msgid) dgettext ("bison-runtime", msgid) # endif # endif # ifndef YY_ # define YY_(msgid) msgid # endif #endif /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ # define YYUSE(e) ((void) (e)) #else # define YYUSE(e) /* empty */ #endif /* Identity function, used to suppress warnings about constant conditions. */ #ifndef lint # define YYID(n) (n) #else #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static int YYID (int i) #else static int YYID (i) int i; #endif { return i; } #endif #if ! defined yyoverflow || YYERROR_VERBOSE /* 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 /* INFRINGES ON USER NAME SPACE */ # elif defined _AIX # define YYSTACK_ALLOC __alloca # elif defined _MSC_VER # include /* INFRINGES ON USER NAME SPACE */ # define alloca _alloca # else # define YYSTACK_ALLOC alloca # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) # include /* INFRINGES ON USER NAME SPACE */ # ifndef _STDLIB_H # define _STDLIB_H 1 # endif # endif # endif # endif # endif # ifdef YYSTACK_ALLOC /* Pacify GCC's `empty if-body' warning. */ # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (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 _STDLIB_H \ && ! ((defined YYMALLOC || defined malloc) \ && (defined YYFREE || defined free))) # include /* INFRINGES ON USER NAME SPACE */ # ifndef _STDLIB_H # define _STDLIB_H 1 # endif # endif # ifndef YYMALLOC # define YYMALLOC malloc # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ # endif # endif # ifndef YYFREE # define YYFREE free # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) void free (void *); /* INFRINGES ON USER NAME SPACE */ # endif # endif # endif #endif /* ! defined yyoverflow || YYERROR_VERBOSE */ #if (! defined yyoverflow \ && (! defined __cplusplus \ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc { yytype_int16 yyss; YYSTYPE yyvs; }; /* The size of the maximum gap between one aligned stack and the next. */ # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + YYSTACK_GAP_MAXIMUM) /* Copy COUNT objects from FROM to TO. The source and destination do not overlap. */ # ifndef YYCOPY # if defined __GNUC__ && 1 < __GNUC__ # define YYCOPY(To, From, Count) \ __builtin_memcpy (To, From, (Count) * sizeof (*(From))) # else # define YYCOPY(To, From, Count) \ do \ { \ YYSIZE_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ (To)[yyi] = (From)[yyi]; \ } \ while (YYID (0)) # endif # endif /* 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) \ do \ { \ YYSIZE_T yynewbytes; \ YYCOPY (&yyptr->Stack, Stack, yysize); \ Stack = &yyptr->Stack; \ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ yyptr += yynewbytes / sizeof (*yyptr); \ } \ while (YYID (0)) #endif /* 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 /* YYNRULES -- Number of states. */ #define YYNSTATES 29 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 #define YYMAXUTOK 265 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ static const yytype_uint8 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 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in YYRHS. */ static const yytype_uint8 yyprhs[] = { 0, 0, 3, 5, 6, 10, 16, 22, 25, 28, 31, 34, 37, 45 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int8 yyrhs[] = { 13, 0, -1, 14, -1, -1, 14, 15, 3, -1, 14, 6, 11, 8, 3, -1, 14, 7, 11, 8, 3, -1, 14, 9, -1, 14, 8, -1, 14, 10, -1, 14, 11, -1, 14, 3, -1, 5, 9, 11, 9, 8, 9, 9, -1, 4, 11, 9, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint8 yyrline[] = { 0, 92, 92, 101, 104, 109, 115, 121, 125, 129, 133, 137, 147, 149 }; #endif #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { "$end", "error", "$undefined", "EOL", "tDefaultFont", "tFont", "tModelName", "tNickName", "STRING", "SYMBOL", "USTRING", "':'", "$accept", "file", "ppd", "font_clause", 0 }; #endif # ifdef YYPRINT /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to token YYLEX-NUM. */ static const yytype_uint16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 58 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { 0, 12, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ static const yytype_uint8 yyr2[] = { 0, 2, 1, 0, 3, 5, 5, 2, 2, 2, 2, 2, 7, 3 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state STATE-NUM when YYTABLE doesn't specify something else to do. Zero means the default is an error. */ static const yytype_uint8 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 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int8 yydefgoto[] = { -1, 1, 2, 13 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ #define YYPACT_NINF -4 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 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int8 yypgoto[] = { -4, -4, -4, -4 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule which number is the opposite. If zero, do what YYDEFACT says. If YYTABLE_NINF, syntax error. */ #define YYTABLE_NINF -1 static const yytype_uint8 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 (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 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 }; #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) #define YYEMPTY (-2) #define YYEOF 0 #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab #define YYERROR goto yyerrorlab /* Like YYERROR except do call yyerror. This remains here temporarily to ease the transition to the new meaning of YYERROR, for GCC. Once GCC version 2 has supplanted version 1, this can go. */ #define YYFAIL goto yyerrlab #define YYRECOVERING() (!!yyerrstatus) #define YYBACKUP(Token, Value) \ do \ if (yychar == YYEMPTY && yylen == 1) \ { \ yychar = (Token); \ yylval = (Value); \ yytoken = YYTRANSLATE (yychar); \ YYPOPSTACK (1); \ goto yybackup; \ } \ else \ { \ yyerror (YY_("syntax error: cannot back up")); \ YYERROR; \ } \ while (YYID (0)) #define YYTERROR 1 #define YYERRCODE 256 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. If N is 0, then set CURRENT to the empty location which ends the previous symbol: RHS[0] (always defined). */ #define YYRHSLOC(Rhs, K) ((Rhs)[K]) #ifndef YYLLOC_DEFAULT # define YYLLOC_DEFAULT(Current, Rhs, N) \ do \ if (YYID (N)) \ { \ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ } \ else \ { \ (Current).first_line = (Current).last_line = \ YYRHSLOC (Rhs, 0).last_line; \ (Current).first_column = (Current).last_column = \ YYRHSLOC (Rhs, 0).last_column; \ } \ while (YYID (0)) #endif /* YY_LOCATION_PRINT -- Print the location on the stream. This macro was not mandated originally: define only if we know we won't break user code: when these are the locations we know. */ #ifndef YY_LOCATION_PRINT # if YYLTYPE_IS_TRIVIAL # define YY_LOCATION_PRINT(File, Loc) \ fprintf (File, "%d.%d-%d.%d", \ (Loc).first_line, (Loc).first_column, \ (Loc).last_line, (Loc).last_column) # else # define YY_LOCATION_PRINT(File, Loc) ((void) 0) # endif #endif /* YYLEX -- calling `yylex' with the right arguments. */ #ifdef YYLEX_PARAM # define YYLEX yylex (YYLEX_PARAM) #else # define YYLEX yylex () #endif /* Enable debugging if requested. */ #if YYDEBUG # ifndef YYFPRINTF # include /* INFRINGES ON USER NAME SPACE */ # define YYFPRINTF fprintf # endif # define YYDPRINTF(Args) \ do { \ if (yydebug) \ YYFPRINTF Args; \ } while (YYID (0)) # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ do { \ if (yydebug) \ { \ YYFPRINTF (stderr, "%s ", Title); \ yy_symbol_print (stderr, \ Type, Value); \ YYFPRINTF (stderr, "\n"); \ } \ } while (YYID (0)) /*--------------------------------. | Print this symbol on YYOUTPUT. | `--------------------------------*/ /*ARGSUSED*/ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) #else static void yy_symbol_value_print (yyoutput, yytype, yyvaluep) FILE *yyoutput; int yytype; YYSTYPE const * const yyvaluep; #endif { if (!yyvaluep) return; # ifdef YYPRINT if (yytype < YYNTOKENS) YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); # else YYUSE (yyoutput); # endif switch (yytype) { default: break; } } /*--------------------------------. | Print this symbol on YYOUTPUT. | `--------------------------------*/ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) #else static void yy_symbol_print (yyoutput, yytype, yyvaluep) FILE *yyoutput; int yytype; YYSTYPE const * const yyvaluep; #endif { if (yytype < YYNTOKENS) YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); else YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); yy_symbol_value_print (yyoutput, yytype, yyvaluep); YYFPRINTF (yyoutput, ")"); } /*------------------------------------------------------------------. | yy_stack_print -- Print the state stack from its BOTTOM up to its | | TOP (included). | `------------------------------------------------------------------*/ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void yy_stack_print (yytype_int16 *bottom, yytype_int16 *top) #else static void yy_stack_print (bottom, top) yytype_int16 *bottom; yytype_int16 *top; #endif { YYFPRINTF (stderr, "Stack now"); for (; bottom <= top; ++bottom) YYFPRINTF (stderr, " %d", *bottom); YYFPRINTF (stderr, "\n"); } # define YY_STACK_PRINT(Bottom, Top) \ do { \ if (yydebug) \ yy_stack_print ((Bottom), (Top)); \ } while (YYID (0)) /*------------------------------------------------. | Report that the YYRULE is going to be reduced. | `------------------------------------------------*/ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void yy_reduce_print (YYSTYPE *yyvsp, int yyrule) #else static void yy_reduce_print (yyvsp, yyrule) YYSTYPE *yyvsp; int yyrule; #endif { int yynrhs = yyr2[yyrule]; int yyi; unsigned long int yylno = yyrline[yyrule]; YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { fprintf (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], &(yyvsp[(yyi + 1) - (yynrhs)]) ); fprintf (stderr, "\n"); } } # define YY_REDUCE_PRINT(Rule) \ do { \ if (yydebug) \ yy_reduce_print (yyvsp, Rule); \ } while (YYID (0)) /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ # define YYDPRINTF(Args) # define YY_SYMBOL_PRINT(Title, Type, 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 #if YYERROR_VERBOSE # ifndef yystrlen # if defined __GLIBC__ && defined _STRING_H # define yystrlen strlen # else /* Return the length of YYSTR. */ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static YYSIZE_T yystrlen (const char *yystr) #else static YYSIZE_T yystrlen (yystr) const char *yystr; #endif { YYSIZE_T yylen; for (yylen = 0; yystr[yylen]; yylen++) continue; return yylen; } # endif # endif # ifndef yystpcpy # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE # define yystpcpy stpcpy # else /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in YYDEST. */ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static char * yystpcpy (char *yydest, const char *yysrc) #else static char * yystpcpy (yydest, yysrc) char *yydest; const char *yysrc; #endif { char *yyd = yydest; const char *yys = yysrc; while ((*yyd++ = *yys++) != '\0') continue; return yyd - 1; } # endif # endif # ifndef yytnamerr /* Copy to YYRES the contents of YYSTR after stripping away unnecessary quotes and backslashes, so that it's suitable for yyerror. The heuristic is that double-quoting is unnecessary unless the string contains an apostrophe, a comma, or backslash (other than backslash-backslash). YYSTR is taken from yytname. If YYRES is null, do not copy; instead, return the length of what the result would have been. */ static YYSIZE_T yytnamerr (char *yyres, const char *yystr) { if (*yystr == '"') { YYSIZE_T yyn = 0; char const *yyp = yystr; for (;;) switch (*++yyp) { case '\'': case ',': goto do_not_strip_quotes; case '\\': if (*++yyp != '\\') goto do_not_strip_quotes; /* Fall through. */ default: if (yyres) yyres[yyn] = *yyp; yyn++; break; case '"': if (yyres) yyres[yyn] = '\0'; return yyn; } do_not_strip_quotes: ; } if (! yyres) return yystrlen (yystr); return yystpcpy (yyres, yystr) - yyres; } # endif /* Copy into YYRESULT an error message about the unexpected token YYCHAR while in state YYSTATE. Return the number of bytes copied, including the terminating null byte. If YYRESULT is null, do not copy anything; just return the number of bytes that would be copied. As a special case, return 0 if an ordinary "syntax error" message will do. Return YYSIZE_MAXIMUM if overflow occurs during size calculation. */ static YYSIZE_T yysyntax_error (char *yyresult, int yystate, int yychar) { int yyn = yypact[yystate]; if (! (YYPACT_NINF < yyn && yyn <= YYLAST)) return 0; else { int yytype = YYTRANSLATE (yychar); YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); YYSIZE_T yysize = yysize0; YYSIZE_T yysize1; int yysize_overflow = 0; enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; int yyx; # if 0 /* This is so xgettext sees the translatable formats that are constructed on the fly. */ YY_("syntax error, unexpected %s"); YY_("syntax error, unexpected %s, expecting %s"); YY_("syntax error, unexpected %s, expecting %s or %s"); YY_("syntax error, unexpected %s, expecting %s or %s or %s"); YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); # endif char *yyfmt; char const *yyf; static char const yyunexpected[] = "syntax error, unexpected %s"; static char const yyexpecting[] = ", expecting %s"; static char const yyor[] = " or %s"; char yyformat[sizeof yyunexpected + sizeof yyexpecting - 1 + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) * (sizeof yyor - 1))]; char const *yyprefix = yyexpecting; /* Start YYX at -YYN if negative to avoid negative indexes in YYCHECK. */ int yyxbegin = yyn < 0 ? -yyn : 0; /* Stay within bounds of both yycheck and yytname. */ int yychecklim = YYLAST - yyn + 1; int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; int yycount = 1; yyarg[0] = yytname[yytype]; yyfmt = yystpcpy (yyformat, yyunexpected); for (yyx = yyxbegin; yyx < yyxend; ++yyx) if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) { if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) { yycount = 1; yysize = yysize0; yyformat[sizeof yyunexpected - 1] = '\0'; break; } yyarg[yycount++] = yytname[yyx]; yysize1 = yysize + yytnamerr (0, yytname[yyx]); yysize_overflow |= (yysize1 < yysize); yysize = yysize1; yyfmt = yystpcpy (yyfmt, yyprefix); yyprefix = yyor; } yyf = YY_(yyformat); yysize1 = yysize + yystrlen (yyf); yysize_overflow |= (yysize1 < yysize); yysize = yysize1; if (yysize_overflow) return YYSIZE_MAXIMUM; if (yyresult) { /* Avoid sprintf, as that infringes on the user's name space. Don't have undefined behavior even if the translation produced a string with the wrong number of "%s"s. */ char *yyp = yyresult; int yyi = 0; while ((*yyp = *yyf) != '\0') { if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) { yyp += yytnamerr (yyp, yyarg[yyi++]); yyf += 2; } else { yyp++; yyf++; } } } return yysize; } } #endif /* YYERROR_VERBOSE */ /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ /*ARGSUSED*/ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) static void yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) #else static void yydestruct (yymsg, yytype, yyvaluep) const char *yymsg; int yytype; YYSTYPE *yyvaluep; #endif { YYUSE (yyvaluep); if (!yymsg) yymsg = "Deleting"; YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); switch (yytype) { default: break; } } /* Prevent warnings from -Wmissing-prototypes. */ #ifdef YYPARSE_PARAM #if defined __STDC__ || defined __cplusplus int yyparse (void *YYPARSE_PARAM); #else int yyparse (); #endif #else /* ! YYPARSE_PARAM */ #if defined __STDC__ || defined __cplusplus int yyparse (void); #else int yyparse (); #endif #endif /* ! YYPARSE_PARAM */ /* The look-ahead symbol. */ int yychar; /* The semantic value of the look-ahead symbol. */ YYSTYPE yylval; /* Number of syntax errors so far. */ int yynerrs; /*----------. | yyparse. | `----------*/ #ifdef YYPARSE_PARAM #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) int yyparse (void *YYPARSE_PARAM) #else int yyparse (YYPARSE_PARAM) void *YYPARSE_PARAM; #endif #else /* ! YYPARSE_PARAM */ #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) int yyparse (void) #else int yyparse () #endif #endif { int yystate; int yyn; int yyresult; /* Number of tokens to shift before error messages enabled. */ int yyerrstatus; /* Look-ahead token as an internal (translated) token number. */ int yytoken = 0; #if YYERROR_VERBOSE /* Buffer for error messages, and its allocated size. */ char yymsgbuf[128]; char *yymsg = yymsgbuf; YYSIZE_T yymsg_alloc = sizeof yymsgbuf; #endif /* Three stacks and their tools: `yyss': related to states, `yyvs': related to semantic values, `yyls': related to locations. Refer to the stacks thru separate pointers, to allow yyoverflow to reallocate them elsewhere. */ /* The state stack. */ yytype_int16 yyssa[YYINITDEPTH]; yytype_int16 *yyss = yyssa; yytype_int16 *yyssp; /* The semantic value stack. */ YYSTYPE yyvsa[YYINITDEPTH]; YYSTYPE *yyvs = yyvsa; YYSTYPE *yyvsp; #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) YYSIZE_T yystacksize = YYINITDEPTH; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; /* 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")); yystate = 0; yyerrstatus = 0; yynerrs = 0; yychar = YYEMPTY; /* Cause a token to be read. */ /* Initialize stack pointers. Waste one element of value and location stack so that they stay on the same level as the state stack. The wasted elements are never initialized. */ yyssp = yyss; yyvsp = yyvs; 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: *yyssp = yystate; if (yyss + yystacksize - 1 <= yyssp) { /* Get the current used size of the three stacks, in elements. */ YYSIZE_T yysize = yyssp - yyss + 1; #ifdef 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. */ YYSTYPE *yyvs1 = yyvs; yytype_int16 *yyss1 = yyss; /* 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 * sizeof (*yyssp), &yyvs1, yysize * sizeof (*yyvsp), &yystacksize); yyss = yyss1; yyvs = yyvs1; } #else /* no yyoverflow */ # ifndef YYSTACK_RELOCATE goto yyexhaustedlab; # else /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) goto yyexhaustedlab; yystacksize *= 2; if (YYMAXDEPTH < yystacksize) yystacksize = YYMAXDEPTH; { yytype_int16 *yyss1 = yyss; union yyalloc *yyptr = (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); if (! yyptr) goto yyexhaustedlab; YYSTACK_RELOCATE (yyss); YYSTACK_RELOCATE (yyvs); # undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } # endif #endif /* no yyoverflow */ yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; YYDPRINTF ((stderr, "Stack size increased to %lu\n", (unsigned long int) yystacksize)); if (yyss + yystacksize - 1 <= yyssp) YYABORT; } YYDPRINTF ((stderr, "Entering state %d\n", yystate)); goto yybackup; /*-----------. | yybackup. | `-----------*/ yybackup: /* Do appropriate processing given the current state. Read a look-ahead token if we need one and don't already have one. */ /* First try to decide what to do without reference to look-ahead token. */ yyn = yypact[yystate]; if (yyn == YYPACT_NINF) goto yydefault; /* Not known => get a look-ahead token if don't already have one. */ /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); yychar = YYLEX; } if (yychar <= YYEOF) { yychar = yytoken = YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } 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 (yyn == 0 || yyn == YYTABLE_NINF) goto yyerrlab; yyn = -yyn; goto yyreduce; } if (yyn == YYFINAL) YYACCEPT; /* Count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; /* Shift the look-ahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); /* Discard the shifted token unless it is eof. */ if (yychar != YYEOF) yychar = YYEMPTY; yystate = yyn; *++yyvsp = yylval; 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: #line 93 "parseppd.y" { ppd_parse_result = (yyvsp[(1) - (1)].ppd); /* Nothing Right Now */; } break; case 3: #line 101 "parseppd.y" { (yyval.ppd) = ppd_new (); } break; case 4: #line 105 "parseppd.y" { ppd_font_add ((yyvsp[(1) - (3)].ppd), (yyvsp[(2) - (3)].string)); (yyval.ppd) = (yyvsp[(1) - (3)].ppd); } break; case 5: #line 110 "parseppd.y" { if (!(yyvsp[(1) - (5)].ppd)->modelname) (yyvsp[(1) - (5)].ppd)->modelname = (yyvsp[(4) - (5)].string); (yyval.ppd) = (yyvsp[(1) - (5)].ppd); } break; case 6: #line 116 "parseppd.y" { if (!(yyvsp[(1) - (5)].ppd)->nickname) (yyvsp[(1) - (5)].ppd)->nickname = (yyvsp[(4) - (5)].string); (yyval.ppd) = (yyvsp[(1) - (5)].ppd); } break; case 7: #line 122 "parseppd.y" { (yyval.ppd) = (yyvsp[(1) - (2)].ppd); } break; case 8: #line 126 "parseppd.y" { (yyval.ppd) = (yyvsp[(1) - (2)].ppd); } break; case 9: #line 130 "parseppd.y" { (yyval.ppd) = (yyvsp[(1) - (2)].ppd); } break; case 10: #line 134 "parseppd.y" { (yyval.ppd) = (yyvsp[(1) - (2)].ppd); } break; case 11: #line 138 "parseppd.y" { (yyval.ppd) = (yyvsp[(1) - (2)].ppd); } break; case 12: #line 148 "parseppd.y" { (yyval.string)= (yyvsp[(2) - (7)].string); } break; case 13: #line 150 "parseppd.y" { (yyval.string)= (yyvsp[(3) - (3)].string); } break; /* Line 1267 of yacc.c. */ #line 1491 "parseppd.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); YYPOPSTACK (yylen); yylen = 0; YY_STACK_PRINT (yyss, yyssp); *++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. */ yyn = yyr1[yyn]; yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) yystate = yytable[yystate]; else yystate = yydefgoto[yyn - YYNTOKENS]; goto yynewstate; /*------------------------------------. | yyerrlab -- here on detecting error | `------------------------------------*/ yyerrlab: /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { ++yynerrs; #if ! YYERROR_VERBOSE yyerror (YY_("syntax error")); #else { YYSIZE_T yysize = yysyntax_error (0, yystate, yychar); if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM) { YYSIZE_T yyalloc = 2 * yysize; if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM)) yyalloc = YYSTACK_ALLOC_MAXIMUM; if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); yymsg = (char *) YYSTACK_ALLOC (yyalloc); if (yymsg) yymsg_alloc = yyalloc; else { yymsg = yymsgbuf; yymsg_alloc = sizeof yymsgbuf; } } if (0 < yysize && yysize <= yymsg_alloc) { (void) yysyntax_error (yymsg, yystate, yychar); yyerror (yymsg); } else { yyerror (YY_("syntax error")); if (yysize != 0) goto yyexhaustedlab; } } #endif } if (yyerrstatus == 3) { /* If just tried and failed to reuse look-ahead 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 look-ahead token after shifting the error token. */ goto yyerrlab1; /*---------------------------------------------------. | yyerrorlab -- error raised explicitly by YYERROR. | `---------------------------------------------------*/ yyerrorlab: /* Pacify compilers like GCC when the user code never invokes YYERROR and the label yyerrorlab therefore never appears in user code. */ if (/*CONSTCOND*/ 0) goto yyerrorlab; /* Do not reclaim the symbols of the rule which 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. */ for (;;) { yyn = yypact[yystate]; if (yyn != YYPACT_NINF) { yyn += YYTERROR; if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) { 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", yystos[yystate], yyvsp); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); } if (yyn == YYFINAL) YYACCEPT; *++yyvsp = yylval; /* Shift the error token. */ YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); yystate = yyn; goto yynewstate; /*-------------------------------------. | yyacceptlab -- YYACCEPT comes here. | `-------------------------------------*/ yyacceptlab: yyresult = 0; goto yyreturn; /*-----------------------------------. | yyabortlab -- YYABORT comes here. | `-----------------------------------*/ yyabortlab: yyresult = 1; goto yyreturn; #ifndef yyoverflow /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ yyexhaustedlab: yyerror (YY_("memory exhausted")); yyresult = 2; /* Fall through. */ #endif yyreturn: if (yychar != YYEOF && yychar != YYEMPTY) yydestruct ("Cleanup: discarding lookahead", yytoken, &yylval); /* Do not reclaim the symbols of the rule which action triggered this YYABORT or YYACCEPT. */ YYPOPSTACK (yylen); YY_STACK_PRINT (yyss, yyssp); while (yyssp != yyss) { yydestruct ("Cleanup: popping", yystos[*yyssp], yyvsp); YYPOPSTACK (1); } #ifndef yyoverflow if (yyss != yyssa) YYSTACK_FREE (yyss); #endif #if YYERROR_VERBOSE if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); #endif /* Make sure YYID is used. */ return YYID (yyresult); } #line 152 "parseppd.y" void yyerror (const char *msg) { error_at_line (1, 0, ppdfilename, ppdlineno, 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.14/lib/fonts.h0000644000175000017500000000405310735324672013710 0ustar mhattamhatta/* * fonts.h * * Reading an AFM file * Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana * Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana * $Id: fonts.h,v 1.1.1.1.2.1 2007/12/29 01:58:18 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. */ /* * $Id: fonts.h,v 1.1.1.1.2.1 2007/12/29 01:58:18 mhatta Exp $ */ #ifndef _LEXAFM_H_ #define _LEXAFM_H_ struct a2ps_job; /* * Handling of fonts.map files */ struct pair_htable * fonts_map_new PARAMS ((void)); void fonts_map_free PARAMS ((struct pair_htable * table)); int load_main_fonts_map PARAMS ((struct a2ps_job * job)); struct hash_table_s * font_info_table_new PARAMS ((void)); void font_info_table_free PARAMS ((struct hash_table_s * table)); void font_info_add PARAMS ((struct a2ps_job * job, const char * key)); int font_exists PARAMS ((struct a2ps_job * job, const char * key)); int font_is_to_reencode PARAMS ((struct a2ps_job * job, const char * key)); void font_info_get_wx_for_vector PARAMS ((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 PARAMS ((FILE * stream, struct a2ps_job * job)); /* Dump the definition of the fonts */ void dump_fonts PARAMS ((FILE * stream, struct a2ps_job * job)); #endif a2ps-4.14/lib/strtoul.c0000644000175000017500000000160110735322362014254 0ustar mhattamhatta/* Copyright (C) 1991, 1999 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@prep.ai.mit.edu. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 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. */ #define UNSIGNED 1 #include a2ps-4.14/lib/xgetcwd.c0000644000175000017500000000356410735322362014217 0ustar mhattamhatta/* xgetcwd.c -- return current directory with unlimited length Copyright (C) 1992, 1996 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Written by David MacKenzie . */ #if HAVE_CONFIG_H # include #endif #include #include #ifndef errno extern int errno; #endif #include #include "pathmax.h" #if HAVE_GETCWD char *getcwd (); #else char *getwd (); # define getcwd(Buf, Max) getwd (Buf) #endif /* Amount to increase buffer size by in each try. */ #define PATH_INCR 32 char *xmalloc (); char *xrealloc (); void free (); /* Return the current directory, newly allocated, arbitrarily long. Return NULL and set errno on error. */ char * xgetcwd () { char *cwd; char *ret; unsigned path_max; errno = 0; path_max = (unsigned) PATH_MAX; path_max += 2; /* The getcwd docs say to do this. */ cwd = xmalloc (path_max); errno = 0; while ((ret = getcwd (cwd, path_max)) == NULL && errno == ERANGE) { path_max += PATH_INCR; cwd = xrealloc (cwd, path_max); errno = 0; } if (ret == NULL) { int save_errno = errno; free (cwd); errno = save_errno; return NULL; } return cwd; } a2ps-4.14/lib/filalign.h0000644000175000017500000000347610735324671014353 0ustar mhattamhatta/* * filalign.h * * madir direction * * Copyright (c) 1988-1993 Miguel Santana * Copyright (c) 1995-1999 Akim Demaille, Miguel Santana * $Id: filalign.h,v 1.1.1.1.2.1 2007/12/29 01:58:17 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 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 PARAMS ((const char * option, const char * arg)); const char * file_align_to_string PARAMS ((file_align_t file_align)); #endif /* !defined (MADIR_H_) */ a2ps-4.14/lib/psgen.c0000644000175000017500000006255410735324676013704 0ustar mhattamhatta/* * psgen.c * routines for the postscript generation * * 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: psgen.c,v 1.1.1.1.2.1 2007/12/29 01:58:22 mhatta Exp $ */ #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)) /* Width in characters for line prefix */ #define prefix_size (job->numbering ? 5 : 0) /* Is this the first page for the current file? */ #define is_first_page \ ((job->pages - CURRENT_FILE (job)->first_page) > 1) #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 int ps_escape_char (a2ps_job * job, uchar c, uchar * res) { int 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 caracters */ if (' ' <= c && c < 0177) { if (c == '(' || c == ')' || c == '\\') USTRCCAT(res, '\\'); USTRCCAT(res, c); return 1; } /* Printable, but not 7bit clean caracters */ if (encoding_char_exists (job->encoding, job->status->face, c) && ((0177 < c) || (c < 040))) { sprintf ((char *)res, "%s\\%o", res, c); 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 ((char *) res, "\\\\%03o", c); return 4; case hexa: sprintf ((char *) res, "\\\\x%02x", c); return 4; case question_mark: USTRCCAT (res, '?'); return 1; case space: USTRCCAT (res, ' '); return 1; case caret: if (0177 < c) { ustrcat(res, "M-"); len += 2; c &= 0177; } if (c < ' ') { USTRCCAT(res, '^'); len += 2; c += '@'; if (c == '(' || c == ')' || c == '\\') USTRCCAT(res, '\\'); USTRCCAT(res, c); } else if (c == 0177) { ustrcat(res, "^?"); len += 2; } else { if (c == '(' || c == ')' || c == '\\') USTRCCAT(res, '\\'); USTRCCAT(res, c); len++; } return len; case Emacs: if (0177 < c) { ustrcat(res, "M-"); len += 2; c &= 0177; } if (c < ' ') { ustrcat (res, "C-"); len += 3; c += '@'; if (c == '(' || c == ')' || c == '\\') USTRCCAT(res, '\\'); USTRCCAT(res, c); } else if (c == 0177) { ustrcat(res, "C-?"); len += 3; } else { if (c == '(' || c == ')' || c == '\\') USTRCCAT(res, '\\'); USTRCCAT(res, c); len++; } return len; } return 0; } /* * Print a string in a form accepted by postscript printers. */ static int ps_escape_string (a2ps_job * job, uchar * string, uchar * res) { size_t i; int delta_column=0; for (i = 0 ; i < ustrlen (string) ; i++) delta_column += ps_escape_char (job, string[i], res); return delta_column; } /* * Output the formated marker. */ static void output_marker (a2ps_job * job, const char * kind, uchar * marker) { uchar *cp, buf[256]; int i; cp = expand_user_string (job, CURRENT_FILE (job), (const uchar *) kind, marker); for (i = 0 ; cp[i] ; i++) { switch (cp[i]) { case FILE_LAST_PAGE: output_delayed_int (jdiv, &(CURRENT_FILE (job)->last_page)); break; case FILE_LAST_SHEET: output_delayed_int (jdiv, &(CURRENT_FILE (job)->last_sheet)); break; case FILE_NB_PAGES: output_delayed_int (jdiv, &(CURRENT_FILE (job)->pages)); break; case FILE_NB_SHEETS: output_delayed_int (jdiv, &(CURRENT_FILE (job)->sheets)); break; case FILE_NB_LINES: output_delayed_int (jdiv, &(CURRENT_FILE (job)->lines)); break; case JOB_NB_PAGES: output_delayed_int (jdiv, &job->pages); break; case JOB_NB_SHEETS: output_delayed_int (jdiv, &job->sheets); break; case JOB_NB_FILES: output_delayed_int (jdiv, &job->total_files); break; default: *buf = '\0'; ps_escape_char (job, cp[i], buf); output (jdiv, (char *) 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 (uchar *, 1); output_delayed_string (jdiv, job->status->page_label); output (jdiv, ") %d\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, "%d 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", ((float) 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 %d 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) = xustrdup (expand_user_string (job, CURRENT_FILE (job), (const uchar *) "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 %d store\n", job->virtual - 1); output (jdiv, "/x0 x v get %f add sx cw mul add store\n", SIDE_MARGIN_RATIO * 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: (*) %d\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, int 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' ) /* FIXME: May be some day, using a more flexible scheme * would be good && (c != encodings[job->encoding].new_line))*/ && (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, "(%d) # (", 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, "(%d) # (", 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': #if 0 /* Now the primary eol is \n. It is up to a2ps-prog to change the * \r or \n\r to \n * The program */ case '\r': /* One of these is just a plain character */ if (c != encodings[job->encoding].new_line) goto print; #endif (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, " %d T (", job->status->column); break; print: default: { uchar buf[256]; int 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; } nchars = ps_escape_char (job, c, buf); job->status->wx += char_WX (job, 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, c); } else { job->status->is_in_cut = true; return; } } output (jdiv, "%s", buf); job->status->chars++; } break; } } /* * Print the content of a C string \0 terminated */ void ps_print_string (a2ps_job * job, uchar * 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 uchar * 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. */ { int 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) % 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.14/lib/common.h0000644000175000017500000000343410735324670014047 0ustar mhattamhatta/* * common.h * * liba2ps shared memory (data used by several modules) * * 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: common.h,v 1.1.1.1.2.1 2007/12/29 01:58:16 mhatta Exp $ */ #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 PARAMS ((struct a2ps_common_s * common)); /* Create a shared mem with default values */ struct a2ps_common_s * a2ps_common_new PARAMS ((void)); /* Free the common mem */ void a2ps_common_free PARAMS ((struct a2ps_common_s * common)); /* Finalize the common mem to the regular values HOME is the user's * home dir. */ void a2ps_common_finalize PARAMS ((struct a2ps_common_s * common, const char * home)); #endif /* !defined (_COMMON_H_) */ a2ps-4.14/lib/tterm.h0000644000175000017500000000320510735322367013707 0ustar mhattamhatta/* tinyterm.h -- Minimalist information on the terminal Copyright (C) 1998 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef _TINYTERM_H_ #define _TINYTERM_H_ #ifndef PARAMS # if defined PROTOTYPES || defined __STDC__ # define PARAMS(Args) Args # else # define PARAMS(Args) () # endif #endif struct tterm; /* Initialize TTERM taking the environment into account (for line width, and tabsize) for STREAM. */ void tterm_initialize PARAMS ((struct tterm *tterm, FILE *stream)); /* Set the line width of TTERM to WIDTH. Returns the previous value. */ size_t tterm_width_set PARAMS ((struct tterm *tterm, size_t width)); /* Return the line width of TTERM. */ size_t tterm_width PARAMS ((struct tterm *tterm)); /* Set the tab size of TTERM to SIZE. Returns the previous value. */ size_t tterm_tabsize_set PARAMS ((struct tterm *tterm, size_t size)); /* Return the tab size of TTERM. */ size_t tterm_tabsize PARAMS ((struct tterm *tterm)); #endif /* ! _TINYTERM_H_ */ a2ps-4.14/lib/fnmatch.c0000644000175000017500000001303710735322362014166 0ustar mhattamhatta/* Copyright (C) 1991, 1992, 1993, 1996, 1997 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if HAVE_CONFIG_H # include #endif /* Enable GNU extensions in fnmatch.h. */ #ifndef _GNU_SOURCE # define _GNU_SOURCE 1 #endif #include #include #include /* Comment out all this code if we are using the GNU C Library, and are not actually compiling the library itself. 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__ # if defined STDC_HEADERS || !defined isascii # define ISASCII(c) 1 # else # define ISASCII(c) isascii(c) # endif # define ISUPPER(c) (ISASCII (c) && isupper (c)) # ifndef errno extern int errno; # endif /* Match STRING against the filename pattern PATTERN, returning zero if it matches, nonzero if not. */ int fnmatch (const char *pattern, const char *string, int flags) { register const char *p = pattern, *n = string; register char c; /* Note that this evaluates C many times. */ # define FOLD(c) ((flags & FNM_CASEFOLD) && ISUPPER (c) ? tolower (c) : (c)) while ((c = *p++) != '\0') { c = FOLD (c); switch (c) { case '?': if (*n == '\0') return FNM_NOMATCH; else if ((flags & FNM_FILE_NAME) && *n == '/') return FNM_NOMATCH; else if ((flags & FNM_PERIOD) && *n == '.' && (n == string || ((flags & FNM_FILE_NAME) && n[-1] == '/'))) return FNM_NOMATCH; break; case '\\': if (!(flags & FNM_NOESCAPE)) { c = *p++; if (c == '\0') /* Trailing \ loses. */ return FNM_NOMATCH; c = FOLD (c); } if (FOLD (*n) != c) return FNM_NOMATCH; break; case '*': if ((flags & FNM_PERIOD) && *n == '.' && (n == string || ((flags & FNM_FILE_NAME) && n[-1] == '/'))) return FNM_NOMATCH; for (c = *p++; c == '?' || c == '*'; c = *p++) { if ((flags & FNM_FILE_NAME) && *n == '/') /* A slash does not match a wildcard under FNM_FILE_NAME. */ return FNM_NOMATCH; else if (c == '?') { /* A ? needs to match one character. */ if (*n == '\0') /* There isn't another character; no match. */ return FNM_NOMATCH; else /* One character of the string is consumed in matching this ? wildcard, so *??? won't match if there are less than three characters. */ ++n; } } if (c == '\0') return 0; { char c1 = (!(flags & FNM_NOESCAPE) && c == '\\') ? *p : c; c1 = FOLD (c1); for (--p; *n != '\0'; ++n) if ((c == '[' || FOLD (*n) == c1) && fnmatch (p, n, flags & ~FNM_PERIOD) == 0) return 0; return FNM_NOMATCH; } case '[': { /* Nonzero if the sense of the character class is inverted. */ register int not; if (*n == '\0') return FNM_NOMATCH; if ((flags & FNM_PERIOD) && *n == '.' && (n == string || ((flags & FNM_FILE_NAME) && n[-1] == '/'))) return FNM_NOMATCH; not = (*p == '!' || *p == '^'); if (not) ++p; c = *p++; for (;;) { register char cstart = c, cend = c; if (!(flags & FNM_NOESCAPE) && c == '\\') { if (*p == '\0') return FNM_NOMATCH; cstart = cend = *p++; } cstart = cend = FOLD (cstart); if (c == '\0') /* [ (unterminated) loses. */ return FNM_NOMATCH; c = *p++; c = FOLD (c); if ((flags & FNM_FILE_NAME) && c == '/') /* [/] can never match. */ return FNM_NOMATCH; if (c == '-' && *p != ']') { cend = *p++; if (!(flags & FNM_NOESCAPE) && cend == '\\') cend = *p++; if (cend == '\0') return FNM_NOMATCH; cend = FOLD (cend); c = *p++; } if (FOLD (*n) >= cstart && FOLD (*n) <= cend) goto matched; if (c == ']') break; } if (!not) return FNM_NOMATCH; break; matched:; /* Skip the rest of the [...] that already matched. */ while (c != ']') { if (c == '\0') /* [... (unterminated) loses. */ return FNM_NOMATCH; c = *p++; if (!(flags & FNM_NOESCAPE) && c == '\\') { if (*p == '\0') return FNM_NOMATCH; /* XXX 1003.2d11 is unclear if this is right. */ ++p; } } if (not) return FNM_NOMATCH; } break; default: if (c != FOLD (*n)) return FNM_NOMATCH; } ++n; } if (*n == '\0') return 0; if ((flags & FNM_LEADING_DIR) && *n == '/') /* The FNM_LEADING_DIR flag says that "foo*" matches "foobar/frobozz". */ return 0; return FNM_NOMATCH; # undef FOLD } #endif /* _LIBC or not __GNU_LIBRARY__. */ a2ps-4.14/lib/jobs.h0000644000175000017500000001430510735324673013516 0ustar mhattamhatta/* * jobs.h * * Recording information about the print jobs * 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: jobs.h,v 1.1.1.1.2.1 2007/12/29 01:58:19 mhatta Exp $ */ #ifndef _JOBS_H_ #define _JOBS_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 */ size_t 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 */ int sheets; /* BEWARE: current PAGE number */ int pages; /* BEWARE: current VIRTUAL number */ int lines_folded; /* Number of lines that were folded */ int total_files; /* id but files */ ORIENTATION orientation; /* landscape mode ? */ enum duplex_e duplex; /* Recto verso printing ? */ int columns; /* number of columns/page */ int rows; /* number of rows/page */ madir_t madir; /* firt rows, or columns? * (not major, because of a SunOS macro)*/ int virtual; /* number of the virtual page on that sheet */ int copies; /* number of copies */ int 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]; uchar * 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 */ int 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 */ char *medium_request; /* The name of the medium choosen */ int tabsize; /* length of tabulations */ int lines_requested; /* Number of line per page */ int 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 * 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 */ uchar * title; /* Job's title (eg. in %%Title: ) */ uchar * header; /* Allow different header text */ uchar * center_title; /* Allow different header text */ uchar * left_title; /* Allow different header text */ uchar * right_title; /* Allow different header text */ uchar * left_footer; /* Allow different header text */ uchar * footer; /* Allow different header text */ uchar * right_footer; /* Allow different footer text */ uchar * water; /* Water marks text */ /* Used to grab headers etc. from the file */ uchar 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 PARAMS ((void)); /* Finalize it */ void a2ps_job_finalize PARAMS ((struct a2ps_job * job)); /* Free the memory used by JOB */ void a2ps_job_free PARAMS ((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 PARAMS ((struct a2ps_job * job)); #endif a2ps-4.14/lib/options.h0000644000175000017500000000301110735322367014242 0ustar mhattamhatta/* * options.h * * Read and understanding everything about the options * * 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. */ #ifndef OPTIONS_H_ # define OPTIONS_H_ struct a2ps_job; /* * Type of the functions for options hooks */ typedef int (* option_hook) PARAMS ((int opt, char * arg)); extern option_hook handle_option_hook; /* Handle arguments */ bool a2ps_get_bool PARAMS ((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 PARAMS ((struct a2ps_job * job, int argc, char *argv[])); int a2ps_handle_string_options PARAMS ((struct a2ps_job * job, const char *string)); #endif /* !OPTIONS_H_ */ a2ps-4.14/lib/atexit.c0000644000175000017500000000373710735322361014051 0ustar mhattamhatta/* atexit.c -- Do nothing, but to return a success This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 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. */ #ifdef HAVE_CONFIG_H # include #endif #ifdef HAVE_ON_EXIT /* The function used by on_exit has two args: The routine named is called as (*procp)(status, arg); where status is the argument with which exit() was called, or zero if main returns. Typically, arg is the address of an argument vector to (*procp), but may be an integer value. Use this space to store the address to call the atexit'ed function, so that there are no mismatches between arities of call procedures. */ static void on_exit_wrapper (status, func) int status; void (* func) (); { func (); } int atexit (func) void (*func) (); { return on_exit (on_exit_wrapper, func); } #else /* !defined(HAVE_ON_EXIT) */ /* Define the registering function * and a replacement exiting function */ #define EXIT_STACK_SIZE 32 typedef void (*exit_fn_t) (); static exit_fn_t exit_stack[EXIT_STACK_SIZE]; static int exit_stack_len = 0; int atexit (func) exit_fn_t func; { if (exit_stack_len >= EXIT_STACK_SIZE) return 1; exit_stack [exit_stack_len ++] = func; return 0; } void exit (status) int status; { while (exit_stack_len > 0) exit_stack [--exit_stack_len] (); #undef exit exit (status); } #endif a2ps-4.14/lib/parseppd.y0000644000175000017500000000771410735324675014430 0ustar mhattamhatta%{ /* -*- 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 "a2ps.h" /* 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 #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 PARAMS ((const char *msg)); static void yyprint (); /* Initilizes the obstacks */ void ppdlex_initialize PARAMS ((void)); int yylex PARAMS ((void)); static struct ppd * ppd_parse_result; %} %union { char * string; uchar * ustring; struct ppd * ppd; } %token EOL %token tDefaultFont tFont tModelName tNickName %token STRING SYMBOL %token USTRING %type ppd %type 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, 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.14/lib/liba2ps.h.extract0000644000175000017500000000341710735337331015563 0ustar mhattamhatta/* 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 PARAMS ((struct a2ps_job * job, int c, enum face_e face)); /* Print a C string (nul terminated) in FACE */ void a2ps_print_string PARAMS ((struct a2ps_job * job, const unsigned char * string, enum face_e face)); /* Print the N chars contained in BUFFER, in FACE */ void a2ps_print_buffer PARAMS ((struct a2ps_job * job, const unsigned char * buffer, size_t start, size_t end, enum face_e face)); /* Open/close the outer structure */ void a2ps_open_output_session PARAMS ((struct a2ps_job * job)); void a2ps_close_output_session PARAMS ((struct a2ps_job * job)); /* Open/Close the section structure */ void a2ps_open_input_session PARAMS ((struct a2ps_job * job, unsigned char * name)); void a2ps_close_input_session PARAMS ((struct a2ps_job * job)); /* From jobs.h */ /* Return a newly allocated output session storage */ struct a2ps_job * a2ps_job_new PARAMS ((void)); /* Finalize it */ void a2ps_job_finalize PARAMS ((struct a2ps_job * job)); /* Free the memory used by JOB */ void a2ps_job_free PARAMS ((struct a2ps_job * job)); /* From confg.h */ /* * Read the configuration file */ int a2_read_config PARAMS ((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 PARAMS ((struct a2ps_job * job)); a2ps-4.14/lib/Makefile.am0000644000175000017500000001144010735322373014434 0ustar mhattamhatta# -*- Makefile -*- ## Makefile for the support lib subdirectory 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; if not, write to the Free Software ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ## Process this file with automake to produce Makefile.in. ## This seems to make problems with some makes AUTOMAKE_OPTIONS = $(top_builddir)/lib/ansi2knr # # Definition of the local target # lib_LTLIBRARIES = liba2ps.la INCLUDES = -I$(top_builddir) -I$(top_builddir)/intl -I$(srcdir) DEFS = @DEFS@ -DLOCALEDIR=\"$(datadir)/locale\" -DSYSCONFFILE=\"$(sysconfdir)/a2ps.cfg\" # --debug, --defines, --verbose YFLAGS = -dtv # Use a struct, handle duplicates, produce ANSI-C GPERFFLAGS = -t -D -L ANSI-C BUILT_SOURCES = parseppd.c parseppd.h liba2ps.h confg.c liba2ps_la_LIBADD = @LTALLOCA@ @LTLIBOBJS@ liba2ps_la_LDFLAGS = -version-info @LIBVERSION@ liba2psheaders = encoding.h media.h jobs.h output.h \ routines.h psgen.h prolog.h faces.h confg.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 liba2pssources = encoding.c media.c jobs.c output.c \ routines.c psgen.c prolog.c faces.c confg.c useropt.c \ gen.c printers.c psstat.c caret.c metaseq.c options.c \ dsc.c fonts.l ppd.c prange.c stream.c document.c \ fjobs.c common.c madir.c filalign.c lexppd.l \ parseppd.y 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 mylibitsources = message.c xstrrpl.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 # Libit stuff libitpureheaders = \ fnmatch.h pathmax.h stpncpy.h xdirent.h \ xfnmatch.h xobstack.h libitpuresources = \ addext.c basename.c getopt1.c isdir.c xgetcwd.c xgethostname.c xstrdup.c libitheaders = \ argmatch.h argv.h backupfile.h dirname.h getopt.h hashtab.h \ path-concat.h quotearg.h signame.h strverscmp.h xalloc.h \ xstrtol.h closeout.h libitsources = \ argmatch.c argv.c backupfile.c dirname.c getopt.c hashtab.c \ path-concat.c quotearg.c signame.c strverscmp.c xmalloc.c \ xstrtol.c closeout.c noinst_HEADERS = $(liba2psheaders) $(libitheaders) $(mylibitheaders) \ $(libitpureheaders) gettext.h liba2ps_la_SOURCES = $(liba2pssources) $(libitsources) $(mylibitsources) \ $(libitpuresources) # # Handling the Gperf code # # We change `signed char' to short, because `signed char' is ANSI, # hence not portable. We could have produced KnR C with gperf, but # since prototypes would have been missing, there are many warnings # with modern compilers. And many warnings means many complains from # user. confg.c: confg.gperf $(GPERF) $(GPERFFLAGS) confg.gperf >confg.tmp sed -e 's/ signed char/ short/g' confg.c rm -f confg.tmp # # Building the header for using liba2ps # include_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/uchar/unsigned char/g' \ | 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: 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 EXTRA_DIST = liba2ps.h $(liba2ps_h_sources) strtol.c $(BUILT_SOURCES) confg.gperf a2ps-4.14/lib/xstrdup.c0000644000175000017500000000323210735322362014253 0ustar mhattamhatta/* xstrdup.c -- copy a string with out of memory checking Copyright (C) 1990, 1996, 1998 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if HAVE_CONFIG_H # include #endif #ifndef PARAMS # if defined PROTOTYPES || (defined __STDC__ && __STDC__) # define PARAMS(Args) Args # else # define PARAMS(Args) () # endif #endif #if STDC_HEADERS || HAVE_STRING_H # include #else # include #endif #include char *xmalloc PARAMS ((size_t n)); /* Return a newly allocated copy of STRING. */ char * xstrdup (const char *string) { return strcpy (xmalloc (strlen (string) + 1), string); } /* Return a newly allocated copy of STRING copying at most N characters. The string is always terminated, and thus is at most N + 1 chars long. */ char * xstrndup (const char *string, size_t n) { size_t len = strlen (string); char *res; if (n < len) len = n; res = xmalloc (len + 1); strncpy (res, string, len); res[len] = '\0'; return res; } a2ps-4.14/lib/strtol.c0000644000175000017500000002635510735322362014104 0ustar mhattamhatta/* Convert string representation of a number into an integer value. Copyright (C) 1991, 92, 94, 95, 96, 97, 98, 99 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 program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 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. */ #if HAVE_CONFIG_H # include #endif #ifdef _LIBC # define USE_NUMBER_GROUPING # define STDC_HEADERS # define HAVE_LIMITS_H #endif #include #include #ifndef errno extern int errno; #endif #ifndef __set_errno # define __set_errno(Val) errno = (Val) #endif #ifdef HAVE_LIMITS_H # include #endif #ifdef STDC_HEADERS # include # include # include #else # ifndef NULL # define NULL 0 # endif #endif #ifdef USE_NUMBER_GROUPING # include "../locale/localeinfo.h" #endif /* Nonzero if we are defining `strtoul' or `strtoull', operating on unsigned integers. */ #ifndef UNSIGNED # define UNSIGNED 0 # define INT LONG int #else # define INT unsigned LONG int #endif /* Determine the name. */ #ifdef USE_IN_EXTENDED_LOCALE_MODEL # if UNSIGNED # ifdef USE_WIDE_CHAR # ifdef QUAD # define strtol __wcstoull_l # else # define strtol __wcstoul_l # endif # else # ifdef QUAD # define strtol __strtoull_l # else # define strtol __strtoul_l # endif # endif # else # ifdef USE_WIDE_CHAR # ifdef QUAD # define strtol __wcstoll_l # else # define strtol __wcstol_l # endif # else # ifdef QUAD # define strtol __strtoll_l # else # define strtol __strtol_l # endif # endif # endif #else # if UNSIGNED # ifdef USE_WIDE_CHAR # ifdef QUAD # define strtol wcstoull # else # define strtol wcstoul # endif # else # ifdef QUAD # define strtol strtoull # else # define strtol strtoul # endif # endif # else # ifdef USE_WIDE_CHAR # ifdef QUAD # define strtol wcstoll # else # define strtol wcstol # endif # else # ifdef QUAD # define strtol strtoll # endif # endif # endif #endif /* If QUAD is defined, we are defining `strtoll' or `strtoull', operating on `long long int's. */ #ifdef QUAD # define LONG long long # define STRTOL_LONG_MIN LONG_LONG_MIN # define STRTOL_LONG_MAX LONG_LONG_MAX # define STRTOL_ULONG_MAX ULONG_LONG_MAX /* The extra casts work around common compiler bugs, e.g. Cray C 5.0.3.0 when t == time_t. */ # ifndef TYPE_SIGNED # define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) # endif # ifndef TYPE_MINIMUM # define TYPE_MINIMUM(t) ((t) (TYPE_SIGNED (t) \ ? ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1) \ : (t) 0)) # endif # ifndef TYPE_MAXIMUM # define TYPE_MAXIMUM(t) ((t) (~ (t) 0 - TYPE_MINIMUM (t))) # endif # ifndef ULONG_LONG_MAX # define ULONG_LONG_MAX TYPE_MAXIMUM (unsigned long long) # endif # ifndef LONG_LONG_MAX # define LONG_LONG_MAX TYPE_MAXIMUM (long long int) # endif # ifndef LONG_LONG_MIN # define LONG_LONG_MIN TYPE_MINIMUM (long long int) # endif # if __GNUC__ == 2 && __GNUC_MINOR__ < 7 /* Work around gcc bug with using this constant. */ static const unsigned long long int maxquad = ULONG_LONG_MAX; # undef STRTOL_ULONG_MAX # define STRTOL_ULONG_MAX maxquad # endif #else # define LONG long # ifndef ULONG_MAX # define ULONG_MAX ((unsigned long) ~(unsigned long) 0) # endif # ifndef LONG_MAX # define LONG_MAX ((long int) (ULONG_MAX >> 1)) # endif # define STRTOL_LONG_MIN LONG_MIN # define STRTOL_LONG_MAX LONG_MAX # define STRTOL_ULONG_MAX ULONG_MAX #endif /* We use this code also for the extended locale handling where the function gets as an additional argument the locale which has to be used. To access the values we have to redefine the _NL_CURRENT macro. */ #ifdef USE_IN_EXTENDED_LOCALE_MODEL # undef _NL_CURRENT # define _NL_CURRENT(category, item) \ (current->values[_NL_ITEM_INDEX (item)].string) # define LOCALE_PARAM , loc # define LOCALE_PARAM_DECL __locale_t loc; #else # define LOCALE_PARAM # define LOCALE_PARAM_DECL #endif #if defined _LIBC || defined HAVE_WCHAR_H # include #endif #ifdef USE_WIDE_CHAR # include # define L_(Ch) L##Ch # define UCHAR_TYPE wint_t # define STRING_TYPE wchar_t # ifdef USE_IN_EXTENDED_LOCALE_MODEL # define ISSPACE(Ch) __iswspace_l ((Ch), loc) # define ISALPHA(Ch) __iswalpha_l ((Ch), loc) # define TOUPPER(Ch) __towupper_l ((Ch), loc) # else # define ISSPACE(Ch) iswspace (Ch) # define ISALPHA(Ch) iswalpha (Ch) # define TOUPPER(Ch) towupper (Ch) # endif #else # if defined STDC_HEADERS || (!defined isascii && !defined HAVE_ISASCII) # define IN_CTYPE_DOMAIN(c) 1 # else # define IN_CTYPE_DOMAIN(c) isascii(c) # endif # define L_(Ch) Ch # define UCHAR_TYPE unsigned char # define STRING_TYPE char # ifdef USE_IN_EXTENDED_LOCALE_MODEL # define ISSPACE(Ch) __isspace_l ((Ch), loc) # define ISALPHA(Ch) __isalpha_l ((Ch), loc) # define TOUPPER(Ch) __toupper_l ((Ch), loc) # else # define ISSPACE(Ch) (IN_CTYPE_DOMAIN (Ch) && isspace (Ch)) # define ISALPHA(Ch) (IN_CTYPE_DOMAIN (Ch) && isalpha (Ch)) # define TOUPPER(Ch) (IN_CTYPE_DOMAIN (Ch) ? toupper (Ch) : (Ch)) # endif #endif /* For compilers which are ansi but don't define __STDC__, like SGI Irix-4.0.5 cc, also check whether PROTOTYPES is defined. */ #if defined (__STDC__) || defined (PROTOTYPES) # define INTERNAL(X) INTERNAL1(X) # define INTERNAL1(X) __##X##_internal # define WEAKNAME(X) WEAKNAME1(X) #else # define INTERNAL(X) __/**/X/**/_internal #endif #ifdef USE_NUMBER_GROUPING /* This file defines a function to check for correct grouping. */ # include "grouping.h" #endif /* Convert NPTR to an `unsigned long int' or `long int' in base BASE. If BASE is 0 the base is determined by the presence of a leading zero, indicating octal or a leading "0x" or "0X", indicating hexadecimal. If BASE is < 2 or > 36, it is reset to 10. If ENDPTR is not NULL, a pointer to the character after the last one converted is stored in *ENDPTR. */ INT INTERNAL (strtol) (nptr, endptr, base, group LOCALE_PARAM) const STRING_TYPE *nptr; STRING_TYPE **endptr; int base; int group; LOCALE_PARAM_DECL { int negative; register unsigned LONG int cutoff; register unsigned int cutlim; register unsigned LONG int i; register const STRING_TYPE *s; register UCHAR_TYPE c; const STRING_TYPE *save, *end; int overflow; #ifdef USE_NUMBER_GROUPING # ifdef USE_IN_EXTENDED_LOCALE_MODEL struct locale_data *current = loc->__locales[LC_NUMERIC]; # endif /* The thousands character of the current locale. */ wchar_t thousands = L'\0'; /* The numeric grouping specification of the current locale, in the format described in . */ const char *grouping; if (group) { grouping = _NL_CURRENT (LC_NUMERIC, GROUPING); if (*grouping <= 0 || *grouping == CHAR_MAX) grouping = NULL; else { /* Figure out the thousands separator character. */ # if defined _LIBC || defined _HAVE_BTOWC thousands = __btowc (*_NL_CURRENT (LC_NUMERIC, THOUSANDS_SEP)); if (thousands == WEOF) thousands = L'\0'; # endif if (thousands == L'\0') grouping = NULL; } } else grouping = NULL; #endif if (base < 0 || base == 1 || base > 36) { __set_errno (EINVAL); return 0; } save = s = nptr; /* Skip white space. */ while (ISSPACE (*s)) ++s; if (*s == L_('\0')) goto noconv; /* Check for a sign. */ if (*s == L_('-')) { negative = 1; ++s; } else if (*s == L_('+')) { negative = 0; ++s; } else negative = 0; /* Recognize number prefix and if BASE is zero, figure it out ourselves. */ if (*s == L_('0')) { if ((base == 0 || base == 16) && TOUPPER (s[1]) == L_('X')) { s += 2; base = 16; } else if (base == 0) base = 8; } else if (base == 0) base = 10; /* Save the pointer so we can check later if anything happened. */ save = s; #ifdef USE_NUMBER_GROUPING if (group) { /* Find the end of the digit string and check its grouping. */ end = s; for (c = *end; c != L_('\0'); c = *++end) if ((wchar_t) c != thousands && ((wchar_t) c < L_('0') || (wchar_t) c > L_('9')) && (!ISALPHA (c) || (int) (TOUPPER (c) - L_('A') + 10) >= base)) break; if (*s == thousands) end = s; else end = correctly_grouped_prefix (s, end, thousands, grouping); } else #endif end = NULL; cutoff = STRTOL_ULONG_MAX / (unsigned LONG int) base; cutlim = STRTOL_ULONG_MAX % (unsigned LONG int) base; overflow = 0; i = 0; for (c = *s; c != L_('\0'); c = *++s) { if (s == end) break; if (c >= L_('0') && c <= L_('9')) c -= L_('0'); else if (ISALPHA (c)) c = TOUPPER (c) - L_('A') + 10; else break; if ((int) c >= base) break; /* Check for overflow. */ if (i > cutoff || (i == cutoff && c > cutlim)) overflow = 1; else { i *= (unsigned LONG int) base; i += c; } } /* Check if anything actually happened. */ if (s == save) goto noconv; /* Store in ENDPTR the address of one character past the last character we converted. */ if (endptr != NULL) *endptr = (STRING_TYPE *) s; #if !UNSIGNED /* Check for a value that is within the range of `unsigned LONG int', but outside the range of `LONG int'. */ if (overflow == 0 && i > (negative ? -((unsigned LONG int) (STRTOL_LONG_MIN + 1)) + 1 : (unsigned LONG int) STRTOL_LONG_MAX)) overflow = 1; #endif if (overflow) { __set_errno (ERANGE); #if UNSIGNED return STRTOL_ULONG_MAX; #else return negative ? STRTOL_LONG_MIN : STRTOL_LONG_MAX; #endif } /* Return the result of the appropriate sign. */ return negative ? -i : i; noconv: /* We must handle a special case here: the base is 0 or 16 and the first two characters are '0' and 'x', but the rest are no hexadecimal digits. This is no error case. We return 0 and ENDPTR points to the `x`. */ if (endptr != NULL) { if (save - nptr >= 2 && TOUPPER (save[-1]) == L_('X') && save[-2] == L_('0')) *endptr = (STRING_TYPE *) &save[-1]; else /* There was no number to convert. */ *endptr = (STRING_TYPE *) nptr; } return 0L; } /* External user entry point. */ #if _LIBC - 0 == 0 # undef PARAMS # if defined (__STDC__) && __STDC__ # define PARAMS(Args) Args # else # define PARAMS(Args) () # endif /* Prototype. */ INT strtol PARAMS ((const STRING_TYPE *nptr, STRING_TYPE **endptr, int base)); #endif INT #ifdef weak_function weak_function #endif strtol (nptr, endptr, base LOCALE_PARAM) const STRING_TYPE *nptr; STRING_TYPE **endptr; int base; LOCALE_PARAM_DECL { return INTERNAL (strtol) (nptr, endptr, base, 0 LOCALE_PARAM); } a2ps-4.14/lib/document.c0000644000175000017500000001311710735324670014367 0ustar mhattamhatta/* * document.c * * handle report of various documenting formats. * * 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: document.c,v 1.1.1.1.2.1 2007/12/29 01:58:16 mhatta Exp $ */ #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(", "", \ ")url", "", \ "emph(", "", \ ")emph", "'", \ "samp(", "`", \ ")samp", "'", \ "code(", "", \ ")code", "", \ "@example", "
    ",	\
      "@end example", 	"
    ", \ "@itemize", "
      ", \ "@end itemize", "
    ", \ "@item\n", "
  • ", \ "@@", "@", \ 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 */ /************************************************************************/ /* * In the following, we do not want to see Akim Demaille's name * in the style sheet context, since there would be too many. */ /* * 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 ". */ static inline void authors_print (const uchar * authors, FILE * stream, const char *before, const char *author_fmt, const char *between, const char *after) { char *cp, *author, *email; bool first = true; if (!authors) return; /* Work on a copy */ astrcpy (cp, authors); cp = strtok (cp, ","); while (cp) { author = cp; email = author + strcspn (author, "<"); *(email - 1) = '\0'; email++; *(email + strcspn (email, ">")) = '\0'; *(email - 1) = '\0'; if (!strequ (author, "Akim Demaille")) { if (first) { fputs (before, stream); first = false; } else fputs (between, stream); fprintf (stream, author_fmt, author, email); } cp = strtok (NULL, ","); } if (!first) fputs (after, stream); } /* * Plain : nothing to change */ void authors_print_plain (const uchar * authors, FILE * stream, const char *before) { authors_print (authors, stream, before, "%s <%s>", ", ", ".\n"); } /* * HTML : nothing to change */ void authors_print_html (const uchar * authors, FILE * stream, const char *before) { authors_print (authors, stream, before, "%1$s", ", ", ".\n"); } /* * Plain : nothing to change */ void authors_print_texinfo (const uchar * authors, FILE * stream, const char *before) { uchar *cp; /* We must quote the @ of the emails */ cp = (uchar *) xvstrrpl ((const char *) authors, AUTHORS_TO_TEXINFO); /* Don't print the email, that makes too wide output. */ authors_print (cp, stream, before, "%s", ", ", ".\n"); free (cp); } /************************************************************************/ /* The documentation handling */ /************************************************************************/ /* 1. Plain ASCII */ void documentation_print_plain (const uchar * documentation, const char *format, FILE * stream) { char *cp; if (!documentation) return; cp = xvstrrpl ((const char *) documentation, DOC_TO_PLAIN); fprintf (stream, format, cp); free (cp); } /* 2. Towards HTML */ void documentation_print_html (const uchar * documentation, const char *format, FILE * stream) { char *cp; if (!documentation) return; cp = xvstrrpl ((const char *) documentation, DOC_TO_HTML); fprintf (stream, format, cp); free (cp); } /* 3. Towards Texinfo */ void documentation_print_texinfo (const uchar * documentation, const char *format, FILE * stream) { char *cp; if (!documentation) return; cp = xvstrrpl ((const char *) documentation, DOC_TO_TEXINFO); fprintf (stream, format, cp); free (cp); } a2ps-4.14/lib/caret.c0000644000175000017500000000562410735324670013653 0ustar mhattamhatta/* * caret.c * * How non printable chars are represented * 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: caret.c,v 1.1.1.1.2.1 2007/12/29 01:58:16 mhatta Exp $ */ #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, uchar * res) { int len = 0; switch (job->unprintable_format) { case octal: sprintf ((char *) res, "\\\\%03o", c); return 4; case hexa: sprintf ((char *) res, "\\\\x%02x", c); return 4; case question_mark: USTRCCAT (res, '?'); return 1; case space: USTRCCAT (res, ' '); return 1; case caret: if (0177 < c) { ustrcat (res, "M-"); len += 2; c &= 0177; } if (c < ' ') { USTRCCAT(res, '^'); USTRCCAT(res, c); len += 2; } else if (c == 0177) { ustrcat(res, "^?"); len += 2; } else { USTRCCAT(res, c); len++; } return len; case Emacs: if (0177 < c) { ustrcat(res, "M-"); len += 2; c &= 0177; } if (c < ' ') { ustrcat (res, "C-"); USTRCCAT(res, c); len += 3; } else if (c == 0177) { ustrcat(res, "C-?"); len += 3; } else { USTRCCAT(res, c); len++; } return len; } return 0; /* For -Wall */ } a2ps-4.14/lib/Makefile.in0000644000175000017500000015462210735337307014462 0ustar mhattamhatta# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 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@ # -*- Makefile -*- srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ ANSI2KNR = $(top_builddir)/lib/ansi2knr subdir = lib DIST_COMMON = README $(include_HEADERS) $(noinst_HEADERS) \ $(srcdir)/Makefile.am $(srcdir)/Makefile.in alloca.c \ ansi2knr.1 ansi2knr.c atexit.c error.c error.h fnmatch.c \ fonts.c gethostname.c getuid.c lexppd.c malloc.c memcpy.c \ memset.c mktime.c obstack.c obstack.h parseppd.c realloc.c \ rename.c stpcpy.c stpncpy.c strcasecmp.c strftime.c \ strncasecmp.c strtoul.c strtoull.c strtoumax.c ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/a2_psutils.m4 \ $(top_srcdir)/m4/atexit.m4 $(top_srcdir)/m4/file.m4 \ $(top_srcdir)/m4/fp_echo.m4 $(top_srcdir)/m4/fullpath.m4 \ $(top_srcdir)/m4/gccwarn.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gperf-check.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \ $(top_srcdir)/m4/lex.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/lpr.m4 \ $(top_srcdir)/m4/m4.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \ $(top_srcdir)/m4/perl.m4 $(top_srcdir)/m4/prereq.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/protos.m4 \ $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/rename.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/strcasecmp.m4 \ $(top_srcdir)/m4/strftim.m4 $(top_srcdir)/m4/termios.m4 \ $(top_srcdir)/m4/tterm.m4 $(top_srcdir)/m4/uintmax_t.m4 \ $(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/winsz.m4 \ $(top_srcdir)/m4/xstrtoumax.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/auxdir/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_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 = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)" libLTLIBRARIES_INSTALL = $(INSTALL) LTLIBRARIES = $(lib_LTLIBRARIES) liba2ps_la_DEPENDENCIES = @LTALLOCA@ @LTLIBOBJS@ am__objects_1 = encoding$U.lo media$U.lo jobs$U.lo output$U.lo \ routines$U.lo psgen$U.lo prolog$U.lo faces$U.lo confg$U.lo \ useropt$U.lo gen$U.lo printers$U.lo psstat$U.lo caret$U.lo \ metaseq$U.lo options$U.lo dsc$U.lo fonts$U.lo ppd$U.lo \ prange$U.lo stream$U.lo document$U.lo fjobs$U.lo common$U.lo \ madir$U.lo filalign$U.lo lexppd$U.lo parseppd$U.lo am__objects_2 = argmatch$U.lo argv$U.lo backupfile$U.lo dirname$U.lo \ getopt$U.lo hashtab$U.lo path-concat$U.lo quotearg$U.lo \ signame$U.lo strverscmp$U.lo xmalloc$U.lo xstrtol$U.lo \ closeout$U.lo am__objects_3 = message$U.lo xstrrpl$U.lo getshline$U.lo pathwalk$U.lo \ darray$U.lo dstring$U.lo printlen$U.lo pair_ht$U.lo \ filtdir$U.lo str_ht$U.lo title$U.lo xbackupfile$U.lo \ getnum$U.lo tterm$U.lo lister$U.lo userdata$U.lo am__objects_4 = addext$U.lo basename$U.lo getopt1$U.lo isdir$U.lo \ xgetcwd$U.lo xgethostname$U.lo xstrdup$U.lo am_liba2ps_la_OBJECTS = $(am__objects_1) $(am__objects_2) \ $(am__objects_3) $(am__objects_4) liba2ps_la_OBJECTS = $(am_liba2ps_la_OBJECTS) DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/auxdir/depcomp am__depfiles_maybe = depfiles COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ LEXCOMPILE = $(LEX) $(LFLAGS) $(AM_LFLAGS) LTLEXCOMPILE = $(LIBTOOL) --mode=compile $(LEX) $(LFLAGS) $(AM_LFLAGS) YLWRAP = $(top_srcdir)/auxdir/ylwrap YACCCOMPILE = $(YACC) $(YFLAGS) $(AM_YFLAGS) LTYACCCOMPILE = $(LIBTOOL) --mode=compile $(YACC) $(YFLAGS) \ $(AM_YFLAGS) SOURCES = $(liba2ps_la_SOURCES) DIST_SOURCES = $(liba2ps_la_SOURCES) includeHEADERS_INSTALL = $(INSTALL_HEADER) HEADERS = $(include_HEADERS) $(noinst_HEADERS) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ COM_DISPLAY = @COM_DISPLAY@ COM_LATEX = @COM_LATEX@ COM_PS2PDF = @COM_PS2PDF@ COM_PSUTILS = @COM_PSUTILS@ COM_TEXI = @COM_TEXI@ COM_acroread = @COM_acroread@ COM_acroread4 = @COM_acroread4@ COM_bzip = @COM_bzip@ COM_bzip2 = @COM_bzip2@ COM_convert = @COM_convert@ COM_distill = @COM_distill@ 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_netscape = @COM_netscape@ COM_pdf2ps = @COM_pdf2ps@ COM_ps2pdf = @COM_ps2pdf@ COM_psnup = @COM_psnup@ COM_psselect = @COM_psselect@ COM_tex = @COM_tex@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ -DLOCALEDIR=\"$(datadir)/locale\" -DSYSCONFFILE=\"$(sysconfdir)/a2ps.cfg\" DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ ENCODING = @ENCODING@ EXEEXT = @EXEEXT@ EXTENSIONS_FALSE = @EXTENSIONS_FALSE@ EXTENSIONS_TRUE = @EXTENSIONS_TRUE@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ F77 = @F77@ FFLAGS = @FFLAGS@ FILE_LINK = @FILE_LINK@ GMSGFMT = @GMSGFMT@ GNU_PACKAGE = @GNU_PACKAGE@ GPERF = @GPERF@ GREP = @GREP@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBVERSION = @LIBVERSION@ LN_S = @LN_S@ LPR = @LPR@ LPR_QUEUE_OPTION = @LPR_QUEUE_OPTION@ LTALLOCA = @LTALLOCA@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ M4 = @M4@ MAKEINFO = @MAKEINFO@ MEDIUM = @MEDIUM@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ POSUB = @POSUB@ PSFONT_PATH = @PSFONT_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ U = @U@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ YACC = @YACC@ # --debug, --defines, --verbose YFLAGS = -dtv ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ acroread = @acroread@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ 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@ bzip = @bzip@ bzip2 = @bzip2@ convert = @convert@ datadir = @datadir@ datarootdir = @datarootdir@ distill = @distill@ docdir = @docdir@ dvidir = @dvidir@ dvips = @dvips@ exec_prefix = @exec_prefix@ file_prog = @file_prog@ ghostview = @ghostview@ 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@ netscape = @netscape@ oldincludedir = @oldincludedir@ pdf2ps = @pdf2ps@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ ps2pdf = @ps2pdf@ psdir = @psdir@ psnup = @psnup@ psselect = @psselect@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ tex = @tex@ AUTOMAKE_OPTIONS = $(top_builddir)/lib/ansi2knr # # Definition of the local target # lib_LTLIBRARIES = liba2ps.la INCLUDES = -I$(top_builddir) -I$(top_builddir)/intl -I$(srcdir) # Use a struct, handle duplicates, produce ANSI-C GPERFFLAGS = -t -D -L ANSI-C BUILT_SOURCES = parseppd.c parseppd.h liba2ps.h confg.c liba2ps_la_LIBADD = @LTALLOCA@ @LTLIBOBJS@ liba2ps_la_LDFLAGS = -version-info @LIBVERSION@ liba2psheaders = encoding.h media.h jobs.h output.h \ routines.h psgen.h prolog.h faces.h confg.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 liba2pssources = encoding.c media.c jobs.c output.c \ routines.c psgen.c prolog.c faces.c confg.c useropt.c \ gen.c printers.c psstat.c caret.c metaseq.c options.c \ dsc.c fonts.l ppd.c prange.c stream.c document.c \ fjobs.c common.c madir.c filalign.c lexppd.l \ parseppd.y 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 mylibitsources = message.c xstrrpl.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 # Libit stuff libitpureheaders = \ fnmatch.h pathmax.h stpncpy.h xdirent.h \ xfnmatch.h xobstack.h libitpuresources = \ addext.c basename.c getopt1.c isdir.c xgetcwd.c xgethostname.c xstrdup.c libitheaders = \ argmatch.h argv.h backupfile.h dirname.h getopt.h hashtab.h \ path-concat.h quotearg.h signame.h strverscmp.h xalloc.h \ xstrtol.h closeout.h libitsources = \ argmatch.c argv.c backupfile.c dirname.c getopt.c hashtab.c \ path-concat.c quotearg.c signame.c strverscmp.c xmalloc.c \ xstrtol.c closeout.c noinst_HEADERS = $(liba2psheaders) $(libitheaders) $(mylibitheaders) \ $(libitpureheaders) gettext.h liba2ps_la_SOURCES = $(liba2pssources) $(libitsources) $(mylibitsources) \ $(libitpuresources) # # Building the header for using liba2ps # include_HEADERS = liba2ps.h 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) strtol.c $(BUILT_SOURCES) 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 \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu lib/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu lib/Makefile .PRECIOUS: 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__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ 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 install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)" @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ if test -f $$p; then \ f=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \ else :; fi; \ done uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @set -x; list='$(lib_LTLIBRARIES)'; for p in $$list; do \ p=$(am__strip_dir) \ echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \ $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done liba2ps.la: $(liba2ps_la_OBJECTS) $(liba2ps_la_DEPENDENCIES) $(LINK) -rpath $(libdir) $(liba2ps_la_LDFLAGS) $(liba2ps_la_OBJECTS) $(liba2ps_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c $(top_builddir)/lib/ansi2knr: cd $(top_builddir)/lib && $(MAKE) $(AM_MAKEFLAGS) ansi2knr mostlyclean-kr: -test "$U" = "" || rm -f *_.c @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/alloca.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/atexit.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/error.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/fnmatch.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/gethostname.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/getuid.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/malloc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/memcpy.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/memset.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/mktime.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/obstack.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/realloc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/rename.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/stpcpy.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/stpncpy.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/strcasecmp.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/strftime.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/strncasecmp.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/strtoul.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/strtoull.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/strtoumax.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/addext$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/argmatch$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/argv$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/backupfile$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/basename$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/caret$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/closeout$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/common$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/confg$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/darray$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dirname$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/document$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dsc$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dstring$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/encoding$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/faces$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filalign$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filtdir$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fjobs$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fonts$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gen$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getnum$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt1$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getshline$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hashtab$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/isdir$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jobs$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lexppd$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lister$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/madir$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/media$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/message$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/metaseq$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/options$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/output$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pair_ht$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parseppd$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/path-concat$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pathwalk$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ppd$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prange$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printers$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/printlen$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prolog$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/psgen$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/psstat$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/quotearg$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/routines$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signame$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/str_ht$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stream$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strverscmp$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/title$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tterm$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/userdata$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/useropt$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xbackupfile$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xgetcwd$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xgethostname$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xmalloc$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrdup$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrrpl$U.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xstrtol$U.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< addext_.c: addext.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/addext.c; then echo $(srcdir)/addext.c; else echo addext.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ alloca_.c: alloca.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/alloca.c; then echo $(srcdir)/alloca.c; else echo alloca.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ argmatch_.c: argmatch.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/argmatch.c; then echo $(srcdir)/argmatch.c; else echo argmatch.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ argv_.c: argv.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/argv.c; then echo $(srcdir)/argv.c; else echo argv.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ atexit_.c: atexit.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/atexit.c; then echo $(srcdir)/atexit.c; else echo atexit.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ backupfile_.c: backupfile.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/backupfile.c; then echo $(srcdir)/backupfile.c; else echo backupfile.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ basename_.c: basename.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/basename.c; then echo $(srcdir)/basename.c; else echo basename.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ caret_.c: caret.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/caret.c; then echo $(srcdir)/caret.c; else echo caret.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ closeout_.c: closeout.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/closeout.c; then echo $(srcdir)/closeout.c; else echo closeout.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ common_.c: common.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/common.c; then echo $(srcdir)/common.c; else echo common.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ confg_.c: confg.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/confg.c; then echo $(srcdir)/confg.c; else echo confg.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ darray_.c: darray.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/darray.c; then echo $(srcdir)/darray.c; else echo darray.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ dirname_.c: dirname.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/dirname.c; then echo $(srcdir)/dirname.c; else echo dirname.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ document_.c: document.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/document.c; then echo $(srcdir)/document.c; else echo document.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ dsc_.c: dsc.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/dsc.c; then echo $(srcdir)/dsc.c; else echo dsc.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ dstring_.c: dstring.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/dstring.c; then echo $(srcdir)/dstring.c; else echo dstring.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ encoding_.c: encoding.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/encoding.c; then echo $(srcdir)/encoding.c; else echo encoding.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ error_.c: error.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/error.c; then echo $(srcdir)/error.c; else echo error.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ faces_.c: faces.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/faces.c; then echo $(srcdir)/faces.c; else echo faces.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ filalign_.c: filalign.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/filalign.c; then echo $(srcdir)/filalign.c; else echo filalign.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ filtdir_.c: filtdir.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/filtdir.c; then echo $(srcdir)/filtdir.c; else echo filtdir.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ fjobs_.c: fjobs.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/fjobs.c; then echo $(srcdir)/fjobs.c; else echo fjobs.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ fnmatch_.c: fnmatch.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/fnmatch.c; then echo $(srcdir)/fnmatch.c; else echo fnmatch.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ fonts_.c: fonts.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/fonts.c; then echo $(srcdir)/fonts.c; else echo fonts.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ gen_.c: gen.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/gen.c; then echo $(srcdir)/gen.c; else echo gen.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ gethostname_.c: gethostname.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/gethostname.c; then echo $(srcdir)/gethostname.c; else echo gethostname.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ getnum_.c: getnum.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/getnum.c; then echo $(srcdir)/getnum.c; else echo getnum.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ getopt_.c: getopt.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/getopt.c; then echo $(srcdir)/getopt.c; else echo getopt.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ getopt1_.c: getopt1.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/getopt1.c; then echo $(srcdir)/getopt1.c; else echo getopt1.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ getshline_.c: getshline.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/getshline.c; then echo $(srcdir)/getshline.c; else echo getshline.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ getuid_.c: getuid.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/getuid.c; then echo $(srcdir)/getuid.c; else echo getuid.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ hashtab_.c: hashtab.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/hashtab.c; then echo $(srcdir)/hashtab.c; else echo hashtab.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ isdir_.c: isdir.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/isdir.c; then echo $(srcdir)/isdir.c; else echo isdir.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ jobs_.c: jobs.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/jobs.c; then echo $(srcdir)/jobs.c; else echo jobs.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ lexppd_.c: lexppd.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lexppd.c; then echo $(srcdir)/lexppd.c; else echo lexppd.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ lister_.c: lister.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/lister.c; then echo $(srcdir)/lister.c; else echo lister.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ madir_.c: madir.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/madir.c; then echo $(srcdir)/madir.c; else echo madir.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ malloc_.c: malloc.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/malloc.c; then echo $(srcdir)/malloc.c; else echo malloc.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ media_.c: media.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/media.c; then echo $(srcdir)/media.c; else echo media.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ memcpy_.c: memcpy.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/memcpy.c; then echo $(srcdir)/memcpy.c; else echo memcpy.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ memset_.c: memset.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/memset.c; then echo $(srcdir)/memset.c; else echo memset.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ message_.c: message.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/message.c; then echo $(srcdir)/message.c; else echo message.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ metaseq_.c: metaseq.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/metaseq.c; then echo $(srcdir)/metaseq.c; else echo metaseq.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ mktime_.c: mktime.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/mktime.c; then echo $(srcdir)/mktime.c; else echo mktime.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ obstack_.c: obstack.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/obstack.c; then echo $(srcdir)/obstack.c; else echo obstack.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ options_.c: options.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/options.c; then echo $(srcdir)/options.c; else echo options.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ output_.c: output.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/output.c; then echo $(srcdir)/output.c; else echo output.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ pair_ht_.c: pair_ht.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/pair_ht.c; then echo $(srcdir)/pair_ht.c; else echo pair_ht.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ parseppd_.c: parseppd.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/parseppd.c; then echo $(srcdir)/parseppd.c; else echo parseppd.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ path-concat_.c: path-concat.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/path-concat.c; then echo $(srcdir)/path-concat.c; else echo path-concat.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ pathwalk_.c: pathwalk.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/pathwalk.c; then echo $(srcdir)/pathwalk.c; else echo pathwalk.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ ppd_.c: ppd.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/ppd.c; then echo $(srcdir)/ppd.c; else echo ppd.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ prange_.c: prange.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/prange.c; then echo $(srcdir)/prange.c; else echo prange.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ printers_.c: printers.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/printers.c; then echo $(srcdir)/printers.c; else echo printers.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ printlen_.c: printlen.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/printlen.c; then echo $(srcdir)/printlen.c; else echo printlen.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ prolog_.c: prolog.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/prolog.c; then echo $(srcdir)/prolog.c; else echo prolog.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ psgen_.c: psgen.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/psgen.c; then echo $(srcdir)/psgen.c; else echo psgen.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ psstat_.c: psstat.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/psstat.c; then echo $(srcdir)/psstat.c; else echo psstat.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ quotearg_.c: quotearg.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/quotearg.c; then echo $(srcdir)/quotearg.c; else echo quotearg.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ realloc_.c: realloc.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/realloc.c; then echo $(srcdir)/realloc.c; else echo realloc.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ rename_.c: rename.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/rename.c; then echo $(srcdir)/rename.c; else echo rename.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ routines_.c: routines.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/routines.c; then echo $(srcdir)/routines.c; else echo routines.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ signame_.c: signame.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/signame.c; then echo $(srcdir)/signame.c; else echo signame.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ stpcpy_.c: stpcpy.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/stpcpy.c; then echo $(srcdir)/stpcpy.c; else echo stpcpy.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ stpncpy_.c: stpncpy.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/stpncpy.c; then echo $(srcdir)/stpncpy.c; else echo stpncpy.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ str_ht_.c: str_ht.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/str_ht.c; then echo $(srcdir)/str_ht.c; else echo str_ht.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ strcasecmp_.c: strcasecmp.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strcasecmp.c; then echo $(srcdir)/strcasecmp.c; else echo strcasecmp.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ stream_.c: stream.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/stream.c; then echo $(srcdir)/stream.c; else echo stream.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ strftime_.c: strftime.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strftime.c; then echo $(srcdir)/strftime.c; else echo strftime.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ strncasecmp_.c: strncasecmp.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strncasecmp.c; then echo $(srcdir)/strncasecmp.c; else echo strncasecmp.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ strtoul_.c: strtoul.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strtoul.c; then echo $(srcdir)/strtoul.c; else echo strtoul.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ strtoull_.c: strtoull.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strtoull.c; then echo $(srcdir)/strtoull.c; else echo strtoull.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ strtoumax_.c: strtoumax.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strtoumax.c; then echo $(srcdir)/strtoumax.c; else echo strtoumax.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ strverscmp_.c: strverscmp.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/strverscmp.c; then echo $(srcdir)/strverscmp.c; else echo strverscmp.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ title_.c: title.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/title.c; then echo $(srcdir)/title.c; else echo title.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ tterm_.c: tterm.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/tterm.c; then echo $(srcdir)/tterm.c; else echo tterm.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ userdata_.c: userdata.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/userdata.c; then echo $(srcdir)/userdata.c; else echo userdata.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ useropt_.c: useropt.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/useropt.c; then echo $(srcdir)/useropt.c; else echo useropt.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ xbackupfile_.c: xbackupfile.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/xbackupfile.c; then echo $(srcdir)/xbackupfile.c; else echo xbackupfile.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ xgetcwd_.c: xgetcwd.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/xgetcwd.c; then echo $(srcdir)/xgetcwd.c; else echo xgetcwd.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ xgethostname_.c: xgethostname.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/xgethostname.c; then echo $(srcdir)/xgethostname.c; else echo xgethostname.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ xmalloc_.c: xmalloc.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/xmalloc.c; then echo $(srcdir)/xmalloc.c; else echo xmalloc.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ xstrdup_.c: xstrdup.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/xstrdup.c; then echo $(srcdir)/xstrdup.c; else echo xstrdup.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ xstrrpl_.c: xstrrpl.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/xstrrpl.c; then echo $(srcdir)/xstrrpl.c; else echo xstrrpl.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ xstrtol_.c: xstrtol.c $(ANSI2KNR) $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) `if test -f $(srcdir)/xstrtol.c; then echo $(srcdir)/xstrtol.c; else echo xstrtol.c; fi` | sed 's/^# \([0-9]\)/#line \1/' | $(ANSI2KNR) > $@ || rm -f $@ addext_.$(OBJEXT) addext_.lo alloca_.$(OBJEXT) alloca_.lo \ argmatch_.$(OBJEXT) argmatch_.lo argv_.$(OBJEXT) argv_.lo \ atexit_.$(OBJEXT) atexit_.lo backupfile_.$(OBJEXT) backupfile_.lo \ basename_.$(OBJEXT) basename_.lo caret_.$(OBJEXT) caret_.lo \ closeout_.$(OBJEXT) closeout_.lo common_.$(OBJEXT) common_.lo \ confg_.$(OBJEXT) confg_.lo darray_.$(OBJEXT) darray_.lo \ dirname_.$(OBJEXT) dirname_.lo document_.$(OBJEXT) document_.lo \ dsc_.$(OBJEXT) dsc_.lo dstring_.$(OBJEXT) dstring_.lo \ encoding_.$(OBJEXT) encoding_.lo error_.$(OBJEXT) error_.lo \ faces_.$(OBJEXT) faces_.lo filalign_.$(OBJEXT) filalign_.lo \ filtdir_.$(OBJEXT) filtdir_.lo fjobs_.$(OBJEXT) fjobs_.lo \ fnmatch_.$(OBJEXT) fnmatch_.lo fonts_.$(OBJEXT) fonts_.lo \ gen_.$(OBJEXT) gen_.lo gethostname_.$(OBJEXT) gethostname_.lo \ getnum_.$(OBJEXT) getnum_.lo getopt_.$(OBJEXT) getopt_.lo \ getopt1_.$(OBJEXT) getopt1_.lo getshline_.$(OBJEXT) getshline_.lo \ getuid_.$(OBJEXT) getuid_.lo hashtab_.$(OBJEXT) hashtab_.lo \ isdir_.$(OBJEXT) isdir_.lo jobs_.$(OBJEXT) jobs_.lo lexppd_.$(OBJEXT) \ lexppd_.lo lister_.$(OBJEXT) lister_.lo madir_.$(OBJEXT) madir_.lo \ malloc_.$(OBJEXT) malloc_.lo media_.$(OBJEXT) media_.lo \ memcpy_.$(OBJEXT) memcpy_.lo memset_.$(OBJEXT) memset_.lo \ message_.$(OBJEXT) message_.lo metaseq_.$(OBJEXT) metaseq_.lo \ mktime_.$(OBJEXT) mktime_.lo obstack_.$(OBJEXT) obstack_.lo \ options_.$(OBJEXT) options_.lo output_.$(OBJEXT) output_.lo \ pair_ht_.$(OBJEXT) pair_ht_.lo parseppd_.$(OBJEXT) parseppd_.lo \ path-concat_.$(OBJEXT) path-concat_.lo pathwalk_.$(OBJEXT) \ pathwalk_.lo ppd_.$(OBJEXT) ppd_.lo prange_.$(OBJEXT) prange_.lo \ printers_.$(OBJEXT) printers_.lo printlen_.$(OBJEXT) printlen_.lo \ prolog_.$(OBJEXT) prolog_.lo psgen_.$(OBJEXT) psgen_.lo \ psstat_.$(OBJEXT) psstat_.lo quotearg_.$(OBJEXT) quotearg_.lo \ realloc_.$(OBJEXT) realloc_.lo rename_.$(OBJEXT) rename_.lo \ routines_.$(OBJEXT) routines_.lo signame_.$(OBJEXT) signame_.lo \ stpcpy_.$(OBJEXT) stpcpy_.lo stpncpy_.$(OBJEXT) stpncpy_.lo \ str_ht_.$(OBJEXT) str_ht_.lo strcasecmp_.$(OBJEXT) strcasecmp_.lo \ stream_.$(OBJEXT) stream_.lo strftime_.$(OBJEXT) strftime_.lo \ strncasecmp_.$(OBJEXT) strncasecmp_.lo strtoul_.$(OBJEXT) strtoul_.lo \ strtoull_.$(OBJEXT) strtoull_.lo strtoumax_.$(OBJEXT) strtoumax_.lo \ strverscmp_.$(OBJEXT) strverscmp_.lo title_.$(OBJEXT) title_.lo \ tterm_.$(OBJEXT) tterm_.lo userdata_.$(OBJEXT) userdata_.lo \ useropt_.$(OBJEXT) useropt_.lo xbackupfile_.$(OBJEXT) xbackupfile_.lo \ xgetcwd_.$(OBJEXT) xgetcwd_.lo xgethostname_.$(OBJEXT) \ xgethostname_.lo xmalloc_.$(OBJEXT) xmalloc_.lo xstrdup_.$(OBJEXT) \ xstrdup_.lo xstrrpl_.$(OBJEXT) xstrrpl_.lo xstrtol_.$(OBJEXT) \ xstrtol_.lo : $(ANSI2KNR) .l.c: $(SHELL) $(YLWRAP) $< $(LEX_OUTPUT_ROOT).c $@ -- $(LEXCOMPILE) .y.c: $(YACCCOMPILE) $< if test -f y.tab.h; then \ to=`echo "$*_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$$to/g" -e "s|y\.tab\.h|$*.h|" \ y.tab.h >$*.ht; \ rm -f y.tab.h; \ if cmp -s $*.ht $*.h; then \ rm -f $*.ht ;\ else \ mv $*.ht $*.h; \ fi; \ fi if test -f y.output; then \ mv y.output $*.output; \ fi sed '/^#/ s|y\.tab\.c|$@|' y.tab.c >$@t && mv $@t $@ rm -f y.tab.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: install-includeHEADERS: $(include_HEADERS) @$(NORMAL_INSTALL) test -z "$(includedir)" || $(mkdir_p) "$(DESTDIR)$(includedir)" @list='$(include_HEADERS)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includedir)/$$f'"; \ $(includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includedir)/$$f"; \ done uninstall-includeHEADERS: @$(NORMAL_UNINSTALL) @list='$(include_HEADERS)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(includedir)/$$f'"; \ rm -f "$(DESTDIR)$(includedir)/$$f"; \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$tags $$unique; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(CTAGS_ARGS)$$tags$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$tags $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -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-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am -rm -rf $(DEPDIR) ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-libtool distclean-tags dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-includeHEADERS install-exec-am: install-libLTLIBRARIES install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf $(DEPDIR) ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic mostlyclean-kr \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-includeHEADERS uninstall-info-am \ uninstall-libLTLIBRARIES .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool ctags 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-exec \ install-exec-am install-includeHEADERS install-info \ install-info-am install-libLTLIBRARIES install-man \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-kr \ mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \ uninstall-am uninstall-includeHEADERS uninstall-info-am \ uninstall-libLTLIBRARIES # # Handling the Gperf code # # We change `signed char' to short, because `signed char' is ANSI, # hence not portable. We could have produced KnR C with gperf, but # since prototypes would have been missing, there are many warnings # with modern compilers. And many warnings means many complains from # user. confg.c: confg.gperf $(GPERF) $(GPERFFLAGS) confg.gperf >confg.tmp sed -e 's/ signed char/ short/g' confg.c rm -f confg.tmp 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/uchar/unsigned char/g' \ | 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: 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 # 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.14/lib/title.c0000644000175000017500000000624710735322362013674 0ustar mhattamhatta/* title.h -- fprintf that underlines Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana Copyright (c) 1995, 96, 97, 98 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, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* * Note: * very strong inspiration was taken in error.[ch] by * David MacKenzie */ /* Get prototypes for the functions defined here. */ #if HAVE_CONFIG_H # include #endif #include #if HAVE_VPRINTF || HAVE_DOPRNT || _LIBC # if __STDC__ # include # define VA_START(args, lastarg) va_start(args, lastarg) # else # include # define VA_START(args, lastarg) va_start(args) # endif #else # define va_alist a1, a2, a3, a4, a5, a6, a7, a8 # define va_dcl char *a1, *a2, *a3, *a4, *a5, *a6, *a7, *a8; #endif # ifndef __attribute__ /* This feature is available in gcc versions 2.5 and later. */ # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || __STRICT_ANSI__ # define __attribute__(Spec) /* empty */ # endif /* The __-protected variants of `format' and `printf' attributes are accepted by gcc versions 2.6.4 (effectively 2.7) and later. */ # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7) # define __format__ format # define __printf__ printf # endif # endif #include "title.h" #include "printlen.h" /* Print the message FORMAT, which is a printf-style format string*/ void #if defined(VA_START) && __STDC__ title (FILE * stream, char c, int center_p, const char *format, ...) #else title (stream, c, center_p, format, va_alist) FILE * stream; char c; int center_p; char *format; va_dcl #endif { int len; int padding; #ifdef VA_START va_list args; #endif #ifdef VA_START 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); # if HAVE_VPRINTF || _LIBC vfprintf (stream, format, args); # else _doprnt (format, args, stream); # endif va_end (args); #else fprintf (stream, format, a1, a2, a3, a4, a5, a6, a7, a8); #endif /* 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.14/lib/ppd.c0000644000175000017500000001030510735324675013335 0ustar mhattamhatta/* * ppd.c * * PostScript Printer Description files * * 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: ppd.c,v 1.1.1.1.2.1 2007/12/29 01:58:21 mhatta Exp $ */ #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) { NEW (struct ppd, res); res->fonts = string_htable_new (); res->key = NULL; res->modelname = NULL; res->nickname = NULL; return res; } void ppd_free (struct ppd * ppd) { if (ppd) { string_htable_free (ppd->fonts); XFREE (ppd->key); XFREE (ppd->modelname); XFREE (ppd->nickname); free (ppd); } } /* * Produce a nice report of PPD */ static void ppd_self_print (struct ppd * ppd, FILE * stream) { /* It must include the white spaces put before */ #define TAB_MAX 76 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); } da_free (entries, (da_map_func_t) free); } a2ps-4.14/lib/fjobs.h0000644000175000017500000000527110735322367013664 0ustar mhattamhatta/* * fjobs.h -- Recording information about the file jobs * 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. */ #ifndef FJOBS_H_ # define FJOBS_H_ struct a2ps_job; /* * Relative to the current file */ struct file_job { uchar * 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?*/ int first_sheet; /* num of the first sheet for this file */ int last_sheet; int first_page; /* Id. but pages */ int last_page; int pages; /* These are defined because it eases */ int sheets; /* delayed integers (cf. output_marker) */ int num; /* No of the file in the args */ int top_line; /* The top most line of the current page */ int top_page; /* The first page appearing in curr sheet */ int lines; /* Current line number */ }; /* in the output session JOB, create a new input session NAME */ struct file_job * _a2ps_file_job_new PARAMS ((uchar * name, int num, struct tm * run_tm)); int file_name_cmp PARAMS ((struct file_job * f1, struct file_job * f2)); void file_job_synchronize_sheets PARAMS ((struct a2ps_job * job)); void file_job_synchronize_pages PARAMS ((struct a2ps_job * job)); void file_job_self_print PARAMS ((struct file_job * file, FILE * stream)); void file_job_unlink_tmpfile PARAMS ((struct file_job * file)); void file_job_free PARAMS ((struct file_job * file_job)); #endif /* !defined (_FJOBS_H) */ a2ps-4.14/lib/strverscmp.c0000644000175000017500000000653010735322362014756 0ustar mhattamhatta/* Compare strings while treating digits characters numerically. Copyright (C) 1997 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jean-Francois Bignolles , 1997. 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. */ #if HAVE_CONFIG_H # include #endif #include #include /* 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 0x4 #define S_F 0x8 #define S_Z 0xC /* 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; unsigned char c1, c2; int state; int diff; /* Symbol(s) 0 [1-9] others (padding) Transition (10) 0 (01) d (00) x (11) - */ static const unsigned int next_state[] = { /* state x d 0 - */ /* S_N */ S_N, S_I, S_Z, S_N, /* S_I */ S_N, S_I, S_I, S_I, /* S_F */ S_N, S_F, S_F, S_F, /* S_Z */ S_N, S_F, S_Z, S_Z }; static const int result_type[] = { /* state x/x x/d x/0 x/- d/x d/d d/0 d/- 0/x 0/d 0/0 0/- -/x -/d -/0 -/- */ /* S_N */ CMP, CMP, CMP, CMP, CMP, LEN, CMP, CMP, CMP, CMP, CMP, CMP, CMP, CMP, CMP, CMP, /* S_I */ CMP, -1, -1, CMP, 1, LEN, LEN, CMP, 1, LEN, LEN, CMP, CMP, CMP, CMP, CMP, /* S_F */ CMP, CMP, CMP, CMP, CMP, LEN, CMP, CMP, CMP, CMP, CMP, CMP, CMP, CMP, CMP, CMP, /* S_Z */ CMP, 1, 1, CMP, -1, CMP, CMP, CMP, -1, CMP, CMP, CMP }; if (p1 == p2) return 0; c1 = *p1++; c2 = *p2++; /* Hint: '0' is a digit too. */ state = S_N | ((c1 == '0') + (isdigit (c1) != 0)); while ((diff = c1 - c2) == 0 && c1 != '\0') { state = next_state[state]; c1 = *p1++; c2 = *p2++; state |= (c1 == '0') + (isdigit (c1) != 0); } state = result_type[state << 2 | ((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; } } a2ps-4.14/lib/argmatch.c0000644000175000017500000001766010735322361014341 0ustar mhattamhatta/* argmatch.c -- find a match for a string in an array Copyright (C) 1990, 1998, 1999 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Written by David MacKenzie Modified by Akim Demaille */ #include "argmatch.h" #include #ifdef STDC_HEADERS # include #endif #if HAVE_LOCALE_H # include #endif #if ENABLE_NLS # include # define _(Text) gettext (Text) #else # define _(Text) Text #endif #include "error.h" #include "quotearg.h" /* 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 /* The following test is to work around the gross typo in systems like Sony NEWS-OS Release 4.0C, whereby EXIT_FAILURE is defined to 0, not 1. */ #if !EXIT_FAILURE # undef EXIT_FAILURE # define EXIT_FAILURE 1 #endif /* Non failing version of argmatch call this function after failing. */ #ifndef ARGMATCH_DIE # 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 and XARGCASEMATCH. 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 SENSITIVE, comparison is case sensitive. 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'. */ static int __argmatch_internal (const char *arg, const char *const *arglist, const char *vallist, size_t valsize, int case_sensitive) { int i; /* Temporary index in ARGLIST. */ size_t arglen; /* Length of ARG. */ int matchind = -1; /* Index of first nonexact match. */ int ambiguous = 0; /* If nonzero, multiple nonexact match(es). */ arglen = strlen (arg); /* Test all elements for either exact match or abbreviated matches. */ for (i = 0; arglist[i]; i++) { if (case_sensitive ? !strncmp (arglist[i], arg, arglen) : !strncasecmp (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 (vallist + valsize * matchind, vallist + valsize * i, valsize)) { /* There is a real ambiguity, or we could not disambiguate. */ ambiguous = 1; } } } } if (ambiguous) return -2; else return matchind; } /* argmatch - case sensitive version */ int argmatch (const char *arg, const char *const *arglist, const char *vallist, size_t valsize) { return __argmatch_internal (arg, arglist, vallist, valsize, 1); } /* argcasematch - case insensitive version */ int argcasematch (const char *arg, const char *const *arglist, const char *vallist, size_t valsize) { return __argmatch_internal (arg, arglist, vallist, valsize, 0); } /* 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, int problem) { char const *format = (problem == -1 ? _("invalid argument %s for `%s'") : _("ambiguous argument %s for `%s'")); error (0, 0, format, quotearg_style (ARGMATCH_QUOTING_STYLE, value), 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 char *vallist, size_t valsize) { int i; const char *last_val = NULL; /* We try to put synonyms on the same line. The assumption is that synonyms follow each other */ fprintf (stderr, _("Valid arguments are:")); for (i = 0; arglist[i]; i++) if ((i == 0) || memcmp (last_val, vallist + valsize * i, valsize)) { fprintf (stderr, "\n - `%s'", arglist[i]); last_val = vallist + valsize * i; } else { fprintf (stderr, ", `%s'", 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. */ int __xargmatch_internal (const char *context, const char *arg, const char *const *arglist, const char *vallist, size_t valsize, int case_sensitive, argmatch_exit_fn exit_fn) { int res = __argmatch_internal (arg, arglist, vallist, valsize, case_sensitive); 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 char *value, const char *const *arglist, const char *vallist, size_t valsize) { int i; for (i = 0; arglist[i]; i++) if (!memcmp (value, vallist + valsize * i, valsize)) return arglist[i]; return NULL; } #ifdef TEST /* * Based on "getversion.c" by David MacKenzie */ char *program_name; extern const char *getenv (); /* When to make backup files. */ enum backup_type { /* Never make backups. */ none, /* Make simple backups of every file. */ simple, /* Make numbered backups of files that already have numbered backups, and simple backups of the others. */ numbered_existing, /* Make numbered backups of every file. */ numbered }; /* 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[] = { none, none, none, simple, simple, numbered_existing, numbered_existing, numbered, numbered }; int main (int argc, const char *const *argv) { const char *cp; enum backup_type backup_type = none; program_name = (char *) argv[0]; if (argc > 2) { fprintf (stderr, "Usage: %s [VERSION_CONTROL]\n", program_name); exit (1); } if ((cp = getenv ("VERSION_CONTROL"))) backup_type = XARGCASEMATCH ("$VERSION_CONTROL", cp, backup_args, backup_vals); if (argc == 2) backup_type = XARGCASEMATCH (program_name, 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.14/lib/caret.h0000644000175000017500000000263410735324670013656 0ustar mhattamhatta/* * caret.h * * How non printable chars are represented * 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: caret.h,v 1.1.1.1.2.1 2007/12/29 01:58:16 mhatta Exp $ */ #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 PARAMS ((enum unprintable_format format)); /* Escape C, put result in RES, and return strlen RES */ int escape_unprintable PARAMS ((struct a2ps_job * job, int c, uchar * res)); #endif a2ps-4.14/lib/lister.h0000644000175000017500000000546710735322367014072 0ustar mhattamhatta/* lister.c -- Listing data in various formats Copyright (C) 1998-1999 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef LISTER_H_ #define LISTER_H_ #ifndef PARAMS # if defined PROTOTYPES || defined __STDC__ # define PARAMS(Args) Args # else # define PARAMS(Args) () # endif #endif enum lister_justification { lister_left = 0, lister_center = 1, lister_right = 2 }; struct lister; typedef size_t (*lister_width_t) PARAMS ((void const *item)); typedef void (*lister_print_t) PARAMS ((void const *item, FILE *stream)); /* Initialize the values taking the environment into account (for line width, and tabsize). */ void lister_initialize PARAMS ((struct lister *lister, FILE *stream)); /* Set the tiny term of LISTER to TTERM. Returns the previous value. */ struct tterm *lister_tterm_set PARAMS ((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 PARAMS ((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 PARAMS ((struct lister * lister, size_t size)); void lister_fprint_horizontal PARAMS ((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 PARAMS ((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 PARAMS ((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 PARAMS ((struct lister * lister, void **items, size_t item_number)); void lister_print_horizontal PARAMS ((struct lister * lister, void **items, size_t item_number)); void lister_print_separated PARAMS ((struct lister * lister, void **items, size_t item_number)); #endif /* ! LISTER_H_ */ a2ps-4.14/lib/lexppd.l0000644000175000017500000001534010735324673014061 0ustar mhattamhatta%{ /* -*- 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. */ /* * $Id: lexppd.l,v 1.1.1.1.2.1 2007/12/29 01:58:19 mhatta Exp $ */ #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 PARAMS ((void)); void yyerror PARAMS ((const char *)); /* Initilizes the obstacks */ void ppdlex_initialize PARAMS ((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; } { /* 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); } } { /* string of characters */ [:\n] { /* return the string */ uchar * string; obstack_1grow (&string_stack, '\0'); string = (uchar *) obstack_finish (&string_stack); obstack_free (&string_stack, string); BEGIN INITIAL; /* Return to the regular scanning */ yylval.ustring = xustrdup (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); } } { /* 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); } } <> { 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); XFREE (ppdfilename); 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.14/lib/isdir.c0000644000175000017500000000236710735322362013664 0ustar mhattamhatta/* isdir.c -- determine whether a directory exists Copyright (C) 1990, 1998 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if HAVE_CONFIG_H # include #endif #include #include #if STAT_MACROS_BROKEN # undef S_ISDIR #endif #if !defined S_ISDIR && defined S_IFDIR # define S_ISDIR(Mode) (((Mode) & S_IFMT) == S_IFDIR) #endif /* 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.14/lib/xstrtol.c0000644000175000017500000001304510735322362014264 0ustar mhattamhatta/* A more useful interface to strtol. Copyright 1995, 1996, 1998, 1999 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Written by Jim Meyering. */ #if HAVE_CONFIG_H # include #endif #ifndef __strtol # define __strtol strtol # define __strtol_t long int # define __xstrtol xstrtol #endif /* Some pre-ANSI implementations (e.g. SunOS 4) need stderr defined if assertion checking is enabled. */ #include #if STDC_HEADERS # include #endif #if HAVE_STRING_H # include #else # include # ifndef strchr # define strchr index # endif #endif #include #include #include #ifndef errno extern int errno; #endif #if HAVE_LIMITS_H # include #endif #ifndef CHAR_BIT # define CHAR_BIT 8 #endif /* The extra casts work around common compiler bugs. */ #define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) /* The outer cast is needed to work around a bug in Cray C 5.0.3.0. It is necessary at least when t == time_t. */ #define TYPE_MINIMUM(t) ((t) (TYPE_SIGNED (t) \ ? ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1) : (t) 0)) #define TYPE_MAXIMUM(t) (~ (t) 0 - TYPE_MINIMUM (t)) #if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII)) # define IN_CTYPE_DOMAIN(c) 1 #else # define IN_CTYPE_DOMAIN(c) isascii(c) #endif #define ISSPACE(c) (IN_CTYPE_DOMAIN (c) && isspace (c)) #include "xstrtol.h" #ifndef strtol long int strtol (); #endif #ifndef strtoul unsigned long int strtoul (); #endif #ifndef strtoumax uintmax_t strtoumax (); #endif static int bkm_scale (__strtol_t *x, int scale_factor) { __strtol_t product = *x * scale_factor; if (*x != product / scale_factor) return 1; *x = product; return 0; } static int bkm_scale_by_power (__strtol_t *x, int base, int power) { while (power--) if (bkm_scale (x, base)) return 1; return 0; } /* 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; assert (0 <= strtol_base && strtol_base <= 36); p = (ptr ? ptr : &t_ptr); if (! TYPE_SIGNED (__strtol_t)) { const char *q = s; while (ISSPACE ((unsigned char) *q)) ++q; if (*q == '-') return LONGINT_INVALID; } errno = 0; tmp = __strtol (s, p, strtol_base); if (errno != 0) return LONGINT_OVERFLOW; if (*p == s) return LONGINT_INVALID; /* 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 LONGINT_OK; } if (**p != '\0') { int base = 1024; int suffixes = 1; int overflow; if (!strchr (valid_suffixes, **p)) { *val = tmp; return LONGINT_INVALID_SUFFIX_CHAR; } if (strchr (valid_suffixes, '0')) { /* The ``valid suffix'' '0' is a special flag meaning that an optional second suffix is allowed, which can change the base, e.g. "100MD" for 100 megabytes decimal. */ switch (p[0][1]) { case 'B': suffixes++; break; case 'D': base = 1000; suffixes++; break; } } switch (**p) { case 'b': overflow = bkm_scale (&tmp, 512); break; case 'B': overflow = bkm_scale (&tmp, 1024); break; case 'c': overflow = 0; break; case 'E': /* Exa */ overflow = bkm_scale_by_power (&tmp, base, 6); break; case 'G': /* Giga */ overflow = bkm_scale_by_power (&tmp, base, 3); break; case 'k': /* kilo */ overflow = bkm_scale_by_power (&tmp, base, 1); break; case 'M': /* Mega */ case 'm': /* 'm' is undocumented; for backward compatibility only */ overflow = bkm_scale_by_power (&tmp, base, 2); break; case 'P': /* Peta */ overflow = bkm_scale_by_power (&tmp, base, 5); break; case 'T': /* Tera */ overflow = bkm_scale_by_power (&tmp, base, 4); break; case 'w': overflow = bkm_scale (&tmp, 2); break; case 'Y': /* Yotta */ overflow = bkm_scale_by_power (&tmp, base, 8); break; case 'Z': /* Zetta */ overflow = bkm_scale_by_power (&tmp, base, 7); break; default: *val = tmp; return LONGINT_INVALID_SUFFIX_CHAR; break; } if (overflow) return LONGINT_OVERFLOW; (*p) += suffixes; } *val = tmp; return LONGINT_OK; } #ifdef TESTING_XSTRTO # include # include "error.h" char *program_name; int main (int argc, char** argv) { strtol_error s_err; int i; program_name = argv[0]; for (i=1; i%lu (%s)\n", argv[i], val, p); } else { STRTOL_FATAL_ERROR (argv[i], "arg", s_err); } } exit (0); } #endif /* TESTING_XSTRTO */ a2ps-4.14/lib/dummypwd.h0000644000175000017500000000223410735322367014423 0ustar mhattamhatta/* * Replacement for the pwd.h header file for micro ports. * Copyright (c) 1996 Markku Rossi. * * Author: Markku Rossi */ /* * This file is part of GNU enscript. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 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 DUMMYPWD_H #define DUMMYPWD_H /* Passwd structure. */ struct passwd { char *pw_name; char *pw_gecos; char *pw_dir; }; /* * Prototypes for passwd related functions. */ struct passwd *getpwuid (); struct passwd *getpwnam (); #endif /* DUMMYPWD_H */ a2ps-4.14/lib/message.c0000644000175000017500000000623210735322362014171 0ustar mhattamhatta/* msg.h -- declaration for verbosity sensitive feedback function Copyright (c) 1988-1993 Miguel Santana Copyright (c) 1995-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, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if HAVE_CONFIG_H # include #endif /* Support of prototyping when possible */ #ifndef PARAMS # if PROTOTYPES # define PARAMS(protos) protos # else /* no PROTOTYPES */ # define PARAMS(protos) () # endif /* no PROTOTYPES */ #endif #include #include #include /* 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." */ #if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII)) #define ISASCII(c) 1 #else #define ISASCII(c) isascii((int) c) #endif #define ISDIGIT(c) (ISASCII (c) && isdigit ((int) c)) #if defined STDC_HEADERS || defined _LIBC || defined HAVE_STDLIB_H # include #endif /* We want strtok. */ #ifdef HAVE_STRING_H # if !STDC_HEADERS && HAVE_MEMORY_H # include # endif # include #else # include char *memchr (); #endif #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" int msg_verbosity_argmatch (const char *option, char *arg) { int res = 0; ARGMATCH_ASSERT (_msg_verbosity_args, _msg_verbosity_types); if (ISDIGIT (*arg)) { /* The verbosity is set through an integer value */ res = 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 |= XARGCASEMATCH (option, token, _msg_verbosity_args, _msg_verbosity_types); } while ((token = strtok (NULL, verbosity_sep))); } return res; } a2ps-4.14/lib/memcpy.c0000644000175000017500000000226310735322362014037 0ustar mhattamhatta/* Copyright (C) 1995, 1997 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Written by Jim Meyering . */ #if HAVE_CONFIG_H # include #endif /* Copy LEN bytes starting at SRCADDR to DESTADDR. Result undefined if the source overlaps with the destination. Return DESTADDR. */ char * memcpy (destaddr, srcaddr, len) char *destaddr; const char *srcaddr; int len; { char *dest = destaddr; while (len-- > 0) *destaddr++ = *srcaddr++; return dest; } a2ps-4.14/lib/message.h0000644000175000017500000000317610735322367014207 0ustar mhattamhatta/* "message.h" -- declaration for verbosity sensitive feedback function Copyright (c) 1998, 99 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, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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. */ int msg_verbosity_argmatch PARAMS ((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.14/lib/dstring.c0000644000175000017500000002136710735322362014225 0ustar mhattamhatta/* dstring.c - The dynamic string handling routines used by cpio. Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana Copyright (c) 1995, 96, 97, 98 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, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Author: Akim Demaille */ #include "system.h" #include "dstring.h" #include "printlen.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: %d", size); if (increment == 0 && growth != ds_steady) error (ds_exit_error, 0, "invalid increment for dynamic string: %d", increment); res = XMALLOC (struct dstring, 1); res->len = 0; res->size = size; res->original_size = size; res->growth = growth; res->increment = increment; res->content = XMALLOC (char, size); res->content[0] = '\0'; return res; } /* Delete dynamic string. */ void ds_erase (struct dstring *string) { free (string->content); free (string); } /* * 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: %d/%d (%2.1f%%)\n"), str->len, str->size, 100.0 * str->len / 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: %d, growth: %s %d\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 = XREALLOC (string->content, char, size); } } /* * 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 = XREALLOC (string->content, char, string->size); } /****************************************************************/ /* 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, int 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) { int len; len = 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 #if defined(VA_START) && __STDC__ ds_sprintf (struct dstring * ds, const char *format, ...) #else ds_sprintf (ds, format, va_alist) struct dstring * ds; char * format; va_dcl #endif { #ifdef VA_START va_list args; VA_START (args, format); ds_vsprintf (ds, format, args); va_end (args); #else ds_vsprintf (ds, format, a1, a2, a3, a4, a5, a6, a7, a8); #endif } /* * 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) { int len; len = ds->len + 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 #if defined(VA_START) && __STDC__ ds_cat_sprintf (struct dstring * ds, const char *format, ...) #else ds_cat_sprintf (ds, format, va_alist) struct dstring * ds; char * format; va_dcl #endif { #ifdef VA_START va_list args; VA_START (args, format); ds_cat_vsprintf (ds, format, args); va_end (args); #else ds_cat_vsprintf (ds, format, a1, a2, a3, a4, a5, a6, a7, a8); #endif } /****************************************************************/ /* 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 #if defined(VA_START) && __STDC__ ds_unsafe_sprintf (struct dstring * ds, const char *format, ...) #else ds_unsafe_sprintf (ds, format, va_alist) struct dstring * ds; char * format; va_dcl #endif { #ifdef VA_START va_list args; VA_START (args, format); ds_unsafe_vsprintf (ds, format, args); va_end (args); #else ds_unsafe_vsprintf (ds, format, a1, a2, a3, a4, a5, a6, a7, a8); #endif } /* * 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 #if defined(VA_START) && __STDC__ ds_unsafe_cat_sprintf (struct dstring * ds, const char *format, ...) #else ds_unsafe_cat_sprintf (ds, format, va_alist) struct dstring * ds; char * format; va_dcl #endif { #ifdef VA_START va_list args; VA_START (args, format); ds_unsafe_cat_vsprintf (ds, format, args); va_end (args); #else ds_unsafe_cat_vsprintf (ds, format, a1, a2, a3, a4, a5, a6, a7, a8); #endif } /****************************************************************/ /* 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) { int insize; /* Amount needed for line. */ int 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++] = 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.14/lib/argmatch.h0000644000175000017500000001075210735322367014347 0ustar mhattamhatta/* argmatch.h -- definitions and prototypes for argmatch.c Copyright (C) 1990, 1998, 1999 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Written by David MacKenzie Modified by Akim Demaille */ #ifndef ARGMATCH_H_ # define ARGMATCH_H_ 1 # if HAVE_CONFIG_H # include # endif # include # ifndef PARAMS # if PROTOTYPES || (defined (__STDC__) && __STDC__) # define PARAMS(args) args # else # define PARAMS(args) () # endif /* GCC. */ # endif /* Not PARAMS. */ /* Assert there are as many real arguments as there are values (argument list ends with a NULL guard). There is no execution cost, since it will be statically evalauted to `assert (0)' or `assert (1)'. Unfortunately there is no -Wassert-0. */ # undef ARRAY_CARDINALITY # define ARRAY_CARDINALITY(Array) (sizeof ((Array)) / sizeof (*(Array))) # define ARGMATCH_ASSERT(Arglist, Vallist) \ 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). */ int argmatch PARAMS ((const char *arg, const char *const *arglist, const char *vallist, size_t valsize)); int argcasematch PARAMS ((const char *arg, const char *const *arglist, const char *vallist, size_t valsize)); # define ARGMATCH(Arg, Arglist, Vallist) \ argmatch ((Arg), (Arglist), (const char *) (Vallist), sizeof (*(Vallist))) # define ARGCASEMATCH(Arg, Arglist, Vallist) \ argcasematch ((Arg), (Arglist), (const char *) (Vallist), sizeof (*(Vallist))) /* 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) PARAMS ((void)); extern argmatch_exit_fn argmatch_die; /* Report on stderr why argmatch failed. Report correct values. */ void argmatch_invalid PARAMS ((const char *context, const char *value, int 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 PARAMS ((const char *const *arglist, const char *vallist, size_t valsize)); # define ARGMATCH_VALID(Arglist, Vallist) \ argmatch_valid (Arglist, (const char *) Vallist, sizeof (*(Vallist))) /* Same as argmatch, but upon failure, reports a explanation on the failure, and exits using the function EXIT_FN. */ int __xargmatch_internal PARAMS ((const char *context, const char *arg, const char *const *arglist, const char *vallist, size_t valsize, int case_sensitive, argmatch_exit_fn exit_fn)); /* Programmer friendly interface to __xargmatch_internal. */ # define XARGMATCH(Context, Arg, Arglist, Vallist) \ (Vallist [__xargmatch_internal ((Context), (Arg), (Arglist), \ (const char *) (Vallist), \ sizeof (*(Vallist)), \ 1, argmatch_die)]) # define XARGCASEMATCH(Context, Arg, Arglist, Vallist) \ (Vallist [__xargmatch_internal ((Context), (Arg), (Arglist), \ (const char *) (Vallist), \ sizeof (*(Vallist)), \ 0, argmatch_die)]) /* Convert a value into a corresponding argument. */ const char *argmatch_to_argument PARAMS ((char const *value, const char *const *arglist, const char *vallist, size_t valsize)); # define ARGMATCH_TO_ARGUMENT(Value, Arglist, Vallist) \ argmatch_to_argument ((char const *) &(Value), (Arglist), \ (const char *) (Vallist), sizeof (*(Vallist))) #endif /* ARGMATCH_H_ */ a2ps-4.14/lib/error.h0000644000175000017500000000516010735322367013707 0ustar mhattamhatta/* Declaration for error-reporting function Copyright (C) 1995, 1996, 1997 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@prep.ai.mit.edu. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 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. */ #ifndef _ERROR_H #define _ERROR_H 1 #ifndef __attribute__ /* This feature is available in gcc versions 2.5 and later. */ # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || __STRICT_ANSI__ # define __attribute__(Spec) /* empty */ # endif /* The __-protected variants of `format' and `printf' attributes are accepted by gcc versions 2.6.4 (effectively 2.7) and later. */ # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7) # define __format__ format # define __printf__ printf # endif #endif #ifdef __cplusplus extern "C" { #endif #if defined (__STDC__) && __STDC__ /* 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)'. */ extern void error (int status, int errnum, const char *format, ...) __attribute__ ((__format__ (__printf__, 3, 4))); extern void error_at_line (int status, int errnum, const char *fname, unsigned int lineno, const char *format, ...) __attribute__ ((__format__ (__printf__, 5, 6))); /* 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); #else void error (); void error_at_line (); extern void (*error_print_progname) (); #endif /* 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 /* error.h */ a2ps-4.14/lib/routines.h0000644000175000017500000001646010735322367014433 0ustar mhattamhatta/* * routines.h -- general use routines * 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. */ #ifndef _ROUTINES_H_ # define _ROUTINES_H_ /* * From xgetcwd.c */ char *xgetcwd PARAMS ((void)); /* * from xgethostname.c */ char *xgethostname PARAMS ((void)); char *stpcpy PARAMS ((char * dest, const char * src)); char *stpncpy PARAMS ((char * dest, const char * src, size_t n)); /* * unsigned char variation of usual functions on strings */ #define ustrcat(x,y) \ (strcat((char *)(x), (const char *)(y))) #define ustrncat(x,y,n) \ (strncat(((char *)x), (const char *) y, n)) #define ustrcpy(x,y) \ (strcpy((char *)(x), (const char *)(y))) #define ustrncpy(x,y,z) \ (strncpy((char *)(x), (const char *)(y), (z))) #define ustpcpy(x,y) \ (stpcpy((char *)(x), (const char *)(y))) #define ustpncpy(x,y,z) \ (stpncpy((char *)(x), (const char *)(y), (z))) #define ustrcmp(x,y) \ (strcmp((const char *)(x), (const char *)(y))) #define ustrncmp(x,y,z) \ (strncmp((const char *)(x), (const char *)(y), (z))) #define ustrlen(x) \ (strlen((const char *)(x))) #define ustrchr(x,y) \ ((uchar *) strchr((char *)(x), (int)(y))) #define ustrrchr(x,y) \ ((uchar *) strrchr((char *)(x), (int)(y))) #define xustrdup(x) \ ((uchar *) xstrdup((const char *)(x))) #define ustrtok(x,y) \ ((uchar *) strtok ((char *)(x), (const char *)(y))) /* * Put in X a copy of chars in Y from Z to T */ #define ustrsub(x,y,z,t) \ ((uchar *) strsub ((char *)(x), (const char *)(y), (z), (t))); /* * A string prefixes another */ #define strprefix(s1, s2) \ (!strncmp(s1, s2, strlen(s1))) #define ustrprefix(s1, s2) \ (!ustrncmp(s1, s2, ustrlen(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 \ : !strcmp (s1 + strlen (s1) - strlen (s2), s2)) #define ustrsuffix(s1, s2) \ ((ustrlen (s1) < ustrlen (s2)) \ ? 0 \ : !ustrcmp (s1 + ustrlen (s1) - ustrlen (s2), s2)) /* * Replace a malloc'd string with another */ #define xstrcpy(s1, s2) \ do { \ const char *my_s2 = (s2); \ XFREE (s1); \ s1 = !IS_EMPTY (my_s2) ? xstrdup (my_s2) : NULL; \ } while (0) /* We cannot just define this one like xstrcpy ((char *) s1, (const char *) s2); because it will expand into a line like (char *) s1 = ... and AIX 3.2's cc choke on this!!! It says (S) Operand must be a modifiable lvalue. */ #define xustrcpy(s1, s2) \ do { \ const uchar *my_s2 = (uchar *) (s2); \ XFREE (s1); \ s1 = !IS_EMPTY (my_s2) ? xustrdup (my_s2) : UNULL; \ } 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) #define ustrcut(_ustring_, _uchar_) \ strcut ((char *) (_ustring_), (char) _uchar_) /* * 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) #define ustrrcut(_ustring_, _uchar_) \ strrcut ((char *) (_ustring_), (char) _uchar_) /* * 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 austrcpy(_d_,_s_) \ do { \ const uchar * _tmp_ = (const uchar *) (_s_); \ _d_ = ALLOCA (uchar, ustrlen (_tmp_) + 1); \ ustrcpy (_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 USTRCCAT(s, c) \ do { int __len = strlen((const char *)s); \ *(s+__len) = 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 ustrequ(s1, s2) (!ustrcmp(s1, s2)) #define strcaseequ(s1, s2) (!strcasecmp(s1, s2)) /* Functions on strings */ void string_to_array PARAMS ((uchar arr[256], const uchar * string)); int is_strlower PARAMS((const uchar * string)); uchar *strnlower PARAMS ((uchar * string, size_t len)); uchar *strlower PARAMS ((uchar * string)); uchar *strcpylc PARAMS ((uchar *dst, const uchar *src)); void ustrccat PARAMS((uchar * string, uchar c)); int strcnt PARAMS((uchar * s, uchar c)); char * strsub PARAMS ((char * dest, const char * string, int start, int length)); /* Copy the content of IN into OUT */ void streams_copy PARAMS ((FILE * in, FILE * out)); /* Dump the content of a file onto STREAM */ void stream_dump PARAMS ((FILE * stream, const char * filename)); /* unlink FILENAME */ void unlink2 PARAMS ((void* dummy, const char * filename)); /* Fopen but exits on failure */ FILE * xfopen PARAMS ((const char * filename, const char * rights, const char * format)); /* opened "r", and "w" */ FILE * xrfopen PARAMS ((const char * filename)); FILE * xwfopen PARAMS ((const char * filename)); /* Popen but exits on failure */ FILE * xpopen PARAMS ((const char * command, const char * rights, const char * format)); /* opened "r", and "w" */ FILE * xrpopen PARAMS ((const char * command)); FILE * xwpopen PARAMS ((const char * command)); /* If _STR_ is not defined, give it a tempname in _TMPDIR_ */ #define tempname_ensure(Str) \ do { \ (Str) = (Str) ? (Str) : tempnam (NULL, "a2_"); \ } while (0) #endif a2ps-4.14/lib/hashtab.c0000644000175000017500000002043410735322362014157 0ustar mhattamhatta/* hash.c -- hash table maintenance Copyright (C) 1995 Free Software Foundation, Inc. Written by Greg McGary This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 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. */ #include #include #if defined STDC_HEADERS || defined _LIBC || defined HAVE_STDLIB_H # include #endif #include "hashtab.h" #include "xalloc.h" #include "error.h" static void hash_rehash PARAMS((struct hash_table_s* ht)); static unsigned long round_up_2 PARAMS((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 (struct token *, ht->ht_size); 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 int hash_2 = 0; unsigned int 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_free_items (struct hash_table_s* ht, hash_map_func_t free_fn) { void **vec = ht->ht_vec; void **end = &vec[ht->ht_size]; for (; vec < end; vec++) { void *item = *vec; if (!HASH_VACANT (item)) (*free_fn) (item); *vec = 0; } ht->ht_fill = 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_free (struct hash_table_s* ht, hash_map_func_t free_fn) { if (free_fn) hash_free_items (ht, free_fn); free (ht->ht_vec); ht->ht_vec = 0; ht->ht_fill = 0; ht->ht_capacity = 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 (struct token *, ht->ht_size); for (ovp = old_vec; ovp < &old_vec[old_ht_size]; ovp++) { if (*ovp == 0) continue; slot = hash_find_slot (ht, *ovp); *slot = *ovp; } free (old_vec); } void hash_print_stats (struct hash_table_s *ht, FILE *out_FILE) { fprintf (out_FILE, "Load=%ld/%ld=%.0f%%, ", ht->ht_fill, ht->ht_size, 100.0 * (double) ht->ht_fill / (double) ht->ht_size); fprintf (out_FILE, "Rehash=%d, ", ht->ht_rehashes); fprintf (out_FILE, "Collisions=%ld/%ld=%.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 = XMALLOC (void *, ht->ht_fill + 1); 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 = XMALLOC (void *, ht->ht_fill + 1); 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 = XREALLOC (vector_0, void *, fill + 1); 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); free (vector_0); } /* Round a given number up to the nearest power of 2. */ static unsigned long round_up_2 (unsigned long rough) { int round; round = 1; while (rough) { round <<= 1; rough >>= 1; } return round; } a2ps-4.14/lib/prolog.h0000644000175000017500000000376310735324676014074 0ustar mhattamhatta/* * prolog.h * routines for the postscript prologue handling * * 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: prolog.h,v 1.1.1.1.2.1 2007/12/29 01:58:22 mhatta Exp $ */ #ifndef _PROLOG_H_ #define _PROLOG_H_ #define PORTRAIT_HEADER 20 #define LANDSCAPE_HEADER 15 #define PAGE_MARGIN 12 /* space between virtual pages */ #define HEADERS_H 12 /* 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) PARAMS ((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 PARAMS ((struct a2ps_job * job)); void ps_end PARAMS ((struct a2ps_job * job)); void ps_end_file PARAMS ((struct a2ps_job * job)); /* * List of the prologue */ void prologues_list_short PARAMS ((struct a2ps_job * job, FILE * stream)); void prologues_list_long PARAMS ((struct a2ps_job * job, FILE * stream)); void prologues_list_texinfo PARAMS ((struct a2ps_job * job, FILE * stream)); #endif /* !defined(_PROLOGUE_H) */ a2ps-4.14/lib/filtdir.c0000644000175000017500000000550210735322362014201 0ustar mhattamhatta/* filtdir.c -- filter file names in directories This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 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. */ /* Akim Demaille * Based on savedir.c, written by David MacKenzie . */ #ifdef HAVE_CONFIG_H #include #endif #include #include #ifdef HAVE_UNISTD_H #include #endif #if HAVE_DIRENT_H # include # define NAMLEN(dirent) strlen((dirent)->d_name) #else # define dirent direct # define NAMLEN(dirent) (dirent)->d_namlen # if HAVE_SYS_NDIR_H # include # endif # if HAVE_SYS_DIR_H # include # endif # if HAVE_NDIR_H # include # endif #endif #ifdef CLOSEDIR_VOID /* Fake a return value. */ #define CLOSEDIR(d) (closedir (d), 0) #else #define CLOSEDIR(d) closedir (d) #endif #ifdef HAVE_ERRNO_H # include #endif #ifndef errno extern int errno; #endif #if ENABLE_NLS # include # define _(Text) gettext (Text) #else # define textdomain(Domain) # define _(Text) Text #endif #if HAVE_STDBOOL_H # include #else typedef enum {false = 0, true = 1} bool; #endif #include "error.h" #include "darray.h" #include "filtdir.h" #include "xfnmatch.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 filesystems' 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.14/lib/useropt.c0000644000175000017500000000432110735324701014242 0ustar mhattamhatta/* * useropt.c * * User Option handling * 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. */ /* * $Id: useropt.c,v 1.1.1.1.2.1 2007/12/29 01:58:25 mhatta Exp $ */ #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 (); } /* * Free a user option table */ void user_options_table_free (struct pair_htable * table) { pair_table_free (table); } /* * 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.14/lib/alloca.c0000644000175000017500000003364510735322361014007 0ustar mhattamhatta/* alloca.c -- allocate automatically reclaimed memory (Mostly) portable public-domain implementation -- D A Gwyn This implementation of the PWB library alloca function, which is used to allocate space off the run-time stack so that it is automatically reclaimed upon procedure exit, was inspired by discussions with J. Q. Johnson of Cornell. J.Otto Tennant contributed the Cray support. There are some preprocessor constants that can be defined when compiling for your specific system, for improved efficiency; however, the defaults should be okay. The general concept of this implementation is to keep track of all alloca-allocated blocks, and reclaim any that are found to be deeper in the stack than the current invocation. This heuristic does not reclaim storage as soon as it becomes invalid, but it will do so eventually. As a special case, alloca(0) reclaims storage without allocating any. It is a good idea to use alloca(0) in your main control loop, etc. to force garbage collection. */ #ifdef HAVE_CONFIG_H # include #endif #ifdef emacs # include "blockinput.h" #endif /* If compiling with GCC 2, this file's not needed. */ #if !defined (__GNUC__) || __GNUC__ < 2 /* If someone has defined alloca as a macro, there must be some other way alloca is supposed to work. */ # ifndef alloca # ifdef emacs # ifdef static /* actually, only want this if static is defined as "" -- this is for usg, in which emacs must undefine static in order to make unexec workable */ # ifndef STACK_DIRECTION you lose -- must know STACK_DIRECTION at compile-time # endif /* STACK_DIRECTION undefined */ # endif /* static */ # endif /* emacs */ /* If your stack is a linked list of frames, you have to provide an "address metric" ADDRESS_FUNCTION macro. */ # if defined (CRAY) && defined (CRAY_STACKSEG_END) long i00afunc (); # define ADDRESS_FUNCTION(arg) (char *) i00afunc (&(arg)) # else # define ADDRESS_FUNCTION(arg) &(arg) # endif # if __STDC__ typedef void *pointer; # else typedef char *pointer; # endif # ifndef NULL # define NULL 0 # endif /* Different portions of Emacs need to call different versions of malloc. The Emacs executable needs alloca to call xmalloc, because ordinary malloc isn't protected from input signals. On the other hand, the utilities in lib-src need alloca to call malloc; some of them are very simple, and don't have an xmalloc routine. Non-Emacs programs expect this to call xmalloc. Callers below should use malloc. */ # ifndef emacs # define malloc xmalloc # endif extern pointer malloc (); /* Define STACK_DIRECTION if you know the direction of stack growth for your system; otherwise it will be automatically deduced at run-time. STACK_DIRECTION > 0 => grows toward higher addresses STACK_DIRECTION < 0 => grows toward lower addresses STACK_DIRECTION = 0 => direction of growth unknown */ # ifndef STACK_DIRECTION # define STACK_DIRECTION 0 /* Direction unknown. */ # endif # if STACK_DIRECTION != 0 # define STACK_DIR STACK_DIRECTION /* Known at compile-time. */ # else /* STACK_DIRECTION == 0; need run-time code. */ static int stack_dir; /* 1 or -1 once known. */ # define STACK_DIR stack_dir static void find_stack_direction () { static char *addr = NULL; /* Address of first `dummy', once known. */ auto char dummy; /* To get stack address. */ if (addr == NULL) { /* Initial entry. */ addr = ADDRESS_FUNCTION (dummy); find_stack_direction (); /* Recurse once. */ } else { /* Second entry. */ if (ADDRESS_FUNCTION (dummy) > addr) stack_dir = 1; /* Stack grew upward. */ else stack_dir = -1; /* Stack grew downward. */ } } # endif /* STACK_DIRECTION == 0 */ /* An "alloca header" is used to: (a) chain together all alloca'ed blocks; (b) keep track of stack depth. It is very important that sizeof(header) agree with malloc alignment chunk size. The following default should work okay. */ # ifndef ALIGN_SIZE # define ALIGN_SIZE sizeof(double) # endif typedef union hdr { char align[ALIGN_SIZE]; /* To force sizeof(header). */ struct { union hdr *next; /* For chaining headers. */ char *deep; /* For stack depth measure. */ } h; } header; static header *last_alloca_header = NULL; /* -> last alloca header. */ /* Return a pointer to at least SIZE bytes of storage, which will be automatically reclaimed upon exit from the procedure that called alloca. Originally, this space was supposed to be taken from the current stack frame of the caller, but that method cannot be made to work for some implementations of C, for example under Gould's UTX/32. */ pointer alloca (unsigned size) { auto char probe; /* Probes stack depth: */ register char *depth = ADDRESS_FUNCTION (probe); # if STACK_DIRECTION == 0 if (STACK_DIR == 0) /* Unknown growth direction. */ find_stack_direction (); # endif /* Reclaim garbage, defined as all alloca'd storage that was allocated from deeper in the stack than currently. */ { register header *hp; /* Traverses linked list. */ # ifdef emacs BLOCK_INPUT; # endif for (hp = last_alloca_header; hp != NULL;) if ((STACK_DIR > 0 && hp->h.deep > depth) || (STACK_DIR < 0 && hp->h.deep < depth)) { register header *np = hp->h.next; free ((pointer) hp); /* Collect garbage. */ hp = np; /* -> next header. */ } else break; /* Rest are not deeper. */ last_alloca_header = hp; /* -> last valid storage. */ # ifdef emacs UNBLOCK_INPUT; # endif } if (size == 0) return NULL; /* No allocation required. */ /* Allocate combined header + user data storage. */ { register pointer new = malloc (sizeof (header) + size); /* Address of header. */ ((header *) new)->h.next = last_alloca_header; ((header *) new)->h.deep = depth; last_alloca_header = (header *) new; /* User storage begins just after header. */ return (pointer) ((char *) new + sizeof (header)); } } # if defined (CRAY) && defined (CRAY_STACKSEG_END) # ifdef DEBUG_I00AFUNC # include # endif # ifndef CRAY_STACK # define CRAY_STACK # ifndef CRAY2 /* Stack structures for CRAY-1, CRAY X-MP, and CRAY Y-MP */ struct stack_control_header { long shgrow:32; /* Number of times stack has grown. */ long shaseg:32; /* Size of increments to stack. */ long shhwm:32; /* High water mark of stack. */ long shsize:32; /* Current size of stack (all segments). */ }; /* The stack segment linkage control information occurs at the high-address end of a stack segment. (The stack grows from low addresses to high addresses.) The initial part of the stack segment linkage control information is 0200 (octal) words. This provides for register storage for the routine which overflows the stack. */ struct stack_segment_linkage { long ss[0200]; /* 0200 overflow words. */ long sssize:32; /* Number of words in this segment. */ long ssbase:32; /* Offset to stack base. */ long:32; long sspseg:32; /* Offset to linkage control of previous segment of stack. */ long:32; long sstcpt:32; /* Pointer to task common address block. */ long sscsnm; /* Private control structure number for microtasking. */ long ssusr1; /* Reserved for user. */ long ssusr2; /* Reserved for user. */ long sstpid; /* Process ID for pid based multi-tasking. */ long ssgvup; /* Pointer to multitasking thread giveup. */ long sscray[7]; /* Reserved for Cray Research. */ long ssa0; long ssa1; long ssa2; long ssa3; long ssa4; long ssa5; long ssa6; long ssa7; long sss0; long sss1; long sss2; long sss3; long sss4; long sss5; long sss6; long sss7; }; # else /* CRAY2 */ /* The following structure defines the vector of words returned by the STKSTAT library routine. */ struct stk_stat { long now; /* Current total stack size. */ long maxc; /* Amount of contiguous space which would be required to satisfy the maximum stack demand to date. */ long high_water; /* Stack high-water mark. */ long overflows; /* Number of stack overflow ($STKOFEN) calls. */ long hits; /* Number of internal buffer hits. */ long extends; /* Number of block extensions. */ long stko_mallocs; /* Block allocations by $STKOFEN. */ long underflows; /* Number of stack underflow calls ($STKRETN). */ long stko_free; /* Number of deallocations by $STKRETN. */ long stkm_free; /* Number of deallocations by $STKMRET. */ long segments; /* Current number of stack segments. */ long maxs; /* Maximum number of stack segments so far. */ long pad_size; /* Stack pad size. */ long current_address; /* Current stack segment address. */ long current_size; /* Current stack segment size. This number is actually corrupted by STKSTAT to include the fifteen word trailer area. */ long initial_address; /* Address of initial segment. */ long initial_size; /* Size of initial segment. */ }; /* The following structure describes the data structure which trails any stack segment. I think that the description in 'asdef' is out of date. I only describe the parts that I am sure about. */ struct stk_trailer { long this_address; /* Address of this block. */ long this_size; /* Size of this block (does not include this trailer). */ long unknown2; long unknown3; long link; /* Address of trailer block of previous segment. */ long unknown5; long unknown6; long unknown7; long unknown8; long unknown9; long unknown10; long unknown11; long unknown12; long unknown13; long unknown14; }; # endif /* CRAY2 */ # endif /* not CRAY_STACK */ # ifdef CRAY2 /* Determine a "stack measure" for an arbitrary ADDRESS. I doubt that "lint" will like this much. */ static long i00afunc (long *address) { struct stk_stat status; struct stk_trailer *trailer; long *block, size; long result = 0; /* We want to iterate through all of the segments. The first step is to get the stack status structure. We could do this more quickly and more directly, perhaps, by referencing the $LM00 common block, but I know that this works. */ STKSTAT (&status); /* Set up the iteration. */ trailer = (struct stk_trailer *) (status.current_address + status.current_size - 15); /* There must be at least one stack segment. Therefore it is a fatal error if "trailer" is null. */ if (trailer == 0) abort (); /* Discard segments that do not contain our argument address. */ while (trailer != 0) { block = (long *) trailer->this_address; size = trailer->this_size; if (block == 0 || size == 0) abort (); trailer = (struct stk_trailer *) trailer->link; if ((block <= address) && (address < (block + size))) break; } /* Set the result to the offset in this segment and add the sizes of all predecessor segments. */ result = address - block; if (trailer == 0) { return result; } do { if (trailer->this_size <= 0) abort (); result += trailer->this_size; trailer = (struct stk_trailer *) trailer->link; } while (trailer != 0); /* We are done. Note that if you present a bogus address (one not in any segment), you will get a different number back, formed from subtracting the address of the first block. This is probably not what you want. */ return (result); } # else /* not CRAY2 */ /* Stack address function for a CRAY-1, CRAY X-MP, or CRAY Y-MP. Determine the number of the cell within the stack, given the address of the cell. The purpose of this routine is to linearize, in some sense, stack addresses for alloca. */ static long i00afunc (long address) { long stkl = 0; long size, pseg, this_segment, stack; long result = 0; struct stack_segment_linkage *ssptr; /* Register B67 contains the address of the end of the current stack segment. If you (as a subprogram) store your registers on the stack and find that you are past the contents of B67, you have overflowed the segment. B67 also points to the stack segment linkage control area, which is what we are really interested in. */ stkl = CRAY_STACKSEG_END (); ssptr = (struct stack_segment_linkage *) stkl; /* If one subtracts 'size' from the end of the segment, one has the address of the first word of the segment. If this is not the first segment, 'pseg' will be nonzero. */ pseg = ssptr->sspseg; size = ssptr->sssize; this_segment = stkl - size; /* It is possible that calling this routine itself caused a stack overflow. Discard stack segments which do not contain the target address. */ while (!(this_segment <= address && address <= stkl)) { # ifdef DEBUG_I00AFUNC fprintf (stderr, "%011o %011o %011o\n", this_segment, address, stkl); # endif if (pseg == 0) break; stkl = stkl - pseg; ssptr = (struct stack_segment_linkage *) stkl; size = ssptr->sssize; pseg = ssptr->sspseg; this_segment = stkl - size; } result = address - this_segment; /* If you subtract pseg from the current end of the stack, you get the address of the previous stack segment's end. This seems a little convoluted to me, but I'll bet you save a cycle somewhere. */ while (pseg != 0) { # ifdef DEBUG_I00AFUNC fprintf (stderr, "%011o %011o\n", pseg, size); # endif stkl = stkl - pseg; ssptr = (struct stack_segment_linkage *) stkl; size = ssptr->sssize; pseg = ssptr->sspseg; result += size; } return (result); } # endif /* not CRAY2 */ # endif /* CRAY */ # endif /* no alloca */ #endif /* not GCC version 3 */ a2ps-4.14/lib/lexppd.h0000644000175000017500000000230710735324673014054 0ustar mhattamhatta/* * A Simple Lexer for PPD files. * * 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: lexppd.h,v 1.1.1.1.2.1 2007/12/29 01:58:19 mhatta Exp $ */ #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.14/lib/a2ps.h0000644000175000017500000000171310735322367013423 0ustar mhattamhatta/* * a2ps.h -- shared header with the whole package * 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. */ #ifndef _A2PS_H_ # define _A2PS_H_ # include "system.h" # define UNULL (uchar *) NULL #endif a2ps-4.14/lib/pathwalk.c0000644000175000017500000003137110735322362014362 0ustar mhattamhatta/* * pathwalk.c -- functions for ooking for files, reading files etc. * * Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana * Copyright (c) 1995, 96, 97, 98, 99 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; see the file COPYING. If not, write to * the Free Software Foundation, 59 Temple Place - Suite 330, * Boston, MA 02111-1307, 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 "a2ps.h" #include "pathwalk.h" #include "darray.h" #include "message.h" #include "routines.h" #include "filtdir.h" #include "lister.h" #include "strverscmp.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, int * length) { char **res = NULL; int allocated = 5; /* num of entries yet allocated in res */ int entries = 0; const char *cp, *cp2; int len; res = XCALLOC (char *, allocated); for (cp = path; cp; cp = strchr (cp, sep)) { if (cp != path) cp++; cp2 = strchr (cp, sep); if (cp2) len = 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 ] = XMALLOC (char, len + 1); strncpy (res [entries], cp, len); res [entries] [len] = '\0'; entries++; if (entries >= allocated) { allocated *= 2; res = XREALLOC (res, char *, allocated); } } *length = entries; /* Make it null-terminated, and exactely that size */ res [*length] = NULL; res = XREALLOC (res, char *, *length + 1); return res; } /* * Length of a path */ static inline int pw_path_length (char ** path) { int 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) { int dummy; return pw_internal_string_to_path (path, PATH_SEPARATOR, &dummy); } /* * Concat PATH2 to PATH1, and return the result. Free PATH2 */ static inline char ** pw_path_concat (char ** path1, int len1, char ** path2, int len2) { int i; if (path2) { path1 = XREALLOC (path1, char *, len1 + len2 + 1); for (i = 0 ; i <= len2 ; i++) path1 [len1 + i] = path2 [i]; free (path2); } return path1; } /*-------------------------------------. | Append a string-path DIR2 to PATH1. | `-------------------------------------*/ char ** pw_append_string_to_path (char ** path1, const char * dir2) { int 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) { int 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); } /* * Free a path array, and its content */ void pw_free_path (char ** path) { int i; if (path) for (i = 0 ; path[i] ; i++) free (path[i]); XFREE (path); } void pw_fprintf_path (FILE * stream, const char * format, char * const * path) { if (path) while (*path) { fprintf (stream, format, *path); 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 inline 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 = XMALLOC (char, strlen (path[i-1]) + 2 + strlen (name) + strlen (suffix)); sprintf (res, "%s%c%s%s", path [i-1], DIRECTORY_SEPARATOR, name, suffix); } else { res = XMALLOC (char, strlen (path[i-1]) + 2 + strlen (name)); 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) { char *dir; /* Of the including file. */ char *res; struct stat statbuf; if (*name == DIRECTORY_SEPARATOR) /* Path is absolute */ dir = NULL; 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 : ""); XFREE (dir); 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; int 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 (strnequ (buf, HDR_TAG, strlen (HDR_TAG))) break; } /* Dump rest of file. */ #define INCL_TAG "% -- include file:" while ((fgets (buf, sizeof (buf), fp))) { line++; if (strnequ (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':%d\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); free (fullpath); return 1; } /* Helping functions for pw_glob. */ static bool pw_filter_fnmatch (PARAM_UNUSED const char * dir, const char *file, const char *pattern) { return !fnmatch (pattern, file, 0); } static void pw_filter_da_append (PARAM_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, (da_map_func_t) free); 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); da_free (entries, (da_map_func_t) free); } a2ps-4.14/lib/ansi2knr.10000644000175000017500000000277107440740400014212 0ustar mhattamhatta.TH ANSI2KNR 1 "19 Jan 1996" .SH NAME ansi2knr \- convert ANSI C to Kernighan & Ritchie C .SH SYNOPSIS .I ansi2knr [--varargs] input_file [output_file] .SH DESCRIPTION If no output_file is supplied, output goes to stdout. .br There are no error messages. .sp .I ansi2knr recognizes function definitions by seeing a non-keyword identifier at the left margin, followed by a left parenthesis, with a right parenthesis as the last character on the line, and with a left brace as the first token on the following line (ignoring possible intervening comments). It will recognize a multi-line header provided that no intervening line ends with a left or right brace or a semicolon. These algorithms ignore whitespace and comments, except that the function name must be the first thing on the line. .sp The following constructs will confuse it: .br - Any other construct that starts at the left margin and follows the above syntax (such as a macro or function call). .br - Some macros that tinker with the syntax of the function header. .sp The --varargs switch is obsolete, and is recognized only for backwards compatibility. The present version of .I ansi2knr will always attempt to convert a ... argument to va_alist and va_dcl. .SH AUTHOR L. Peter Deutsch wrote the original ansi2knr and continues to maintain the current version; most of the code in the current version is his work. ansi2knr also includes contributions by Francois Pinard and Jim Avera . a2ps-4.14/lib/quotearg.c0000644000175000017500000003345410735322362014402 0ustar mhattamhatta/* quotearg.c - quote arguments for output Copyright (C) 1998, 1999 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Written by Paul Eggert */ #if HAVE_CONFIG_H # include #endif #include #include #include #include #if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII)) # define ISASCII(c) 1 #else # define ISASCII(c) isascii (c) #endif #define ISPRINT(c) (ISASCII (c) && isprint (c)) #if ENABLE_NLS # include # define _(text) gettext (text) #else # define _(text) text #endif #if HAVE_LIMITS_H # include #endif #ifndef CHAR_BIT # define CHAR_BIT 8 #endif #ifndef UCHAR_MAX # define UCHAR_MAX ((unsigned char) -1) #endif #if HAVE_STDLIB_H # include #endif #if HAVE_STRING_H # include #endif #if HAVE_MBRTOWC && HAVE_WCHAR_H # include #else # define iswprint(wc) 1 # define mbrtowc(pwc, s, n, ps) 1 # define mbsinit(ps) 1 # define mbstate_t int #endif #define INT_BITS (sizeof (int) * CHAR_BIT) struct quoting_options { /* Basic quoting style. */ enum quoting_style style; /* Quote the characters indicated by this bit vector even if the quoting style would not normally require them to be quoted. */ int quote_these_too[((UCHAR_MAX + 1) / INT_BITS + ((UCHAR_MAX + 1) % INT_BITS != 0))]; }; /* Names of quoting styles. */ char const *const quoting_style_args[] = { "literal", "shell", "shell-always", "c", "escape", "locale", 0 }; /* Correspondences to quoting style names. */ enum quoting_style const quoting_style_vals[] = { literal_quoting_style, shell_quoting_style, shell_always_quoting_style, c_quoting_style, escape_quoting_style, locale_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) { struct quoting_options *p = (struct quoting_options *) xmalloc (sizeof (struct quoting_options)); *p = *(o ? o : &default_quoting_options); 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 *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; 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; } /* Place into buffer BUFFER (of size BUFFERSIZE) a quoted version of argument ARG (of size ARGSIZE), using QUOTING_STYLE and the non-quoting-style part of O 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 -1, use the string length of the argument for ARGSIZE. This function acts like quotearg_buffer (BUFFER, BUFFERSIZE, ARG, ARGSIZE, O), except it uses QUOTING_STYLE instead of the quoting style specified by O, and O may not be null. */ static size_t quotearg_buffer_restyled (char *buffer, size_t buffersize, char const *arg, size_t argsize, enum quoting_style quoting_style, struct quoting_options const *o) { size_t i; size_t len = 0; char const *quote_string = 0; size_t quote_string_len = 0; int backslash_escapes = 0; #define STORE(c) \ do \ { \ if (len < buffersize) \ buffer[len] = (c); \ len++; \ } \ while (0) switch (quoting_style) { case c_quoting_style: STORE ('"'); backslash_escapes = 1; quote_string = "\""; quote_string_len = 1; break; case escape_quoting_style: backslash_escapes = 1; break; case locale_quoting_style: for (quote_string = _("`"); *quote_string; quote_string++) STORE (*quote_string); backslash_escapes = 1; quote_string = _("'"); quote_string_len = strlen (quote_string); break; case shell_always_quoting_style: STORE ('\''); quote_string = "'"; quote_string_len = 1; break; default: break; } for (i = 0; ! (argsize == (size_t) -1 ? arg[i] == '\0' : i == argsize); i++) { unsigned char c; unsigned char esc; if (backslash_escapes && quote_string_len && i + quote_string_len <= argsize && memcmp (arg + i, quote_string, quote_string_len) == 0) STORE ('\\'); c = arg[i]; switch (c) { case '?': switch (quoting_style) { case shell_quoting_style: goto use_shell_always_quoting_style; case c_quoting_style: if (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. */ i += 2; c = arg[i + 2]; STORE ('?'); STORE ('\\'); STORE ('?'); break; } break; default: break; } break; #if HAVE_C_BACKSLASH_A case '\a': esc = 'a'; goto c_escape; #endif case '\b': esc = 'b'; goto c_escape; case '\f': esc = 'f'; goto c_escape; case '\n': esc = 'n'; goto c_escape; case '\r': esc = 'r'; goto c_escape; case '\t': esc = 't'; goto c_escape; case '\v': esc = 'v'; goto c_escape; case '\\': esc = c; goto c_escape; c_escape: if (backslash_escapes) { c = esc; goto store_escape; } if (quoting_style == shell_quoting_style) goto use_shell_always_quoting_style; break; case '#': case '~': if (i != 0) break; /* Fall through. */ case ' ': case '!': /* special in bash */ case '"': case '$': case '&': case '(': case ')': case '*': case ';': case '<': 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_quoting_style) goto use_shell_always_quoting_style; break; case '\'': switch (quoting_style) { case shell_quoting_style: goto use_shell_always_quoting_style; case shell_always_quoting_style: STORE ('\''); STORE ('\\'); STORE ('\''); break; default: break; } 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 '=': 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': case '{': case '}': /* These characters don't cause problems, no matter what the quoting style is. They cannot start multibyte sequences. */ 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 = 0; int printable = 1; mbstate_t mbstate; memset (&mbstate, 0, sizeof mbstate); if (argsize == (size_t) -1) 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 = 0; break; } else if (bytes == (size_t) -2) { printable = 0; while (i + m < argsize && arg[i + m]) m++; break; } else { if (! iswprint (w)) printable = 0; m += bytes; } } while (! mbsinit (&mbstate)); if (m <= 1) { /* Escape a unibyte character like a multibyte sequence if using backslash escapes, and if the character is not printable. */ m = backslash_escapes && ! ISPRINT (c); printable = 0; } if (m) { /* Output a multibyte sequence, or an escaped unprintable unibyte character. */ size_t imax = i + m - 1; for (;;) { if (backslash_escapes && ! printable) { STORE ('\\'); STORE ('0' + (c >> 6)); STORE ('0' + ((c >> 3) & 7)); c = '0' + (c & 7); } if (i == imax) break; STORE (c); c = arg[++i]; } goto store_c; } } } if (! (backslash_escapes && o->quote_these_too[c / INT_BITS] & (1 << (c % INT_BITS)))) goto store_c; store_escape: STORE ('\\'); store_c: STORE (c); } if (quote_string) for (; *quote_string; quote_string++) STORE (*quote_string); if (len < buffersize) buffer[len] = '\0'; return len; use_shell_always_quoting_style: return quotearg_buffer_restyled (buffer, buffersize, arg, argsize, shell_always_quoting_style, o); } /* 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. */ 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; return quotearg_buffer_restyled (buffer, buffersize, arg, argsize, p->style, p); } /* Use storage slot N to return a quoted version of the string ARG. 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. N is deliberately declared with type `int' to allow for future extensions (using negative values). */ static char * quotearg_n_options (int n, char const *arg, struct quoting_options const *options) { static unsigned int nslots; static struct slotvec { size_t size; char *val; } *slotvec; if (nslots <= n) { int n1 = n + 1; size_t s = n1 * sizeof (struct slotvec); if (! (0 < n1 && n1 == s / sizeof (struct slotvec))) abort (); slotvec = (struct slotvec *) xrealloc (slotvec, s); memset (slotvec + nslots, 0, (n1 - nslots) * sizeof (struct slotvec)); nslots = n; } { size_t size = slotvec[n].size; char *val = slotvec[n].val; size_t qsize = quotearg_buffer (val, size, arg, (size_t) -1, options); if (size <= qsize) { slotvec[n].size = size = qsize + 1; slotvec[n].val = val = xrealloc (val, size); quotearg_buffer (val, size, arg, (size_t) -1, options); } return val; } } char * quotearg_n (unsigned int n, char const *arg) { return quotearg_n_options (n, arg, &default_quoting_options); } char * quotearg (char const *arg) { return quotearg_n (0, arg); } char * quotearg_n_style (unsigned int n, enum quoting_style s, char const *arg) { struct quoting_options o; o.style = s; memset (o.quote_these_too, 0, sizeof o.quote_these_too); return quotearg_n_options (n, arg, &o); } char * quotearg_style (enum quoting_style s, char const *arg) { return quotearg_n_style (0, s, arg); } char * quotearg_char (char const *arg, char ch) { struct quoting_options options; options = default_quoting_options; set_char_quoting (&options, ch, 1); return quotearg_n_options (0, arg, &options); } char * quotearg_colon (char const *arg) { return quotearg_char (arg, ':'); } a2ps-4.14/lib/media.h0000644000175000017500000000410010735324674013631 0ustar mhattamhatta/* * media.h * * Used paper formats * Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana * Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana * $Id: media.h,v 1.1.1.1.2.1 2007/12/29 01:58:20 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 _MEDIAS_H_ #define _MEDIAS_H_ #include "config.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; int w; int h; int llx; int lly; int urx; int ury; }; /* Possible orientations */ typedef enum { portrait, landscape } ORIENTATION; struct hash_table_s * new_medium_table PARAMS ((void)); void free_medium_table PARAMS ((struct hash_table_s * table)); struct medium * a2ps_get_medium PARAMS ((struct a2ps_job * job, const char *string)); const char * a2ps_get_medium_name PARAMS ((struct a2ps_job * job, const char *string)); bool a2ps_medium_libpaper_p PARAMS ((struct a2ps_job * job, const char * name)); void add_medium PARAMS ((struct a2ps_job * job, const char * name, int w, int h, int llx, int lly, int urx, int ury)); void list_media_long PARAMS ((struct a2ps_job * job, FILE * stream)); void list_media_short PARAMS ((struct a2ps_job * job, FILE * stream)); #endif a2ps-4.14/lib/stpncpy.c0000644000175000017500000000343210735322362014244 0ustar mhattamhatta/* Copyright (C) 1993, 1995, 1996 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* This is almost copied from strncpy.c, written by Torbjorn Granlund. */ #ifdef HAVE_CONFIG_H # include #endif #include /* Copy no more than N characters of SRC to DEST, returning the address of the last character written into DEST. */ char * stpncpy (dest, src, n) char *dest; const char *src; size_t n; { char c; char *s = dest; --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 = n - (dest - s) - 1; if (n == 0) return dest + 1; goto zero_fill; } last_chars: n &= 3; if (n == 0) return dest + 1; do { c = *src++; *++dest = c; if (--n == 0) return dest + 1; } while (c != '\0'); zero_fill: while (n-- > 0) dest[n] = '\0'; return dest; } a2ps-4.14/lib/xstrrpl.h0000644000175000017500000000272010735322367014273 0ustar mhattamhatta/* xstrrpl.h -- declaration of function for replacement of substrings Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana Copyright (c) 1995, 96, 97, 98 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, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Author: Akim Demaille */ #ifndef XSTRRPL_H_ # define XSTRRPL_H_ 1 # ifndef PARAMS # if defined PROTOTYPES || (defined __STDC__ && __STDC__) # define PARAMS(Args) Args # else # define PARAMS(Args) () # endif # endif char * xstrrpl PARAMS ((const char * string, const char * subst[][2])); void strrpl PARAMS ((char ** string, const char * subst[][2])); # if defined (__STDC__) && __STDC__ extern char * xvstrrpl (const char * string, ...); extern void vstrrpl (char ** string, ...); # else char * xvstrrpl (); void vstrrpl (); # endif #endif /* !XSTRRPL_H_ */ a2ps-4.14/lib/confg.h0000644000175000017500000000325110735322367013651 0ustar mhattamhatta/* * confg.h * * Read and understanding everything about the options * & (dynamic) configuration of 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. */ #ifndef _CONFG_H_ #define _CONFG_H_ #ifdef HAVE_CONFIG_H # include "config.h" #endif struct a2ps_job; /* * Type of the functions that can be used as hooks when reading * the config files */ typedef void (* config_hook) PARAMS ((const char * filename, int 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 PARAMS ((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 PARAMS ((struct a2ps_job * job)); /* liba2ps.h:end */ #endif a2ps-4.14/lib/str_ht.c0000644000175000017500000000623010735324677014061 0ustar mhattamhatta/* * str_ht.c * * Single (char *) hash table * * 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: str_ht.c,v 1.1.1.1.2.1 2007/12/29 01:58:23 mhatta Exp $ */ #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, 1); 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; } /* * Free the whole structure */ void string_htable_free (struct string_htable * table) { hash_free (table, (hash_map_func_t) free); free (table); } /* * 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); free (entries); } /* * 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.14/lib/stpcpy.c0000644000175000017500000000264010735322362014066 0ustar mhattamhatta/* stpcpy.c -- copy a string and return pointer to end of new string Copyright (C) 1992, 1995, 1997, 1998 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@prep.ai.mit.edu. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 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. */ #ifdef HAVE_CONFIG_H # include #endif #include #undef __stpcpy #undef stpcpy #ifndef weak_alias # define __stpcpy stpcpy #endif /* Copy SRC to DEST, returning the address of the terminating '\0' in DEST. */ char * __stpcpy (char *dest, const char *src) { register char *d = dest; register const char *s = src; do *d++ = *s; while (*s++ != '\0'); return d - 1; } #ifdef weak_alias weak_alias (__stpcpy, stpcpy) #endif a2ps-4.14/lib/stream.h0000644000175000017500000000350010735324700014036 0ustar mhattamhatta/* * stream.h * * Open streams on pipes or files. * * 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: stream.h,v 1.1.1.1.2.1 2007/12/29 01:58:24 mhatta Exp $ */ #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 PARAMS ((const char * command, bool is_file)); /* Open for writing */ struct stream * stream_wopen PARAMS ((const char * command, bool is_file)); /* Open for writing, using backup services */ struct stream * stream_wopen_backup PARAMS ((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 PARAMS ((char const * perl_command, enum backup_type backup, const char **name)); /* Closes and frees. */ void stream_close PARAMS ((struct stream * stream)); #endif a2ps-4.14/lib/output.h0000644000175000017500000000555310735324675014130 0ustar mhattamhatta/* * output.h * * routines for ram-diverted output * Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana * Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana * $Id: output.h,v 1.1.1.1.2.1 2007/12/29 01:58:21 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 _OUTPUT_H_ #define _OUTPUT_H_ # ifndef __attribute__ /* This feature is available in gcc versions 2.5 and later. */ # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || __STRICT_ANSI__ # define __attribute__(Spec) /* empty */ # endif /* The __-protected variants of `format' and `printf' attributes are accepted by gcc versions 2.6.4 (effectively 2.7) and later. */ # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7) # define __format__ format # define __printf__ printf # endif # endif struct output; typedef void (*delayed_routine_t) PARAMS ((FILE * stream, void * arg)); /* * Maintenance */ struct output * output_new PARAMS ((const char * name)); void output_free PARAMS ((struct output * out)); void output_report PARAMS ((struct output * out, FILE * stream)); # if defined (__STDC__) && __STDC__ extern void output (struct output * out, const char *format, ...) __attribute__ ((__format__ (__printf__, 2, 3))); # else void output (); # endif void output_char PARAMS ((struct output * out, uchar c)); void output_delayed_int PARAMS ((struct output * out, int * ptr)); void output_delayed_string PARAMS ((struct output * out, uchar ** ptr)); void output_delayed_chunk PARAMS ((struct output * out, struct output * sub_out)); struct a2ps_job; void output_file PARAMS ((struct output * out, struct a2ps_job * job, const char *name, const char *suffix)); void output_delayed_routine PARAMS ((struct output * out, delayed_routine_t fn, void * fn_arg)); void output_to_void PARAMS ((struct output * out, int forget)); int output_is_to_void PARAMS ((struct output * out)); /* * Debug info */ void output_self_print PARAMS ((struct output * out, FILE * stream)); /* * Dumping the content somewhere */ void undivert PARAMS ((struct a2ps_job * job)); void output_dump PARAMS ((struct output * out, FILE * stream)); #endif a2ps-4.14/lib/README0000644000175000017500000000135507440740400013256 0ustar mhattamhatta 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.14/lib/xmalloc.c0000755000175000017500000000556710735322362014221 0ustar mhattamhatta/* xmalloc.c -- malloc with out of memory checking Copyright (C) 1990-1997, 98, 99 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if HAVE_CONFIG_H # include #endif #include #if STDC_HEADERS # include #else void *calloc (); void *malloc (); void *realloc (); void free (); #endif #if ENABLE_NLS # include # define _(Text) gettext (Text) #else # define textdomain(Domain) # define _(Text) Text #endif #define N_(Text) Text #include "error.h" #include "xalloc.h" #ifndef EXIT_FAILURE # define EXIT_FAILURE 1 #endif #ifndef HAVE_DONE_WORKING_MALLOC_CHECK you must run the autoconf test for a properly working malloc -- see malloc.m4 #endif #ifndef HAVE_DONE_WORKING_REALLOC_CHECK you must run the autoconf test for a properly working realloc -- see realloc.m4 #endif /* Exit value when the requested amount of memory is not available. The caller may set it to some other value. */ int xalloc_exit_failure = EXIT_FAILURE; /* If non NULL, call this function when memory is exhausted. */ void (*xalloc_fail_func) PARAMS ((void)) = 0; /* If XALLOC_FAIL_FUNC is NULL, or does return, display this message before exiting when memory is exhausted. Goes through gettext. */ char *const xalloc_msg_memory_exhausted = N_("Memory exhausted"); void xalloc_die (void) { if (xalloc_fail_func) (*xalloc_fail_func) (); error (xalloc_exit_failure, 0, "%s", _(xalloc_msg_memory_exhausted)); /* The `noreturn' cannot be given to error, since it may return if its first argument is 0. To help compilers understand the xalloc_die does terminate, call exit. */ exit (EXIT_FAILURE); } /* Allocate N bytes of memory dynamically, with error checking. */ void * xmalloc (size_t n) { void *p; p = malloc (n); if (p == 0) xalloc_die (); return p; } /* Change the size of an allocated block of memory P to N bytes, with error checking. If P is NULL, run xmalloc. */ void * xrealloc (void *p, size_t n) { p = realloc (p, n); if (p == 0) xalloc_die (); return p; } /* Allocate memory for N elements of S bytes, with error checking. */ void * xcalloc (size_t n, size_t s) { void *p; p = calloc (n, s); if (p == 0) xalloc_die (); return p; } a2ps-4.14/lib/rename.c0000644000175000017500000000667410735322362014026 0ustar mhattamhatta/* BSD compatible rename and directory rename function. Copyright (C) 1988, 1990, 1999 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if HAVE_CONFIG_H # include #endif /* Needed for some prototypes under OS/2. */ #include #include #include #if HAVE_UNISTD_H # include #endif #include #ifndef errno extern int errno; #endif #if STAT_MACROS_BROKEN # undef S_ISDIR #endif #if !defined(S_ISDIR) && defined(S_IFDIR) # define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) #endif /* Rename file FROM to file TO. Return 0 if successful, -1 if not. */ int rename (const char *from, const char *to) { struct stat from_stats, to_stats; if (stat (from, &from_stats)) return -1; /* Be careful not to unlink `from' if it happens to be equal to `to' or (on filesystems that silently truncate filenames after 14 characters) if `from' and `to' share the significant characters. */ if (stat (to, &to_stats)) { if (errno != ENOENT) return -1; } else { if ((from_stats.st_dev == to_stats.st_dev) && (from_stats.st_ino == to_stats.st_ino)) /* `from' and `to' designate the same file on that filesystem. */ return 0; if (unlink (to) && errno != ENOENT) return -1; } #ifdef MVDIR /* If MVDIR is defined, it should be the full filename of a setuid root program able to link and unlink directories. If MVDIR is not defined, then the capability of renaming directories may be missing. */ if (S_ISDIR (from_stats.st_mode)) { /* Need a setuid root process to link and unlink directories. */ int status; pid_t pid = fork (); switch (pid) { case -1: /* Error. */ return -1; /* errno already set */ case 0: /* Child. */ execl (MVDIR, "mvdir", from, to, (char *) 0); _exit (1); default: /* Parent. */ while (wait (&status) != pid) /* Do nothing. */ ; if (status) { /* MVDIR failed. */ errno = EIO; return -1; } } } else #endif /* MVDIR */ #if HAVE_LINK /* This is typically under Unix. */ { if (link (from, to)) return -1; if (unlink (from) && errno != ENOENT) { unlink (to); return -1; } } #elif HAVE_RENAME /* OS/2 for instance lacks `link' (but has `unlink'), and does provide `rename'. Nevertheless the semantics of OS/2 rename differs from that of Unix', in that rename (FROM, TO) fails if TO exists. Here, yet we know FROM exists, and TO was unlinked. */ /* Make sure to call the system's rename. */ #undef rename { if (rename (from, to)) return -1; } #else /* !HAVE_LINK && !HAVE_RENAME */ /* There are no ways to implement rename. */ #error #endif /* !HAVE_LINK && !HAVE_RENAME */ return 0; } a2ps-4.14/lib/parseppd.output0000644000175000017500000001026410735337331015503 0ustar mhattamhatta文法 0 $accept: file $end 1 file: ppd 2 ppd: /* 空 */ 3 | ppd font_clause EOL 4 | ppd tModelName ':' STRING EOL 5 | ppd tNickName ':' STRING EOL 6 | ppd SYMBOL 7 | ppd STRING 8 | ppd USTRING 9 | ppd ':' 10 | ppd EOL 11 font_clause: tFont SYMBOL ':' SYMBOL STRING SYMBOL SYMBOL 12 | tDefaultFont ':' SYMBOL 出ç¾ä½ç½®ã®è¦å‰‡ã«ã‚ˆã‚‹çµ‚端 $end (0) 0 ':' (58) 4 5 9 11 12 error (256) EOL (258) 3 4 5 10 tDefaultFont (259) 12 tFont (260) 11 tModelName (261) 4 tNickName (262) 5 STRING (263) 4 5 7 11 SYMBOL (264) 6 11 12 USTRING (265) 8 出ç¾ä½ç½®ã®è¦å‰‡ã«ã‚ˆã‚‹éžçµ‚端 $accept (12) 左辺: 0 file (13) 左辺: 1, å³è¾º: 0 ppd (14) 左辺: 2 3 4 5 6 7 8 9 10, å³è¾º: 1 3 4 5 6 7 8 9 10 font_clause (15) 左辺: 11 12, å³è¾º: 3 状態 0 0 $accept: . file $end $default reduce using rule 2 (ppd) file go to state 1 ppd go to state 2 状態 1 0 $accept: file . $end $end shift, and go to state 3 状態 2 1 file: ppd . 3 ppd: ppd . font_clause EOL 4 | ppd . tModelName ':' STRING EOL 5 | ppd . tNickName ':' STRING EOL 6 | ppd . SYMBOL 7 | ppd . STRING 8 | ppd . USTRING 9 | ppd . ':' 10 | ppd . EOL EOL shift, and go to state 4 tDefaultFont shift, and go to state 5 tFont shift, and go to state 6 tModelName shift, and go to state 7 tNickName shift, and go to state 8 STRING shift, and go to state 9 SYMBOL shift, and go to state 10 USTRING shift, and go to state 11 ':' shift, and go to state 12 $default reduce using rule 1 (file) font_clause go to state 13 状態 3 0 $accept: file $end . $default accept 状態 4 10 ppd: ppd EOL . $default reduce using rule 10 (ppd) 状態 5 12 font_clause: tDefaultFont . ':' SYMBOL ':' shift, and go to state 14 状態 6 11 font_clause: tFont . SYMBOL ':' SYMBOL STRING SYMBOL SYMBOL SYMBOL shift, and go to state 15 状態 7 4 ppd: ppd tModelName . ':' STRING EOL ':' shift, and go to state 16 状態 8 5 ppd: ppd tNickName . ':' STRING EOL ':' shift, and go to state 17 状態 9 7 ppd: ppd STRING . $default reduce using rule 7 (ppd) 状態 10 6 ppd: ppd SYMBOL . $default reduce using rule 6 (ppd) 状態 11 8 ppd: ppd USTRING . $default reduce using rule 8 (ppd) 状態 12 9 ppd: ppd ':' . $default reduce using rule 9 (ppd) 状態 13 3 ppd: ppd font_clause . EOL EOL shift, and go to state 18 状態 14 12 font_clause: tDefaultFont ':' . SYMBOL SYMBOL shift, and go to state 19 状態 15 11 font_clause: tFont SYMBOL . ':' SYMBOL STRING SYMBOL SYMBOL ':' shift, and go to state 20 状態 16 4 ppd: ppd tModelName ':' . STRING EOL STRING shift, and go to state 21 状態 17 5 ppd: ppd tNickName ':' . STRING EOL STRING shift, and go to state 22 状態 18 3 ppd: ppd font_clause EOL . $default reduce using rule 3 (ppd) 状態 19 12 font_clause: tDefaultFont ':' SYMBOL . $default reduce using rule 12 (font_clause) 状態 20 11 font_clause: tFont SYMBOL ':' . SYMBOL STRING SYMBOL SYMBOL SYMBOL shift, and go to state 23 状態 21 4 ppd: ppd tModelName ':' STRING . EOL EOL shift, and go to state 24 状態 22 5 ppd: ppd tNickName ':' STRING . EOL EOL shift, and go to state 25 状態 23 11 font_clause: tFont SYMBOL ':' SYMBOL . STRING SYMBOL SYMBOL STRING shift, and go to state 26 状態 24 4 ppd: ppd tModelName ':' STRING EOL . $default reduce using rule 4 (ppd) 状態 25 5 ppd: ppd tNickName ':' STRING EOL . $default reduce using rule 5 (ppd) 状態 26 11 font_clause: tFont SYMBOL ':' SYMBOL STRING . SYMBOL SYMBOL SYMBOL shift, and go to state 27 状態 27 11 font_clause: tFont SYMBOL ':' SYMBOL STRING SYMBOL . SYMBOL SYMBOL shift, and go to state 28 状態 28 11 font_clause: tFont SYMBOL ':' SYMBOL STRING SYMBOL SYMBOL . $default reduce using rule 11 (font_clause) a2ps-4.14/lib/getopt.h0000644000175000017500000001334710735322367014066 0ustar mhattamhatta/* Declarations for getopt. Copyright (C) 1989,90,91,92,93,94,96,97,98 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 program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 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. */ #ifndef _GETOPT_H #ifndef __need_getopt # define _GETOPT_H 1 #endif #ifdef __cplusplus extern "C" { #endif /* For communication from `getopt' to the caller. When `getopt' finds an option that takes an argument, the argument value is returned here. Also, when `ordering' is RETURN_IN_ORDER, each non-option ARGV-element is returned here. */ extern char *optarg; /* Index in ARGV of the next element to be scanned. This is used for communication to and from the caller and for communication between successive calls to `getopt'. On entry to `getopt', zero means this is the first call; initialize. When `getopt' returns -1, this is the index of the first of the non-option elements that the caller should itself scan. Otherwise, `optind' communicates from one call to the next how much of ARGV has been scanned so far. */ extern int optind; /* Callers store zero here to inhibit the error message `getopt' prints for unrecognized options. */ extern int opterr; /* Set to an option character which was unrecognized. */ extern int optopt; #ifndef __need_getopt /* Describe the long-named options requested by the application. The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector of `struct option' terminated by an element containing a name which is zero. The field `has_arg' is: no_argument (or 0) if the option does not take an argument, required_argument (or 1) if the option requires an argument, optional_argument (or 2) if the option takes an optional argument. If the field `flag' is not NULL, it points to a variable that is set to the value given in the field `val' when the option is found, but left unchanged if the option is not found. To have a long-named option do something other than set an `int' to a compiled-in constant, such as set a value from `optarg', set the option's `flag' field to zero and its `val' field to a nonzero value (the equivalent single-letter option character, if there is one). For long options that have a zero `flag' field, `getopt' returns the contents of the `val' field. */ struct option { # if defined __STDC__ && __STDC__ const char *name; # else char *name; # endif /* has_arg can't be an enum because some compilers complain about type mismatches in all the code that assumes it is an int. */ int has_arg; int *flag; int val; }; /* Names for the values of the `has_arg' field of `struct option'. */ # define no_argument 0 # define required_argument 1 # define optional_argument 2 #endif /* need getopt */ /* Get definitions and prototypes for functions to process the arguments in ARGV (ARGC of them, minus the program name) for options given in OPTS. Return the option character from OPTS just read. Return -1 when there are no more options. For unrecognized options, or options missing arguments, `optopt' is set to the option letter, and '?' is returned. The OPTS string is a list of characters which are recognized option letters, optionally followed by colons, specifying that that letter takes an argument, to be placed in `optarg'. If a letter in OPTS is followed by two colons, its argument is optional. This behavior is specific to the GNU `getopt'. The argument `--' causes premature termination of argument scanning, explicitly telling `getopt' that there are no more options. If OPTS begins with `--', then non-option arguments are treated as arguments to the option '\0'. This behavior is specific to the GNU `getopt'. */ #if defined __STDC__ && __STDC__ # ifdef __GNU_LIBRARY__ /* Many other libraries have conflicting prototypes for getopt, with differences in the consts, in stdlib.h. To avoid compilation errors, only prototype getopt for the GNU C library. */ extern int getopt (int __argc, char *const *__argv, const char *__shortopts); # else /* not __GNU_LIBRARY__ */ extern int getopt (); # endif /* __GNU_LIBRARY__ */ # ifndef __need_getopt extern int getopt_long (int __argc, char *const *__argv, const char *__shortopts, const struct option *__longopts, int *__longind); extern int getopt_long_only (int __argc, char *const *__argv, const char *__shortopts, const struct option *__longopts, int *__longind); /* Internal only. Users should not call this directly. */ extern int _getopt_internal (int __argc, char *const *__argv, const char *__shortopts, const struct option *__longopts, int *__longind, int __long_only); # endif #else /* not __STDC__ */ extern int getopt (); # ifndef __need_getopt extern int getopt_long (); extern int getopt_long_only (); extern int _getopt_internal (); # endif #endif /* __STDC__ */ #ifdef __cplusplus } #endif /* Make sure we later can get all the definitions and declarations. */ #undef __need_getopt #endif /* getopt.h */ a2ps-4.14/lib/getuid.c0000644000175000017500000000170110735322362014022 0ustar mhattamhatta/* * Replacement for the getuid functions for micro ports. * Copyright (c) 1996 Markku Rossi. * * Author: Markku Rossi */ /* * This file is part of GNU enscript. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 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 int getuid () { return 0; } a2ps-4.14/lib/pathmax.h0000644000175000017500000000334310735322367014221 0ustar mhattamhatta/* Define PATH_MAX somehow. Requires sys/types.h. Copyright (C) 1992, 1999 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef _PATHMAX_H # define _PATHMAX_H # ifdef HAVE_UNISTD_H # include # endif /* Non-POSIX BSD systems might have gcc's limits.h, which doesn't define PATH_MAX but might cause redefinition warnings when sys/param.h is later included (as on MORE/BSD 4.3). */ # if defined(_POSIX_VERSION) || (defined(HAVE_LIMITS_H) && !defined(__GNUC__)) # include # endif # ifndef _POSIX_PATH_MAX # define _POSIX_PATH_MAX 255 # endif # if !defined(PATH_MAX) && defined(_PC_PATH_MAX) # define PATH_MAX (pathconf ("/", _PC_PATH_MAX) < 1 ? 1024 \ : pathconf ("/", _PC_PATH_MAX)) # endif /* Don't include sys/param.h if it already has been. */ # if defined(HAVE_SYS_PARAM_H) && !defined(PATH_MAX) && !defined(MAXPATHLEN) # include # endif # if !defined(PATH_MAX) && defined(MAXPATHLEN) # define PATH_MAX MAXPATHLEN # endif # ifndef PATH_MAX # define PATH_MAX _POSIX_PATH_MAX # endif #endif /* _PATHMAX_H */ a2ps-4.14/lib/gettext.h0000644000175000017500000000575110735322367014250 0ustar mhattamhatta/* Convenience header for conditional use of GNU . Copyright (C) 1995-1998, 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 Library General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that 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 this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef _LIBGETTEXT_H #define _LIBGETTEXT_H 1 /* NLS can be disabled through the configure --disable-nls option. */ #if ENABLE_NLS /* Get declarations of GNU message catalog functions. */ # include #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 a NOP. We don't include as well because people using "gettext.h" will not include , and also including would fail on SunOS 4, whereas is OK. */ #if defined(__sun) # include #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". */ # define gettext(Msgid) ((const char *) (Msgid)) # define dgettext(Domainname, Msgid) ((const char *) (Msgid)) # define dcgettext(Domainname, Msgid, Category) ((const char *) (Msgid)) # define ngettext(Msgid1, Msgid2, N) \ ((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2)) # define dngettext(Domainname, Msgid1, Msgid2, N) \ ((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2)) # define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \ ((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2)) # define textdomain(Domainname) ((const char *) (Domainname)) # define bindtextdomain(Domainname, Dirname) ((const char *) (Dirname)) # define bind_textdomain_codeset(Domainname, Codeset) ((const char *) (Codeset)) #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 #endif /* _LIBGETTEXT_H */ a2ps-4.14/lib/metaseq.h0000644000175000017500000000524510735324674014224 0ustar mhattamhatta/* * metaseq.h * * handling of the metasequences * Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana * Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana * $Id: metaseq.h,v 1.1.1.1.2.1 2007/12/29 01:58:20 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. */ /* * $Id: metaseq.h,v 1.1.1.1.2.1 2007/12/29 01:58:20 mhatta Exp $ */ #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 PARAMS ((void)); void macro_meta_sequence_table_free PARAMS ((struct pair_htable * table)); /* Return true if valid definition, false otherwise */ bool macro_meta_sequence_add PARAMS ((struct a2ps_job * job, const char * key, const char * value)); void macro_meta_sequence_delete PARAMS ((struct a2ps_job * job, const char * key)); char * macro_meta_sequence_get PARAMS ((struct a2ps_job * job, const char * key)); void macro_meta_sequences_list_short PARAMS ((struct a2ps_job * job, FILE * stream)); void macro_meta_sequences_list_long PARAMS ((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 */ uchar * expand_user_string PARAMS ((struct a2ps_job * job, struct file_job * file, const uchar * context_name, const uchar * 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.14/lib/strtoull.c0000644000175000017500000000212010735322362014425 0ustar mhattamhatta/* Function to parse an `unsigned long long int' from text. Copyright (C) 1995, 1996, 1997, 1999 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 program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 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. */ #define QUAD 1 #include "strtoul.c" #ifdef _LIBC strong_alias (__strtoull_internal, __strtouq_internal) weak_alias (strtoull, strtouq) #endif a2ps-4.14/lib/argv.h0000644000175000017500000000756710735322367013532 0ustar mhattamhatta/* Create and destroy argument vectors (argv's) Copyright (C) 1992 Free Software Foundation, Inc. Written by Fred Fish @ Cygnus Support Modified by Akim Demaille so that it can compile out of liberty This file is part of the libiberty library. Libiberty 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. Libiberty is distributed in the hope that 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 libiberty; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* 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_ #if HAVE_CONFIG_H # include "config.h" #endif /* Support of prototyping when possible */ #ifndef PARAMS # if defined PROTOTYPES || defined __STDC__ # define PARAMS(Args) Args # else # define PARAMS(Args) () # endif #endif /* 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 PARAMS ((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 PARAMS ((char **vector)); void freeargv_from PARAMS ((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 PARAMS ((const char *input, int * argc)); char **buildargv PARAMS ((const char *input)); #endif /* !defined (_ARGC_H_) */ a2ps-4.14/lib/getopt.c0000644000175000017500000007240210735322362014051 0ustar mhattamhatta/* Getopt for GNU. NOTE: The canonical source of this file is maintained with the GNU C Library. Bugs can be reported to bug-glibc@gnu.org. Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* This tells Alpha OSF/1 not to define a getopt prototype in . Ditto for AIX 3.2 and . */ #ifndef _NO_PROTO # define _NO_PROTO #endif #ifdef HAVE_CONFIG_H # include #else # if !defined __STDC__ || !__STDC__ /* This is a separate conditional since some stdc systems reject `defined (const)'. */ # ifndef const # define const # endif # endif #endif #include /* Comment out all this code if we are using the GNU C Library, and are not actually compiling the library itself. 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. */ #define GETOPT_INTERFACE_VERSION 2 #if !defined _LIBC && defined __GLIBC__ && __GLIBC__ >= 2 # include # if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION # define ELIDE_CODE # endif #endif #ifndef ELIDE_CODE /* This needs to come after some library #include to get __GNU_LIBRARY__ defined. */ #ifdef __GNU_LIBRARY__ /* Don't include stdlib.h for non-GNU C libraries because some of them contain conflicting prototypes for getopt. */ # include # include #endif /* GNU C library. */ #ifdef VMS # include # if HAVE_STRING_H - 0 # include # endif #endif #ifndef _ /* This is for other GNU distributions with internationalized messages. When compiling libc, the _ macro is predefined. */ # ifdef HAVE_LIBINTL_H # include # define _(msgid) gettext (msgid) # else # define _(msgid) (msgid) # endif #endif /* This version of `getopt' appears to the caller like standard Unix `getopt' but it behaves differently for the user, since it allows the user to intersperse the options with the other arguments. As `getopt' works, it permutes the elements of ARGV so that, when it is done, all the options precede everything else. Thus all application programs are extended to handle flexible argument order. Setting the environment variable POSIXLY_CORRECT disables permutation. Then the behavior is completely standard. GNU application programs can use a third alternative mode in which they can distinguish the relative order of options and other arguments. */ #include "getopt.h" /* For communication from `getopt' to the caller. When `getopt' finds an option that takes an argument, the argument value is returned here. Also, when `ordering' is RETURN_IN_ORDER, each non-option ARGV-element is returned here. */ char *optarg; /* Index in ARGV of the next element to be scanned. This is used for communication to and from the caller and for communication between successive calls to `getopt'. On entry to `getopt', zero means this is the first call; initialize. When `getopt' returns -1, this is the index of the first of the non-option elements that the caller should itself scan. Otherwise, `optind' communicates from one call to the next how much of ARGV has been scanned so far. */ /* 1003.2 says this must be 1 before any call. */ int optind = 1; /* Formerly, initialization of getopt depended on optind==0, which causes problems with re-calling getopt as programs generally don't know that. */ int __getopt_initialized; /* The next char to be scanned in the option-element in which the last option character we returned was found. This allows us to pick up the scan where we left off. If this is zero, or a null string, it means resume the scan by advancing to the next ARGV-element. */ static char *nextchar; /* Callers store zero here to inhibit the error message for unrecognized options. */ int opterr = 1; /* Set to an option character which was unrecognized. This must be initialized on some systems to avoid linking in the system's own getopt implementation. */ int optopt = '?'; /* Describe how to deal with options that follow non-option ARGV-elements. If the caller did not specify anything, the default is REQUIRE_ORDER if the environment variable POSIXLY_CORRECT is defined, PERMUTE otherwise. REQUIRE_ORDER means don't recognize them as options; stop option processing when the first non-option is seen. This is what Unix does. This mode of operation is selected by either setting the environment variable POSIXLY_CORRECT, or using `+' as the first character of the list of option characters. PERMUTE is the default. We permute the contents of ARGV as we scan, so that eventually all the non-options are at the end. This allows options to be given in any order, even with programs that were not written to expect this. RETURN_IN_ORDER is an option available to programs that were written to expect options and other ARGV-elements in any order and that care about the ordering of the two. We describe each non-option ARGV-element as if it were the argument of an option with character code 1. Using `-' as the first character of the list of option characters selects this mode of operation. The special argument `--' forces an end of option-scanning regardless of the value of `ordering'. In the case of RETURN_IN_ORDER, only `--' can cause `getopt' to return -1 with `optind' != ARGC. */ static enum { REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER } ordering; /* Value of POSIXLY_CORRECT environment variable. */ static char *posixly_correct; #ifdef __GNU_LIBRARY__ /* We want to avoid inclusion of string.h with non-GNU libraries because there are many ways it can cause trouble. On some systems, it contains special magic macros that don't work in GCC. */ # include # define my_index strchr #else # if HAVE_STRING_H # include # else # include # endif /* Avoid depending on library functions or files whose names are inconsistent. */ #ifndef getenv extern char *getenv (); #endif static char * my_index (str, chr) const char *str; int chr; { while (*str) { if (*str == chr) return (char *) str; str++; } return 0; } /* If using GCC, we can safely declare strlen this way. If not using GCC, it is ok not to declare it. */ #ifdef __GNUC__ /* Note that Motorola Delta 68k R3V7 comes with GCC but not stddef.h. That was relevant to code that was here before. */ # if (!defined __STDC__ || !__STDC__) && !defined strlen /* gcc with -traditional declares the built-in strlen to return int, and has done so at least since version 3.4.5. -- rms. */ extern int strlen (const char *); # endif /* not __STDC__ */ #endif /* __GNUC__ */ #endif /* not __GNU_LIBRARY__ */ /* Handle permutation of arguments. */ /* Describe the part of ARGV that contains non-options that have been skipped. `first_nonopt' is the index in ARGV of the first of them; `last_nonopt' is the index after the last of them. */ static int first_nonopt; static int last_nonopt; #ifdef _LIBC /* Bash 2.0 gives us an environment variable containing flags indicating ARGV elements that should not be considered arguments. */ /* Defined in getopt_init.c */ extern char *__getopt_nonoption_flags; static int nonoption_flags_max_len; static int nonoption_flags_len; static int original_argc; static char *const *original_argv; /* Make sure the environment variable bash 2.0 puts in the environment is valid for the getopt call we must make sure that the ARGV passed to getopt is that one passed to the process. */ static void __attribute__ ((unused)) store_args_and_env (int argc, char *const *argv) { /* XXX This is no good solution. We should rather copy the args so that we can compare them later. But we must not use malloc(3). */ original_argc = argc; original_argv = argv; } # ifdef text_set_element text_set_element (__libc_subinit, store_args_and_env); # endif /* text_set_element */ # define SWAP_FLAGS(ch1, ch2) \ if (nonoption_flags_len > 0) \ { \ char __tmp = __getopt_nonoption_flags[ch1]; \ __getopt_nonoption_flags[ch1] = __getopt_nonoption_flags[ch2]; \ __getopt_nonoption_flags[ch2] = __tmp; \ } #else /* !_LIBC */ # define SWAP_FLAGS(ch1, ch2) #endif /* _LIBC */ /* Exchange two adjacent subsequences of ARGV. One subsequence is elements [first_nonopt,last_nonopt) which contains all the non-options that have been skipped so far. The other is elements [last_nonopt,optind), which contains all the options processed since those non-options were skipped. `first_nonopt' and `last_nonopt' are relocated so that they describe the new indices of the non-options in ARGV after they are moved. */ #if defined __STDC__ && __STDC__ static void exchange (char **); #endif static void exchange (argv) char **argv; { int bottom = first_nonopt; int middle = last_nonopt; int top = optind; char *tem; /* Exchange the shorter segment with the far end of the longer segment. That puts the shorter segment into the right place. It leaves the longer segment in the right place overall, but it consists of two parts that need to be swapped next. */ #ifdef _LIBC /* First make sure the handling of the `__getopt_nonoption_flags' string can work normally. Our top argument must be in the range of the string. */ if (nonoption_flags_len > 0 && top >= nonoption_flags_max_len) { /* We must extend the array. The user plays games with us and presents new arguments. */ char *new_str = malloc (top + 1); if (new_str == NULL) nonoption_flags_len = nonoption_flags_max_len = 0; else { memset (__mempcpy (new_str, __getopt_nonoption_flags, nonoption_flags_max_len), '\0', top + 1 - nonoption_flags_max_len); nonoption_flags_max_len = top + 1; __getopt_nonoption_flags = new_str; } } #endif while (top > middle && middle > bottom) { if (top - middle > middle - bottom) { /* Bottom segment is the short one. */ int len = middle - bottom; register int i; /* Swap it with the top part of the top segment. */ for (i = 0; i < len; i++) { tem = argv[bottom + i]; argv[bottom + i] = argv[top - (middle - bottom) + i]; argv[top - (middle - bottom) + i] = tem; SWAP_FLAGS (bottom + i, top - (middle - bottom) + i); } /* Exclude the moved bottom segment from further swapping. */ top -= len; } else { /* Top segment is the short one. */ int len = top - middle; register int i; /* Swap it with the bottom part of the bottom segment. */ for (i = 0; i < len; i++) { tem = argv[bottom + i]; argv[bottom + i] = argv[middle + i]; argv[middle + i] = tem; SWAP_FLAGS (bottom + i, middle + i); } /* Exclude the moved top segment from further swapping. */ bottom += len; } } /* Update records for the slots the non-options now occupy. */ first_nonopt += (optind - last_nonopt); last_nonopt = optind; } /* Initialize the internal data when the first call is made. */ #if defined __STDC__ && __STDC__ static const char *_getopt_initialize (int, char *const *, const char *); #endif static const char * _getopt_initialize (argc, argv, optstring) int argc; char *const *argv; const char *optstring; { /* Start processing options with ARGV-element 1 (since ARGV-element 0 is the program name); the sequence of previously skipped non-option ARGV-elements is empty. */ first_nonopt = last_nonopt = optind; nextchar = NULL; posixly_correct = getenv ("POSIXLY_CORRECT"); /* Determine how to handle the ordering of options and nonoptions. */ if (optstring[0] == '-') { ordering = RETURN_IN_ORDER; ++optstring; } else if (optstring[0] == '+') { ordering = REQUIRE_ORDER; ++optstring; } else if (posixly_correct != NULL) ordering = REQUIRE_ORDER; else ordering = PERMUTE; #ifdef _LIBC if (posixly_correct == NULL && argc == original_argc && argv == original_argv) { if (nonoption_flags_max_len == 0) { if (__getopt_nonoption_flags == NULL || __getopt_nonoption_flags[0] == '\0') nonoption_flags_max_len = -1; else { const char *orig_str = __getopt_nonoption_flags; int len = nonoption_flags_max_len = strlen (orig_str); if (nonoption_flags_max_len < argc) nonoption_flags_max_len = argc; __getopt_nonoption_flags = (char *) malloc (nonoption_flags_max_len); if (__getopt_nonoption_flags == NULL) nonoption_flags_max_len = -1; else memset (__mempcpy (__getopt_nonoption_flags, orig_str, len), '\0', nonoption_flags_max_len - len); } } nonoption_flags_len = nonoption_flags_max_len; } else nonoption_flags_len = 0; #endif return optstring; } /* Scan elements of ARGV (whose length is ARGC) for option characters given in OPTSTRING. If an element of ARGV starts with '-', and is not exactly "-" or "--", then it is an option element. The characters of this element (aside from the initial '-') are option characters. If `getopt' is called repeatedly, it returns successively each of the option characters from each of the option elements. If `getopt' finds another option character, it returns that character, updating `optind' and `nextchar' so that the next call to `getopt' can resume the scan with the following option character or ARGV-element. If there are no more option characters, `getopt' returns -1. Then `optind' is the index in ARGV of the first ARGV-element that is not an option. (The ARGV-elements have been permuted so that those that are not options now come last.) OPTSTRING is a string containing the legitimate option characters. If an option character is seen that is not listed in OPTSTRING, return '?' after printing an error message. If you set `opterr' to zero, the error message is suppressed but we still return '?'. If a char in OPTSTRING is followed by a colon, that means it wants an arg, so the following text in the same ARGV-element, or the text of the following ARGV-element, is returned in `optarg'. Two colons mean an option that wants an optional arg; if there is text in the current ARGV-element, it is returned in `optarg', otherwise `optarg' is set to zero. If OPTSTRING starts with `-' or `+', it requests different methods of handling the non-option ARGV-elements. See the comments about RETURN_IN_ORDER and REQUIRE_ORDER, above. Long-named options begin with `--' instead of `-'. Their names may be abbreviated as long as the abbreviation is unique or is an exact match for some defined option. If they have an argument, it follows the option name in the same ARGV-element, separated from the option name by a `=', or else the in next ARGV-element. When `getopt' finds a long-named option, it returns 0 if that option's `flag' field is nonzero, the value of the option's `val' field if the `flag' field is zero. The elements of ARGV aren't really const, because we permute them. But we pretend they're const in the prototype to be compatible with other systems. LONGOPTS is a vector of `struct option' terminated by an element containing a name which is zero. LONGIND returns the index in LONGOPT of the long-named option found. It is only valid when a long-named option has been found by the most recent call. If LONG_ONLY is nonzero, '-' as well as '--' can introduce long-named options. */ int _getopt_internal (argc, argv, optstring, longopts, longind, long_only) int argc; char *const *argv; const char *optstring; const struct option *longopts; int *longind; int long_only; { optarg = NULL; if (optind == 0 || !__getopt_initialized) { if (optind == 0) optind = 1; /* Don't scan ARGV[0], the program name. */ optstring = _getopt_initialize (argc, argv, optstring); __getopt_initialized = 1; } /* Test whether ARGV[optind] points to a non-option argument. Either it does not have option syntax, or there is an environment flag from the shell indicating it is not an option. The later information is only used when the used in the GNU libc. */ #ifdef _LIBC # define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0' \ || (optind < nonoption_flags_len \ && __getopt_nonoption_flags[optind] == '1')) #else # define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0') #endif if (nextchar == NULL || *nextchar == '\0') { /* Advance to the next ARGV-element. */ /* Give FIRST_NONOPT & LAST_NONOPT rational values if OPTIND has been moved back by the user (who may also have changed the arguments). */ if (last_nonopt > optind) last_nonopt = optind; if (first_nonopt > optind) first_nonopt = optind; if (ordering == PERMUTE) { /* If we have just processed some options following some non-options, exchange them so that the options come first. */ if (first_nonopt != last_nonopt && last_nonopt != optind) exchange ((char **) argv); else if (last_nonopt != optind) first_nonopt = optind; /* Skip any additional non-options and extend the range of non-options previously skipped. */ while (optind < argc && NONOPTION_P) optind++; last_nonopt = optind; } /* The special ARGV-element `--' means premature end of options. Skip it like a null option, then exchange with previous non-options as if it were an option, then skip everything else like a non-option. */ if (optind != argc && !strcmp (argv[optind], "--")) { optind++; if (first_nonopt != last_nonopt && last_nonopt != optind) exchange ((char **) argv); else if (first_nonopt == last_nonopt) first_nonopt = optind; last_nonopt = argc; optind = argc; } /* If we have done all the ARGV-elements, stop the scan and back over any non-options that we skipped and permuted. */ if (optind == argc) { /* Set the next-arg-index to point at the non-options that we previously skipped, so the caller will digest them. */ if (first_nonopt != last_nonopt) optind = first_nonopt; return -1; } /* If we have come to a non-option and did not permute it, either stop the scan or describe it to the caller and pass it by. */ if (NONOPTION_P) { if (ordering == REQUIRE_ORDER) return -1; optarg = argv[optind++]; return 1; } /* We have found another option-ARGV-element. Skip the initial punctuation. */ nextchar = (argv[optind] + 1 + (longopts != NULL && argv[optind][1] == '-')); } /* Decode the current option-ARGV-element. */ /* Check whether the ARGV-element is a long option. If long_only and the ARGV-element has the form "-f", where f is a valid short option, don't consider it an abbreviated form of a long option that starts with f. Otherwise there would be no way to give the -f short option. On the other hand, if there's a long option "fubar" and the ARGV-element is "-fu", do consider that an abbreviation of the long option, just like "--fu", and not "-f" with arg "u". This distinction seems to be the most useful approach. */ if (longopts != NULL && (argv[optind][1] == '-' || (long_only && (argv[optind][2] || !my_index (optstring, argv[optind][1]))))) { char *nameend; const struct option *p; const struct option *pfound = NULL; int exact = 0; int ambig = 0; int indfound = -1; int option_index; for (nameend = nextchar; *nameend && *nameend != '='; nameend++) /* Do nothing. */ ; /* Test all long options for either exact match or abbreviated matches. */ for (p = longopts, option_index = 0; p->name; p++, option_index++) if (!strncmp (p->name, nextchar, nameend - nextchar)) { if ((unsigned int) (nameend - nextchar) == (unsigned int) strlen (p->name)) { /* Exact match found. */ pfound = p; indfound = option_index; exact = 1; break; } else if (pfound == NULL) { /* First nonexact match found. */ pfound = p; indfound = option_index; } else /* Second or later nonexact match found. */ ambig = 1; } if (ambig && !exact) { if (opterr) fprintf (stderr, _("%s: option `%s' is ambiguous\n"), argv[0], argv[optind]); nextchar += strlen (nextchar); optind++; optopt = 0; return '?'; } if (pfound != NULL) { option_index = indfound; optind++; if (*nameend) { /* Don't test has_arg with >, because some C compilers don't allow it to be used on enums. */ if (pfound->has_arg) optarg = nameend + 1; else { if (opterr) { if (argv[optind - 1][1] == '-') /* --option */ fprintf (stderr, _("%s: option `--%s' doesn't allow an argument\n"), argv[0], pfound->name); else /* +option or -option */ fprintf (stderr, _("%s: option `%c%s' doesn't allow an argument\n"), argv[0], argv[optind - 1][0], pfound->name); } nextchar += strlen (nextchar); optopt = pfound->val; return '?'; } } else if (pfound->has_arg == 1) { if (optind < argc) optarg = argv[optind++]; else { if (opterr) fprintf (stderr, _("%s: option `%s' requires an argument\n"), argv[0], argv[optind - 1]); nextchar += strlen (nextchar); optopt = pfound->val; return optstring[0] == ':' ? ':' : '?'; } } nextchar += strlen (nextchar); if (longind != NULL) *longind = option_index; if (pfound->flag) { *(pfound->flag) = pfound->val; return 0; } return pfound->val; } /* Can't find it as a long option. If this is not getopt_long_only, or the option starts with '--' or is not a valid short option, then it's an error. Otherwise interpret it as a short option. */ if (!long_only || argv[optind][1] == '-' || my_index (optstring, *nextchar) == NULL) { if (opterr) { if (argv[optind][1] == '-') /* --option */ fprintf (stderr, _("%s: unrecognized option `--%s'\n"), argv[0], nextchar); else /* +option or -option */ fprintf (stderr, _("%s: unrecognized option `%c%s'\n"), argv[0], argv[optind][0], nextchar); } nextchar = (char *) ""; optind++; optopt = 0; return '?'; } } /* Look at and handle the next short option-character. */ { char c = *nextchar++; char *temp = my_index (optstring, c); /* Increment `optind' when we start to process its last character. */ if (*nextchar == '\0') ++optind; if (temp == NULL || c == ':') { if (opterr) { if (posixly_correct) /* 1003.2 specifies the format of this message. */ fprintf (stderr, _("%s: illegal option -- %c\n"), argv[0], c); else fprintf (stderr, _("%s: invalid option -- %c\n"), argv[0], c); } optopt = c; return '?'; } /* Convenience. Treat POSIX -W foo same as long option --foo */ if (temp[0] == 'W' && temp[1] == ';') { char *nameend; const struct option *p; const struct option *pfound = NULL; int exact = 0; int ambig = 0; int indfound = 0; int option_index; /* This is an option that requires an argument. */ if (*nextchar != '\0') { optarg = nextchar; /* If we end this ARGV-element by taking the rest as an arg, we must advance to the next element now. */ optind++; } else if (optind == argc) { if (opterr) { /* 1003.2 specifies the format of this message. */ fprintf (stderr, _("%s: option requires an argument -- %c\n"), argv[0], c); } optopt = c; if (optstring[0] == ':') c = ':'; else c = '?'; return c; } else /* We already incremented `optind' once; increment it again when taking next ARGV-elt as argument. */ optarg = argv[optind++]; /* optarg is now the argument, see if it's in the table of longopts. */ for (nextchar = nameend = optarg; *nameend && *nameend != '='; nameend++) /* Do nothing. */ ; /* Test all long options for either exact match or abbreviated matches. */ for (p = longopts, option_index = 0; p->name; p++, option_index++) if (!strncmp (p->name, nextchar, nameend - nextchar)) { if ((unsigned int) (nameend - nextchar) == strlen (p->name)) { /* Exact match found. */ pfound = p; indfound = option_index; exact = 1; break; } else if (pfound == NULL) { /* First nonexact match found. */ pfound = p; indfound = option_index; } else /* Second or later nonexact match found. */ ambig = 1; } if (ambig && !exact) { if (opterr) fprintf (stderr, _("%s: option `-W %s' is ambiguous\n"), argv[0], argv[optind]); nextchar += strlen (nextchar); optind++; return '?'; } if (pfound != NULL) { option_index = indfound; if (*nameend) { /* Don't test has_arg with >, because some C compilers don't allow it to be used on enums. */ if (pfound->has_arg) optarg = nameend + 1; else { if (opterr) fprintf (stderr, _("\ %s: option `-W %s' doesn't allow an argument\n"), argv[0], pfound->name); nextchar += strlen (nextchar); return '?'; } } else if (pfound->has_arg == 1) { if (optind < argc) optarg = argv[optind++]; else { if (opterr) fprintf (stderr, _("%s: option `%s' requires an argument\n"), argv[0], argv[optind - 1]); nextchar += strlen (nextchar); return optstring[0] == ':' ? ':' : '?'; } } nextchar += strlen (nextchar); if (longind != NULL) *longind = option_index; if (pfound->flag) { *(pfound->flag) = pfound->val; return 0; } return pfound->val; } nextchar = NULL; return 'W'; /* Let the application handle it. */ } if (temp[1] == ':') { if (temp[2] == ':') { /* This is an option that accepts an argument optionally. */ if (*nextchar != '\0') { optarg = nextchar; optind++; } else optarg = NULL; nextchar = NULL; } else { /* This is an option that requires an argument. */ if (*nextchar != '\0') { optarg = nextchar; /* If we end this ARGV-element by taking the rest as an arg, we must advance to the next element now. */ optind++; } else if (optind == argc) { if (opterr) { /* 1003.2 specifies the format of this message. */ fprintf (stderr, _("%s: option requires an argument -- %c\n"), argv[0], c); } optopt = c; if (optstring[0] == ':') c = ':'; else c = '?'; } else /* We already incremented `optind' once; increment it again when taking next ARGV-elt as argument. */ optarg = argv[optind++]; nextchar = NULL; } } return c; } } int getopt (argc, argv, optstring) int argc; char *const *argv; const char *optstring; { return _getopt_internal (argc, argv, optstring, (const struct option *) 0, (int *) 0, 0); } #endif /* Not ELIDE_CODE. */ #ifdef TEST /* Compile with -DTEST to make an executable for use in testing the above definition of `getopt'. */ int main (argc, argv) int argc; char **argv; { int c; int digit_optind = 0; while (1) { int this_option_optind = optind ? optind : 1; c = getopt (argc, argv, "abc:d:0123456789"); if (c == -1) break; switch (c) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': if (digit_optind != 0 && digit_optind != this_option_optind) printf ("digits occur in two different argv-elements.\n"); digit_optind = this_option_optind; printf ("option %c\n", c); break; case 'a': printf ("option a\n"); break; case 'b': printf ("option b\n"); break; case 'c': printf ("option c with value `%s'\n", optarg); break; case '?': break; default: printf ("?? getopt returned character code 0%o ??\n", c); } } if (optind < argc) { printf ("non-option ARGV-elements: "); while (optind < argc) printf ("%s ", argv[optind++]); printf ("\n"); } exit (0); } #endif /* TEST */ a2ps-4.14/lib/lister.c0000644000175000017500000004357710735322362014064 0ustar mhattamhatta/* lister.c -- Listing data in various formats Copyright (C) 1998-1999 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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. */ #ifdef HAVE_CONFIG_H # include #endif #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 8) # define PARAM_UNUSED __attribute__ ((unused)) #else # define PARAM_UNUSED #endif #include #if HAVE_STRING_H # if !STDC_HEADERS && HAVE_MEMORY_H # include # endif # include #else # if HAVE_STRINGS_H # include # endif #endif #if HAVE_STDLIB_H # include #endif #if HAVE_SYS_TYPES_H # include #endif #if HAVE_INTTYPES_H # include #endif #if NEED_FPUTS_DECL extern void fputs (); #endif #if NEED_STRLEN_DECL extern int strlen (); #endif #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 = XMALLOC (struct world, line_width); for (i = 0; i < line_width; ++i) l->multicol.worlds[i].widths = XMALLOC (size_t, i + 1); } 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, PARAM_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, PARAM_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,PARAM_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" }; #if 0 { "68000.ssh", "a2ps.ssh", "a2psrc.ssh", "ada.ssh", "c.ssh", "caml.ssh", "card.ssh", "chlog.ssh", "claire.ssh", "clisp.ssh", "coqv.ssh", "cpp.ssh", "csh.ssh", "eiffel.ssh", "elisp.ssh", "eps.ssh", "fortran.ssh", "gnuc.ssh", "html.ssh", "idl.ssh", "initora.ssh", "is5rul.ssh", "java.ssh", "lace.ssh", "lex.ssh", "mail.ssh", "make.ssh", "matlab4.ssh", "mib.ssh", "modula2.ssh", "modula3.ssh", "o2c.ssh", "oberon.ssh", "objc.ssh", "octave.ssh", "oldperl.ssh", "oracle.ssh", "pascal.ssh", "perl.ssh", "plsql.ssh", "ppd.ssh", "pre.ssh", "pretex.ssh", "prolog.ssh", "promela.ssh", "ps.ssh", "python.ssh", "sather.ssh", "scheme.ssh", "sdl88.ssh", "sh.ssh", "sql.ssh", "sql92.ssh", "ssh.ssh", "symbols.ssh", "tcl.ssh", "tcsh.ssh", "tex.ssh", "texinfo.ssh", "texscript.ssh", "tk.ssh", "udiff.ssh", "unity.ssh", "verilog.ssh", "vhdl.ssh", "vrml.ssh", "wdiff.ssh", "yacc.ssh", "zsh.ssh", "1111111111", "22", "1111111111", "22", "1111111111", "22", "1111111111", "22", "1111111111", "22", "1111111111", "22", "1111111111", "22", "1111111111", "22", "1111111111", "22" } ; #endif /* lister_default.line_width = 67;*/ lister_init (stdout); lister_fprint_separated (NULL, liste, sizeof (liste) / sizeof (*liste), strlen, fputs); return 0; } #endif a2ps-4.14/lib/signame.h0000644000175000017500000000412710735322367014203 0ustar mhattamhatta/* Convert between signal names and numbers. Copyright (C) 1990, 1992, 1993, 1995, 1997 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 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. */ #if defined (__STDC__) && __STDC__ /* Initialize `sys_siglist'. */ void signame_init (void); /* Return the abbreviation (e.g. ABRT, FPE, etc.) for signal NUMBER. Do not return this as a const char *. The caller might want to assign it to a char *. */ char *sig_abbrev (int number); /* Return the signal number for an ABBREV, or -1 if there is no signal by that name. */ int sig_number (const char *abbrev); /* Avoid conflicts with a system header file that might define these three. */ #ifndef HAVE_PSIGNAL /* Print to standard error the name of SIGNAL, preceded by MESSAGE and a colon, and followed by a newline. */ void psignal (int signal, const char *message); #endif #ifndef HAVE_STRSIGNAL /* Return the name of SIGNAL. */ char *strsignal (int signal); #endif #if !defined (HAVE_SYS_SIGLIST) /* Names for signals from 0 to NSIG-1. */ extern const char *sys_siglist[]; #endif #else void signame_init (); char *sig_abbrev (); int sig_number (); #if !defined (HAVE_SYS_SIGLIST) && !defined (HAVE_PSIGNAL) void psignal (); #endif #ifndef HAVE_STRSIGNAL char *strsignal (); #endif #if !defined (HAVE_SYS_SIGLIST) extern char *sys_siglist[]; #endif #endif a2ps-4.14/lib/strcasecmp.c0000644000175000017500000000362710735322362014716 0ustar mhattamhatta/* strcasecmp.c -- case insensitive string comparator Copyright (C) 1998, 1999 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if HAVE_CONFIG_H # include #endif #ifdef LENGTH_LIMIT # define STRXCASECMP_FUNCTION strncasecmp # define STRXCASECMP_DECLARE_N , size_t n # define LENGTH_LIMIT_EXPR(Expr) Expr #else # define STRXCASECMP_FUNCTION strcasecmp # define STRXCASECMP_DECLARE_N /* empty */ # define LENGTH_LIMIT_EXPR(Expr) 0 #endif #include #include #define TOLOWER(Ch) (isupper (Ch) ? tolower (Ch) : (Ch)) /* 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. */ int STRXCASECMP_FUNCTION (const char *s1, const char *s2 STRXCASECMP_DECLARE_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 || LENGTH_LIMIT_EXPR (n == 0)) return 0; do { c1 = TOLOWER (*p1); c2 = TOLOWER (*p2); if (LENGTH_LIMIT_EXPR (--n == 0) || c1 == '\0') break; ++p1; ++p2; } while (c1 == c2); return c1 - c2; } a2ps-4.14/lib/liba2ps.h.in0000644000175000017500000000371710735324673014527 0ustar mhattamhatta/* -*- 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 #ifndef VOID # if defined (__GNUC__) || __STDC__ # define VOID void # else # define VOID char # endif #endif #ifndef PARAMS # if PROTOTYPES || defined (__STDC__) || defined (_AIX) \ || (defined (__mips) && defined (_SYSTYPE_SVR4)) \ || defined(WIN32) || defined(__cplusplus) # define PARAMS(protos) protos # else # define PARAMS(protos) () # endif #endif /* * The type bool must be defined, for instance with #if HAVE_STDBOOL_H # include #else typedef enum {false = 0, true = 1} bool; #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.14/lib/quotearg.h0000644000175000017500000001066210735322367014410 0ustar mhattamhatta/* quotearg.h - quote arguments for output Copyright (C) 1998, 1999 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Written by Paul Eggert */ /* Basic quoting styles. */ enum quoting_style { literal_quoting_style, /* --quoting-style=literal */ shell_quoting_style, /* --quoting-style=shell */ shell_always_quoting_style, /* --quoting-style=shell-always */ c_quoting_style, /* --quoting-style=c */ escape_quoting_style, /* --quoting-style=escape */ locale_quoting_style /* --quoting-style=locale */ }; /* 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; #ifndef PARAMS # if defined PROTOTYPES || defined __STDC__ # define PARAMS(Args) Args # else # define PARAMS(Args) () # endif #endif /* 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 PARAMS ((struct quoting_options *o)); /* Get the value of O's quoting style. If O is null, use the default. */ enum quoting_style get_quoting_style PARAMS ((struct quoting_options *o)); /* In O (or in the default if O is null), set the value of the quoting style to S. */ void set_quoting_style PARAMS ((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). */ int set_char_quoting PARAMS ((struct quoting_options *o, char c, int i)); /* 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. */ size_t quotearg_buffer PARAMS ((char *buffer, size_t buffersize, char const *arg, size_t argsize, struct quoting_options const *o)); /* 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. */ char *quotearg_n PARAMS ((unsigned int n, char const *arg)); /* Equivalent to quotearg_n (0, ARG). */ char *quotearg PARAMS ((char const *arg)); /* 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 PARAMS ((unsigned int n, enum quoting_style s, char const *arg)); /* Equivalent to quotearg_n_style (0, S, ARG). */ char *quotearg_style PARAMS ((enum quoting_style s, char const *arg)); /* Like quotearg (ARG), except also quote any instances of CH. */ char *quotearg_char PARAMS ((char const *arg, char ch)); /* Equivalent to quotearg_char (ARG, ':'). */ char *quotearg_colon PARAMS ((char const *arg)); a2ps-4.14/lib/lexppd.c0000644000175000017500000016326410735337344014060 0ustar mhattamhatta#line 2 "lexppd.c" #line 4 "lexppd.c" #define YY_INT_ALIGNED short int /* A lexical scanner generated by flex */ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 #define YY_FLEX_SUBMINOR_VERSION 33 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ #include #include #include #include /* end standard C headers. */ /* flex integer type definitions */ #ifndef FLEXINT_H #define FLEXINT_H /* C99 systems have . Non-C99 systems may or may not. */ #if __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 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; #endif /* ! C99 */ /* 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 #endif /* ! FLEXINT_H */ #ifdef __cplusplus /* The "const" storage-class-modifier is valid. */ #define YY_USE_CONST #else /* ! __cplusplus */ #if __STDC__ #define YY_USE_CONST #endif /* __STDC__ */ #endif /* ! __cplusplus */ #ifdef YY_USE_CONST #define yyconst const #else #define yyconst #endif /* Returned upon end-of-file. */ #define YY_NULL 0 /* Promotes a possibly negative, possibly signed char to an unsigned * integer for use as an array index. If the signed char is negative, * we want to instead treat it as an 8-bit unsigned char, hence the * double cast. */ #define YY_SC_TO_UI(c) ((unsigned int) (unsigned 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 ppdrestart(ppdin ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE #define YY_BUF_SIZE 16384 #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 extern int ppdleng; extern FILE *ppdin, *ppdout; #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 ppdlex. * One obvious solution it to make yy_act a global. I tried that, and saw * a 5% performance hit in a non-ppdlineno 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 < ppdleng; ++yyl )\ if ( ppdtext[yyl] == '\n' )\ --ppdlineno;\ }while(0) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ do \ { \ /* Undo effects of setting up ppdtext. */ \ 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 ppdtext again */ \ } \ while ( 0 ) #define unput(c) yyunput( c, (yytext_ptr) ) /* The following is because we cannot portably get our hands on size_t * (without autoconf's help, which isn't available because we want * flex-generated scanners to compile on their own). */ #ifndef YY_TYPEDEF_YY_SIZE_T #define YY_TYPEDEF_YY_SIZE_T typedef unsigned int yy_size_t; #endif #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. */ yy_size_t 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 ppdrestart()), so that the user can continue scanning by * just pointing ppdin 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 = 0; /**< 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 ppdtext is formed. */ static char yy_hold_char; static int yy_n_chars; /* number of characters read into yy_ch_buf */ int ppdleng; /* Points to current character in buffer. */ static char *yy_c_buf_p = (char *) 0; static int yy_init = 0; /* whether we need to initialize */ static int yy_start = 0; /* start state number */ /* Flag which is used to allow ppdwrap()'s to do buffer switches * instead of setting up a fresh ppdin. A bit of a hack ... */ static int yy_did_buffer_switch_on_eof; void ppdrestart (FILE *input_file ); void ppd_switch_to_buffer (YY_BUFFER_STATE new_buffer ); YY_BUFFER_STATE ppd_create_buffer (FILE *file,int size ); void ppd_delete_buffer (YY_BUFFER_STATE b ); void ppd_flush_buffer (YY_BUFFER_STATE b ); void ppdpush_buffer_state (YY_BUFFER_STATE new_buffer ); void ppdpop_buffer_state (void ); static void ppdensure_buffer_stack (void ); static void ppd_load_buffer_state (void ); static void ppd_init_buffer (YY_BUFFER_STATE b,FILE *file ); #define YY_FLUSH_BUFFER ppd_flush_buffer(YY_CURRENT_BUFFER ) YY_BUFFER_STATE ppd_scan_buffer (char *base,yy_size_t size ); YY_BUFFER_STATE ppd_scan_string (yyconst char *yy_str ); YY_BUFFER_STATE ppd_scan_bytes (yyconst char *bytes,int len ); void *ppdalloc (yy_size_t ); void *ppdrealloc (void *,yy_size_t ); void ppdfree (void * ); #define yy_new_buffer ppd_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ ppdensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ ppd_create_buffer(ppdin,YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ ppdensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ ppd_create_buffer(ppdin,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 unsigned char YY_CHAR; FILE *ppdin = (FILE *) 0, *ppdout = (FILE *) 0; typedef int yy_state_type; extern int ppdlineno; int ppdlineno = 1; extern char *ppdtext; #define yytext_ptr ppdtext 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 yy_fatal_error (yyconst char msg[] ); /* Done after the current pattern has been matched and before the * corresponding action - sets up ppdtext. */ #define YY_DO_BEFORE_ACTION \ (yytext_ptr) = yy_bp; \ ppdleng = (size_t) (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 yyconst 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 yyconst flex_int32_t 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 yyconst flex_int32_t 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 yyconst 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 yyconst 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 yyconst 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 yyconst 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 yyconst 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 ppd_flex_debug; int ppd_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 *ppdtext; #line 1 "lexppd.l" #line 2 "lexppd.l" /* * 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. */ /* * $Id: lexppd.l,v 1.1.1.1.2.1 2007/12/29 01:58:19 mhatta Exp $ */ #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 ppdlex PARAMS ((void)); void yyerror PARAMS ((const char *)); /* Initilizes the obstacks */ void ppdlex_initialize PARAMS ((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 642 "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 #endif #ifndef YY_EXTRA_TYPE #define YY_EXTRA_TYPE void * #endif static int yy_init_globals (void ); /* Macros after this point can all be overridden by user definitions in * section 1. */ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus extern "C" int ppdwrap (void ); #else extern int ppdwrap (void ); #endif #endif static void yyunput (int c,char *buf_ptr ); #ifndef yytext_ptr static void yy_flex_strncpy (char *,yyconst char *,int ); #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (yyconst 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 #define YY_READ_BUF_SIZE 8192 #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 (void) fwrite( ppdtext, ppdleng, 1, ppdout ) #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 = '*'; \ size_t n; \ for ( n = 0; n < max_size && \ (c = getc( ppdin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ if ( c == '\n' ) \ buf[n++] = (char) c; \ if ( c == EOF && ferror( ppdin ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ result = n; \ } \ else \ { \ errno=0; \ while ( (result = fread(buf, 1, max_size, ppdin))==0 && ferror(ppdin)) \ { \ if( errno != EINTR) \ { \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ break; \ } \ errno=0; \ clearerr(ppdin); \ } \ }\ \ #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 ppdlex (void); #define YY_DECL int ppdlex (void) #endif /* !YY_DECL */ /* Code executed at the beginning of each rule, after ppdtext and ppdleng * 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 break; #endif #define YY_RULE_SETUP \ YY_USER_ACTION /** The main scanner function which does all the work. */ YY_DECL { register yy_state_type yy_current_state; register char *yy_cp, *yy_bp; register int yy_act; #line 76 "lexppd.l" #line 801 "lexppd.c" if ( !(yy_init) ) { (yy_init) = 1; #ifdef YY_USER_INIT YY_USER_INIT; #endif if ( ! (yy_start) ) (yy_start) = 1; /* first start state */ if ( ! ppdin ) ppdin = stdin; if ( ! ppdout ) ppdout = stdout; if ( ! YY_CURRENT_BUFFER ) { ppdensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = ppd_create_buffer(ppdin,YY_BUF_SIZE ); } ppd_load_buffer_state( ); } while ( 1 ) /* loops until end-of-file is reached */ { yy_cp = (yy_c_buf_p); /* Support of ppdtext. */ *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 { register 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[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) 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 < ppdleng; ++yyl ) if ( ppdtext[yyl] == '\n' ) ppdlineno++; ; } 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 78 "lexppd.l" { ; } YY_BREAK case 2: YY_RULE_SETUP #line 79 "lexppd.l" { ; } YY_BREAK case 3: YY_RULE_SETUP #line 81 "lexppd.l" { BEGIN STATE_STRING; } YY_BREAK case 4: YY_RULE_SETUP #line 82 "lexppd.l" { BEGIN STATE_USTRING; } YY_BREAK case 5: YY_RULE_SETUP #line 83 "lexppd.l" { BEGIN STATE_INCLUDE; } YY_BREAK case 6: YY_RULE_SETUP #line 85 "lexppd.l" { return tDefaultFont; } YY_BREAK case 7: YY_RULE_SETUP #line 86 "lexppd.l" { return tFont; } YY_BREAK case 8: YY_RULE_SETUP #line 87 "lexppd.l" { return tModelName; } YY_BREAK case 9: YY_RULE_SETUP #line 88 "lexppd.l" { return tNickName; } YY_BREAK case 10: YY_RULE_SETUP #line 90 "lexppd.l" { yylval.string = xstrdup (ppdtext); return SYMBOL; } YY_BREAK case 11: YY_RULE_SETUP #line 94 "lexppd.l" { return ppdtext[0]; } YY_BREAK case 12: /* rule 12 can match eol */ YY_RULE_SETUP #line 96 "lexppd.l" { return EOL; } YY_BREAK /* string of characters */ case 13: YY_RULE_SETUP #line 99 "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 113 "lexppd.l" { int value = ppdtext[1] - '0'; char *cursor = ppdtext + 2; while (*cursor) value = 8 * value + *cursor++ - '0'; obstack_1grow (&string_stack, value); } YY_BREAK case 15: YY_RULE_SETUP #line 122 "lexppd.l" { int value = 0; char *cursor = ppdtext + 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 136 "lexppd.l" { obstack_1grow (&string_stack, '\007'); } YY_BREAK case 17: YY_RULE_SETUP #line 137 "lexppd.l" { obstack_1grow (&string_stack, '\b'); } YY_BREAK case 18: YY_RULE_SETUP #line 138 "lexppd.l" { obstack_1grow (&string_stack, 127); } YY_BREAK case 19: YY_RULE_SETUP #line 139 "lexppd.l" { obstack_1grow (&string_stack, 27); } YY_BREAK case 20: YY_RULE_SETUP #line 140 "lexppd.l" { obstack_1grow (&string_stack, '\f'); } YY_BREAK case 21: YY_RULE_SETUP #line 141 "lexppd.l" { obstack_1grow (&string_stack, '\n'); } YY_BREAK case 22: YY_RULE_SETUP #line 142 "lexppd.l" { obstack_1grow (&string_stack, '\r'); } YY_BREAK case 23: YY_RULE_SETUP #line 143 "lexppd.l" { obstack_1grow (&string_stack, '\t'); } YY_BREAK case 24: YY_RULE_SETUP #line 144 "lexppd.l" { obstack_1grow (&string_stack, '\v'); } YY_BREAK case 25: YY_RULE_SETUP #line 145 "lexppd.l" { obstack_1grow (&string_stack, ppdtext[1]); } YY_BREAK case 26: /* rule 26 can match eol */ YY_RULE_SETUP #line 147 "lexppd.l" { /* \n are legal in string */ obstack_grow (&string_stack, ppdtext, ppdleng); } YY_BREAK /* string of characters */ case 27: /* rule 27 can match eol */ YY_RULE_SETUP #line 153 "lexppd.l" { /* return the string */ uchar * string; obstack_1grow (&string_stack, '\0'); string = (uchar *) obstack_finish (&string_stack); obstack_free (&string_stack, string); BEGIN INITIAL; /* Return to the regular scanning */ yylval.ustring = xustrdup (string); return USTRING; } YY_BREAK case 28: YY_RULE_SETUP #line 167 "lexppd.l" { int value = ppdtext[1] - '0'; char *cursor = ppdtext + 2; while (*cursor) value = 8 * value + *cursor++ - '0'; obstack_1grow (&string_stack, value); } YY_BREAK case 29: YY_RULE_SETUP #line 176 "lexppd.l" { int value = 0; char *cursor = ppdtext + 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 190 "lexppd.l" { obstack_1grow (&string_stack, '\007'); } YY_BREAK case 31: YY_RULE_SETUP #line 191 "lexppd.l" { obstack_1grow (&string_stack, '\b'); } YY_BREAK case 32: YY_RULE_SETUP #line 192 "lexppd.l" { obstack_1grow (&string_stack, 127); } YY_BREAK case 33: YY_RULE_SETUP #line 193 "lexppd.l" { obstack_1grow (&string_stack, 27); } YY_BREAK case 34: YY_RULE_SETUP #line 194 "lexppd.l" { obstack_1grow (&string_stack, '\f'); } YY_BREAK case 35: YY_RULE_SETUP #line 195 "lexppd.l" { obstack_1grow (&string_stack, '\n'); } YY_BREAK case 36: YY_RULE_SETUP #line 196 "lexppd.l" { obstack_1grow (&string_stack, '\r'); } YY_BREAK case 37: YY_RULE_SETUP #line 197 "lexppd.l" { obstack_1grow (&string_stack, '\t'); } YY_BREAK case 38: YY_RULE_SETUP #line 198 "lexppd.l" { obstack_1grow (&string_stack, '\v'); } YY_BREAK case 39: YY_RULE_SETUP #line 199 "lexppd.l" { obstack_1grow (&string_stack, ppdtext[1]); } YY_BREAK case 40: YY_RULE_SETUP #line 201 "lexppd.l" { /* \n are legal in string */ obstack_grow (&string_stack, ppdtext, ppdleng); } YY_BREAK /* Including another PPD file. */ case 41: YY_RULE_SETUP #line 208 "lexppd.l" { ; } /* eat the whitespace */ YY_BREAK case 42: YY_RULE_SETUP #line 209 "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. */ ppdtext ++; ppdtext [ppdleng - 2] = 0; message (msg_file, (stderr, "%s:%d: includes %s\n", ppdfilename, ppdlineno, ppdtext)); /* Don't put the suffix, Adobe says it's part of the name. */ ppdfilename = xpw_find_included_file (ppdpath, ppdfilename, ppdtext, NULL); ppdin = xrfopen (ppdfilename); ppd_switch_to_buffer (ppd_create_buffer (ppdin, 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 233 "lexppd.l" { message (msg_file, (stderr, "End of PPD file `%s'.\n", ppdfilename)); if (--include_stack_ptr < 0) { yyterminate(); } else { fclose (ppdin); ppd_delete_buffer (YY_CURRENT_BUFFER); XFREE (ppdfilename); ppdfilename = filename_stack[include_stack_ptr]; ppd_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 1230 "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 ppdin at a new source and called * ppdlex(). 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 = ppdin; 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 ( ppdwrap( ) ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up * ppdtext, 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 ppdlex */ /* 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) { register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; register char *source = (yytext_ptr); register 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; 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. */ ppdrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); } else /* Can't grow it, we don't own it. */ b->yy_ch_buf = 0; 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), (size_t) 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; ppdrestart(ppdin ); } 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; (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) { register yy_state_type yy_current_state; register char *yy_cp; yy_current_state = (yy_start); for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) { register 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[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) 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 ) { register int yy_is_jam; register char *yy_cp = (yy_c_buf_p); register 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[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; yy_is_jam = (yy_current_state == 114); return yy_is_jam ? 0 : yy_current_state; } static void yyunput (int c, register char * yy_bp ) { register char *yy_cp; yy_cp = (yy_c_buf_p); /* undo effects of setting up ppdtext */ *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. */ register int number_to_move = (yy_n_chars) + 2; register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; register 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) = 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' ){ --ppdlineno; } (yytext_ptr) = yy_bp; (yy_hold_char) = *yy_cp; (yy_c_buf_p) = yy_cp; } #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 = (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. */ ppdrestart(ppdin ); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { if ( ppdwrap( ) ) return EOF; 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 ppdtext */ (yy_hold_char) = *++(yy_c_buf_p); if ( c == '\n' ) ppdlineno++; ; 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 ppdrestart (FILE * input_file ) { if ( ! YY_CURRENT_BUFFER ){ ppdensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = ppd_create_buffer(ppdin,YY_BUF_SIZE ); } ppd_init_buffer(YY_CURRENT_BUFFER,input_file ); ppd_load_buffer_state( ); } /** Switch to a different input buffer. * @param new_buffer The new input buffer. * */ void ppd_switch_to_buffer (YY_BUFFER_STATE new_buffer ) { /* TODO. We should be able to replace this entire function body * with * ppdpop_buffer_state(); * ppdpush_buffer_state(new_buffer); */ ppdensure_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; ppd_load_buffer_state( ); /* We don't actually know whether we did this switch during * EOF (ppdwrap()) processing, but the only time this flag * is looked at is after ppdwrap() is called, so it's safe * to go ahead and always set it. */ (yy_did_buffer_switch_on_eof) = 1; } static void ppd_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; ppdin = 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 ppd_create_buffer (FILE * file, int size ) { YY_BUFFER_STATE b; b = (YY_BUFFER_STATE) ppdalloc(sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in ppd_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 *) ppdalloc(b->yy_buf_size + 2 ); if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in ppd_create_buffer()" ); b->yy_is_our_buffer = 1; ppd_init_buffer(b,file ); return b; } /** Destroy the buffer. * @param b a buffer created with ppd_create_buffer() * */ void ppd_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 ) ppdfree((void *) b->yy_ch_buf ); ppdfree((void *) b ); } #ifndef __cplusplus extern int isatty (int ); #endif /* __cplusplus */ /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, * such as during a ppdrestart() or at EOF. */ static void ppd_init_buffer (YY_BUFFER_STATE b, FILE * file ) { int oerrno = errno; ppd_flush_buffer(b ); b->yy_input_file = file; b->yy_fill_buffer = 1; /* If b is the current buffer, then ppd_init_buffer was _probably_ * called from ppdrestart() 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 ppd_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 ) ppd_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 ppdpush_buffer_state (YY_BUFFER_STATE new_buffer ) { if (new_buffer == NULL) return; ppdensure_buffer_stack(); /* This block is copied from ppd_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 ppd_switch_to_buffer. */ ppd_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 ppdpop_buffer_state (void) { if (!YY_CURRENT_BUFFER) return; ppd_delete_buffer(YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; if ((yy_buffer_stack_top) > 0) --(yy_buffer_stack_top); if (YY_CURRENT_BUFFER) { ppd_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 ppdensure_buffer_stack (void) { int 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; (yy_buffer_stack) = (struct yy_buffer_state**)ppdalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); 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. */ int grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; (yy_buffer_stack) = (struct yy_buffer_state**)ppdrealloc ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state*) ); /* 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 ppd_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 0; b = (YY_BUFFER_STATE) ppdalloc(sizeof( struct yy_buffer_state ) ); if ( ! b ) YY_FATAL_ERROR( "out of dynamic memory in ppd_scan_buffer()" ); b->yy_buf_size = 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 = 0; 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; ppd_switch_to_buffer(b ); return b; } /** Setup the input buffer state to scan a string. The next call to ppdlex() 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 * ppd_scan_bytes() instead. */ YY_BUFFER_STATE ppd_scan_string (yyconst char * yystr ) { return ppd_scan_bytes(yystr,strlen(yystr) ); } /** Setup the input buffer state to scan the given bytes. The next call to ppdlex() will * scan from a @e copy of @a bytes. * @param bytes the byte buffer to scan * @param len the number of bytes in the buffer pointed to by @a bytes. * * @return the newly allocated buffer state object. */ YY_BUFFER_STATE ppd_scan_bytes (yyconst 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 = _yybytes_len + 2; buf = (char *) ppdalloc(n ); if ( ! buf ) YY_FATAL_ERROR( "out of dynamic memory in ppd_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 = ppd_scan_buffer(buf,n ); if ( ! b ) YY_FATAL_ERROR( "bad buffer in ppd_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 yy_fatal_error (yyconst char* msg ) { (void) 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 ppdtext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ ppdtext[ppdleng] = (yy_hold_char); \ (yy_c_buf_p) = ppdtext + yyless_macro_arg; \ (yy_hold_char) = *(yy_c_buf_p); \ *(yy_c_buf_p) = '\0'; \ ppdleng = yyless_macro_arg; \ } \ while ( 0 ) /* Accessor methods (get/set functions) to struct members. */ /** Get the current line number. * */ int ppdget_lineno (void) { return ppdlineno; } /** Get the input stream. * */ FILE *ppdget_in (void) { return ppdin; } /** Get the output stream. * */ FILE *ppdget_out (void) { return ppdout; } /** Get the length of the current token. * */ int ppdget_leng (void) { return ppdleng; } /** Get the current token. * */ char *ppdget_text (void) { return ppdtext; } /** Set the current line number. * @param line_number * */ void ppdset_lineno (int line_number ) { ppdlineno = line_number; } /** Set the input stream. This does not discard the current * input buffer. * @param in_str A readable stream. * * @see ppd_switch_to_buffer */ void ppdset_in (FILE * in_str ) { ppdin = in_str ; } void ppdset_out (FILE * out_str ) { ppdout = out_str ; } int ppdget_debug (void) { return ppd_flex_debug; } void ppdset_debug (int bdebug ) { ppd_flex_debug = bdebug ; } static int yy_init_globals (void) { /* Initialization is the same as for the non-reentrant scanner. * This function is called from ppdlex_destroy(), so don't allocate here. */ /* We do not touch ppdlineno unless the option is enabled. */ ppdlineno = 1; (yy_buffer_stack) = 0; (yy_buffer_stack_top) = 0; (yy_buffer_stack_max) = 0; (yy_c_buf_p) = (char *) 0; (yy_init) = 0; (yy_start) = 0; /* Defined in main.c */ #ifdef YY_STDINIT ppdin = stdin; ppdout = stdout; #else ppdin = (FILE *) 0; ppdout = (FILE *) 0; #endif /* For future reference: Set errno on error, since we are called by * ppdlex_init() */ return 0; } /* ppdlex_destroy is for both reentrant and non-reentrant scanners. */ int ppdlex_destroy (void) { /* Pop the buffer stack, destroying each element. */ while(YY_CURRENT_BUFFER){ ppd_delete_buffer(YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; ppdpop_buffer_state(); } /* Destroy the stack itself. */ ppdfree((yy_buffer_stack) ); (yy_buffer_stack) = NULL; /* Reset the globals. This is important in a non-reentrant scanner so the next time * ppdlex() is called, initialization will occur. */ yy_init_globals( ); return 0; } /* * Internal utility routines. */ #ifndef yytext_ptr static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) { register int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN static int yy_flex_strlen (yyconst char * s ) { register int n; for ( n = 0; s[n]; ++n ) ; return n; } #endif void *ppdalloc (yy_size_t size ) { return (void *) malloc( size ); } void *ppdrealloc (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 (void *) realloc( (char *) ptr, size ); } void ppdfree (void * ptr ) { free( (char *) ptr ); /* see ppdrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" #line 250 "lexppd.l" int ppdwrap (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.14/lib/printers.c0000644000175000017500000004203510735322362014414 0ustar mhattamhatta/* * printers.c - Information about the printers (named outputs) * * 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. */ #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" #include "strverscmp.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 void printer_key_fputs (struct printer * printer, FILE * stream) { 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) { NEW (struct printer, res); printer_create (res, key); return res; } /* Free the content, but not the pointer. */ static void printer_free (struct printer * printer) { /* Default and Unknown printers have NULL key. */ XFREE (printer->key); XFREE (printer->ppdkey); XFREE (printer->command); } /* * 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) { NEW (struct hash_table_s, res); 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; } /* * Free the whole structure */ static inline void printer_table_free (struct printer_table * table) { hash_free (table, (hash_map_func_t) printer_free); free (table); } /* 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); free (entries); } /* * 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) { NEW (struct a2ps_printers_s, res); /* 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; } /* * Release the mem used by a PRINTERS module * The module is freed */ void a2ps_printers_free (struct a2ps_printers_s * printers) { /* Don't free common, a2ps_job is in charge */ printer_table_free (printers->printers); printer_free (&printers->default_printer); printer_free (&printers->unknown_printer); /* PPD */ XFREE (printers->request_ppdkey); XFREE (printers->default_ppdkey); ppd_free (printers->ppd); /* Output */ XFREE (printers->flag_output_name); XFREE (printers->output_name); free (printers); } /* 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 uchar* destination_to_string (const char *name, bool file_p) { uchar *res; if (IS_EMPTY (name)) { res = (file_p ? xustrdup (_("sent to the standard output")) : xustrdup (_("sent to the default printer"))); } else { char *format = (file_p ? _("saved into the file `%s'") : _("sent to the printer `%s'")); res = XMALLOC (uchar, strlen (format) + strlen (name)); sprintf ((char *) res, format, name); } return res; } /* Returns a string that describes the destination of the output, *before* evaluating the output. Result is malloced. */ uchar * 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. */ uchar * 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 (strequ (key, DEFAULT_PRINTER)) printer_set (&printers->default_printer, ppdkey, command); else if (strequ (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 && strequ (flag_output_name, "-")) { /* Request for stdin */ XFREE (printers->flag_output_name); 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), (uchar *) "output command", (uchar *) 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.14/lib/prolog.c0000644000175000017500000004335110735324676014064 0ustar mhattamhatta/* * prolog.c * routines for the postscript generation * * 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. */ /* * $Id: prolog.c,v 1.1.1.1.2.1 2007/12/29 01:58:22 mhatta Exp $ */ #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 /* return the max of two >-comparable stuff */ #define A2_MAX(X,Y) (((X) > (Y)) ? (X) : (Y)) /****************************************************************/ /* 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 inline 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; int firstline = 0, lastline = 0; size_t bufsiz = 0; char buf2[BUFSIZ]; fprintf (stream, name_format, prologue_name); 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) ((uchar *) buf2, "%s", stream); } if (!strprefix (END_DOC_TAG, buf2)) error (1, 0, filename, firstline, _("missing argument for `%s'"), "`Documentation'"); done = true; } } putc ('\n', stream); free (buf); fclose (fp); free (filename); } /* * List the prologues together with there description */ static inline 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); da_free (entries, (da_map_func_t) free); } 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); prologues_list_long_internal (job, stream, "@item %s\n", documentation_print_texinfo); 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) { uchar * cp; /* * Fixme: Put all this is output_first_line? */ fputs ((char *) job->status->magic_number, stream); putc ('\n', stream); cp = expand_user_string (job, FIRST_FILE (job), (uchar *) "Document title", job->title); fprintf (stream, "%%%%Title: %s\n", cp); cp = expand_user_string (job, FIRST_FILE (job), (uchar *) "User Name", (const uchar *) "%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: %d %d %d %d\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: %d\n", job->sheets); if (job->status->page_are_ordered) fprintf (stream, "%%%%PageOrder: Ascend\n"); else fprintf (stream, "%%%%PageOrder: Special\n"); fprintf (stream, "%%%%DocumentMedia: %s %d %d 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) { int 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 %d def\n", job->medium->h); output (jdiv, "/sw %d def\n", job->medium->w); output (jdiv, "/llx %d def\n", job->medium->llx); output (jdiv, "/urx %d def\n", job->medium->urx - job->margin); output (jdiv, "/ury %d def\n", job->medium->ury); output (jdiv, "/lly %d def\n", job->medium->lly); break; case landscape: output (jdiv, "/sh %d def\n", job->medium->w); output (jdiv, "/sw %d def\n", job->medium->h); output (jdiv, "/llx %d def\n", job->medium->lly); output (jdiv, "/urx %d def\n", job->medium->ury); output (jdiv, "/ury %d def\n", job->medium->w - job->medium->llx); output (jdiv, "/lly %d def\n", job->medium->w - job->medium->urx + job->margin); break; } /* Misceleanous PostScript variables */ output (jdiv, "/#copies %d 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", 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", job->fontsize); output (jdiv, "/cw %f def\n", 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", (float) 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) * job->fontsize); output (jdiv, "def\n"); if (job->columns > 1) output (jdiv, "/pmw urx llx sub pw %d mul sub %d 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 %d mul sub %d sub %d div def\n", job->rows, (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 %d 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 %d 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 %d 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 %d 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 = (medium->ury - medium->lly /* Room for header and footer */ - (PRINT_HEADER + PRINT_FOOTER) * HEADERS_H); area_w = (medium->urx - medium->llx - job->margin); break; case landscape: area_w = (medium->ury - medium->lly); area_h = (medium->urx - medium->llx /* Room for header and footer */ - (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 */ - job->rows * job->status->title_bar_height /* Space between the virtual pages */ - ((job->rows > 1) ? PAGE_MARGIN : 0)) / job->rows); printing_w = ((area_w /* Space between the virtual pages */ - ((job->columns > 1) ? PAGE_MARGIN : 0)) / job->columns); /* * Determine the font size according to (decreasing priority): * 1. --font=@ * 2. --columns-per-page, * 3. --lines-per-page, * 4. default values */ /* width = 0.6 font size */ if (job->columns_requested != 0) { job->fontsize = ((printing_w / (job->columns_requested + prefix_size + 2 * SIDE_MARGIN_RATIO)) / 0.6); } else if (job->lines_requested != 0) { job->fontsize = (printing_h / (job->lines_requested + BOTTOM_MARGIN_RATIO)); } else if (job->fontsize == 0.0) job->fontsize = ((job->orientation == landscape) ? 6.8 : (job->columns * job->rows > 1) ? 6.4 : 9.0); /* fontsize is OK. Calculate the other variables */ job->status->linesperpage = (int) ((printing_h / job->fontsize) - BOTTOM_MARGIN_RATIO); job->status->columnsperline = (int) ((printing_w / (job->fontsize * 0.6)) - 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"), 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.14/lib/jobs.c0000644000175000017500000002473610735322362013513 0ustar mhattamhatta/* * jobs.c -- Recording information about the print jobs * 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. */ #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 /* Temporary file names should start with a2_ * Don't make it too big (think of MSDOS), though by definition * it must be less than 5 chars. */ #define a2ps_file_prefix "a2_" /************************************************************************ * 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); userdata_free (&u); } { char *host = xgethostname (); macro_meta_sequence_add (job, VAR_USER_HOST, host); free (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; } /* * release both name and file of the array of temporary file names */ static void tmpfiles_free (struct a2ps_job * job) { size_t i; for (i = 0 ; i < cardinalityof (job->tmp_filenames) ; i ++) XFREE (job->tmp_filenames[i]); } /* * 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, 1); /* Specify the quotation style. */ set_quoting_style (NULL, escape_quoting_style); /* Set the NLS on */ setlocale (LC_TIME, ""); #ifdef HAVE_LC_MESSAGES setlocale (LC_MESSAGES, ""); #endif setlocale (LC_CTYPE, ""); bindtextdomain (PACKAGE, 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 defined by the user */ /* 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 = (uchar *) 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 = NULL; /* default paper is core dump */ res->medium = NULL; /* default paper is core dump */ 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 = xustrdup ("a2ps output"); /* Default title */ /* Headers and footers */ res->header = UNULL; res->center_title = UNULL; res->left_title = UNULL; res->right_title = UNULL; res->left_footer = UNULL; res->footer = UNULL; res->right_footer = UNULL; res->water = UNULL; * 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); } /* * Free the a2ps_job struture and its descendants */ void a2ps_job_free (struct a2ps_job * job) { if (msg_test (msg_file)) da_self_print (job->jobs, stderr); free_medium_table (job->media); /* Free the common mem. Only a2ps_job is responsible for this, the other only had pointers to this master. They should *not* free it. */ a2ps_common_free (&job->common); encodings_map_free (job->encodings_map); face_eo_font_free (job->face_eo_font); output_free (job->ps_encodings); a2ps_printers_free (job->printers); XFREE (job->stdin_filename); /* Encoding handling */ encodings_table_free (job->encodings); /* Fonts handling */ fonts_map_free (job->fonts_map); font_info_table_free (job->font_infos); /* Headers */ XFREE (job->title); XFREE (job->header); XFREE (job->center_title); XFREE (job->left_title); XFREE (job->right_title); XFREE (job->left_footer); XFREE (job->footer); XFREE (job->right_footer); XFREE (job->water); free (job->prolog); free (job->medium_request); /* Definition of the macro meta sequences */ macro_meta_sequence_table_free (job->macro_meta_sequences); ps_status_free (job->status); if (msg_test (msg_file)) output_self_print (job->divertion, stderr); output_free (job->divertion); /* Unlink and free the temporary files */ a2ps_job_unlink_tmpfiles (job); tmpfiles_free (job); page_range_free (job->page_range); /* Free the file jobs. Note: their temp files have been freed * in a2ps_job_unlink_tmpfiles (job) */ da_free (job->jobs, (da_map_func_t) file_job_free); free (job); } a2ps-4.14/lib/printers.h0000644000175000017500000000662510735322367014433 0ustar mhattamhatta/* * printers.h - Information about the printers (named outputs) * * 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. */ #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 PARAMS ((struct a2ps_job * job, FILE * stream)); void a2ps_printers_list_long PARAMS ((struct a2ps_job * job, FILE * stream)); void a2ps_ppd_list_short PARAMS ((struct a2ps_job * job, FILE * stream)); void a2ps_ppd_list_long PARAMS ((struct a2ps_job * job, FILE * stream)); /* * Output streams */ void a2ps_open_output_stream PARAMS ((struct a2ps_job * job)); void a2ps_close_output_stream PARAMS ((struct a2ps_job * job)); uchar *a2ps_flag_destination_to_string PARAMS ((struct a2ps_job * job)); uchar *a2ps_destination_to_string PARAMS ((struct a2ps_job * job)); /* Create the mem of the printers module */ struct a2ps_printers_s *a2ps_printers_new PARAMS ((struct a2ps_common_s * common)); /* Release the mem used by a PRINTERS module The module is freed */ void a2ps_printers_free PARAMS ((struct a2ps_printers_s * printers)); /* Finalize the printers module */ void a2ps_printers_finalize PARAMS ((struct a2ps_printers_s * printers)); /* Accessing some of the fields */ const char * a2ps_printers_default_ppdkey_get PARAMS ((struct a2ps_printers_s * printers)); void a2ps_printers_default_ppdkey_set PARAMS ((struct a2ps_printers_s * printers, const char * key)); const char * a2ps_printers_request_ppdkey_get PARAMS ((struct a2ps_printers_s * printers)); void a2ps_printers_request_ppdkey_set PARAMS ((struct a2ps_printers_s * printers, const char * key)); bool a2ps_printers_add PARAMS ((struct a2ps_printers_s * printers, const char * key, char * definition)); int a2ps_printers_font_known_p PARAMS ((struct a2ps_printers_s * printers, const char * name)); /* * Outputs */ void a2ps_printers_flag_output_set PARAMS ((struct a2ps_printers_s * printers, const char * output_name, bool is_printer)); const char * a2ps_printers_flag_output_name_get PARAMS ((struct a2ps_printers_s * printers)); bool a2ps_printers_flag_output_is_printer_get PARAMS ((struct a2ps_printers_s * printers)); #endif /* !defined (PRINTERS_H_) */ a2ps-4.14/lib/malloc.c0000644000175000017500000000215410735322362014013 0ustar mhattamhatta/* Work around bug on some systems where malloc (0) fails. Copyright (C) 1997, 1998 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* written by Jim Meyering */ #if HAVE_CONFIG_H # include #endif #undef malloc #include char *malloc (); /* Allocate an N-byte block of memory from the heap. If N is zero, allocate a 1-byte block. */ char * rpl_malloc (size_t n) { if (n == 0) n = 1; return malloc (n); } a2ps-4.14/lib/closeout.h0000644000175000017500000000035110735322367014410 0ustar mhattamhatta#ifndef PARAMS # if defined PROTOTYPES || (defined __STDC__ && __STDC__) # define PARAMS(Args) Args # else # define PARAMS(Args) () # endif #endif void close_stdout PARAMS ((void)); void close_stdout_status PARAMS ((int status)); a2ps-4.14/lib/fjobs.c0000644000175000017500000000763410735322362013657 0ustar mhattamhatta/* * fjobs.c -- Recording information about the file jobs * 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. */ #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 (uchar *name, int num, struct tm *run_tm) { NEW (fjob_t, res); /* 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; } /* * Release a file_job */ void file_job_free (fjob_t *file_job) { XFREE (file_job->delegation_tmpname); XFREE (file_job->stdin_tmpname); free (file_job); } void file_job_self_print (fjob_t *file, FILE *stream) { fprintf (stream, "File `%s': Pages %d-%d (%d), Sheets %d-%d (%d)\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 upon the name */ int file_name_cmp (fjob_t *f1, fjob_t *f2) { return ustrcmp (f1->name, f2->name); } a2ps-4.14/lib/madir.c0000644000175000017500000000300210735324674013641 0ustar mhattamhatta/* * madir.c * * madir direction * * Copyright (c) 1988-1993 Miguel Santana * Copyright (c) 1995-1999 Akim Demaille, Miguel Santana * $Id: madir.c,v 1.1.1.1.2.1 2007/12/29 01:58:20 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. */ #include "a2ps.h" #include "madir.h" #include "argmatch.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 XARGCASEMATCH (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.14/lib/xobstack.h0000644000175000017500000000172710735322367014401 0ustar mhattamhatta/* xobstack.h -- obstack declarations wrapper Copyright (C) 1996 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef _xobstack_h_ #define _xobstack_h_ #include #include "xalloc.h" #define obstack_chunk_alloc xmalloc #define obstack_chunk_free free #endif /* not _xobstack_h_ */ a2ps-4.14/lib/prange.h0000644000175000017500000000317410735324676014042 0ustar mhattamhatta/* * prange.h * * Page ranges * 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: prange.h,v 1.1.1.1.2.1 2007/12/29 01:58:22 mhatta Exp $ */ #ifndef _PRANGE_H_ #define _PRANGE_H_ struct job; /* * List of pages to print */ struct page_range; struct page_range * page_range_new PARAMS ((void)); void page_range_free PARAMS ((struct page_range * array)); void a2ps_page_range_set_string PARAMS ((struct a2ps_job * job, const char * string)); void report_pages_to_print PARAMS ((struct a2ps_job * job, FILE * stream)); int print_page PARAMS ((struct a2ps_job * job, int page_num)); void page_range_to_buffer PARAMS ((struct page_range * page_range, uchar * buf, int offset)); int page_range_applies_above PARAMS ((struct page_range * page_range, int offset)); #endif a2ps-4.14/lib/xstrtol.h0000644000175000017500000000323510735322367014276 0ustar mhattamhatta#ifndef XSTRTOL_H_ # define XSTRTOL_H_ 1 # if HAVE_INTTYPES_H # include /* for uintmax_t */ # endif # ifndef PARAMS # if defined PROTOTYPES || (defined __STDC__ && __STDC__) # define PARAMS(Args) Args # else # define PARAMS(Args) () # endif # endif # ifndef _STRTOL_ERROR enum strtol_error { LONGINT_OK, LONGINT_INVALID, LONGINT_INVALID_SUFFIX_CHAR, LONGINT_OVERFLOW }; typedef enum strtol_error strtol_error; # endif # define _DECLARE_XSTRTOL(name, type) \ strtol_error \ name PARAMS ((const char *s, char **ptr, int base, \ type *val, const char *valid_suffixes)); _DECLARE_XSTRTOL (xstrtol, long int) _DECLARE_XSTRTOL (xstrtoul, unsigned long int) _DECLARE_XSTRTOL (xstrtoumax, uintmax_t) # define _STRTOL_ERROR(Exit_code, Str, Argument_type_string, Err) \ do \ { \ switch ((Err)) \ { \ case LONGINT_OK: \ abort (); \ \ case LONGINT_INVALID: \ error ((Exit_code), 0, "invalid %s `%s'", \ (Argument_type_string), (Str)); \ break; \ \ case LONGINT_INVALID_SUFFIX_CHAR: \ error ((Exit_code), 0, "invalid character following %s `%s'", \ (Argument_type_string), (Str)); \ break; \ \ case LONGINT_OVERFLOW: \ error ((Exit_code), 0, "%s `%s' too large", \ (Argument_type_string), (Str)); \ break; \ } \ } \ while (0) # define STRTOL_FATAL_ERROR(Str, Argument_type_string, Err) \ _STRTOL_ERROR (2, Str, Argument_type_string, Err) # define STRTOL_FAIL_WARN(Str, Argument_type_string, Err) \ _STRTOL_ERROR (0, Str, Argument_type_string, Err) #endif /* not XSTRTOL_H_ */ a2ps-4.14/lib/mktime.c0000644000175000017500000003541610735322362014041 0ustar mhattamhatta/* Convert a `struct tm' to a time_t value. Copyright (C) 1993, 94, 95, 96, 97, 98, 99 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Paul Eggert (eggert@twinsun.com). 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. */ /* Define this to have a standalone program to test this implementation of mktime. */ /* #define DEBUG 1 */ #ifdef HAVE_CONFIG_H # include #endif #ifdef _LIBC # define HAVE_LIMITS_H 1 # define STDC_HEADERS 1 #endif /* Assume that leap seconds are possible, unless told otherwise. If the host has a `zic' command with a `-L leapsecondfilename' option, then it supports leap seconds; otherwise it probably doesn't. */ #ifndef LEAP_SECONDS_POSSIBLE # define LEAP_SECONDS_POSSIBLE 1 #endif #include /* Some systems define `time_t' here. */ #include #if HAVE_LIMITS_H # include #endif #if DEBUG # include # if STDC_HEADERS # include # endif /* Make it work even if the system's libc has its own mktime routine. */ # define mktime my_mktime #endif /* DEBUG */ #ifndef __P # if defined __GNUC__ || (defined __STDC__ && __STDC__) # define __P(args) args # else # define __P(args) () # endif /* GCC. */ #endif /* Not __P. */ #ifndef CHAR_BIT # define CHAR_BIT 8 #endif /* The extra casts work around common compiler bugs. */ #define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) /* The outer cast is needed to work around a bug in Cray C 5.0.3.0. It is necessary at least when t == time_t. */ #define TYPE_MINIMUM(t) ((t) (TYPE_SIGNED (t) \ ? ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1) : (t) 0)) #define TYPE_MAXIMUM(t) ((t) (~ (t) 0 - TYPE_MINIMUM (t))) #ifndef INT_MIN # define INT_MIN TYPE_MINIMUM (int) #endif #ifndef INT_MAX # define INT_MAX TYPE_MAXIMUM (int) #endif #ifndef TIME_T_MIN # define TIME_T_MIN TYPE_MINIMUM (time_t) #endif #ifndef TIME_T_MAX # define TIME_T_MAX TYPE_MAXIMUM (time_t) #endif #define TM_YEAR_BASE 1900 #define EPOCH_YEAR 1970 #ifndef __isleap /* Nonzero if YEAR is a leap year (every 4 years, except every 100th isn't, and every 400th is). */ # define __isleap(year) \ ((year) % 4 == 0 && ((year) % 100 != 0 || (year) % 400 == 0)) #endif /* How many days come before each month (0-12). */ const unsigned short int __mon_yday[2][13] = { /* Normal years. */ { 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365 }, /* Leap years. */ { 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366 } }; #ifdef _LIBC # define my_mktime_localtime_r __localtime_r #else /* If we're a mktime substitute in a GNU program, then prefer localtime to localtime_r, since many localtime_r implementations are buggy. */ static struct tm * my_mktime_localtime_r (const time_t *t, struct tm *tp) { struct tm *l = localtime (t); if (! l) return 0; *tp = *l; return tp; } #endif /* ! _LIBC */ /* Yield the difference between (YEAR-YDAY HOUR:MIN:SEC) and (*TP), measured in seconds, ignoring leap seconds. YEAR uses the same numbering as TM->tm_year. All values are in range, except possibly YEAR. If TP is null, return a nonzero value. If overflow occurs, yield the low order bits of the correct answer. */ static time_t ydhms_tm_diff (int year, int yday, int hour, int min, int sec, const struct tm *tp) { if (!tp) return 1; else { /* Compute intervening leap days correctly even if year is negative. Take care to avoid int overflow. time_t overflow is OK, since only the low order bits of the correct time_t answer are needed. Don't convert to time_t until after all divisions are done, since time_t might be unsigned. */ int a4 = (year >> 2) + (TM_YEAR_BASE >> 2) - ! (year & 3); int b4 = (tp->tm_year >> 2) + (TM_YEAR_BASE >> 2) - ! (tp->tm_year & 3); int a100 = a4 / 25 - (a4 % 25 < 0); int b100 = b4 / 25 - (b4 % 25 < 0); int a400 = a100 >> 2; int b400 = b100 >> 2; int intervening_leap_days = (a4 - b4) - (a100 - b100) + (a400 - b400); time_t years = year - (time_t) tp->tm_year; time_t days = (365 * years + intervening_leap_days + (yday - tp->tm_yday)); return (60 * (60 * (24 * days + (hour - tp->tm_hour)) + (min - tp->tm_min)) + (sec - tp->tm_sec)); } } /* Use CONVERT to convert *T to a broken down time in *TP. If *T is out of range for conversion, adjust it so that it is the nearest in-range value and then convert that. */ static struct tm * ranged_convert (struct tm *(*convert) (const time_t *, struct tm *), time_t *t, struct tm *tp) { struct tm *r; if (! (r = (*convert) (t, tp)) && *t) { time_t bad = *t; time_t ok = 0; struct tm tm; /* BAD is a known unconvertible time_t, and OK is a known good one. Use binary search to narrow the range between BAD and OK until they differ by 1. */ while (bad != ok + (bad < 0 ? -1 : 1)) { time_t mid = *t = (bad < 0 ? bad + ((ok - bad) >> 1) : ok + ((bad - ok) >> 1)); if ((r = (*convert) (t, tp))) { tm = *r; ok = mid; } else bad = mid; } if (!r && ok) { /* The last conversion attempt failed; revert to the most recent successful attempt. */ *t = ok; *tp = tm; r = tp; } } return r; } /* Convert *TP to a time_t value, inverting the monotonic and mostly-unit-linear conversion function CONVERT. Use *OFFSET to keep track of a guess at the offset of the result, compared to what the result would be for UTC without leap seconds. If *OFFSET's guess is correct, only one CONVERT call is needed. */ time_t __mktime_internal (struct tm *tp, struct tm *(*convert) (const time_t *, struct tm *), time_t *offset) { time_t t, dt, t0, t1, t2; struct tm tm; /* The maximum number of probes (calls to CONVERT) should be enough to handle any combinations of time zone rule changes, solar time, leap seconds, and oscillations around a spring-forward gap. POSIX.1 prohibits leap seconds, but some hosts have them anyway. */ int remaining_probes = 6; /* Time requested. Copy it in case CONVERT modifies *TP; this can occur if TP is localtime's returned value and CONVERT is localtime. */ int sec = tp->tm_sec; int min = tp->tm_min; int hour = tp->tm_hour; int mday = tp->tm_mday; int mon = tp->tm_mon; int year_requested = tp->tm_year; int isdst = tp->tm_isdst; /* Ensure that mon is in range, and set year accordingly. */ int mon_remainder = mon % 12; int negative_mon_remainder = mon_remainder < 0; int mon_years = mon / 12 - negative_mon_remainder; int year = year_requested + mon_years; /* The other values need not be in range: the remaining code handles minor overflows correctly, assuming int and time_t arithmetic wraps around. Major overflows are caught at the end. */ /* Calculate day of year from year, month, and day of month. The result need not be in range. */ int yday = ((__mon_yday[__isleap (year + TM_YEAR_BASE)] [mon_remainder + 12 * negative_mon_remainder]) + mday - 1); int sec_requested = sec; #if LEAP_SECONDS_POSSIBLE /* Handle out-of-range seconds specially, since ydhms_tm_diff assumes every minute has 60 seconds. */ if (sec < 0) sec = 0; if (59 < sec) sec = 59; #endif /* Invert CONVERT by probing. First assume the same offset as last time. Then repeatedly use the error to improve the guess. */ tm.tm_year = EPOCH_YEAR - TM_YEAR_BASE; tm.tm_yday = tm.tm_hour = tm.tm_min = tm.tm_sec = 0; t0 = ydhms_tm_diff (year, yday, hour, min, sec, &tm); for (t = t1 = t2 = t0 + *offset; (dt = ydhms_tm_diff (year, yday, hour, min, sec, ranged_convert (convert, &t, &tm))); t1 = t2, t2 = t, t += dt) if (t == t1 && t != t2 && (isdst < 0 || tm.tm_isdst < 0 || (isdst != 0) != (tm.tm_isdst != 0))) /* We can't possibly find a match, as we are oscillating between two values. The requested time probably falls within a spring-forward gap of size DT. Follow the common practice in this case, which is to return a time that is DT away from the requested time, preferring a time whose tm_isdst differs from the requested value. In practice, this is more useful than returning -1. */ break; else if (--remaining_probes == 0) return -1; /* If we have a match, check whether tm.tm_isdst has the requested value, if any. */ if (dt == 0 && isdst != tm.tm_isdst && 0 <= isdst && 0 <= tm.tm_isdst) { /* tm.tm_isdst has the wrong value. Look for a neighboring time with the right value, and use its UTC offset. Heuristic: probe the previous three calendar quarters (approximately), looking for the desired isdst. This isn't perfect, but it's good enough in practice. */ int quarter = 7889238; /* seconds per average 1/4 Gregorian year */ int i; /* If we're too close to the time_t limit, look in future quarters. */ if (t < TIME_T_MIN + 3 * quarter) quarter = -quarter; for (i = 1; i <= 3; i++) { time_t ot = t - i * quarter; struct tm otm; ranged_convert (convert, &ot, &otm); if (otm.tm_isdst == isdst) { /* We found the desired tm_isdst. Extrapolate back to the desired time. */ t = ot + ydhms_tm_diff (year, yday, hour, min, sec, &otm); ranged_convert (convert, &t, &tm); break; } } } *offset = t - t0; #if LEAP_SECONDS_POSSIBLE if (sec_requested != tm.tm_sec) { /* Adjust time to reflect the tm_sec requested, not the normalized value. Also, repair any damage from a false match due to a leap second. */ t += sec_requested - sec + (sec == 0 && tm.tm_sec == 60); if (! (*convert) (&t, &tm)) return -1; } #endif if (TIME_T_MAX / INT_MAX / 366 / 24 / 60 / 60 < 3) { /* time_t isn't large enough to rule out overflows in ydhms_tm_diff, so check for major overflows. A gross check suffices, since if t has overflowed, it is off by a multiple of TIME_T_MAX - TIME_T_MIN + 1. So ignore any component of the difference that is bounded by a small value. */ double dyear = (double) year_requested + mon_years - tm.tm_year; double dday = 366 * dyear + mday; double dsec = 60 * (60 * (24 * dday + hour) + min) + sec_requested; /* On Irix4.0.5 cc, dividing TIME_T_MIN by 3 does not produce correct results, ie., it erroneously gives a positive value of 715827882. Setting a variable first then doing math on it seems to work. (ghazi@caip.rutgers.edu) */ const time_t time_t_max = TIME_T_MAX; const time_t time_t_min = TIME_T_MIN; if (time_t_max / 3 - time_t_min / 3 < (dsec < 0 ? - dsec : dsec)) return -1; } *tp = tm; return t; } static time_t localtime_offset; /* Convert *TP to a time_t value. */ time_t mktime (tp) struct tm *tp; { #ifdef _LIBC /* POSIX.1 8.1.1 requires that whenever mktime() is called, the time zone names contained in the external variable `tzname' shall be set as if the tzset() function had been called. */ __tzset (); #endif return __mktime_internal (tp, my_mktime_localtime_r, &localtime_offset); } #ifdef weak_alias weak_alias (mktime, timelocal) #endif #if DEBUG static int not_equal_tm (a, b) struct tm *a; struct tm *b; { return ((a->tm_sec ^ b->tm_sec) | (a->tm_min ^ b->tm_min) | (a->tm_hour ^ b->tm_hour) | (a->tm_mday ^ b->tm_mday) | (a->tm_mon ^ b->tm_mon) | (a->tm_year ^ b->tm_year) | (a->tm_mday ^ b->tm_mday) | (a->tm_yday ^ b->tm_yday) | (a->tm_isdst ^ b->tm_isdst)); } static void print_tm (tp) struct tm *tp; { if (tp) printf ("%04d-%02d-%02d %02d:%02d:%02d yday %03d wday %d isdst %d", tp->tm_year + TM_YEAR_BASE, tp->tm_mon + 1, tp->tm_mday, tp->tm_hour, tp->tm_min, tp->tm_sec, tp->tm_yday, tp->tm_wday, tp->tm_isdst); else printf ("0"); } static int check_result (tk, tmk, tl, lt) time_t tk; struct tm tmk; time_t tl; struct tm *lt; { if (tk != tl || !lt || not_equal_tm (&tmk, lt)) { printf ("mktime ("); print_tm (&tmk); printf (")\nyields ("); print_tm (lt); printf (") == %ld, should be %ld\n", (long) tl, (long) tk); return 1; } return 0; } int main (argc, argv) int argc; char **argv; { int status = 0; struct tm tm, tmk, tml; struct tm *lt; time_t tk, tl; char trailer; if ((argc == 3 || argc == 4) && (sscanf (argv[1], "%d-%d-%d%c", &tm.tm_year, &tm.tm_mon, &tm.tm_mday, &trailer) == 3) && (sscanf (argv[2], "%d:%d:%d%c", &tm.tm_hour, &tm.tm_min, &tm.tm_sec, &trailer) == 3)) { tm.tm_year -= TM_YEAR_BASE; tm.tm_mon--; tm.tm_isdst = argc == 3 ? -1 : atoi (argv[3]); tmk = tm; tl = mktime (&tmk); lt = localtime (&tl); if (lt) { tml = *lt; lt = &tml; } printf ("mktime returns %ld == ", (long) tl); print_tm (&tmk); printf ("\n"); status = check_result (tl, tmk, tl, lt); } else if (argc == 4 || (argc == 5 && strcmp (argv[4], "-") == 0)) { time_t from = atol (argv[1]); time_t by = atol (argv[2]); time_t to = atol (argv[3]); if (argc == 4) for (tl = from; tl <= to; tl += by) { lt = localtime (&tl); if (lt) { tmk = tml = *lt; tk = mktime (&tmk); status |= check_result (tk, tmk, tl, tml); } else { printf ("localtime (%ld) yields 0\n", (long) tl); status = 1; } } else for (tl = from; tl <= to; tl += by) { /* Null benchmark. */ lt = localtime (&tl); if (lt) { tmk = tml = *lt; tk = tl; status |= check_result (tk, tmk, tl, tml); } else { printf ("localtime (%ld) yields 0\n", (long) tl); status = 1; } } } else printf ("Usage:\ \t%s YYYY-MM-DD HH:MM:SS [ISDST] # Test given time.\n\ \t%s FROM BY TO # Test values FROM, FROM+BY, ..., TO.\n\ \t%s FROM BY TO - # Do not test those values (for benchmark).\n", argv[0], argv[0], argv[0]); return status; } #endif /* DEBUG */ /* Local Variables: compile-command: "gcc -DDEBUG -DHAVE_LIMITS_H -DSTDC_HEADERS -Wall -W -O -g mktime.c -o mktime" End: */ a2ps-4.14/lib/path-concat.c0000644000175000017500000000551110735322362014745 0ustar mhattamhatta/* path-concat.c -- concatenate two arbitrary pathnames Copyright (C) 1996, 1997, 1998, 1999 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Written by Jim Meyering. */ #if HAVE_CONFIG_H # include #endif #ifndef HAVE_MEMPCPY # define mempcpy(D, S, N) ((void *) ((char *) memcpy (D, S, N) + (N))) #endif #include #if HAVE_STRING_H # include #endif #include /* char *malloc (); */ #ifndef DIRECTORY_SEPARATOR # define DIRECTORY_SEPARATOR '/' #endif #ifndef ISSLASH # define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR) #endif #include "xalloc.h" #include "path-concat.h" /* Concatenate two pathname components, DIR and BASE, in newly-allocated storage and return the result. Return 0 if out of memory. Add a slash between DIR and BASE in the result if neither would contribute one. If each would contribute at least one, elide one from the end of DIR. Otherwise, simply concatenate DIR and BASE. In any case, if BASE_IN_RESULT is non-NULL, set *BASE_IN_RESULT to point to the copy of BASE in the returned concatenation. DIR may be NULL, BASE must not be. Return NULL if memory is exhausted. */ char * path_concat (const char *dir, const char *base, char **base_in_result) { char *p; char *p_concat; size_t base_len; size_t dir_len; if (!dir) { p_concat = strdup (base); if (base_in_result) *base_in_result = p_concat; return p_concat; } /* DIR is not empty. */ base_len = strlen (base); dir_len = strlen (dir); /* This cast is a kludge for SGI IRIX with C89 */ p_concat = (char *) malloc (dir_len + base_len + 2); if (!p_concat) return 0; p = mempcpy (p_concat, dir, dir_len); if (ISSLASH (*(p - 1)) && ISSLASH(*base)) --p; else if (!ISSLASH (*(p - 1)) && !ISSLASH(*base)) *p++ = DIRECTORY_SEPARATOR; if (base_in_result) *base_in_result = p; memcpy (p, base, base_len + 1); return p_concat; } /* Same, but die when memory is exhausted. */ char * xpath_concat (const char *dir, const char *base, char **base_in_result) { char *res = path_concat (dir, base, base_in_result); if (res) return res; xalloc_die (); } a2ps-4.14/lib/getshline.h0000644000175000017500000000424610735322367014544 0ustar mhattamhatta/* Copyright (C) 1995 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef _GETSHLINE_H_ # define _GETSHLINE_H_ 1 /* Support of prototyping when possible */ # ifndef PARAMS # if PROTOTYPES # define PARAMS(protos) protos # else /* no PROTOTYPES */ # define PARAMS(protos) () # endif /* no PROTOTYPES */ # endif /* These routines are devoted to reading meaning full lines. By * meaningful is ment, 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. */ int getshline PARAMS ((char **_lineptr, size_t *_n, FILE *_stream)); int getshdelim PARAMS ((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 */ int getshline_numbered PARAMS ((int *_firstline, int *_lastline, char **_lineptr, size_t *_n, FILE *_stream)); int getshdelim_numbered PARAMS ((int *_firstline, int *_lastline, char **_lineptr, size_t *_n, int _delimiter, int _delimiter_quote, int _commentor, FILE *_stream)); #endif /* not defined(_GETSHLINE_H_) */ a2ps-4.14/lib/printlen.h0000644000175000017500000000302010735322367014402 0ustar mhattamhatta/* printlen.h - return number of chars used by a printf like call Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana Copyright (c) 1995, 96, 97, 98 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, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef _PRINTLEN_H_ #define _PRINTLEN_H_ #ifdef HAVE_CONFIG_H # include #endif /* Support of prototyping when possible */ #ifndef PARAMS # if PROTOTYPES # define PARAMS(protos) protos # else /* no PROTOTYPES */ # define PARAMS(protos) () # endif /* no PROTOTYPES */ #endif /* * Return length of the string sprintf would produce. Always > 0 */ /* * Varaible arguments */ # if defined (__STDC__) && __STDC__ extern int printflen (const char *format, ...) __attribute__ ((__format__ (__printf__, 1, 2))); # else int printflen (); # endif /* * List of arguments. */ int vprintflen PARAMS ((const char *format, va_list args)); #endif /* ! defined(_PRINTLEN_H_) */ a2ps-4.14/lib/strverscmp.h0000644000175000017500000000063010735322367014763 0ustar mhattamhatta/* strverscmp.h -- compare strings holding indices/version numbers */ #ifndef STRVERSCMP_H_ # define STRVERSCMP_H_ # if HAVE_CONFIG_H # include # endif # ifndef PARAMS # if defined PROTOTYPES || (defined __STDC__ && __STDC__) # define PARAMS(Args) Args # else # define PARAMS(Args) () # endif # endif int strverscmp PARAMS ((const char*, const char*)); #endif /* not STRVERSCMP_H_ */ a2ps-4.14/lib/xstrrpl.c0000644000175000017500000000657110735322362014271 0ustar mhattamhatta/* xstrrpl.c -- replacement of substrings Copyright (c) 1988-1993 Miguel Santana Copyright (c) 1995-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, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Author: Akim Demaille */ #include "system.h" #include #include "xstrrpl.h" extern char * stpcpy(); /* 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 = XMALLOC (char, strlen (string) * (max + 1) + 1); 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 = XREALLOC (res, char, cp - res + 1); return res; } /* Destructive version */ void strrpl (char ** string, const char * subst[][2]) { char * res; res = xstrrpl (*string, subst); free (*string); *string = 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" */ #if __STDC__ char * xvstrrpl (const char * string, ...) #else char * xvstrrpl (va_alist) va_dcl #endif { #if ! __STDC__ const char *string; #endif va_list ap; const char * subst[100][2]; /* Hope this is enough :) */ int i = 0; /* Copy arguments into `args'. */ #if __STDC__ va_start (ap, string); #else va_start (ap); string = va_arg (ap, char *); #endif 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); } /* Destructive version */ #if __STDC__ void vstrrpl (char **string, ...) #else void vstrrpl (va_alist) va_dcl #endif { #if ! __STDC__ char **string; #endif va_list ap; const char * subst[100][2]; /* Hope this is enough :) */ int i = 0; /* Copy arguments into `args'. */ #if __STDC__ va_start (ap, string); #else va_start (ap); string = va_arg (ap, char **); #endif for (i = 0 ; (subst[i / 2][i % 2] = va_arg (ap, char *)) ; i++) ; va_end (ap); if (i % 2) free (*string); else strrpl (string, subst); } a2ps-4.14/lib/addext.c0000644000175000017500000000510510735322361014013 0ustar mhattamhatta/* addext.c -- add an extension to a file name Copyright (C) 1990, 1997, 1998, 1999 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; see the file COPYING. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Written by David MacKenzie and Paul Eggert */ #if HAVE_CONFIG_H # include #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 #include #if HAVE_LIMITS_H # include #endif #ifndef _POSIX_NAME_MAX # define _POSIX_NAME_MAX 14 #endif #include #if HAVE_STRING_H # include #else # include #endif #if HAVE_UNISTD_H # include #endif char *base_name PARAMS ((char const *)); /* Append to FILENAME the extension EXT, unless the result would be too long, in which case just append the character E. */ void addext (char *filename, char const *ext, int e) { char *s = base_name (filename); size_t slen = strlen (s), extlen = strlen (ext); long slen_max = -1; #if HAVE_PATHCONF && defined _PC_NAME_MAX if (slen + extlen <= _POSIX_NAME_MAX && ! HAVE_DOS_FILE_NAMES) /* The file name is so short there's no need to call pathconf. */ slen_max = _POSIX_NAME_MAX; else if (s == filename) slen_max = pathconf (".", _PC_NAME_MAX); else { char c = *s; *s = 0; slen_max = pathconf (filename, _PC_NAME_MAX); *s = c; } #endif if (slen_max < 0) slen_max = HAVE_LONG_FILE_NAMES ? 255 : 14; if (HAVE_DOS_FILE_NAMES && slen_max <= 12) { /* Live within DOS's 8.3 limit. */ char *dot = strchr (s, '.'); if (dot) { slen -= dot + 1 - s; s = dot + 1; slen_max = 3; } else slen_max = 8; extlen = 9; /* Don't use EXT. */ } if (slen + extlen <= slen_max) strcpy (s + slen, ext); else { if (slen_max <= slen) slen = slen_max - 1; s[slen] = e; s[slen + 1] = 0; } } a2ps-4.14/lib/getopt1.c0000644000175000017500000001071310735322362014127 0ustar mhattamhatta/* getopt_long and getopt_long_only entry points for GNU getopt. Copyright (C) 1987,88,89,90,91,92,93,94,96,97,98 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 program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 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. */ #ifdef HAVE_CONFIG_H #include #else #if !defined __STDC__ || !__STDC__ /* This is a separate conditional since some stdc systems reject `defined (const)'. */ #ifndef const #define const #endif #endif #endif #include "getopt.h" #include /* Comment out all this code if we are using the GNU C Library, and are not actually compiling the library itself. 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. */ #define GETOPT_INTERFACE_VERSION 2 #if !defined _LIBC && defined __GLIBC__ && __GLIBC__ >= 2 #include #if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION #define ELIDE_CODE #endif #endif #ifndef ELIDE_CODE /* This needs to come after some library #include to get __GNU_LIBRARY__ defined. */ #ifdef __GNU_LIBRARY__ #include #endif #ifndef NULL #define NULL 0 #endif int getopt_long (argc, argv, options, long_options, opt_index) int argc; char *const *argv; const char *options; const struct option *long_options; int *opt_index; { return _getopt_internal (argc, argv, options, long_options, opt_index, 0); } /* Like getopt_long, but '-' as well as '--' can indicate a long option. If an option that starts with '-' (not '--') doesn't match a long option, but does match a short option, it is parsed as a short option instead. */ int getopt_long_only (argc, argv, options, long_options, opt_index) int argc; char *const *argv; const char *options; const struct option *long_options; int *opt_index; { return _getopt_internal (argc, argv, options, long_options, opt_index, 1); } #endif /* Not ELIDE_CODE. */ #ifdef TEST #include int main (argc, argv) int argc; char **argv; { int c; int digit_optind = 0; while (1) { int this_option_optind = optind ? optind : 1; int option_index = 0; static struct option long_options[] = { {"add", 1, 0, 0}, {"append", 0, 0, 0}, {"delete", 1, 0, 0}, {"verbose", 0, 0, 0}, {"create", 0, 0, 0}, {"file", 1, 0, 0}, {0, 0, 0, 0} }; c = getopt_long (argc, argv, "abc:d:0123456789", long_options, &option_index); if (c == -1) break; switch (c) { case 0: printf ("option %s", long_options[option_index].name); if (optarg) printf (" with arg %s", optarg); printf ("\n"); break; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': if (digit_optind != 0 && digit_optind != this_option_optind) printf ("digits occur in two different argv-elements.\n"); digit_optind = this_option_optind; printf ("option %c\n", c); break; case 'a': printf ("option a\n"); break; case 'b': printf ("option b\n"); break; case 'c': printf ("option c with value `%s'\n", optarg); break; case 'd': printf ("option d with value `%s'\n", optarg); break; case '?': break; default: printf ("?? getopt returned character code 0%o ??\n", c); } } if (optind < argc) { printf ("non-option ARGV-elements: "); while (optind < argc) printf ("%s ", argv[optind++]); printf ("\n"); } exit (0); } #endif /* TEST */ a2ps-4.14/lib/gen.h0000644000175000017500000000400210735324672013322 0ustar mhattamhatta/* * gen.h * * Output formats handling * Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana * Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana * $Id: gen.h,v 1.1.1.1.2.1 2007/12/29 01:58:18 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 _GEN_H_ #define _GEN_H_ struct a2ps_job; enum output_format { eps, ps }; const char * output_format_to_key PARAMS ((enum output_format format)); /* liba2ps.h:begin */ /* Print a single char C in FACE */ void a2ps_print_char PARAMS ((struct a2ps_job * job, int c, enum face_e face)); /* Print a C string (nul terminated) in FACE */ void a2ps_print_string PARAMS ((struct a2ps_job * job, const uchar * string, enum face_e face)); /* Print the N chars contained in BUFFER, in FACE */ void a2ps_print_buffer PARAMS ((struct a2ps_job * job, const uchar * buffer, size_t start, size_t end, enum face_e face)); /* Open/close the outer structure */ void a2ps_open_output_session PARAMS ((struct a2ps_job * job)); void a2ps_close_output_session PARAMS ((struct a2ps_job * job)); /* Open/Close the section structure */ void a2ps_open_input_session PARAMS ((struct a2ps_job * job, uchar * name)); void a2ps_close_input_session PARAMS ((struct a2ps_job * job)); /* liba2ps.h:end */ #endif a2ps-4.14/lib/fnmatch.h0000644000175000017500000000460410735322367014200 0ustar mhattamhatta/* Copyright (C) 1991, 1992, 1993 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@prep.ai.mit.edu. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 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. */ #ifndef _FNMATCH_H #define _FNMATCH_H 1 #ifdef __cplusplus extern "C" { #endif #if defined (__cplusplus) || (defined (__STDC__) && __STDC__) #undef __P #define __P(protos) protos #else /* Not C++ or ANSI C. */ #undef __P #define __P(protos) () /* We can get away without defining `const' here only because in this file it is used only inside the prototype for `fnmatch', which is elided in non-ANSI C where `const' is problematical. */ #endif /* C++ or ANSI C. */ /* We #undef these before defining them because some losing systems (HP-UX A.08.07 for example) define these in . */ #undef FNM_PATHNAME #undef FNM_NOESCAPE #undef FNM_PERIOD /* Bits set in the FLAGS argument to `fnmatch'. */ #define FNM_PATHNAME (1 << 0) /* No wildcard can ever match `/'. */ #define FNM_NOESCAPE (1 << 1) /* Backslashes don't quote special chars. */ #define FNM_PERIOD (1 << 2) /* Leading `.' is matched only explicitly. */ #if !defined (_POSIX_C_SOURCE) || _POSIX_C_SOURCE < 2 || defined (_GNU_SOURCE) #define FNM_FILE_NAME FNM_PATHNAME /* Preferred GNU name. */ #define FNM_LEADING_DIR (1 << 3) /* Ignore `/...' after a match. */ #define FNM_CASEFOLD (1 << 4) /* Compare without regard to case. */ #endif /* Value returned by `fnmatch' if STRING does not match PATTERN. */ #define FNM_NOMATCH 1 /* Match STRING against the filename pattern PATTERN, returning zero if it matches, FNM_NOMATCH if not. */ extern int fnmatch __P ((const char *__pattern, const char *__string, int __flags)); #ifdef __cplusplus } #endif #endif /* fnmatch.h */ a2ps-4.14/lib/strtoimax.c0000644000175000017500000000416010735322362014575 0ustar mhattamhatta/* Convert string representation of a number into an intmax_t value. Copyright (C) 1999, 2001, 2002, 2003, 2004 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 Paul Eggert. */ #ifdef HAVE_CONFIG_H # include #endif #if HAVE_INTTYPES_H # include #endif #if HAVE_STDINT_H # include #endif #include #include "verify.h" #ifdef UNSIGNED # ifndef HAVE_DECL_STRTOULL "this configure-time declaration test was not run" # endif # if !HAVE_DECL_STRTOULL && HAVE_UNSIGNED_LONG_LONG unsigned long long strtoull (char const *, char **, int); # endif #else # ifndef HAVE_DECL_STRTOLL "this configure-time declaration test was not run" # endif # if !HAVE_DECL_STRTOLL && HAVE_UNSIGNED_LONG_LONG long long strtoll (char const *, char **, int); # endif #endif #ifdef UNSIGNED # undef HAVE_LONG_LONG # define HAVE_LONG_LONG HAVE_UNSIGNED_LONG_LONG # define INT uintmax_t # define strtoimax strtoumax # define strtol strtoul # define strtoll strtoull #else # define INT intmax_t #endif INT strtoimax (char const *ptr, char **endptr, int base) { #if HAVE_LONG_LONG verify (sizeof (INT) == sizeof (long int) || sizeof (INT) == sizeof (long long int)); if (sizeof (INT) != sizeof (long int)) return strtoll (ptr, endptr, base); #else verify (sizeof (INT) == sizeof (long int)); #endif return strtol (ptr, endptr, base); } a2ps-4.14/lib/routines.c0000644000175000017500000001172310735324677014431 0ustar mhattamhatta/* * routine.c * * general use routines * Copyright (c) 1988-1993 Miguel Santana * Copyright (c) 1995-1999 Akim Demaille, Miguel Santana * $Id: routines.c,v 1.1.1.1.2.1 2007/12/29 01:58:23 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. */ #include "a2ps.h" #include "routines.h" #include "stpncpy.h" #include "message.h" #include "quotearg.h" /* * Convert a list of string of valid chars to an yes/no array */ void string_to_array (uchar arr[256], const uchar * string) { int c; for (c = 0 ; c < 256 ; c++) arr [c] = false; for ( /* nothing */ ; *string ; string ++) arr [*string] = true; } /* * Concatenation of a char. No malloc is done. */ void ustrccat (uchar * string, uchar c) { int len = strlen((char *)string); *(string+len) = c; *(string+len+1) = '\0'; } /* * return true iff there are no upper case chars */ int is_strlower (const uchar * 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 uchar * _strncpylc (uchar *dst, const uchar *src, size_t len) { size_t i; for (i = 0 ; i < len ; i++) dst[i] = tolower (src[i]); dst[len] = '\0'; return dst; } uchar * strnlower (uchar *string, size_t len) { return _strncpylc (string, string, len); } uchar * strlower (uchar *string) { return _strncpylc (string, string, strlen (string)); } uchar * strcpylc (uchar *dst, const uchar *src) { return _strncpylc (dst, src, strlen (src)); } /* * Count the number of occurrence of C in S */ int strcnt (uchar *s, uchar 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, int start, int length) { char * end = stpncpy (dest, string + start, length); *end = '\0'; return end; } /* * fopen, but exits on failure */ static inline 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); if (!res) error (1, errno, format, quotearg (filename)); return res; } FILE * xfopen (const char * filename, const char * rights, const char * format) { return _xfopen (filename, rights, format); } 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 exist upon failure */ static inline 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); if (!res) error (1, errno, format, quotearg (filename)); return res; } FILE * xpopen (const char * filename, const char * rights, const char * format) { return _xpopen (filename, rights, format); } 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 */ static inline 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); } void streams_copy (FILE * in, FILE * out) { _streams_copy (in, 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 (PARAM_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); } a2ps-4.14/lib/dstring.h0000644000175000017500000001234310735322367014231 0ustar mhattamhatta/* dstring.h - Dynamic string handling include file. Requires strings.h. Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana Copyright (c) 1995, 96, 97, 98 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, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef DSTRING_H_ # define DSTRING_H_ /* Support of prototyping when possible */ #ifndef PARAMS # if PROTOTYPES # define PARAMS(protos) protos # else /* no PROTOTYPES */ # define PARAMS(protos) () # endif /* no PROTOTYPES */ #endif # ifndef __attribute__ /* This feature is available in gcc versions 2.5 and later. */ # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || __STRICT_ANSI__ # define __attribute__(Spec) /* empty */ # endif /* The __-protected variants of `format' and `printf' attributes are accepted by gcc versions 2.6.4 (effectively 2.7) and later. */ # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7) # define __format__ format # define __printf__ printf # endif # endif 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 PARAMS ((size_t size, enum ds_growth growth, size_t increment)); void ds_erase PARAMS ((struct dstring *string)); void ds_print_stats PARAMS ((struct dstring * str, FILE * stream)); void ds_resize PARAMS ((struct dstring *string, size_t size)); void ds_grow PARAMS ((struct dstring *string)); /* * Testing */ int ds_is_full PARAMS ((struct dstring *string)); /* * Usual string manipulations */ void ds_strcat PARAMS ((struct dstring *s, char *t)); void ds_strncat PARAMS ((struct dstring *s, char *t, int n)); void ds_strccat PARAMS ((struct dstring *s, char c)); /* * Sprintf variations */ /* Sprintf in the dstring, resizing if necessary */ void ds_vsprintf PARAMS ((struct dstring *s, const char *format, va_list args)); /* sprintf at the end of the dstring, resize if necessary */ void ds_cat_vsprintf PARAMS ((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 */ void ds_unsafe_vsprintf PARAMS ((struct dstring *s, const char *format, va_list args)); void ds_unsafe_cat_vsprintf PARAMS ((struct dstring *s, const char *format, va_list args)); /* Same as the previous, but with variable num of args */ # if defined (__STDC__) && __STDC__ extern void ds_sprintf (struct dstring *s, const char *format, ...) __attribute__ ((__format__ (__printf__, 2, 3))); /* Like sprintf, but not too much carre is taken for length */ extern void ds_unsafe_sprintf (struct dstring *s, const char *format, ...) __attribute__ ((__format__ (__printf__, 2, 3))); extern void ds_cat_sprintf (struct dstring *s, const char *format, ...) __attribute__ ((__format__ (__printf__, 2, 3))); /* Like sprintf, but not too much carre is taken for length */ extern void ds_unsafe_cat_sprintf (struct dstring *s, const char *format, ...) __attribute__ ((__format__ (__printf__, 2, 3))); # else void ds_sprintf (); void ds_unsafe_sprintf (); void ds_cat_sprintf (); void ds_unsafe_cat_sprintf (); # endif /* * Dealing with files */ char *ds_getline PARAMS ((struct dstring *s, FILE * stream)); char *ds_getdelim PARAMS ((struct dstring *s, char eos, FILE * stream)); #endif /* _DSTRING_H_ */ a2ps-4.14/lib/encoding.h0000644000175000017500000000731010735324671014343 0ustar mhattamhatta/* * encoding.h * * definition of the char encodings used * Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana * Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana * $Id: encoding.h,v 1.1.1.1.2.1 2007/12/29 01:58:17 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. */ /************************************************************************/ /* 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 PARAMS ((struct a2ps_job * job, uchar c)); unsigned int string_WX PARAMS ((struct a2ps_job * job, uchar * string)); /************************************************************************/ /* Handling of the struct encoding */ /************************************************************************/ struct encoding; const char * encoding_get_name PARAMS ((struct encoding * enc)); const char * encoding_get_key PARAMS ((struct encoding * enc)); void encoding_self_print PARAMS ((struct encoding * item, FILE * stream)); int encoding_char_exists PARAMS ((struct encoding * enc, enum face_e face, uchar c)); struct encoding * get_encoding_by_alias PARAMS ((struct a2ps_job * job, char *string)); void set_encoding PARAMS ((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 PARAMS ((struct a2ps_job * job, struct encoding * encoding, const char * font_name)); /* * Have a struct encoding determine the faces_wx */ void encoding_build_faces_wx PARAMS ((struct a2ps_job * job, struct encoding * encoding)); void encoding_add_font_name_used PARAMS ((struct encoding * enc, const char * name)); /* Dump on STREAM the encodings setup */ void dump_encodings_setup PARAMS ((FILE * stream, struct a2ps_job * job)); /* * Related to a2ps_job */ void list_encodings_short PARAMS ((struct a2ps_job * job, FILE * stream)); void list_encodings_long PARAMS ((struct a2ps_job * job, FILE * stream)); void list_texinfo_encodings_long PARAMS ((struct a2ps_job * job, FILE * stream)); /************************************************************************/ /* Road map to the files defining the encodings */ /************************************************************************/ struct pair_htable * encodings_map_new PARAMS ((void)); void encodings_map_free PARAMS ((struct pair_htable * table)); struct hash_table_s * encodings_table_new PARAMS ((void)); void encodings_table_free PARAMS ((struct hash_table_s * table)); int load_main_encodings_map PARAMS ((struct a2ps_job * job)); #endif a2ps-4.14/lib/system.h0000644000175000017500000002750510735322367014111 0ustar mhattamhatta/* * system.h - shared system header with the whole package * * 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. */ #ifndef SYSTEM_H_ # define SYSTEM_H_ #ifdef HAVE_CONFIG_H # include #endif /*-------------------------. | This guy must be first. | `-------------------------*/ #ifndef alloca # ifdef __GNUC__ # define alloca __builtin_alloca # define HAVE_ALLOCA 1 # else # if defined HAVE_ALLOCA_H || defined _LIBC # include # else # ifdef _AIX #pragma alloca # else # ifdef __hpux void *alloca (); # endif /* __hpux */ # endif # endif # endif #endif #define ALLOCA(t, n) ((t *) alloca (sizeof (t) * (n))) /*-------------------------------------. | Support of prototyping when possible | `-------------------------------------*/ #ifndef PARAMS # if PROTOTYPES # define PARAMS(protos) protos # else /* no PROTOTYPES */ # define PARAMS(protos) () # endif /* no PROTOTYPES */ #endif /*-------------------------------. | Stdio and missing prototypes. | `-------------------------------*/ #include #ifndef HAVE_DECL_FPUTS extern int fputs PARAMS ((const char *s, FILE *stream)); #endif /*-------------------. | Including stdlib. | `-------------------*/ #if defined STDC_HEADERS || defined _LIBC || defined HAVE_STDLIB_H # include #else extern char *getenv PARAMS ((const char *var)); #endif /*--------------------. | Including strings. | `--------------------*/ #ifdef HAVE_STRING_H # if !STDC_HEADERS && HAVE_MEMORY_H # include # endif # include #else # include char *memchr (); #endif #if !defined(HAVE_STRCHR) && !defined(strchr) # define strchr index # define strrchr rindex #endif extern char *strchr PARAMS ((const char *s, int c)); extern char *strrchr PARAMS ((const char *s, int c)); # ifndef HAVE_STRERROR extern char *strerror PARAMS ((int)); # endif #define strequ(s1, s2) (strcmp ((s1), (s2)) == 0) #define strnequ(s1, s2, n) (strncmp ((s1), (s2), (n)) == 0) #ifndef HAVE_STRNDUP extern char *strndup PARAMS ((char const *, size_t n)); #endif /*---------------. | Math headers. | `---------------*/ #ifdef HAVE_MATH_H # include #else extern double atan2 PARAMS ((double, double)); extern double ceil PARAMS ((double)); extern double floor PARAMS ((double)); #endif #ifdef HAVE_ERRNO_H # include #endif #ifndef errno extern int errno; #endif /*-------------------. | Ctype and family. | `-------------------*/ #include /* 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." */ #if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII)) #define ISASCII(c) 1 #else #define ISASCII(c) isascii((int) c) #endif #ifdef isblank #define ISBLANK(c) (ISASCII (c) && isblank ((int) c)) #else #define ISBLANK(c) ((c) == ' ' || (c) == '\t') #endif #ifdef isgraph #define ISGRAPH(c) (ISASCII (c) && isgraph ((int) c)) #else #define ISGRAPH(c) (ISASCII (c) && isprint ((int) c) && !isspace ((int) c)) #endif #define ISPRINT(c) (ISASCII (c) && isprint ((int) c)) #define ISDIGIT(c) (ISASCII (c) && isdigit ((int) c)) #define ISALNUM(c) (ISASCII (c) && isalnum ((int) c)) #define ISALPHA(c) (ISASCII (c) && isalpha ((int) c)) #define ISCNTRL(c) (ISASCII (c) && iscntrl ((int) c)) #define ISLOWER(c) (ISASCII (c) && islower ((int) c)) #define ISPUNCT(c) (ISASCII (c) && ispunct ((int) c)) #define ISSPACE(c) (ISASCII (c) && isspace ((int) c)) #define ISUPPER(c) (ISASCII (c) && isupper ((int) c)) #define ISXDIGIT(c) (ISASCII (c) && isxdigit ((int) c)) #ifdef HAVE_SYS_WAIT_H # include #endif #ifndef WEXITSTATUS # define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8) #endif #ifndef WIFEXITED # define WIFEXITED(stat_val) (((stat_val) & 255) == 0) #endif #if HAVE_SYS_TYPES_H # include #endif /*---------------------------. | Include unistd and fixes. | `---------------------------*/ #if HAVE_PWD_H # include #endif #if HAVE_UNISTD_H # include #endif #ifndef _POSIX_VERSION off_t lseek (); #endif #ifndef STDIN_FILENO # define STDIN_FILENO 0 #endif #ifndef STDOUT_FILENO # define STDOUT_FILENO 1 #endif #ifndef STDERR_FILENO # define STDERR_FILENO 2 #endif #if HAVE_SYS_STAT_H # include #endif #ifdef STAT_MACROS_BROKEN # undef S_ISBLK # undef S_ISCHR # undef S_ISDIR # undef S_ISFIFO # undef S_ISLNK # undef S_ISMPB # undef S_ISMPC # undef S_ISNWK # undef S_ISREG # undef S_ISSOCK #endif /* STAT_MACROS_BROKEN. */ #if !defined(S_ISBLK) && defined(S_IFBLK) # define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK) #endif #if !defined(S_ISCHR) && defined(S_IFCHR) # define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR) #endif #if !defined(S_ISDIR) && defined(S_IFDIR) # define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) #endif #if !defined(S_ISREG) && defined(S_IFREG) # define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) #endif #if !defined(S_ISFIFO) && defined(S_IFIFO) # define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO) #endif #if !defined(S_ISLNK) && defined(S_IFLNK) # define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) #endif #if !defined(S_ISSOCK) && defined(S_IFSOCK) # define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK) #endif #if !defined(S_ISMPB) && defined(S_IFMPB) /* V7 */ # define S_ISMPB(m) (((m) & S_IFMT) == S_IFMPB) # define S_ISMPC(m) (((m) & S_IFMT) == S_IFMPC) #endif #if !defined(S_ISNWK) && defined(S_IFNWK) /* HP/UX */ # define S_ISNWK(m) (((m) & S_IFMT) == S_IFNWK) #endif #ifndef S_IEXEC # define S_IEXEC S_IXUSR #endif #ifndef S_IXUSR # define S_IXUSR S_IEXEC #endif #ifndef S_IXGRP # define S_IXGRP (S_IEXEC >> 3) #endif #ifndef S_IXOTH # define S_IXOTH (S_IEXEC >> 6) #endif #ifndef S_IXUGO # define S_IXUGO (S_IXUSR | S_IXGRP | S_IXOTH) #endif #ifdef ST_MTIM_NSEC # define ST_TIME_CMP_NS(a, b, ns) ((a).ns < (b).ns ? -1 : (a).ns > (b).ns) #else # define ST_TIME_CMP_NS(a, b, ns) 0 #endif #define ST_TIME_CMP(a, b, s, ns) \ ((a).s < (b).s ? -1 : (a).s > (b).s ? 1 : ST_TIME_CMP_NS(a, b, ns)) #define ATIME_CMP(a, b) ST_TIME_CMP (a, b, st_atime, st_atim.ST_MTIM_NSEC) #define CTIME_CMP(a, b) ST_TIME_CMP (a, b, st_ctime, st_ctim.ST_MTIM_NSEC) #define MTIME_CMP(a, b) ST_TIME_CMP (a, b, st_mtime, st_mtim.ST_MTIM_NSEC) #if !defined(HAVE_MKFIFO) # define mkfifo(path, mode) (mknod ((path), (mode) | S_IFIFO, 0)) #endif /*---------------------------------------. | Defining various limits on int types. | `---------------------------------------*/ #if HAVE_LIMITS_H /* limits.h must come before pathmax.h because limits.h on some systems undefs PATH_MAX, whereas pathmax.h sets PATH_MAX. */ # include #endif #ifndef CHAR_BIT # define CHAR_BIT 8 #endif /* 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)) #define TYPE_MINIMUM(t) ((t) (TYPE_SIGNED (t) \ ? ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1) : (t) 0)) #define TYPE_MAXIMUM(t) ((t) (~ (t) 0 - TYPE_MINIMUM (t))) #ifndef CHAR_MIN # define CHAR_MIN TYPE_MINIMUM (char) #endif #ifndef CHAR_MAX # define CHAR_MAX TYPE_MAXIMUM (char) #endif #ifndef UCHAR_MAX # define UCHAR_MAX TYPE_MAXIMUM (unsigned char) #endif #ifndef SHRT_MIN # define SHRT_MIN TYPE_MINIMUM (short int) #endif #ifndef SHRT_MAX # define SHRT_MAX TYPE_MAXIMUM (short int) #endif #ifndef INT_MAX # define INT_MAX TYPE_MAXIMUM (int) #endif #ifndef UINT_MAX # define UINT_MAX TYPE_MAXIMUM (unsigned int) #endif #ifndef LONG_MAX # define LONG_MAX TYPE_MAXIMUM (long) #endif #ifndef ULONG_MAX # define ULONG_MAX TYPE_MAXIMUM (unsigned long) #endif /*--------------------------------. | Defining the PATHMAX some way. | `--------------------------------*/ #ifndef _POSIX_PATH_MAX #define _POSIX_PATH_MAX 255 #endif #if !defined(PATH_MAX) && defined(_PC_PATH_MAX) # define PATH_MAX (pathconf ("/", _PC_PATH_MAX) < 1 ? 1024 : pathconf ("/", _PC_PATH_MAX)) #endif /* Don't include sys/param.h if it already has been. */ #if defined(HAVE_SYS_PARAM_H) && !defined(PATH_MAX) && !defined(MAXPATHLEN) # include #endif #if !defined(PATH_MAX) && defined(MAXPATHLEN) # define PATH_MAX MAXPATHLEN #endif #ifndef PATH_MAX # define PATH_MAX _POSIX_PATH_MAX #endif /*-----------------. | Time and dates. | `-----------------*/ #if TIME_WITH_SYS_TIME # include # include #else # ifdef HAVE_SYS_TIME_H # include # else # include # endif #endif #if HAVE_STDBOOL_H # include #else typedef enum {false = 0, true = 1} bool; #endif /*---------------------------. | Take care of NLS matters. | `---------------------------*/ #ifdef HAVE_LOCALE_H # include #endif #ifndef HAVE_SETLOCALE # define setlocale(Category, Locale) #endif #include "gettext.h" #define _(Msgid) gettext (Msgid) #define N_(Msgid) (Msgid) /*----------. | fnmatch. | `-----------*/ #if HAVE_FNMATCH_H # include #endif /*---------------------. | Variadic arguments. | `---------------------*/ #if HAVE_VPRINTF || HAVE_DOPRNT || _LIBC # if __STDC__ # include # define VA_START(args, lastarg) va_start(args, lastarg) # else # include # define VA_START(args, lastarg) va_start(args) # endif #else # define va_alist a1, a2, a3, a4, a5, a6, a7, a8 # define va_dcl char *a1, *a2, *a3, *a4, *a5, *a6, *a7, *a8; #endif #include "xalloc.h" #include "error.h" /* * Missing functions */ #ifndef HAVE_TEMPNAM # define tempnam(_dir_,_pfx_) xstrdup (tmpnam (NULL)) #endif /* * More defines */ /* The following test is to work around the gross typo in systems like Sony NEWS-OS Release 4.0C, whereby EXIT_FAILURE is defined to 0, not 1. */ #if !EXIT_FAILURE # undef EXIT_FAILURE # define EXIT_FAILURE 1 #endif #ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 #endif #ifndef NULL # define NULL 0 #endif /*-----------------. | GCC facilities. | `-----------------*/ /* Specifying that a parameter of a function is not used. */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 8) # define PARAM_UNUSED __attribute__ ((unused)) #else # define PARAM_UNUSED #endif /* Specifying printf like arguments for variadic functions. */ # ifndef __attribute__ /* This feature is available in gcc versions 2.5 and later. */ # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || __STRICT_ANSI__ # define __attribute__(Spec) /* empty */ # endif /* The __-protected variants of `format' and `printf' attributes are accepted by gcc versions 2.6.4 (effectively 2.7) and later. */ # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7) # define __format__ format # define __printf__ printf # endif # endif /* Cardinality of a static array. */ #define cardinalityof(ARRAY) (sizeof (ARRAY) / sizeof ((ARRAY)[0])) #endif /* !defined (SYSTEM_H_) */ a2ps-4.14/lib/document.h0000644000175000017500000000355110735324670014375 0ustar mhattamhatta/* * document.h * * handle report of various documenting formats. * * 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: document.h,v 1.1.1.1.2.1 2007/12/29 01:58:16 mhatta Exp $ */ #ifndef _DOCUMENT_H_ #define _DOCUMENT_H_ void authors_print_plain PARAMS ((const uchar * authors, FILE * stream, const char * before)); void authors_print_html PARAMS ((const uchar * authors, FILE * stream, const char * before)); void authors_print_texinfo PARAMS ((const uchar * authors, FILE * stream, const char * before)); typedef void (*documentation_fn_t) PARAMS ((const uchar * documentation, const char * format, FILE * stream)) ; void documentation_print_plain PARAMS ((const uchar * documentation, const char * format, FILE * stream)); void documentation_print_html PARAMS ((const uchar * documentation, const char * format, FILE * stream)); void documentation_print_texinfo PARAMS ((const uchar * documentation, const char * format, FILE * stream)); #endif /* !defined(_DOCUMENT_H_) */ a2ps-4.14/lib/yy2ppd.h0000644000175000017500000000175110735322367014007 0ustar mhattamhatta/* * 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.14/lib/faces.c0000644000175000017500000001044010735324671013627 0ustar mhattamhatta/* * faces.h * * definition of the faces used by a2ps * Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana * Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana * $Id: faces.c,v 1.1.1.1.2.1 2007/12/29 01:58:17 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. */ #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 (strequ (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 */ 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_eo_font_free (char * face_eo_font [NB_FACES]) { enum face_e f; for (f = First_face ; f <= Last_face ; f++) /* Xfree because it may not have been initialized if no printing * was done (e.g. --help) */ XFREE (face_eo_font [f]); } void face_set_font (struct a2ps_job * job, enum face_e face, const char * font_name) { XFREE (job->face_eo_font [face]); job->face_eo_font [face] = xstrdup (font_name); } a2ps-4.14/lib/getnum.c0000644000175000017500000001345110735322362014045 0ustar mhattamhatta/* * getnum.c -- Get number in a given interval, get length with units * * 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. */ #ifdef HAVE_CONFIG_H # include #endif #include #include /* abort() is wanted */ #ifndef EXIT_FAILURE # define EXIT_FAILURE 1 #endif #include "argmatch.h" #include "error.h" #include "getnum.h" #include "quotearg.h" /* Take care of NLS matters. */ #if ENABLE_NLS # include # define _(Text) gettext (Text) #else # define _(Text) Text #endif /************************************************************************ * 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[256]; switch (sscanf (arg, "%f%255s", &res, buf)) { case 2: /* Multiply by the given unit */ res *= XARGCASEMATCH (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), 1, (argmatch_exit_fn) abort)]; 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%s <= f", min, unit); break; case range_min_strict: if (res <= min) sprintf (buf, "%.1f%s < f", min, unit); break; case range_max: if (res > max) sprintf (buf, "f <= %.1f%s", max, unit); break; case range_max_strict: if (res >= max) sprintf (buf, "f <= %.1f%s", max, unit); break; case range_min_max: if ((res < min) || (res > max)) sprintf (buf, "%.1f%s <= f <= %.1f%s", min, unit, max, unit); break; case range_min_strict_max: if ((res <= min) || (res > max)) sprintf (buf, "%.1f%s < f <= %.1f%s", min, unit, max, unit); break; case range_min_max_strict: if ((res < min) || (res >= max)) sprintf (buf, "%.1f%s <= f < %.1f%s", min, unit, max, unit); break; case range_min_strict_max_strict: if ((res <= min) || (res >= max)) sprintf (buf, "%.1f%s < f < %.1f%s", min, unit, 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.54), (72 / 2.54) }; /* * 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.14/lib/backupfile.c0000644000175000017500000001640210735322361014651 0ustar mhattamhatta/* backupfile.c -- make Emacs style backup file names Copyright (C) 1990-1997, 1998, 1999 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; see the file COPYING. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Written by David MacKenzie . Some algorithms adapted from GNU Emacs. */ #if HAVE_CONFIG_H # include #endif #include #include #include #include #if HAVE_STRING_H # include #else # include #endif #if HAVE_DIRENT_H # include # define NLENGTH(direct) strlen ((direct)->d_name) #else # define dirent direct # define NLENGTH(direct) ((size_t) (direct)->d_namlen) # if HAVE_SYS_NDIR_H # include # endif # if HAVE_SYS_DIR_H # include # endif # if HAVE_NDIR_H # include # endif #endif #if CLOSEDIR_VOID /* Fake a return value. */ # define CLOSEDIR(d) (closedir (d), 0) #else # define CLOSEDIR(d) closedir (d) #endif #if STDC_HEADERS # include #else char *malloc (); #endif #ifndef HAVE_DECL_GETENV char *getenv (); #endif char *base_name PARAMS ((char const *)); #if HAVE_DIRENT_H || HAVE_NDIR_H || HAVE_SYS_DIR_H || HAVE_SYS_NDIR_H # define HAVE_DIR 1 #else # define HAVE_DIR 0 #endif #if HAVE_LIMITS_H # include #endif #ifndef CHAR_BIT # define CHAR_BIT 8 #endif /* Upper bound on the string length of an integer converted to string. 302 / 1000 is ceil (log10 (2.0)). Subtract 1 for the sign bit; add 1 for integer division truncation; add 1 more for a minus sign. */ #define INT_STRLEN_BOUND(t) ((sizeof (t) * CHAR_BIT - 1) * 302 / 1000 + 2) /* ISDIGIT differs from isdigit, as follows: - Its arg may be any int or unsigned int; it need not be an unsigned char. - It's guaranteed to evaluate its argument exactly once. - It's typically faster. Posix 1003.2-1992 section 2.5.2.1 page 50 lines 1556-1558 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) (c) - '0' <= 9) #if D_INO_IN_DIRENT # define REAL_DIR_ENTRY(dp) ((dp)->d_ino != 0) #else # define REAL_DIR_ENTRY(dp) 1 #endif /* The extension added to file names to produce a simple (as opposed to numbered) backup file name. */ const char *simple_backup_suffix = "~"; static int max_backup_version PARAMS ((const char *, const char *)); static int version_number PARAMS ((const char *, const char *, size_t)); /* Return the name of the new backup file for file FILE, allocated with malloc. Return 0 if out of memory. FILE must not end with a '/' unless it is the root directory. Do not call this function if backup_type == none. */ char * find_backup_file_name (const char *file, enum backup_type backup_type) { size_t backup_suffix_size_max; size_t file_len = strlen (file); size_t numbered_suffix_size_max = INT_STRLEN_BOUND (int) + 4; char *s; const char *suffix = simple_backup_suffix; /* Allow room for simple or `.~N~' backups. */ backup_suffix_size_max = strlen (simple_backup_suffix) + 1; if (HAVE_DIR && backup_suffix_size_max < numbered_suffix_size_max) backup_suffix_size_max = numbered_suffix_size_max; s = malloc (file_len + backup_suffix_size_max + numbered_suffix_size_max); if (s) { strcpy (s, file); #if HAVE_DIR if (backup_type != simple) { int highest_backup; size_t dir_len = base_name (s) - s; strcpy (s + dir_len, "."); highest_backup = max_backup_version (file + dir_len, s); if (! (backup_type == numbered_existing && highest_backup == 0)) { char *numbered_suffix = s + (file_len + backup_suffix_size_max); sprintf (numbered_suffix, ".~%d~", highest_backup + 1); suffix = numbered_suffix; } strcpy (s, file); } #endif /* HAVE_DIR */ addext (s, suffix, '~'); } return s; } #if HAVE_DIR /* Return the number of the highest-numbered backup file for file FILE in directory DIR. If there are no numbered backups of FILE in DIR, or an error occurs reading DIR, return 0. */ static int max_backup_version (const char *file, const char *dir) { DIR *dirp; struct dirent *dp; int highest_version; int this_version; size_t file_name_length; dirp = opendir (dir); if (!dirp) return 0; highest_version = 0; file_name_length = strlen (file); while ((dp = readdir (dirp)) != 0) { if (!REAL_DIR_ENTRY (dp) || NLENGTH (dp) < file_name_length + 4) continue; this_version = version_number (file, dp->d_name, file_name_length); if (this_version > highest_version) highest_version = this_version; } if (CLOSEDIR (dirp)) return 0; return highest_version; } /* If BACKUP is a numbered backup of BASE, return its version number; otherwise return 0. BASE_LENGTH is the length of BASE. */ static int version_number (const char *base, const char *backup, size_t base_length) { int version; const char *p; version = 0; if (strncmp (base, backup, base_length) == 0 && backup[base_length] == '.' && backup[base_length + 1] == '~') { for (p = &backup[base_length + 2]; ISDIGIT (*p); ++p) version = version * 10 + *p - '0'; if (p[0] != '~' || p[1]) version = 0; } return version; } #endif /* HAVE_DIR */ static const char * const backup_args[] = { /* In a series of synonyms, present the most meaning full first, so that argmatch_valid be more readable. */ "none", "off", "simple", "never", "existing", "nil", "numbered", "t", 0 }; static const enum backup_type backup_types[] = { none, none, simple, simple, numbered_existing, numbered_existing, numbered, numbered }; /* Return the type of backup specified by VERSION. If VERSION is NULL or the empty string, return numbered_existing. If VERSION is invalid or ambiguous, fail with a diagnostic appropriate for the specified CONTEXT. Unambiguous abbreviations are accepted. */ enum backup_type get_version (const char *context, const char *version) { if (version == 0 || *version == 0) return numbered_existing; 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 (const char *context, const char *version) { if (version && *version) return get_version (context, version); else return get_version ("$VERSION_CONTROL", getenv ("VERSION_CONTROL")); } a2ps-4.14/lib/tterm.c0000644000175000017500000001121110735322362013671 0ustar mhattamhatta/* tterm.c -- Minimalist information on the terminal Copyright (C) 1998 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifdef HAVE_CONFIG_H # include #endif #include #if defined STDC_HEADERS || defined _LIBC || defined HAVE_STDLIB_H # include #else char *getenv (); #endif #if HAVE_SYS_TYPES_H # include #endif #if HAVE_UNISTD_H # include #endif #if HAVE_INTTYPES_H # include #endif #if HAVE_LIMITS_H /* limits.h must come before pathmax.h because limits.h on some systems undefs PATH_MAX, whereas pathmax.h sets PATH_MAX. */ # include #endif #ifndef CHAR_BIT # define CHAR_BIT 8 #endif /* 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)) #define TYPE_MINIMUM(t) \ ((t) (TYPE_SIGNED (t) ? ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1) : (t) 0)) #define TYPE_MAXIMUM(t) ((t) (~ (t) 0 - TYPE_MINIMUM (t))) #ifndef INT_MAX # define INT_MAX TYPE_MAXIMUM (int) #endif #if HAVE_TERMIOS_H # include #endif #ifdef HAVE_SYS_IOCTL # include #endif #if ENABLE_NLS # include # define _(Text) gettext (Text) #else # define _(Text) Text #endif #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 = (int) 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 = (int) tmp_long; } else { error (0, 0, "ignoring invalid tab size in environment variable TABSIZE: %s", quotearg (cp)); } } } /* Sample test of TinyTerm. */ #ifdef TEST #include 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.14/lib/dirname.h0000644000175000017500000000201710735322367014173 0ustar mhattamhatta/* Copyright (C) 1998 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef DIRNAME_H_ # define DIRNAME_H_ 1 # ifndef PARAMS # if defined PROTOTYPES || (defined __STDC__ && __STDC__) # define PARAMS(Args) Args # else # define PARAMS(Args) () # endif # endif char * dir_name PARAMS ((const char *path)); #endif /* not DIRNAME_H_ */ a2ps-4.14/lib/dsc.h0000644000175000017500000000441310735324671013327 0ustar mhattamhatta/* * dsc.h * * Recording information about the PostScript resources * * 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: dsc.h,v 1.1.1.1.2.1 2007/12/29 01:58:17 mhatta Exp $ */ #ifndef _DSC_H_ #define _DSC_H_ struct a2ps_job; /* * Handling the multivalued_entry hash tables */ struct hash_table_s * multivalued_table_new PARAMS ((void)); void multivalued_table_free PARAMS ((struct hash_table_s * table)); /* * needed ps resources (such as fonts) */ void add_needed_resource PARAMS ((struct a2ps_job * job, const char * key, const char * value)); int exist_resource PARAMS ((struct a2ps_job * job, const char * key, const char * value)); void add_process_color PARAMS ((struct a2ps_job * job, const char * value)); void dump_process_color PARAMS ((FILE * stream, struct a2ps_job * job)); void add_needed_resource PARAMS ((struct a2ps_job * job, const char * key, const char * value)); void dump_needed_resources PARAMS ((FILE * stream, struct a2ps_job * job)); void add_supplied_resource PARAMS ((struct a2ps_job * job, const char * key, const char * value)); void dump_supplied_resources PARAMS ((FILE * stream, struct a2ps_job * job)); /* * Declaration of the fonts, etc. */ void add_required_font PARAMS ((struct a2ps_job * job, const char * name)); char ** required_fonts_get PARAMS ((struct a2ps_job * job)); void dump_setup PARAMS ((FILE * stream, struct a2ps_job * job)); #endif a2ps-4.14/lib/xgethostname.c0000644000175000017500000000360510735322362015254 0ustar mhattamhatta/* xgethostname.c -- return current hostname with unlimited length Copyright (C) 1992, 1996 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* written by Jim Meyering */ #ifdef HAVE_CONFIG_H # include #endif #include #include #ifndef errno extern int errno; #endif #include "error.h" #include "xalloc.h" #ifndef EXIT_FAILURE # define EXIT_FAILURE 1 #endif int gethostname (); #ifndef INITIAL_HOSTNAME_LENGTH # define INITIAL_HOSTNAME_LENGTH 34 #endif char * xgethostname () { char *hostname; size_t size; int err; size = INITIAL_HOSTNAME_LENGTH; hostname = XMALLOC (char, size); while (1) { /* Use size - 2 here rather than size - 1 to work around the bug in SunOS5.5's gethostname whereby it NUL-terminates HOSTNAME even when the name is longer than the supplied buffer. */ int k = size - 2; errno = 0; hostname[k] = '\0'; err = gethostname (hostname, size); if (err == 0 && hostname[k] == '\0') break; #ifdef ENAMETOOLONG else if (err != 0 && errno != ENAMETOOLONG && errno != 0) error (EXIT_FAILURE, errno, "gethostname"); #endif size *= 2; hostname = XREALLOC (hostname, char, size); } return hostname; } a2ps-4.14/lib/verify.h0000644000175000017500000001301010735322367014053 0ustar mhattamhatta/* Compile-time assert-like macros. Copyright (C) 2005, 2006 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 Paul Eggert, Bruno Haible, and Jim Meyering. */ #ifndef VERIFY_H # define VERIFY_H 1 /* 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_true (R) is for scalar contexts, including integer constant expression contexts. verify (R) is for declaration contexts, e.g., the top level. Symbols ending in "__" are private to this header. The code below uses several ideas. * 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 verify_type__ { unsigned int verify_error_if_negative_size__: 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 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. 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 verify_type__ {...})]; extern void dummy (int [sizeof (struct {...})]); extern void dummy (int [sizeof (struct verify_type__ {...})]); extern int (*dummy (void)) [sizeof (struct {...})]; extern int (*dummy (void)) [sizeof (struct 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 {...})]; * This implementation exploits the fact that GCC does not warn about the last declaration mentioned above. If a future version of GCC introduces a warning for this, the problem could be worked around by using code specialized to GCC, e.g.,: #if 4 <= __GNUC__ # define verify(R) \ extern int (* verify_function__ (void)) \ [__builtin_constant_p (R) && (R) ? 1 : -1] #endif * In C++, any struct definition inside sizeof is invalid. Use a template type to work around the problem. */ /* Verify requirement R at compile-time, as an integer constant expression. Return 1. */ # ifdef __cplusplus template struct verify_type__ { unsigned int verify_error_if_negative_size__: w; }; # define verify_true(R) \ (!!sizeof (verify_type__<(R) ? 1 : -1>)) # else # define verify_true(R) \ (!!sizeof \ (struct { unsigned int verify_error_if_negative_size__: (R) ? 1 : -1; })) # endif /* Verify requirement R at compile-time, as a declaration without a trailing ';'. */ # define verify(R) extern int (* verify_function__ (void)) [verify_true (R)] #endif a2ps-4.14/lib/str_ht.h0000644000175000017500000000316110735324677014066 0ustar mhattamhatta/* * str_ht.h * * Single (char *) hash table * * 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: str_ht.h,v 1.1.1.1.2.1 2007/12/29 01:58:23 mhatta Exp $ */ #ifndef _STR_HT_H_ #define _STR_HT_H_ struct string_htable; /* * Create / Kill */ struct string_htable * string_htable_new PARAMS ((void)); void string_htable_free PARAMS ((struct string_htable * table)); /* * Add, get */ void string_htable_add PARAMS ((struct string_htable * table, const char * key)); char * string_htable_get PARAMS ((struct string_htable * table, const char * key)); /* * Print/Dump */ void string_htable_self_print PARAMS ((struct string_htable * table, FILE * stream)); char ** string_htable_dump_sorted PARAMS ((struct string_htable * table)); #endif /* !defined(_STR_HT_H_) */ a2ps-4.14/lib/stpncpy.h0000644000175000017500000000232710735322367014260 0ustar mhattamhatta/* Copyright (C) 1993, 1995, 1996 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* This is almost copied from strncpy.c, written by Torbjorn Granlund. */ #ifndef _STPNCPY_H_ #define _STPNCPY_H_ #ifdef HAVE_CONFIG_H # include #endif #ifndef PARAMS # if PROTOTYPES || (defined (__STDC__) && __STDC__) # define PARAMS(args) args # else # define PARAMS(args) () # endif #endif /* Copy no more than N characters of SRC to DEST, returning the address of the last character written into DEST. */ char * stpncpy PARAMS ((char * dest, const char * src, size_t n)); #endif a2ps-4.14/lib/faces.h0000644000175000017500000000626610735324671013647 0ustar mhattamhatta/* * faces.h * * definition of the faces used by 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: faces.h,v 1.1.1.1.2.1 2007/12/29 01:58:17 mhatta Exp $ */ #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 PARAMS ((const char * string)); const char * face_eo_ps PARAMS ((enum face_e face)); const char * face_to_string PARAMS ((enum face_e face)); void face_self_print PARAMS ((enum face_e face, FILE * stream)); void init_face_eo_font PARAMS ((struct a2ps_job * job)); void face_eo_font_free PARAMS ((char * face_eo_font [NB_FACES])); void check_face_eo_font PARAMS ((struct a2ps_job * job)); int face_eo_font_is_set PARAMS ((struct a2ps_job * job)); void face_set_font PARAMS ((struct a2ps_job * job, enum face_e face, const char * font_name)); #endif a2ps-4.14/lib/obstack.c0000644000175000017500000004265510735322362014204 0ustar mhattamhatta/* obstack.c - subroutines used implicitly by object stack macros Copyright (C) 1988,89,90,91,92,93,94,96 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. */ #include "obstack.h" /* NOTE BEFORE MODIFYING THIS FILE: This version number must be incremented whenever callers compiled using an old obstack.h can no longer properly call the functions in this obstack.c. */ #define OBSTACK_INTERFACE_VERSION 1 /* 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. */ #include /* Random thing to get __GNU_LIBRARY__. */ #if !defined (_LIBC) && defined (__GNU_LIBRARY__) && __GNU_LIBRARY__ > 1 #include #if _GNU_OBSTACK_INTERFACE_VERSION == OBSTACK_INTERFACE_VERSION #define ELIDE_CODE #endif #endif #ifndef ELIDE_CODE #if defined (__STDC__) && __STDC__ #define POINTER void * #else #define POINTER char * #endif /* Determine default alignment. */ struct fooalign {char x; double d;}; #define DEFAULT_ALIGNMENT \ ((PTR_INT_TYPE) ((char *) &((struct fooalign *) 0)->d - (char *) 0)) /* 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. */ union fooround {long x; double d;}; #define DEFAULT_ROUNDING (sizeof (union fooround)) /* When we copy a long block of data, this is the unit to do it with. On some machines, copying successive ints does not work; in such a case, redefine COPYING_UNIT to `long' (if that works) or `char' as a last resort. */ #ifndef COPYING_UNIT #define COPYING_UNIT int #endif /* The functions allocating more room by calling `obstack_chunk_alloc' jump to the handler pointed to by `obstack_alloc_failed_handler'. This variable by default points to the internal function `print_and_abort'. */ #if defined (__STDC__) && __STDC__ static void print_and_abort (void); void (*obstack_alloc_failed_handler) (void) = print_and_abort; #else static void print_and_abort (); void (*obstack_alloc_failed_handler) () = print_and_abort; #endif /* Exit value used when `print_and_abort' is used. */ #if defined __GNU_LIBRARY__ || defined HAVE_STDLIB_H #include #endif #ifndef EXIT_FAILURE #define EXIT_FAILURE 1 #endif int obstack_exit_failure = EXIT_FAILURE; /* The non-GNU-C macros copy the obstack into this global variable to avoid multiple evaluation. */ struct obstack *_obstack; /* Define a macro that either calls functions with the traditional malloc/free calling interface, or calls functions with the mmalloc/mfree interface (that adds an extra first argument), based on the state of use_extra_arg. For free, do not use ?:, since some compilers, like the MIPS compilers, do not allow (expr) ? void : void. */ #if defined (__STDC__) && __STDC__ #define CALL_CHUNKFUN(h, size) \ (((h) -> use_extra_arg) \ ? (*(h)->chunkfun) ((h)->extra_arg, (size)) \ : (*(struct _obstack_chunk *(*) (long)) (h)->chunkfun) ((size))) #define CALL_FREEFUN(h, old_chunk) \ do { \ if ((h) -> use_extra_arg) \ (*(h)->freefun) ((h)->extra_arg, (old_chunk)); \ else \ (*(void (*) (void *)) (h)->freefun) ((old_chunk)); \ } while (0) #else #define CALL_CHUNKFUN(h, size) \ (((h) -> use_extra_arg) \ ? (*(h)->chunkfun) ((h)->extra_arg, (size)) \ : (*(struct _obstack_chunk *(*) ()) (h)->chunkfun) ((size))) #define CALL_FREEFUN(h, old_chunk) \ do { \ if ((h) -> use_extra_arg) \ (*(h)->freefun) ((h)->extra_arg, (old_chunk)); \ else \ (*(void (*) ()) (h)->freefun) ((old_chunk)); \ } while (0) #endif /* Initialize an obstack H for use. Specify chunk size SIZE (0 means default). Objects start on multiples of ALIGNMENT (0 means use default). CHUNKFUN is the function to use to allocate chunks, and FREEFUN the function to free them. Return nonzero if successful, zero if out of memory. To recover from an out of memory error, free up some memory, then call this again. */ int _obstack_begin (h, size, alignment, chunkfun, freefun) struct obstack *h; int size; int alignment; #if defined (__STDC__) && __STDC__ POINTER (*chunkfun) (long); void (*freefun) (void *); #else POINTER (*chunkfun) (); void (*freefun) (); #endif { register 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; } #if defined (__STDC__) && __STDC__ h->chunkfun = (struct _obstack_chunk * (*)(void *, long)) chunkfun; h->freefun = (void (*) (void *, struct _obstack_chunk *)) freefun; #else h->chunkfun = (struct _obstack_chunk * (*)()) chunkfun; h->freefun = freefun; #endif h->chunk_size = size; h->alignment_mask = alignment - 1; h->use_extra_arg = 0; chunk = h->chunk = CALL_CHUNKFUN (h, h -> chunk_size); if (!chunk) (*obstack_alloc_failed_handler) (); h->next_free = h->object_base = chunk->contents; 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_1 (h, size, alignment, chunkfun, freefun, arg) struct obstack *h; int size; int alignment; #if defined (__STDC__) && __STDC__ POINTER (*chunkfun) (POINTER, long); void (*freefun) (POINTER, POINTER); #else POINTER (*chunkfun) (); void (*freefun) (); #endif POINTER arg; { register 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; } #if defined(__STDC__) && __STDC__ h->chunkfun = (struct _obstack_chunk * (*)(void *,long)) chunkfun; h->freefun = (void (*) (void *, struct _obstack_chunk *)) freefun; #else h->chunkfun = (struct _obstack_chunk * (*)()) chunkfun; h->freefun = freefun; #endif h->chunk_size = size; h->alignment_mask = alignment - 1; h->extra_arg = arg; h->use_extra_arg = 1; chunk = h->chunk = CALL_CHUNKFUN (h, h -> chunk_size); if (!chunk) (*obstack_alloc_failed_handler) (); h->next_free = h->object_base = chunk->contents; 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; } /* 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 (h, length) struct obstack *h; int length; { register struct _obstack_chunk *old_chunk = h->chunk; register struct _obstack_chunk *new_chunk; register long new_size; register int obj_size = h->next_free - h->object_base; register int i; int already; /* Compute size for new chunk. */ new_size = (obj_size + length) + (obj_size >> 3) + 100; if (new_size < h->chunk_size) new_size = h->chunk_size; /* Allocate and initialize the new chunk. */ 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; /* Move the existing object to the new chunk. Word at a time is fast and is safe if the object is sufficiently aligned. */ if (h->alignment_mask + 1 >= DEFAULT_ALIGNMENT) { for (i = obj_size / sizeof (COPYING_UNIT) - 1; i >= 0; i--) ((COPYING_UNIT *)new_chunk->contents)[i] = ((COPYING_UNIT *)h->object_base)[i]; /* We used to copy the odd few remaining bytes as one extra COPYING_UNIT, but that can cross a page boundary on a machine which does not do strict alignment for COPYING_UNITS. */ already = obj_size / sizeof (COPYING_UNIT) * sizeof (COPYING_UNIT); } else already = 0; /* Copy remaining bytes one by one. */ for (i = already; i < obj_size; i++) new_chunk->contents[i] = h->object_base[i]; /* 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->object_base == old_chunk->contents && ! h->maybe_empty_object) { new_chunk->prev = old_chunk->prev; CALL_FREEFUN (h, old_chunk); } h->object_base = new_chunk->contents; 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. */ #if defined (__STDC__) && __STDC__ /* 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, POINTER obj); #endif int _obstack_allocated_p (h, obj) struct obstack *h; POINTER obj; { register struct _obstack_chunk *lp; /* below addr of any objects in this chunk */ register 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 && ((POINTER) lp >= obj || (POINTER) (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. */ #undef obstack_free /* This function has two names with identical definitions. This is the first one, called from non-ANSI code. */ void _obstack_free (h, obj) struct obstack *h; POINTER obj; { register struct _obstack_chunk *lp; /* below addr of any objects in this chunk */ register 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 && ((POINTER) lp >= obj || (POINTER) (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 (); } /* This function is used from ANSI code. */ void obstack_free (h, obj) struct obstack *h; POINTER obj; { register struct _obstack_chunk *lp; /* below addr of any objects in this chunk */ register 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 && ((POINTER) lp >= obj || (POINTER) (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 (); } int _obstack_memory_used (h) struct obstack *h; { register struct _obstack_chunk* lp; register int nbytes = 0; for (lp = h->chunk; lp != 0; lp = lp->prev) { nbytes += lp->limit - (char *) lp; } return nbytes; } /* Define the error handler. */ #ifndef _ # ifdef HAVE_LIBINTL_H # include # ifndef _ # define _(Str) gettext (Str) # endif # else # define _(Str) (Str) # endif #endif static void print_and_abort () { fputs (_("memory exhausted\n"), stderr); exit (obstack_exit_failure); } #if 0 /* These are now turned off because the applications do not use it and it uses bcopy via obstack_grow, which causes trouble on sysV. */ /* Now define the functional versions of the obstack macros. Define them to simply use the corresponding macros to do the job. */ #if defined (__STDC__) && __STDC__ /* These function definitions do not work with non-ANSI preprocessors; they won't pass through the macro names in parentheses. */ /* The function names appear in parentheses in order to prevent the macro-definitions of the names from being expanded there. */ POINTER (obstack_base) (obstack) struct obstack *obstack; { return obstack_base (obstack); } POINTER (obstack_next_free) (obstack) struct obstack *obstack; { return obstack_next_free (obstack); } int (obstack_object_size) (obstack) struct obstack *obstack; { return obstack_object_size (obstack); } int (obstack_room) (obstack) struct obstack *obstack; { return obstack_room (obstack); } int (obstack_make_room) (obstack, length) struct obstack *obstack; int length; { return obstack_make_room (obstack, length); } void (obstack_grow) (obstack, pointer, length) struct obstack *obstack; POINTER pointer; int length; { obstack_grow (obstack, pointer, length); } void (obstack_grow0) (obstack, pointer, length) struct obstack *obstack; POINTER pointer; int length; { obstack_grow0 (obstack, pointer, length); } void (obstack_1grow) (obstack, character) struct obstack *obstack; int character; { obstack_1grow (obstack, character); } void (obstack_blank) (obstack, length) struct obstack *obstack; int length; { obstack_blank (obstack, length); } void (obstack_1grow_fast) (obstack, character) struct obstack *obstack; int character; { obstack_1grow_fast (obstack, character); } void (obstack_blank_fast) (obstack, length) struct obstack *obstack; int length; { obstack_blank_fast (obstack, length); } POINTER (obstack_finish) (obstack) struct obstack *obstack; { return obstack_finish (obstack); } POINTER (obstack_alloc) (obstack, length) struct obstack *obstack; int length; { return obstack_alloc (obstack, length); } POINTER (obstack_copy) (obstack, pointer, length) struct obstack *obstack; POINTER pointer; int length; { return obstack_copy (obstack, pointer, length); } POINTER (obstack_copy0) (obstack, pointer, length) struct obstack *obstack; POINTER pointer; int length; { return obstack_copy0 (obstack, pointer, length); } #endif /* __STDC__ */ #endif /* 0 */ #endif /* !ELIDE_CODE */ a2ps-4.14/lib/pair_ht.h0000644000175000017500000000506110735324675014210 0ustar mhattamhatta/* * pair_ht.h * * Two (char *) hash table * 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: pair_ht.h,v 1.1.1.1.2.1 2007/12/29 01:58:21 mhatta Exp $ */ #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) PARAMS ((int i, const char * key, const char * value, void const * arg)); typedef int (* pair_ht_select_fn_t) PARAMS ((const char * key, const char * value)); /* * String_Entrys */ struct pair_htable * pair_table_new PARAMS ((void)); void pair_table_free PARAMS ((struct pair_htable * table)); /* * KEY and VALUE will be strdup'd */ void pair_add PARAMS ((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 PARAMS ((struct pair_htable * table, const char * key)); /* * Returns NULL when KEY is not used, otherwise its associated VALUE * in TABLE */ char * pair_get PARAMS ((struct pair_htable * table, const char * key)); void pair_table_list_short PARAMS ((struct pair_htable * table, FILE * stream)); void pair_table_list_long PARAMS ((struct pair_htable * table, FILE * stream)); void pair_table_self_print PARAMS ((struct pair_htable * table, FILE * stream)); /* * Map a function to the content of the table */ void pair_table_map PARAMS ((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 PARAMS ((struct pair_htable * table, const char * file)); #endif a2ps-4.14/lib/confg.c0000644000175000017500000003457210735337331013653 0ustar mhattamhatta/* ANSI-C code produced by gperf version 3.0.3 */ /* Command-line: /usr/bin/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 ." #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 "path-concat.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 unsigned int 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]]; } #ifdef __GNUC__ __inline #ifdef __GNUC_STDC_INLINE__ __attribute__ ((__gnu_inline__)) #endif #endif struct keyword_s * in_word_set (register const char *str, register unsigned int 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 short 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 int key = hash (str, len); if (key <= MAX_HASH_VALUE && key >= 0) { 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; fname = xpath_concat (path, file, NULL); fp = fopen (fname, "r"); if (fp == NULL) { free (fname); 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, eg '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 = xpath_concat (dir, argv[1], NULL); error_at_line (0, errno, fname, firstline, _("cannot open file `%s'"), quotearg (included_file)); free (included_file); } XFREE (dir); } 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: xustrcpy (job->status->magic_number, argv[1]); break; case PageLabelFormat: xustrcpy (job->status->page_label_format, argv[1]); break; case Medium: { int w, h, llx, lly, urx, ury; switch (sscanf (argv[2], "%d %d %d %d %d %d", &w, &h, &llx, &lly, &urx, &ury)) { case 6: /* BBox is also given */ break; case 2: /* A short hand has been used: use 24 points as a margin all around */ llx = lly = 24; urx = w - 24; ury = h - 24; break; default: error_at_line (1, 0, fname, firstline, "invalid number of arguments for `%s'", quotearg (argv[0])); } add_medium (job, argv[1], w, h, llx, lly, urx, ury); } 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: XFREE (job->common.path); 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; } } XFREE (fname); fclose (fp); /* BUF was allocated by getshlinenumbered. */ free (buf); 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.14/lib/media.c0000644000175000017500000001313610735324674013635 0ustar mhattamhatta/* * media.c * * Used paper formats * Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana * Copyright (c) 1995, 96, 97, 98, 99 Akim Demaille, Miguel Santana * $Id: media.c,v 1.1.1.1.2.1 2007/12/29 01:58:20 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. */ #include "a2ps.h" #include "media.h" #include "jobs.h" #include "routines.h" #include "lister.h" #include "quotearg.h" #if HAVE_SYSTEMPAPERNAME # if HAVE_PAPER_H # include # else extern char *systempapername PARAMS ((void)); # endif #else #define systempapername() NULL; #endif /************************************************************************/ /* 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 void medium_name_fputs (struct medium * medium, FILE * stream) { fputs (medium->name, stream); } /* * Add a medium */ void add_medium (struct a2ps_job * job, const char * name, int w, int h, int llx, int lly, int urx, int ury) { struct medium * a_medium = XMALLOC (struct medium, 1); 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); } /* * Free a medium */ static void hash_free_medium (struct medium * medium) { free (medium->name); free (medium); } /* * Create the structure */ struct hash_table_s * new_medium_table (void) { struct hash_table_s * res; res = XMALLOC (struct hash_table_s, 1); hash_init (res, 16, medium_hash_1, medium_hash_2, medium_hash_cmp); return res; } /* * Free the media table */ void free_medium_table (struct hash_table_s * table) { hash_free (table, (hash_map_func_t) hash_free_medium); free (table); } /* * 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; } /* Is libpaper used? */ bool a2ps_medium_libpaper_p (PARAM_UNUSED a2ps_job * job, const char * name) { return strequ (name, LIBPAPER_MEDIUM) ? true : false; } /* * 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%4d x %4d (%4d, %4d, %4d, %4d)\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); free (media); } /* * 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); free (media); } a2ps-4.14/lib/error.c0000644000175000017500000001455210735322362013702 0ustar mhattamhatta/* Error handler for noninteractive utilities Copyright (C) 1990,91,92,93,94,95,96,97,98, 99 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. */ /* Written by David MacKenzie . */ #ifdef HAVE_CONFIG_H # include #endif #include #if HAVE_VPRINTF || HAVE_DOPRNT || _LIBC # if __STDC__ # include # define VA_START(args, lastarg) va_start(args, lastarg) # else # include # define VA_START(args, lastarg) va_start(args) # endif #else # define va_alist a1, a2, a3, a4, a5, a6, a7, a8 # define va_dcl char *a1, *a2, *a3, *a4, *a5, *a6, *a7, *a8; #endif #if STDC_HEADERS || _LIBC # include # include #else void exit (); #endif #include "error.h" #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) ( #if __STDC__ - 0 void #endif ); /* 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 /* In GNU libc we want do not want to use the common name `error' directly. Instead make it a weak alias. */ # define error __error # define error_at_line __error_at_line #else /* not _LIBC */ /* The calling program should define program_name and set it to the name of the executing program. */ extern char *program_name; # ifdef HAVE_STRERROR_R # define __strerror_r strerror_r # else # if HAVE_STRERROR # ifndef strerror /* On some systems, strerror is a macro */ char *strerror (); # endif # else static char * private_strerror (errnum) int errnum; { extern char *sys_errlist[]; extern int sys_nerr; if (errnum > 0 && errnum <= sys_nerr) return _(sys_errlist[errnum]); return _("Unknown system error"); } # define strerror private_strerror # endif /* HAVE_STRERROR */ # endif /* HAVE_STRERROR_R */ #endif /* not _LIBC */ /* 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. */ /* VARARGS */ void #if defined VA_START && __STDC__ error (int status, int errnum, const char *message, ...) #else error (status, errnum, message, va_alist) int status; int errnum; char *message; va_dcl #endif { #ifdef VA_START va_list args; #endif if (error_print_progname) (*error_print_progname) (); else { fflush (stdout); fprintf (stderr, "%s: ", program_name); } #ifdef VA_START VA_START (args, message); # if HAVE_VPRINTF || _LIBC vfprintf (stderr, message, args); # else _doprnt (message, args, stderr); # endif va_end (args); #else fprintf (stderr, message, a1, a2, a3, a4, a5, a6, a7, a8); #endif ++error_message_count; if (errnum) { #if defined HAVE_STRERROR_R || defined _LIBC char errbuf[1024]; /* Don't use __strerror_r's return value because on some systems (at least DEC UNIX 4.0[A-D]) strerror_r returns `int'. */ __strerror_r (errnum, errbuf, sizeof errbuf); fprintf (stderr, ": %s", errbuf); #else fprintf (stderr, ": %s", strerror (errnum)); #endif } putc ('\n', stderr); fflush (stderr); if (status) exit (status); } /* 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 #if defined VA_START && __STDC__ error_at_line (int status, int errnum, const char *file_name, unsigned int line_number, const char *message, ...) #else error_at_line (status, errnum, file_name, line_number, message, va_alist) int status; int errnum; const char *file_name; unsigned int line_number; char *message; va_dcl #endif { #ifdef VA_START va_list args; #endif 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 || !strcmp (old_file_name, file_name))) /* Simply return and print nothing. */ return; old_file_name = file_name; old_line_number = line_number; } if (error_print_progname) (*error_print_progname) (); else { fflush (stdout); fprintf (stderr, "%s:", program_name); } if (file_name != NULL) fprintf (stderr, "%s:%d: ", file_name, line_number); #ifdef VA_START VA_START (args, message); # if HAVE_VPRINTF || _LIBC vfprintf (stderr, message, args); # else _doprnt (message, args, stderr); # endif va_end (args); #else fprintf (stderr, message, a1, a2, a3, a4, a5, a6, a7, a8); #endif ++error_message_count; if (errnum) { #if defined HAVE_STRERROR_R || defined _LIBC char errbuf[1024]; /* Don't use __strerror_r's return value because on some systems (at least DEC UNIX 4.0[A-D]) strerror_r returns `int'. */ __strerror_r (errnum, errbuf, sizeof errbuf); fprintf (stderr, ": %s", errbuf); #else fprintf (stderr, ": %s", strerror (errnum)); #endif } putc ('\n', stderr); fflush (stderr); if (status) exit (status); } #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.14/lib/backupfile.h0000644000175000017500000000355510735322367014671 0ustar mhattamhatta/* backupfile.h -- declarations for making Emacs style backup file names Copyright (C) 1990-1992, 1997-1999 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; see the file COPYING. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef BACKUPFILE_H_ # define BACKUPFILE_H_ /* When to make backup files. */ enum backup_type { /* Never make backups. */ none, /* Make simple backups of every file. */ simple, /* Make numbered backups of files that already have numbered backups, and simple backups of the others. */ numbered_existing, /* Make numbered backups of every file. */ numbered }; # define VALID_BACKUP_TYPE(Type) \ ((Type) == none \ || (Type) == simple \ || (Type) == numbered_existing \ || (Type) == numbered) extern char const *simple_backup_suffix; # ifndef PARAMS # if defined PROTOTYPES || (defined __STDC__ && __STDC__) # define PARAMS(Args) Args # else # define PARAMS(Args) () # endif # endif char *find_backup_file_name PARAMS ((char const *, enum backup_type)); enum backup_type get_version PARAMS ((char const *context, char const *arg)); enum backup_type xget_version PARAMS ((char const *context, char const *arg)); void addext PARAMS ((char *, char const *, int)); #endif /* ! BACKUPFILE_H_ */ a2ps-4.14/lib/gethostname.c0000644000175000017500000000322310735322362015060 0ustar mhattamhatta/* gethostname emulation for SysV and POSIX.1. Copyright (C) 1992 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* David MacKenzie */ #ifdef HAVE_CONFIG_H # include #endif #ifdef HAVE_STRING_H # if !STDC_HEADERS && HAVE_MEMORY_H # include # endif # include #else # include #endif #ifdef HAVE_UNAME # include #endif /* 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. */ int gethostname (name, len) char *name; int 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; } a2ps-4.14/lib/closeout.c0000644000175000017500000000526610735322361014407 0ustar mhattamhatta/* closeout.c - close standard output Copyright (C) 1998, 1999 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #if HAVE_CONFIG_H # include #endif #if ENABLE_NLS # include # define _(Text) gettext (Text) #else # define _(Text) Text #endif #if HAVE_STDLIB_H # include #endif #ifndef EXIT_FAILURE # define EXIT_FAILURE 1 #endif #include #ifndef errno extern int errno; #endif #include #include "closeout.h" #include "error.h" /* Close standard output, exiting with status STATUS on failure. If a program writes *anything* to stdout, that program should `fflush' stdout and make sure that it succeeds before exiting. Otherwise, suppose that you go to the extreme of checking the return status of every function that does an explicit write to stdout. The last printf can succeed in writing to the internal stream buffer, and yet the fclose(stdout) could still fail (due e.g., to a disk full error) when it tries to write out that buffered data. Thus, you would be left with an incomplete output file and the offending program would exit successfully. FIXME: note the fflush suggested above is implicit in the fclose we actually do below. Consider doing only the fflush and/or using setvbuf to inhibit buffering. Besides, it's wasteful to check the return value from every call that writes to stdout -- just let the internal stream state record the failure. That's what the ferror test is checking below. It's important to detect such failures and exit nonzero because many tools (most notably `make' and other build-management systems) depend on being able to detect failure in other tools via their exit status. */ void close_stdout_status (int status) { if (ferror (stdout)) error (status, 0, _("write error")); if (fclose (stdout) != 0) error (status, errno, _("write error")); } /* Close standard output, exiting with status EXIT_FAILURE on failure. */ void close_stdout (void) { close_stdout_status (EXIT_FAILURE); } a2ps-4.14/lib/userdata.h0000644000175000017500000000243410735322367014367 0ustar mhattamhatta/* * userdata.h -- userdata.c -- Get data on users (from /etc/passwd). * 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. */ #ifndef USERDATA_H_ # define USERDATA_H_ #ifndef PARAMS # if PROTOTYPES # define PARAMS(protos) protos # else /* no PROTOTYPES */ # define PARAMS(protos) () # endif /* no PROTOTYPES */ #endif struct userdata { char *login; char *name; char *comments; char *home; }; void userdata_get PARAMS ((struct userdata *udata)); void userdata_free PARAMS ((struct userdata *udata)); #endif /* !USERDATA_H_ */ a2ps-4.14/lib/printlen.c0000644000175000017500000000475210735322362014405 0ustar mhattamhatta/* printlen.c - return number of chars used by a printf like call Copyright (c) 1988-1993 Miguel Santana Copyright (c) 1995-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, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Note: not all the cases are implemented, so improve it before use it! */ #include "system.h" #include "printlen.h" unsigned long strtoul (); static int int_printflen (const char *format, va_list ap) { const char *cp; int total_width = 0; int width = 0; for (cp = format ; *cp ; cp++) { if (*cp != '%') total_width ++; else { /* A `% ' is occuring */ cp++; width = 0; while (strchr ("-+ #0", *cp)) ++cp; if (*cp == '*') { ++cp; width = abs (va_arg (ap, int)); } if (*cp == '.') { ++cp; if (*cp == '*') { ++cp; width = abs (va_arg (ap, int)); } } 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 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 #if defined(VA_START) && __STDC__ printflen (const char *format, ...) #else printflen (format, va_alist) char * format; va_dcl #endif { va_list args; int res; VA_START (args, format); res = vprintflen (format, args); va_end (args); return res; } a2ps-4.14/lib/memset.c0000644000175000017500000000165410735322362014042 0ustar mhattamhatta/* memset.c -- set an area of memory to a given value Copyright (C) 1991 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ char * memset (char *str, int c, unsigned int len) { register char *st = str; while (len-- > 0) *st++ = c; return str; } a2ps-4.14/lib/psstat.c0000644000175000017500000002557510735324676014110 0ustar mhattamhatta/* * psstat.c * * Recording information about the PostScript process * 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: psstat.c,v 1.1.1.1.2.1 2007/12/29 01:58:22 mhatta Exp $ */ #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, 1); 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) { NEW (dict_entry, item); 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 free_dict_entry (struct dict_entry * entry) { free (entry->key); free (entry->value); free (entry); } 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); free_dict_entry (item); } } static void free_dict_entry_table (struct hash_table_s * table) { hash_free (table, (hash_map_func_t) free_dict_entry); free (table); } /************************************************************************/ /* 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, 1); /* The very first line of a PS file */ res->magic_number = xustrdup ("%!PS-Adobe-3.0"); /* By default, the list of page number intervals */ res->page_label_format = xustrdup ("#!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; } void ps_status_free (struct ps_status * status) { free (status->magic_number); free (status->page_label_format); multivalued_table_free (status->needed_resources); multivalued_table_free (status->supplied_resources); free_dict_entry_table (status->pagedevice); free_dict_entry_table (status->statusdict); output_free (status->setup); free (status); } /* * 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); free (items); } /* 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"); free (entries); } /* 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 call when only a single delegated job is output, therefore a2ps' 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); free (entries); } 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); */ free (entries); } 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"); } free (entries); } /* * For --list-options */ void list_statusdict (a2ps_job * job, FILE * stream) { dict_entry_table_dump (job->status->statusdict, stream); } a2ps-4.14/lib/darray.h0000644000175000017500000001121710735322367014040 0ustar mhattamhatta/* darray.h -- dynamic arrays handling Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana Copyright (c) 1995, 96, 97, 98 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, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Author: Akim Demaille */ #ifndef DARRAY_H_ # define DARRAY_H_ /* Support of prototyping when possible */ #ifndef PARAMS # if PROTOTYPES # define PARAMS(protos) protos # else /* no PROTOTYPES */ # define PARAMS(protos) () # endif /* no PROTOTYPES */ #endif 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) PARAMS ((void *)); typedef void (*da_maparg_func_t) PARAMS ((void *, void *)); typedef void (*da_print_func_t) PARAMS ((const void *, FILE * stream)); typedef int (*da_cmp_func_t) PARAMS ((const void * k1, const void * k2)); typedef int (*da_cmp_arg_func_t) PARAMS ((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 PARAMS ((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_free_content PARAMS ((struct darray * arr, da_map_func_t free_func)); void da_free PARAMS ((struct darray * arr, da_map_func_t free_func)); void da_erase PARAMS ((struct darray * arr)); void da_print_stats PARAMS ((struct darray * arr, FILE * stream)); void da_resize PARAMS ((struct darray * arr, size_t size)); void da_grow PARAMS ((struct darray * arr)); /* * Copying */ struct darray * da_clone PARAMS ((struct darray * arr)); /* * Testing */ int da_is_full PARAMS ((struct darray * arr)); int da_is_sorted PARAMS ((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 PARAMS ((struct darray * ar1, struct darray * ar2)); /* Do they have same size, and equal contents arcording to ar1->cmp? */ int da_cmp_equal PARAMS ((struct darray * ar1, struct darray * ar2)); int da_where PARAMS ((struct darray * arr, const void * stuff)); int da_includes PARAMS ((struct darray * arr, const void * stuff)); /* * Adding/removing */ void da_append PARAMS ((struct darray * arr, void * elem)); void da_insert_at PARAMS ((struct darray * arr, void * elem, size_t where)); void da_remove_at PARAMS ((struct darray * arr, size_t where, da_map_func_t free_func)); void da_concat PARAMS ((struct darray * arr, struct darray * arr2)); void da_prefix PARAMS ((struct darray * arr, struct darray * arr2)); /* * Mapped treatement on elements */ void da_qsort PARAMS ((struct darray * arr)); void da_qsort_with_arg PARAMS ((struct darray * arr, da_cmp_arg_func_t cmp, const void * arg)); void da_self_print PARAMS ((struct darray * arr, FILE * stream)); void da_unique PARAMS ((struct darray * arr, da_map_func_t free_func)); /* 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 PARAMS ((struct darray * a1, struct darray * a2, da_map_func_t free_func, enum da_include_policy policy)); void da_map PARAMS ((struct darray * arr, da_map_func_t func)); void da_maparg PARAMS ((struct darray * arr, da_maparg_func_t func, void * arg)); /* * ready to use auxiliary functions */ int da_str_cmp PARAMS ((const char * s1, const char * s2)); void da_str_print PARAMS ((const char * s1, FILE * stream)); void da_str_printnl PARAMS ((const char * s1, FILE * stream)); #endif a2ps-4.14/lib/filtdir.h0000644000175000017500000000271510735322367014216 0ustar mhattamhatta/* filtdir.c -- filter file names in directories This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 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. */ /* Akim Demaille * Based on savedir.c, written by David MacKenzie . */ /* Support of prototyping when possible */ #ifndef PARAMS # if PROTOTYPES # define PARAMS(protos) protos # else /* no PROTOTYPES */ # define PARAMS(protos) () # endif /* no PROTOTYPES */ #endif /* Functions mapped on file names. */ typedef void (*filterdir_fun_t) PARAMS ((const char *dir, const char *file, void *filtarg)); /* Functions used to filter the file names to keep. */ typedef bool (*filterdir_filter_t) PARAMS ((const char *dir, const char *file, void *filtarg)); void filterdir PARAMS ((const char *dir, filterdir_filter_t filter, void *filtarg, filterdir_fun_t fun, void *arg)); a2ps-4.14/lib/useropt.h0000644000175000017500000000326610735324701014256 0ustar mhattamhatta/* * useropt.h * * Recording information about the print jobs * 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: useropt.h,v 1.1.1.1.2.1 2007/12/29 01:58:25 mhatta Exp $ */ #ifndef _USEROPT_H_ #define _USEROPT_H_ /* Declare these two, avoiding includes that generate many depends */ struct job; struct pair_htable; void dict_entry_print PARAMS ((void const * item)); /* * User options */ struct pair_htable * user_options_table_new PARAMS ((void)); void user_options_table_free PARAMS ((struct pair_htable * table)); void user_option_add PARAMS ((struct a2ps_job * job, const char * key, const char * value)); char * user_option_get PARAMS ((struct a2ps_job * job, char * key)); void user_options_list_short PARAMS ((struct a2ps_job * job, FILE * stream)); void user_options_list_long PARAMS ((struct a2ps_job * job, FILE * stream)); #endif a2ps-4.14/lib/obstack.h0000644000175000017500000005444210735322367014213 0ustar mhattamhatta/* obstack.h - object stack macros Copyright (C) 1988,89,90,91,92,93,94,96,97 Free Software Foundation, Inc. the C library, however. The master source lives in /gd/gnu/lib. 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 program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 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. */ /* 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 #ifdef __cplusplus extern "C" { #endif /* We use subtraction of (char *) 0 instead of casting to int because on word-addressable machines a simple cast to int may ignore the byte-within-word field of the pointer. */ #ifndef __PTR_TO_INT #define __PTR_TO_INT(P) ((P) - (char *) 0) #endif #ifndef __INT_TO_PTR #define __INT_TO_PTR(P) ((P) + (char *) 0) #endif /* We need the type of the resulting object. In ANSI C it is ptrdiff_t but in traditional C it is usually long. If we are in ANSI C and don't already have ptrdiff_t get it. */ #if defined (__STDC__) && __STDC__ && ! defined (offsetof) #if defined (__GNUC__) && defined (IN_GCC) /* On Next machine, the system's stddef.h screws up if included after we have defined just ptrdiff_t, so include all of stddef.h. Otherwise, define just ptrdiff_t, which is all we need. */ #ifndef __NeXT__ #define __need_ptrdiff_t #endif #endif #include #endif #if defined (__STDC__) && __STDC__ #define PTR_INT_TYPE ptrdiff_t #else #define PTR_INT_TYPE long #endif #if defined (_LIBC) || defined (HAVE_STRING_H) #include #define _obstack_memcpy(To, From, N) memcpy ((To), (From), (N)) #else #ifdef memcpy #define _obstack_memcpy(To, From, N) memcpy ((To), (From), (N)) #else #define _obstack_memcpy(To, From, N) bcopy ((From), (To), (N)) #endif #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[4]; /* objects begin here */ }; struct obstack /* control current object in current chunk */ { long 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 */ PTR_INT_TYPE temp; /* Temporary for some macros. */ int alignment_mask; /* Mask of alignment for each object. */ #if defined (__STDC__) && __STDC__ /* These prototypes vary based on `use_extra_arg', and we use casts to the prototypeless function type in all assignments, but having prototypes here quiets -Wstrict-prototypes. */ struct _obstack_chunk *(*chunkfun) (void *, long); void (*freefun) (void *, struct _obstack_chunk *); void *extra_arg; /* first arg for chunk alloc/dealloc funcs */ #else struct _obstack_chunk *(*chunkfun) (); /* User's fcn to allocate a chunk. */ void (*freefun) (); /* User's function to free a chunk. */ char *extra_arg; /* first arg for chunk alloc/dealloc funcs */ #endif 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. */ #if defined (__STDC__) && __STDC__ extern void _obstack_newchunk (struct obstack *, int); extern void _obstack_free (struct obstack *, void *); extern int _obstack_begin (struct obstack *, int, int, void *(*) (long), void (*) (void *)); extern int _obstack_begin_1 (struct obstack *, int, int, void *(*) (void *, long), void (*) (void *, void *), void *); extern int _obstack_memory_used (struct obstack *); #else extern void _obstack_newchunk (); extern void _obstack_free (); extern int _obstack_begin (); extern int _obstack_begin_1 (); extern int _obstack_memory_used (); #endif #if defined (__STDC__) && __STDC__ /* Do the function-declarations after the structs but before defining the macros. */ void obstack_init (struct obstack *obstack); void * obstack_alloc (struct obstack *obstack, int size); void * obstack_copy (struct obstack *obstack, void *address, int size); void * obstack_copy0 (struct obstack *obstack, void *address, int size); void obstack_free (struct obstack *obstack, void *block); void obstack_blank (struct obstack *obstack, int size); void obstack_grow (struct obstack *obstack, void *data, int size); void obstack_grow0 (struct obstack *obstack, void *data, int size); void obstack_1grow (struct obstack *obstack, int data_char); void obstack_ptr_grow (struct obstack *obstack, void *data); void obstack_int_grow (struct obstack *obstack, int data); void * obstack_finish (struct obstack *obstack); int obstack_object_size (struct obstack *obstack); int obstack_room (struct obstack *obstack); void obstack_make_room (struct obstack *obstack, int size); void obstack_1grow_fast (struct obstack *obstack, int data_char); void obstack_ptr_grow_fast (struct obstack *obstack, void *data); void obstack_int_grow_fast (struct obstack *obstack, int data); void obstack_blank_fast (struct obstack *obstack, int size); void * obstack_base (struct obstack *obstack); void * obstack_next_free (struct obstack *obstack); int obstack_alignment_mask (struct obstack *obstack); int obstack_chunk_size (struct obstack *obstack); int obstack_memory_used (struct obstack *obstack); #endif /* __STDC__ */ /* Non-ANSI C cannot really support alternative functions for these macros, so we do not declare them. */ /* Error handler called when `obstack_chunk_alloc' failed to allocate more memory. This can be set to a user defined function. The default action is to print a message and abort. */ #if defined (__STDC__) && __STDC__ extern void (*obstack_alloc_failed_handler) (void); #else extern void (*obstack_alloc_failed_handler) (); #endif /* 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) ((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) ((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 in standard C version. */ #if defined (__STDC__) && __STDC__ #define obstack_init(h) \ _obstack_begin ((h), 0, 0, \ (void *(*) (long)) obstack_chunk_alloc, (void (*) (void *)) obstack_chunk_free) #define obstack_begin(h, size) \ _obstack_begin ((h), (size), 0, \ (void *(*) (long)) obstack_chunk_alloc, (void (*) (void *)) obstack_chunk_free) #define obstack_specify_allocation(h, size, alignment, chunkfun, freefun) \ _obstack_begin ((h), (size), (alignment), \ (void *(*) (long)) (chunkfun), (void (*) (void *)) (freefun)) #define obstack_specify_allocation_with_arg(h, size, alignment, chunkfun, freefun, arg) \ _obstack_begin_1 ((h), (size), (alignment), \ (void *(*) (void *, long)) (chunkfun), \ (void (*) (void *, void *)) (freefun), (arg)) #define obstack_chunkfun(h, newchunkfun) \ ((h) -> chunkfun = (struct _obstack_chunk *(*)(void *, long)) (newchunkfun)) #define obstack_freefun(h, newfreefun) \ ((h) -> freefun = (void (*)(void *, struct _obstack_chunk *)) (newfreefun)) #else #define obstack_init(h) \ _obstack_begin ((h), 0, 0, \ (void *(*) ()) obstack_chunk_alloc, (void (*) ()) obstack_chunk_free) #define obstack_begin(h, size) \ _obstack_begin ((h), (size), 0, \ (void *(*) ()) obstack_chunk_alloc, (void (*) ()) obstack_chunk_free) #define obstack_specify_allocation(h, size, alignment, chunkfun, freefun) \ _obstack_begin ((h), (size), (alignment), \ (void *(*) ()) (chunkfun), (void (*) ()) (freefun)) #define obstack_specify_allocation_with_arg(h, size, alignment, chunkfun, freefun, arg) \ _obstack_begin_1 ((h), (size), (alignment), \ (void *(*) ()) (chunkfun), (void (*) ()) (freefun), (arg)) #define obstack_chunkfun(h, newchunkfun) \ ((h) -> chunkfun = (struct _obstack_chunk *(*)()) (newchunkfun)) #define obstack_freefun(h, newfreefun) \ ((h) -> freefun = (void (*)()) (newfreefun)) #endif #define obstack_1grow_fast(h,achar) (*((h)->next_free)++ = achar) #define obstack_blank_fast(h,n) ((h)->next_free += (n)) #define obstack_memory_used(h) _obstack_memory_used (h) #if defined (__GNUC__) && defined (__STDC__) && __STDC__ /* NextStep 2.0 cc is really gcc 1.93 but it defines __GNUC__ = 2 and does not implement __extension__. But that compiler doesn't define __GNUC_MINOR__. */ #if __GNUC__ < 2 || (__NeXT__ && !__GNUC_MINOR__) #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 *__o = (OBSTACK); \ (unsigned) (__o->next_free - __o->object_base); }) #define obstack_room(OBSTACK) \ __extension__ \ ({ struct obstack *__o = (OBSTACK); \ (unsigned) (__o->chunk_limit - __o->next_free); }) #define obstack_make_room(OBSTACK,length) \ __extension__ \ ({ struct obstack *__o = (OBSTACK); \ int __len = (length); \ if (__o->chunk_limit - __o->next_free < __len) \ _obstack_newchunk (__o, __len); \ (void) 0; }) #define obstack_empty_p(OBSTACK) \ __extension__ \ ({ struct obstack *__o = (OBSTACK); \ (__o->chunk->prev == 0 && __o->next_free - __o->chunk->contents == 0); }) #define obstack_grow(OBSTACK,where,length) \ __extension__ \ ({ struct obstack *__o = (OBSTACK); \ int __len = (length); \ if (__o->next_free + __len > __o->chunk_limit) \ _obstack_newchunk (__o, __len); \ _obstack_memcpy (__o->next_free, (char *) (where), __len); \ __o->next_free += __len; \ (void) 0; }) #define obstack_grow0(OBSTACK,where,length) \ __extension__ \ ({ struct obstack *__o = (OBSTACK); \ int __len = (length); \ if (__o->next_free + __len + 1 > __o->chunk_limit) \ _obstack_newchunk (__o, __len + 1); \ _obstack_memcpy (__o->next_free, (char *) (where), __len); \ __o->next_free += __len; \ *(__o->next_free)++ = 0; \ (void) 0; }) #define obstack_1grow(OBSTACK,datum) \ __extension__ \ ({ struct obstack *__o = (OBSTACK); \ if (__o->next_free + 1 > __o->chunk_limit) \ _obstack_newchunk (__o, 1); \ *(__o->next_free)++ = (datum); \ (void) 0; }) /* 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 (__o->next_free + sizeof (void *) > __o->chunk_limit) \ _obstack_newchunk (__o, sizeof (void *)); \ *((void **)__o->next_free)++ = ((void *)datum); \ (void) 0; }) #define obstack_int_grow(OBSTACK,datum) \ __extension__ \ ({ struct obstack *__o = (OBSTACK); \ if (__o->next_free + sizeof (int) > __o->chunk_limit) \ _obstack_newchunk (__o, sizeof (int)); \ *((int *)__o->next_free)++ = ((int)datum); \ (void) 0; }) #define obstack_ptr_grow_fast(h,aptr) (*((void **) (h)->next_free)++ = (void *)aptr) #define obstack_int_grow_fast(h,aint) (*((int *) (h)->next_free)++ = (int) aint) #define obstack_blank(OBSTACK,length) \ __extension__ \ ({ struct obstack *__o = (OBSTACK); \ int __len = (length); \ if (__o->chunk_limit - __o->next_free < __len) \ _obstack_newchunk (__o, __len); \ __o->next_free += __len; \ (void) 0; }) #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 name conflict when obstack_blank is called. */ #define obstack_finish(OBSTACK) \ __extension__ \ ({ struct obstack *__o1 = (OBSTACK); \ void *value; \ value = (void *) __o1->object_base; \ if (__o1->next_free == value) \ __o1->maybe_empty_object = 1; \ __o1->next_free \ = __INT_TO_PTR ((__PTR_TO_INT (__o1->next_free)+__o1->alignment_mask)\ & ~ (__o1->alignment_mask)); \ if (__o1->next_free - (char *)__o1->chunk \ > __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 = (OBJ); \ if (__obj > (void *)__o->chunk && __obj < (void *)__o->chunk_limit) \ __o->next_free = __o->object_base = __obj; \ else (obstack_free) (__o, __obj); }) #else /* not __GNUC__ or not __STDC__ */ #define obstack_object_size(h) \ (unsigned) ((h)->next_free - (h)->object_base) #define obstack_room(h) \ (unsigned) ((h)->chunk_limit - (h)->next_free) #define obstack_empty_p(h) \ ((h)->chunk->prev == 0 && (h)->next_free - (h)->chunk->contents == 0) /* 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 = (length), \ (((h)->next_free + (h)->temp > (h)->chunk_limit) \ ? (_obstack_newchunk ((h), (h)->temp), 0) : 0)) #define obstack_grow(h,where,length) \ ( (h)->temp = (length), \ (((h)->next_free + (h)->temp > (h)->chunk_limit) \ ? (_obstack_newchunk ((h), (h)->temp), 0) : 0), \ _obstack_memcpy ((h)->next_free, (char *) (where), (h)->temp), \ (h)->next_free += (h)->temp) #define obstack_grow0(h,where,length) \ ( (h)->temp = (length), \ (((h)->next_free + (h)->temp + 1 > (h)->chunk_limit) \ ? (_obstack_newchunk ((h), (h)->temp + 1), 0) : 0), \ _obstack_memcpy ((h)->next_free, (char *) (where), (h)->temp), \ (h)->next_free += (h)->temp, \ *((h)->next_free)++ = 0) #define obstack_1grow(h,datum) \ ( (((h)->next_free + 1 > (h)->chunk_limit) \ ? (_obstack_newchunk ((h), 1), 0) : 0), \ (*((h)->next_free)++ = (datum))) #define obstack_ptr_grow(h,datum) \ ( (((h)->next_free + sizeof (char *) > (h)->chunk_limit) \ ? (_obstack_newchunk ((h), sizeof (char *)), 0) : 0), \ (*((char **) (((h)->next_free+=sizeof(char *))-sizeof(char *))) = ((char *) datum))) #define obstack_int_grow(h,datum) \ ( (((h)->next_free + sizeof (int) > (h)->chunk_limit) \ ? (_obstack_newchunk ((h), sizeof (int)), 0) : 0), \ (*((int *) (((h)->next_free+=sizeof(int))-sizeof(int))) = ((int) datum))) #define obstack_ptr_grow_fast(h,aptr) (*((char **) (h)->next_free)++ = (char *) aptr) #define obstack_int_grow_fast(h,aint) (*((int *) (h)->next_free)++ = (int) aint) #define obstack_blank(h,length) \ ( (h)->temp = (length), \ (((h)->chunk_limit - (h)->next_free < (h)->temp) \ ? (_obstack_newchunk ((h), (h)->temp), 0) : 0), \ ((h)->next_free += (h)->temp)) #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 = __PTR_TO_INT ((h)->object_base), \ (h)->next_free \ = __INT_TO_PTR ((__PTR_TO_INT ((h)->next_free)+(h)->alignment_mask) \ & ~ ((h)->alignment_mask)), \ (((h)->next_free - (char *) (h)->chunk \ > (h)->chunk_limit - (char *) (h)->chunk) \ ? ((h)->next_free = (h)->chunk_limit) : 0), \ (h)->object_base = (h)->next_free, \ __INT_TO_PTR ((h)->temp)) #if defined (__STDC__) && __STDC__ #define obstack_free(h,obj) \ ( (h)->temp = (char *) (obj) - (char *) (h)->chunk, \ (((h)->temp > 0 && (h)->temp < (h)->chunk_limit - (char *) (h)->chunk)\ ? (int) ((h)->next_free = (h)->object_base \ = (h)->temp + (char *) (h)->chunk) \ : (((obstack_free) ((h), (h)->temp + (char *) (h)->chunk), 0), 0))) #else #define obstack_free(h,obj) \ ( (h)->temp = (char *) (obj) - (char *) (h)->chunk, \ (((h)->temp > 0 && (h)->temp < (h)->chunk_limit - (char *) (h)->chunk)\ ? (int) ((h)->next_free = (h)->object_base \ = (h)->temp + (char *) (h)->chunk) \ : (_obstack_free ((h), (h)->temp + (char *) (h)->chunk), 0))) #endif #endif /* not __GNUC__ or not __STDC__ */ #ifdef __cplusplus } /* C++ */ #endif #endif /* obstack.h */ a2ps-4.14/lib/msg.h0000644000175000017500000000341710735322367013347 0ustar mhattamhatta/* msg.h -- declaration for verbosity sensitive feedback function Copyright (c) 1988-1993 Miguel Santana Copyright (c) 1995-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, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 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.14/lib/prange.c0000644000175000017500000002156510735324676014041 0ustar mhattamhatta/* * prange.c * * Page range * 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. */ /* * $Id: prange.c,v 1.1.1.1.2.1 2007/12/29 01:58:22 mhatta Exp $ */ #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, 1); 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 uchar * interval_to_buffer (struct interval * interval, uchar * buf, int offset) { int min = 0; /* This interval is passed */ if (interval->max && interval->max < offset) return buf; /* The first pages are printed yet */ if (interval->min && (interval->min <= offset)) min = 1; else min = interval->min - offset; if (min == interval->max) sprintf ((char *) buf, "%d", min); else if (min && interval->max) sprintf ((char *) buf, "%d-%d", min, interval->max - offset); else if (min) sprintf ((char *) buf, "%d-", min); else /* It is better to specify the `1'. For instance dvips * breaks on -pp-10 */ sprintf ((char *) buf, "1-%d", interval->max - offset); return buf + ustrlen (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) { NEW (struct page_range, res); res->intervals = da_new ("Page Range Interval", 5, da_linear, 10, (da_print_func_t) interval_self_print, NULL); res->toc = false; return res; } /* * Free the structure */ void page_range_free (struct page_range * page_range) { da_free (page_range->intervals, (da_map_func_t) free); free (page_range); } /* * Reset to a default value */ static void page_range_reset (struct page_range * page_range) { da_free_content (page_range->intervals, (da_map_func_t) free); 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, uchar * buf, int 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], 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, int 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 (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, int 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], page_num)) return true; return false; } a2ps-4.14/lib/xbackupfile.c0000644000175000017500000001703410735322362015044 0ustar mhattamhatta/* xbackupfile.c -- Backup helping routines Copyright (C) 1990-1997, 1998 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; see the file COPYING. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Written by Akim Demaille */ #include "xbackupfile.h" #include #if HAVE_SYS_STAT_H # include #endif #ifdef STAT_MACROS_BROKEN # undef S_ISREG #endif /* STAT_MACROS_BROKEN. */ #if !defined(S_ISREG) && defined(S_IFREG) # define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) #endif #if HAVE_UNISTD_H # include #endif #ifdef HAVE_ERRNO_H # include #endif #ifndef errno extern int errno; #endif #if HAVE_STDLIB_H # define getopt system_getopt # include # undef getopt #endif /* The following test is to work around the gross typo in systems like Sony NEWS-OS Release 4.0C, whereby EXIT_FAILURE is defined to 0, not 1. */ #if !EXIT_FAILURE # undef EXIT_FAILURE # define EXIT_FAILURE 1 #endif #ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 #endif #ifdef HAVE_FCNTL_H # include #else # include #endif #if !defined (SEEK_SET) # define SEEK_SET 0 # define SEEK_CUR 1 # define SEEK_END 2 #endif #ifndef F_OK # define F_OK 0 # define X_OK 1 # define W_OK 2 # define R_OK 4 #endif #include "error.h" #include "quotearg.h" #if ENABLE_NLS # include # define _(Text) gettext (Text) #else # define _(Text) Text #endif #define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) /* 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 (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 Date: Wed, 16 Sep 1998 14:07:47 -0700 (PDT) From: Miles Bader 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 == none) return open (file, oflag, mode); #ifdef O_EXCL fd = open (file, oflag | O_EXCL, mode); #else { /* This substitute for O_EXCL allows races between `stat' and `open'. */ if (stat (file, &st) == 0) { errno = EEXIST; fd = -1; } else if (errno == ENOENT) fd = open (file, oflag, mode); else return -1; } #endif 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 (file, backup_type); if (rename (file, backup) != 0) return -1; free (backup); } 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 = none ; 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 = none ; /* Definitely, make a backup */ if (backup_type != none) { 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); } if (backup_name) free (backup_name); 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 == none) 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.14/lib/encoding.c0000644000175000017500000007334410735322362014343 0ustar mhattamhatta/* * encodings.c * * definition of the char encodings used * 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. */ #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" #include "strverscmp.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 (); } void encodings_map_free (struct pair_htable * table) { pair_table_free (table); } /* * 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); } free (file); return 1; } /************************************************************************/ /* wx handling */ /************************************************************************/ static inline unsigned int * wx_new (void) { int i; unsigned int *res = XMALLOC (unsigned int, 256); 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 ("\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) { NEW (struct font_entry, res); res->key = xstrdup (name); res->used = false; res->wx = wx; return res; } /* * Free the memory used */ static inline void font_entry_free (struct font_entry * item) { free (item->key); free (item); } 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, 1); 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_free (struct hash_table_s * table) { hash_free (table, (hash_map_func_t) font_entry_free); free (table); } 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); free (entries); } /* * 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; } static unsigned int * font_entry_get_wx (struct hash_table_s * table, const char * name) { return font_entry_get (table, name)->wx; } static int font_entry_exists (struct hash_table_s * table, const char * name) { return font_entry_get (table, name) != NULL; } static int font_entry_is_used (struct hash_table_s * table, const char * name) { return font_entry_get (table, name)->used; } static void font_entry_set_used (struct hash_table_s * table, const char * name) { font_entry_get (table, name)->used = true; } /************************************************************************/ /* encodings entries handling */ /************************************************************************/ /* * Association of suffixes rules, and corresponding style sheet * (The hashing is upon `alias') */ struct encoding { char * key; /* e.g. latin1 */ char * name; /* e.g. ISO Latin 1 */ uchar * 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 */ 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]; }; /* * Create an encoding, reading its associated file.wx */ static struct encoding * encoding_new (const char * key) { int i; NEW (struct encoding, res); res->key = xstrdup (key); res->name = NULL; res->default_font = NULL; res->documentation = NULL; /* Vector will be set by setup */ res->substitutes = pair_table_new (); 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; } static void encoding_free (struct encoding * encoding) { int i; XFREE (encoding->key); XFREE (encoding->name); XFREE (encoding->default_font); XFREE (encoding->documentation); for (i = 0 ; i < 256 ; i++) free (encoding->vector [i]); pair_table_free (encoding->substitutes); da_free (encoding->font_names_used, (da_map_func_t) free); font_table_free (encoding->fonts); for (i = 0 ; base_faces [i] != -1 ; i++) free (encoding->faces_wx [base_faces [i]]); free (encoding); } /* * 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); } /* * 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; astrcpy (font_list_copy, font_list); font_name = strtok (font_list_copy, ",<>;"); do { /* Find if there is a substitute for that font */ res = pair_get (encoding->substitutes, font_name); if (!res) /* 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", 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 GET_LINE_TOKEN(from) (strtok ((from), "\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; int 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 (strequ (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 (strequ (token, "Name:")) { token2 = GET_TOKEN (NULL); CHECK_TOKEN (); encoding->name = xstrdup (token2); } else if (strequ (token, "Default:")) { token2 = GET_TOKEN (NULL); CHECK_TOKEN (); encoding->default_font = xstrdup (token2); } else if (strequ (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); } if (!strprefix ("EndDocumentation", buf2)) error (1, 0, fname, firstline, _("missing argument for `%s'"), "`Documentation'"); /* Finish the obstack, and store in the encoding entry */ obstack_1grow (&documentation_stack, '\0'); documentation = (char *) obstack_finish (&documentation_stack); obstack_free (&documentation_stack, documentation); encoding->documentation = xustrdup (documentation); } else if (strequ (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 error_at_line (1, 0, fname, firstline, _("invalid option `%s'"), quotearg (token)); } fclose (stream); free (buf); free (fname); } /* * Used by --list-encodings */ static void encoding_print_signature (struct encoding * item, FILE * stream) { int 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, uchar c) { return enc->faces_wx[face][c]; } /* * 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; 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, (da_map_func_t) free); /* 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, (da_map_func_t) free); } /* The number of fonts that, finally, have to be encoded * in the current ENCODING */ nb = encoding->font_names_used->len; /* Create the dictionary and fill it */ fprintf (stream, "%% Dictionary for %s support\n", encoding->name); fprintf (stream, "/%sdict %d dict begin\n", encoding->key, nb); 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])); 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, 1); 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; } /* * Free the table and content */ void encodings_table_free (struct hash_table_s * table) { hash_free (table, (hash_map_func_t) encoding_free); free (table); } /* * 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]); } } /* * Retreive 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]); free (encodings); } /************************************************************************/ /* Computing the width of a char/string */ /************************************************************************/ /* * Returns the WX of a char (including M- and ^) */ unsigned int char_WX (a2ps_job * job, uchar 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 */ } /* * Returns the WX of a string (including M- and ^) */ unsigned int string_WX (a2ps_job * job, uchar * string) { unsigned int result=0; for (/* skip */; *string ; string ++) result += char_WX(job, *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); } da_free (entries, (da_map_func_t) free); } /************************************************************************/ /* 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); } da_free (entries, (da_map_func_t) free); } a2ps-4.14/lib/pathwalk.h0000644000175000017500000000554710735324675014406 0ustar mhattamhatta/* * pathwalk.h * * functions for ooking for files, reading files etc. * Copyright (c) 1988-1993 Miguel Santana * Copyright (c) 1995-1999 Akim Demaille, Miguel Santana * $Id: pathwalk.h,v 1.1.1.1.2.1 2007/12/29 01:58:21 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 _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 PARAMS ((const char * string)); char ** pw_append_string_to_path PARAMS ((char ** path1, const char * dir2)); char ** pw_prepend_string_to_path PARAMS ((char ** path1, const char * dir2)); void pw_free_path PARAMS ((char ** path)); void pw_fprintf_path PARAMS ((FILE * stream, const char * format, char * const * path)); /* * Dump NAME.SUFFIX in the PATH on STDOUT */ int pw_paste_file PARAMS ((char * const * path, const char *name, const char *suffix)); /* * Is the file CONTEXT somewhere in PATH */ int pw_file_exists_p PARAMS ((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 PARAMS ((char * const * path, const char *name, const char *suffix)); /* Idem, but exits upon failure */ char * xpw_find_file PARAMS ((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 PARAMS ((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 PARAMS ((char * const * path, const char * pattern)); void pw_glob_print PARAMS ((char * const * path, const char * pattern, FILE *stream)); struct darray * pw_glob_on_suffix PARAMS ((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 PARAMS ((FILE * stream, char * const * path, const char * suffix)); #endif /* not defined _PATHWALK_H_ */ a2ps-4.14/lib/path-concat.h0000644000175000017500000000245210735322367014760 0ustar mhattamhatta/* path-concat.c -- concatenate two arbitrary pathnames Copyright (C) 1996, 1997, 1998 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Written by Jim Meyering. */ #if ! defined PATH_CONCAT_H_ # define PATH_CONCAT_H_ # ifndef PARAMS # if defined PROTOTYPES || (defined __STDC__ && __STDC__) # define PARAMS(Args) Args # else # define PARAMS(Args) () # endif # endif /* May return NULL if fails to malloc. */ char * path_concat PARAMS ((const char *dir, const char *base, char **base_in_result)); /* Cannot. */ char * xpath_concat PARAMS ((const char *dir, const char *base, char **base_in_result)); #endif a2ps-4.14/lib/signame.c0000644000175000017500000001765510735322362014203 0ustar mhattamhatta/* Convert between signal names and numbers. Copyright (C) 1990, 1992, 1993, 1995, 1996 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 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. */ #ifdef HAVE_CONFIG_H #include #endif #include #include /* Some systems need this for . */ #include #ifdef HAVE_STRING_H #include #endif /* Some systems declare `sys_siglist in ; if configure defined SYS_SIGLIST_DECLARED, it may expect to find the declaration there. */ #ifdef HAVE_UNISTD_H #include #endif /* Some systems do not define NSIG in . */ #ifndef NSIG #ifdef _NSIG #define NSIG _NSIG #else #define NSIG 32 #endif #endif #if !__STDC__ #define const #endif #include "signame.h" #ifndef HAVE_SYS_SIGLIST /* There is too much variation in Sys V signal numbers and names, so we must initialize them at runtime. */ static const char undoc[] = "unknown signal"; const char *sys_siglist[NSIG]; #else /* HAVE_SYS_SIGLIST. */ #if defined HAVE_DECL_SYS_SIGLIST && !HAVE_DECL_SYS_SIGLIST extern char *sys_siglist[]; #endif /* Not HAVE_DECL_SYS_SIGLIST. */ #endif /* Not HAVE_SYS_SIGLIST. */ /* Table of abbreviations for signals. Note: A given number can appear more than once with different abbreviations. */ typedef struct { int number; const char *abbrev; } num_abbrev; static num_abbrev sig_table[NSIG*2]; /* Number of elements of sig_table used. */ static int sig_table_nelts = 0; /* Enter signal number NUMBER into the tables with ABBREV and NAME. */ static void init_sig (number, abbrev, name) int number; const char *abbrev; const char *name; { #ifndef HAVE_SYS_SIGLIST sys_siglist[number] = name; #endif sig_table[sig_table_nelts].number = number; sig_table[sig_table_nelts++].abbrev = abbrev; } void signame_init () { #ifndef HAVE_SYS_SIGLIST int i; /* Initialize signal names. */ for (i = 0; i < NSIG; i++) sys_siglist[i] = undoc; #endif /* !HAVE_SYS_SIGLIST */ /* Initialize signal names. */ #if defined (SIGHUP) init_sig (SIGHUP, "HUP", "Hangup"); #endif #if defined (SIGINT) init_sig (SIGINT, "INT", "Interrupt"); #endif #if defined (SIGQUIT) init_sig (SIGQUIT, "QUIT", "Quit"); #endif #if defined (SIGILL) init_sig (SIGILL, "ILL", "Illegal Instruction"); #endif #if defined (SIGTRAP) init_sig (SIGTRAP, "TRAP", "Trace/breakpoint trap"); #endif /* If SIGIOT == SIGABRT, we want to print it as SIGABRT because SIGABRT is in ANSI and POSIX.1 and SIGIOT isn't. */ #if defined (SIGABRT) init_sig (SIGABRT, "ABRT", "Aborted"); #endif #if defined (SIGIOT) init_sig (SIGIOT, "IOT", "IOT trap"); #endif #if defined (SIGEMT) init_sig (SIGEMT, "EMT", "EMT trap"); #endif #if defined (SIGFPE) init_sig (SIGFPE, "FPE", "Floating point exception"); #endif #if defined (SIGKILL) init_sig (SIGKILL, "KILL", "Killed"); #endif #if defined (SIGBUS) init_sig (SIGBUS, "BUS", "Bus error"); #endif #if defined (SIGSEGV) init_sig (SIGSEGV, "SEGV", "Segmentation fault"); #endif #if defined (SIGSYS) init_sig (SIGSYS, "SYS", "Bad system call"); #endif #if defined (SIGPIPE) init_sig (SIGPIPE, "PIPE", "Broken pipe"); #endif #if defined (SIGALRM) init_sig (SIGALRM, "ALRM", "Alarm clock"); #endif #if defined (SIGTERM) init_sig (SIGTERM, "TERM", "Terminated"); #endif #if defined (SIGUSR1) init_sig (SIGUSR1, "USR1", "User defined signal 1"); #endif #if defined (SIGUSR2) init_sig (SIGUSR2, "USR2", "User defined signal 2"); #endif /* If SIGCLD == SIGCHLD, we want to print it as SIGCHLD because that is what is in POSIX.1. */ #if defined (SIGCHLD) init_sig (SIGCHLD, "CHLD", "Child exited"); #endif #if defined (SIGCLD) init_sig (SIGCLD, "CLD", "Child exited"); #endif #if defined (SIGPWR) init_sig (SIGPWR, "PWR", "Power failure"); #endif #if defined (SIGTSTP) init_sig (SIGTSTP, "TSTP", "Stopped"); #endif #if defined (SIGTTIN) init_sig (SIGTTIN, "TTIN", "Stopped (tty input)"); #endif #if defined (SIGTTOU) init_sig (SIGTTOU, "TTOU", "Stopped (tty output)"); #endif #if defined (SIGSTOP) init_sig (SIGSTOP, "STOP", "Stopped (signal)"); #endif #if defined (SIGXCPU) init_sig (SIGXCPU, "XCPU", "CPU time limit exceeded"); #endif #if defined (SIGXFSZ) init_sig (SIGXFSZ, "XFSZ", "File size limit exceeded"); #endif #if defined (SIGVTALRM) init_sig (SIGVTALRM, "VTALRM", "Virtual timer expired"); #endif #if defined (SIGPROF) init_sig (SIGPROF, "PROF", "Profiling timer expired"); #endif #if defined (SIGWINCH) /* "Window size changed" might be more accurate, but even if that is all that it means now, perhaps in the future it will be extended to cover other kinds of window changes. */ init_sig (SIGWINCH, "WINCH", "Window changed"); #endif #if defined (SIGCONT) init_sig (SIGCONT, "CONT", "Continued"); #endif #if defined (SIGURG) init_sig (SIGURG, "URG", "Urgent I/O condition"); #endif #if defined (SIGIO) /* "I/O pending" has also been suggested. A disadvantage is that signal only happens when the process has asked for it, not everytime I/O is pending. Another disadvantage is the confusion from giving it a different name than under Unix. */ init_sig (SIGIO, "IO", "I/O possible"); #endif #if defined (SIGWIND) init_sig (SIGWIND, "WIND", "SIGWIND"); #endif #if defined (SIGPHONE) init_sig (SIGPHONE, "PHONE", "SIGPHONE"); #endif #if defined (SIGPOLL) init_sig (SIGPOLL, "POLL", "I/O possible"); #endif #if defined (SIGLOST) init_sig (SIGLOST, "LOST", "Resource lost"); #endif #if defined (SIGDANGER) init_sig (SIGDANGER, "DANGER", "Danger signal"); #endif #if defined (SIGINFO) init_sig (SIGINFO, "INFO", "Information request"); #endif #if defined (SIGNOFP) init_sig (SIGNOFP, "NOFP", "Floating point co-processor not available"); #endif } /* Return the abbreviation for signal NUMBER. */ char * sig_abbrev (number) int number; { int i; if (sig_table_nelts == 0) signame_init (); for (i = 0; i < sig_table_nelts; i++) if (sig_table[i].number == number) return (char *)sig_table[i].abbrev; return NULL; } /* Return the signal number for an ABBREV, or -1 if there is no signal by that name. */ int sig_number (abbrev) const char *abbrev; { int i; if (sig_table_nelts == 0) signame_init (); /* Skip over "SIG" if present. */ if (abbrev[0] == 'S' && abbrev[1] == 'I' && abbrev[2] == 'G') abbrev += 3; for (i = 0; i < sig_table_nelts; i++) if (abbrev[0] == sig_table[i].abbrev[0] && strcmp (abbrev, sig_table[i].abbrev) == 0) return sig_table[i].number; return -1; } #ifndef HAVE_PSIGNAL /* Print to standard error the name of SIGNAL, preceded by MESSAGE and a colon, and followed by a newline. */ void psignal (signal, message) int signal; const char *message; { if (signal <= 0 || signal >= NSIG) fprintf (stderr, "%s: unknown signal", message); else fprintf (stderr, "%s: %s\n", message, sys_siglist[signal]); } #endif #ifndef HAVE_STRSIGNAL /* Return the string associated with the signal number. */ char * strsignal (signal) int signal; { static char buf[] = "Signal 12345678901234567890"; if (signal > 0 || signal < NSIG) return (char *) sys_siglist[signal]; sprintf (buf, "Signal %d", signal); return buf; } #endif a2ps-4.14/lib/strftime.c0000644000175000017500000007221210735322362014403 0ustar mhattamhatta/* Copyright (C) 1991,92,93,94,95,96,97,98,99 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@prep.ai.mit.edu. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that 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 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. */ #ifdef HAVE_CONFIG_H # include #endif #ifdef _LIBC # define HAVE_LIMITS_H 1 # define HAVE_MBLEN 1 # define HAVE_MBRLEN 1 # define HAVE_STRUCT_ERA_ENTRY 1 # define HAVE_TM_GMTOFF 1 # define HAVE_TM_ZONE 1 # define HAVE_TZNAME 1 # define HAVE_TZSET 1 # define MULTIBYTE_IS_FORMAT_SAFE 1 # define STDC_HEADERS 1 # include "../locale/localeinfo.h" #endif #if defined emacs && !defined HAVE_BCOPY # define HAVE_MEMCPY 1 #endif #include #include /* Some systems define `time_t' here. */ #ifdef TIME_WITH_SYS_TIME # include # include #else # ifdef HAVE_SYS_TIME_H # include # else # include # endif #endif #if HAVE_TZNAME extern char *tzname[]; #endif /* Do multibyte processing if multibytes are supported, unless multibyte sequences are safe in formats. Multibyte sequences are safe if they cannot contain byte sequences that look like format conversion specifications. The GNU C Library uses UTF8 multibyte encoding, which is safe for formats, but strftime.c can be used with other C libraries that use unsafe encodings. */ #define DO_MULTIBYTE (HAVE_MBLEN && ! MULTIBYTE_IS_FORMAT_SAFE) #if DO_MULTIBYTE # if HAVE_MBRLEN # include # else /* Simulate mbrlen with mblen as best we can. */ # define mbstate_t int # define mbrlen(s, n, ps) mblen (s, n) # define mbsinit(ps) (*(ps) == 0) # endif static const mbstate_t mbstate_zero; #endif #if HAVE_LIMITS_H # include #endif #if STDC_HEADERS # include # include # include #else # ifndef HAVE_MEMCPY # define memcpy(d, s, n) bcopy ((s), (d), (n)) # endif #endif #ifdef _LIBC # define MEMPCPY(d, s, n) __mempcpy (d, s, n) #else # ifndef HAVE_MEMPCPY # define MEMPCPY(d, s, n) ((void *) ((char *) memcpy (d, s, n) + (n))) # endif #endif #ifndef __P # if defined __GNUC__ || (defined __STDC__ && __STDC__) # define __P(args) args # else # define __P(args) () # endif /* GCC. */ #endif /* Not __P. */ #ifndef PTR # ifdef __STDC__ # define PTR void * # else # define PTR char * # endif #endif #ifndef CHAR_BIT # define CHAR_BIT 8 #endif #ifndef NULL # define NULL 0 #endif #define TYPE_SIGNED(t) ((t) -1 < 0) /* Bound on length of the string representing an integer value of type t. Subtract one for the sign bit if t is signed; 302 / 1000 is log10 (2) rounded up; add one for integer division truncation; add one more for a minus sign if t is signed. */ #define INT_STRLEN_BOUND(t) \ ((sizeof (t) * CHAR_BIT - TYPE_SIGNED (t)) * 302 / 1000 + 1 + TYPE_SIGNED (t)) #define TM_YEAR_BASE 1900 #ifndef __isleap /* Nonzero if YEAR is a leap year (every 4 years, except every 100th isn't, and every 400th is). */ # define __isleap(year) \ ((year) % 4 == 0 && ((year) % 100 != 0 || (year) % 400 == 0)) #endif #ifdef _LIBC # define my_strftime_gmtime_r __gmtime_r # define my_strftime_localtime_r __localtime_r # define tzname __tzname # define tzset __tzset #else /* If we're a strftime substitute in a GNU program, then prefer gmtime to gmtime_r, since many gmtime_r implementations are buggy. Similarly for localtime_r. */ # if ! HAVE_TM_GMTOFF static struct tm *my_strftime_gmtime_r __P ((const time_t *, struct tm *)); static struct tm * my_strftime_gmtime_r (const time_t *t, struct tm *tp) { struct tm *l = gmtime (t); if (! l) return 0; *tp = *l; return tp; } # endif /* ! HAVE_TM_GMTOFF */ static struct tm *my_strftime_localtime_r __P ((const time_t *, struct tm *)); static struct tm * my_strftime_localtime_r (const time_t *t, struct tm *tp) { struct tm *l = localtime (t); if (! l) return 0; *tp = *l; return tp; } #endif /* ! defined _LIBC */ #if !defined memset && !defined HAVE_MEMSET && !defined _LIBC /* Some systems lack the `memset' function and we don't want to introduce additional dependencies. */ /* The SGI compiler reportedly barfs on the trailing null if we use a string constant as the initializer. 28 June 1997, rms. */ static const char spaces[16] = /* " " */ { ' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ' }; static const char zeroes[16] = /* "0000000000000000" */ { '0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0' }; # define memset_space(P, Len) \ do { \ int _len = (Len); \ \ do \ { \ int _this = _len > 16 ? 16 : _len; \ (P) = MEMPCPY ((P), spaces, _this); \ _len -= _this; \ } \ while (_len > 0); \ } while (0) # define memset_zero(P, Len) \ do { \ int _len = (Len); \ \ do \ { \ int _this = _len > 16 ? 16 : _len; \ (P) = MEMPCPY ((P), zeroes, _this); \ _len -= _this; \ } \ while (_len > 0); \ } while (0) #else # define memset_space(P, Len) (memset ((P), ' ', (Len)), (P) += (Len)) # define memset_zero(P, Len) (memset ((P), '0', (Len)), (P) += (Len)) #endif #define add(n, f) \ do \ { \ int _n = (n); \ int _delta = width - _n; \ int _incr = _n + (_delta > 0 ? _delta : 0); \ if (i + _incr >= maxsize) \ return 0; \ if (p) \ { \ if (_delta > 0) \ { \ if (pad == '0') \ memset_zero (p, _delta); \ else \ memset_space (p, _delta); \ } \ f; \ p += _n; \ } \ i += _incr; \ } while (0) #define cpy(n, s) \ add ((n), \ if (to_lowcase) \ memcpy_lowcase (p, (s), _n); \ else if (to_uppcase) \ memcpy_uppcase (p, (s), _n); \ else \ memcpy ((PTR) p, (PTR) (s), _n)) #ifdef _LIBC # define TOUPPER(Ch) toupper (Ch) # define TOLOWER(Ch) tolower (Ch) #else # define TOUPPER(Ch) (islower (Ch) ? toupper (Ch) : (Ch)) # define TOLOWER(Ch) (isupper (Ch) ? tolower (Ch) : (Ch)) #endif /* We don't use `isdigit' here since the locale dependent interpretation is not what we want here. We only need to accept the arabic digits in the ASCII range. One day there is perhaps a more reliable way to accept other sets of digits. */ #define ISDIGIT(Ch) ((unsigned int) (Ch) - '0' <= 9) static char *memcpy_lowcase __P ((char *dest, const char *src, size_t len)); static char * memcpy_lowcase (char *dest, const char *src, size_t len) { while (len-- > 0) dest[len] = TOLOWER ((unsigned char) src[len]); return dest; } static char *memcpy_uppcase __P ((char *dest, const char *src, size_t len)); static char * memcpy_uppcase (char *dest, const char *src, size_t len) { while (len-- > 0) dest[len] = TOUPPER ((unsigned char) src[len]); return dest; } #if ! HAVE_TM_GMTOFF /* Yield the difference between *A and *B, measured in seconds, ignoring leap seconds. */ # define tm_diff ftime_tm_diff static int tm_diff __P ((const struct tm *, const struct tm *)); static int tm_diff (const struct tm *a, const struct tm *b) { /* Compute intervening leap days correctly even if year is negative. Take care to avoid int overflow in leap day calculations, but it's OK to assume that A and B are close to each other. */ int a4 = (a->tm_year >> 2) + (TM_YEAR_BASE >> 2) - ! (a->tm_year & 3); int b4 = (b->tm_year >> 2) + (TM_YEAR_BASE >> 2) - ! (b->tm_year & 3); int a100 = a4 / 25 - (a4 % 25 < 0); int b100 = b4 / 25 - (b4 % 25 < 0); int a400 = a100 >> 2; int b400 = b100 >> 2; int intervening_leap_days = (a4 - b4) - (a100 - b100) + (a400 - b400); int years = a->tm_year - b->tm_year; int days = (365 * years + intervening_leap_days + (a->tm_yday - b->tm_yday)); return (60 * (60 * (24 * days + (a->tm_hour - b->tm_hour)) + (a->tm_min - b->tm_min)) + (a->tm_sec - b->tm_sec)); } #endif /* ! HAVE_TM_GMTOFF */ /* The number of days from the first day of the first ISO week of this year to the year day YDAY with week day WDAY. ISO weeks start on Monday; the first ISO week has the year's first Thursday. YDAY may be as small as YDAY_MINIMUM. */ #define ISO_WEEK_START_WDAY 1 /* Monday */ #define ISO_WEEK1_WDAY 4 /* Thursday */ #define YDAY_MINIMUM (-366) static int iso_week_days __P ((int, int)); #ifdef __GNUC__ __inline__ #endif static int iso_week_days (int yday, int wday) { /* Add enough to the first operand of % to make it nonnegative. */ int big_enough_multiple_of_7 = (-YDAY_MINIMUM / 7 + 2) * 7; return (yday - (yday - wday + ISO_WEEK1_WDAY + big_enough_multiple_of_7) % 7 + ISO_WEEK1_WDAY - ISO_WEEK_START_WDAY); } #if !(defined _NL_CURRENT || HAVE_STRFTIME) static char const weekday_name[][10] = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" }; static char const month_name[][10] = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" }; #endif #ifdef emacs # define my_strftime emacs_strftimeu # define ut_argument , ut # define ut_argument_spec int ut; # define ut_argument_spec_iso , int ut #else # define my_strftime strftime # define ut_argument # define ut_argument_spec # define ut_argument_spec_iso /* We don't have this information in general. */ # define ut 0 #endif #if !defined _LIBC && HAVE_TZNAME && HAVE_TZSET /* Solaris 2.5 tzset sometimes modifies the storage returned by localtime. Work around this bug by copying *tp before it might be munged. */ size_t _strftime_copytm __P ((char *, size_t, const char *, const struct tm * ut_argument_spec_iso)); size_t my_strftime (s, maxsize, format, tp ut_argument) char *s; size_t maxsize; const char *format; const struct tm *tp; ut_argument_spec { struct tm tmcopy; tmcopy = *tp; return _strftime_copytm (s, maxsize, format, &tmcopy ut_argument); } # undef my_strftime # define my_strftime(S, Maxsize, Format, Tp) \ _strftime_copytm (S, Maxsize, Format, Tp) #endif /* Write information from TP into S according to the format string FORMAT, writing no more that MAXSIZE characters (including the terminating '\0') and returning number of characters written. If S is NULL, nothing will be written anywhere, so to determine how many characters would be written, use NULL for S and (size_t) UINT_MAX for MAXSIZE. */ size_t my_strftime (char *s, size_t maxsize, const char *format, const struct tm *tp ut_argument_spec) { int hour12 = tp->tm_hour; #ifdef _NL_CURRENT /* We cannot make the following values variables since we must delay the evaluation of these values until really needed since some expressions might not be valid in every situation. The `struct tm' might be generated by a strptime() call that initialized only a few elements. Dereference the pointers only if the format requires this. Then it is ok to fail if the pointers are invalid. */ # define a_wkday _NL_CURRENT (LC_TIME, ABDAY_1 + tp->tm_wday) # define f_wkday _NL_CURRENT (LC_TIME, DAY_1 + tp->tm_wday) # define a_month _NL_CURRENT (LC_TIME, ABMON_1 + tp->tm_mon) # define f_month _NL_CURRENT (LC_TIME, MON_1 + tp->tm_mon) # define ampm _NL_CURRENT (LC_TIME, tp->tm_hour > 11 ? PM_STR : AM_STR) # define aw_len strlen (a_wkday) # define am_len strlen (a_month) # define ap_len strlen (ampm) #else # if !HAVE_STRFTIME # define f_wkday (weekday_name[tp->tm_wday]) # define f_month (month_name[tp->tm_mon]) # define a_wkday f_wkday # define a_month f_month # define ampm ("AMPM" + 2 * (tp->tm_hour > 11)) size_t aw_len = 3; size_t am_len = 3; size_t ap_len = 2; # endif #endif const char *zone; size_t i = 0; char *p = s; const char *f; zone = NULL; #if HAVE_TM_ZONE /* The POSIX test suite assumes that setting the environment variable TZ to a new value before calling strftime() will influence the result (the %Z format) even if the information in TP is computed with a totally different time zone. This is bogus: though POSIX allows bad behavior like this, POSIX does not require it. Do the right thing instead. */ zone = (const char *) tp->tm_zone; #endif #if HAVE_TZNAME if (ut) { if (! (zone && *zone)) zone = "GMT"; } else { /* POSIX.1 8.1.1 requires that whenever strftime() is called, the time zone names contained in the external variable `tzname' shall be set as if the tzset() function had been called. */ # if HAVE_TZSET tzset (); # endif } #endif if (hour12 > 12) hour12 -= 12; else if (hour12 == 0) hour12 = 12; for (f = format; *f != '\0'; ++f) { int pad = 0; /* Padding for number ('-', '_', or 0). */ int modifier; /* Field modifier ('E', 'O', or 0). */ int digits; /* Max digits for numeric format. */ int number_value; /* Numeric value to be printed. */ int negative_number; /* 1 if the number is negative. */ const char *subfmt; char *bufp; char buf[1 + (sizeof (int) < sizeof (time_t) ? INT_STRLEN_BOUND (time_t) : INT_STRLEN_BOUND (int))]; int width = -1; int to_lowcase = 0; int to_uppcase = 0; int change_case = 0; int format_char; #if DO_MULTIBYTE switch (*f) { case '%': break; case '\b': case '\t': case '\n': case '\v': case '\f': case '\r': case ' ': case '!': case '"': case '#': case '&': case'\'': case '(': case ')': 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 ';': case '<': case '=': 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': case '[': case'\\': case ']': 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': case '{': case '|': case '}': case '~': /* The C Standard requires these 97 characters (plus '%', '\a') to be in the basic execution character set. None of these characters can start a multibyte sequence, so they need not be analyzed further. Some old compilers object to '\a', so don't bother optimizing for it. */ add (1, *p = *f); continue; default: /* Copy this multibyte sequence until we reach its end, find an error, or come back to the initial shift state. */ { mbstate_t mbstate = mbstate_zero; size_t len = 0; do { size_t bytes = mbrlen (f + len, (size_t) -1, &mbstate); if (bytes == 0) break; if (bytes == (size_t) -2) { len += strlen (f + len); break; } if (bytes == (size_t) -1) { len++; break; } len += bytes; } while (! mbsinit (&mbstate)); cpy (len, f); f += len - 1; continue; } } #else /* ! DO_MULTIBYTE */ /* Either multibyte encodings are not supported, or they are safe for formats, so any non-'%' byte can be copied through. */ if (*f != '%') { add (1, *p = *f); continue; } #endif /* ! DO_MULTIBYTE */ /* Check for flags that can modify a format. */ while (1) { switch (*++f) { /* This influences the number formats. */ case '_': case '-': case '0': pad = *f; continue; /* This changes textual output. */ case '^': to_uppcase = 1; continue; case '#': change_case = 1; continue; default: break; } break; } /* As a GNU extension we allow to specify the field width. */ if (ISDIGIT (*f)) { width = 0; do { width *= 10; width += *f - '0'; ++f; } while (ISDIGIT (*f)); } /* Check for modifiers. */ switch (*f) { case 'E': case 'O': modifier = *f++; break; default: modifier = 0; break; } /* Now do the specified format. */ format_char = *f; switch (format_char) { #define DO_NUMBER(d, v) \ digits = width == -1 ? d : width; \ number_value = v; goto do_number #define DO_NUMBER_SPACEPAD(d, v) \ digits = width == -1 ? d : width; \ number_value = v; goto do_number_spacepad case '%': if (modifier != 0) goto bad_format; add (1, *p = *f); break; case 'a': if (modifier != 0) goto bad_format; if (change_case) { to_uppcase = 1; to_lowcase = 0; } #if defined _NL_CURRENT || !HAVE_STRFTIME cpy (aw_len, a_wkday); break; #else goto underlying_strftime; #endif case 'A': if (modifier != 0) goto bad_format; if (change_case) { to_uppcase = 1; to_lowcase = 0; } #if defined _NL_CURRENT || !HAVE_STRFTIME cpy (strlen (f_wkday), f_wkday); break; #else goto underlying_strftime; #endif case 'b': case 'h': /* POSIX.2 extension. */ if (modifier != 0) goto bad_format; #if defined _NL_CURRENT || !HAVE_STRFTIME cpy (am_len, a_month); break; #else goto underlying_strftime; #endif case 'B': if (modifier != 0) goto bad_format; if (change_case) { to_uppcase = 1; to_lowcase = 0; } #if defined _NL_CURRENT || !HAVE_STRFTIME cpy (strlen (f_month), f_month); break; #else goto underlying_strftime; #endif case 'c': if (modifier == 'O') goto bad_format; #ifdef _NL_CURRENT if (! (modifier == 'E' && *(subfmt = _NL_CURRENT (LC_TIME, ERA_D_T_FMT)) != '\0')) subfmt = _NL_CURRENT (LC_TIME, D_T_FMT); #else # if HAVE_STRFTIME goto underlying_strftime; # else subfmt = "%a %b %e %H:%M:%S %Y"; # endif #endif subformat: { char *old_start = p; size_t len = my_strftime (NULL, (size_t) -1, subfmt, tp); add (len, my_strftime (p, maxsize - i, subfmt, tp)); if (to_uppcase) while (old_start < p) { *old_start = TOUPPER ((unsigned char) *old_start); ++old_start; } } break; #if HAVE_STRFTIME && ! (defined _NL_CURRENT && HAVE_STRUCT_ERA_ENTRY) underlying_strftime: { /* The relevant information is available only via the underlying strftime implementation, so use that. */ char ufmt[4]; char *u = ufmt; char ubuf[1024]; /* enough for any single format in practice */ size_t len; *u++ = '%'; if (modifier != 0) *u++ = modifier; *u++ = format_char; *u = '\0'; len = strftime (ubuf, sizeof ubuf, ufmt, tp); if (len == 0 && ubuf[0] != '\0') return 0; cpy (len, ubuf); } break; #endif case 'C': /* POSIX.2 extension. */ if (modifier == 'O') goto bad_format; if (modifier == 'E') { #if HAVE_STRUCT_ERA_ENTRY struct era_entry *era = _nl_get_era_entry (tp); if (era) { size_t len = strlen (era->name_fmt); cpy (len, era->name_fmt); break; } #else # if HAVE_STRFTIME goto underlying_strftime; # endif #endif } { int year = tp->tm_year + TM_YEAR_BASE; DO_NUMBER (1, year / 100 - (year % 100 < 0)); } case 'x': if (modifier == 'O') goto bad_format; #ifdef _NL_CURRENT if (! (modifier == 'E' && *(subfmt = _NL_CURRENT (LC_TIME, ERA_D_FMT)) != '\0')) subfmt = _NL_CURRENT (LC_TIME, D_FMT); goto subformat; #else # if HAVE_STRFTIME goto underlying_strftime; # else /* Fall through. */ # endif #endif case 'D': /* POSIX.2 extension. */ if (modifier != 0) goto bad_format; subfmt = "%m/%d/%y"; goto subformat; case 'd': if (modifier == 'E') goto bad_format; DO_NUMBER (2, tp->tm_mday); case 'e': /* POSIX.2 extension. */ if (modifier == 'E') goto bad_format; DO_NUMBER_SPACEPAD (2, tp->tm_mday); /* All numeric formats set DIGITS and NUMBER_VALUE and then jump to one of these two labels. */ do_number_spacepad: /* Force `_' flag unless overwritten by `0' flag. */ if (pad != '0') pad = '_'; do_number: /* Format the number according to the MODIFIER flag. */ if (modifier == 'O' && 0 <= number_value) { #ifdef _NL_CURRENT /* Get the locale specific alternate representation of the number NUMBER_VALUE. If none exist NULL is returned. */ const char *cp = _nl_get_alt_digit (number_value); if (cp != NULL) { size_t digitlen = strlen (cp); if (digitlen != 0) { cpy (digitlen, cp); break; } } #else # if HAVE_STRFTIME goto underlying_strftime; # endif #endif } { unsigned int u = number_value; bufp = buf + sizeof (buf); negative_number = number_value < 0; if (negative_number) u = -u; do *--bufp = u % 10 + '0'; while ((u /= 10) != 0); } do_number_sign_and_padding: if (negative_number) *--bufp = '-'; if (pad != '-') { int padding = digits - (buf + sizeof (buf) - bufp); if (pad == '_') { while (0 < padding--) *--bufp = ' '; } else { bufp += negative_number; while (0 < padding--) *--bufp = '0'; if (negative_number) *--bufp = '-'; } } cpy (buf + sizeof (buf) - bufp, bufp); break; case 'F': if (modifier != 0) goto bad_format; subfmt = "%Y-%m-%d"; goto subformat; case 'H': if (modifier == 'E') goto bad_format; DO_NUMBER (2, tp->tm_hour); case 'I': if (modifier == 'E') goto bad_format; DO_NUMBER (2, hour12); case 'k': /* GNU extension. */ if (modifier == 'E') goto bad_format; DO_NUMBER_SPACEPAD (2, tp->tm_hour); case 'l': /* GNU extension. */ if (modifier == 'E') goto bad_format; DO_NUMBER_SPACEPAD (2, hour12); case 'j': if (modifier == 'E') goto bad_format; DO_NUMBER (3, 1 + tp->tm_yday); case 'M': if (modifier == 'E') goto bad_format; DO_NUMBER (2, tp->tm_min); case 'm': if (modifier == 'E') goto bad_format; DO_NUMBER (2, tp->tm_mon + 1); case 'n': /* POSIX.2 extension. */ add (1, *p = '\n'); break; case 'P': to_lowcase = 1; #if !defined _NL_CURRENT && HAVE_STRFTIME format_char = 'p'; #endif /* FALLTHROUGH */ case 'p': if (change_case) { to_uppcase = 0; to_lowcase = 1; } #if defined _NL_CURRENT || !HAVE_STRFTIME cpy (ap_len, ampm); break; #else goto underlying_strftime; #endif case 'R': /* GNU extension. */ subfmt = "%H:%M"; goto subformat; case 'r': /* POSIX.2 extension. */ #ifdef _NL_CURRENT if (*(subfmt = _NL_CURRENT (LC_TIME, T_FMT_AMPM)) == '\0') #endif subfmt = "%I:%M:%S %p"; goto subformat; case 'S': if (modifier == 'E') goto bad_format; DO_NUMBER (2, tp->tm_sec); case 's': /* GNU extension. */ { struct tm ltm; time_t t; ltm = *tp; t = mktime (<m); /* Generate string value for T using time_t arithmetic; this works even if sizeof (long) < sizeof (time_t). */ bufp = buf + sizeof (buf); negative_number = t < 0; do { int d = t % 10; t /= 10; if (negative_number) { d = -d; /* Adjust if division truncates to minus infinity. */ if (0 < -1 % 10 && d < 0) { t++; d += 10; } } *--bufp = d + '0'; } while (t != 0); digits = 1; goto do_number_sign_and_padding; } case 'X': if (modifier == 'O') goto bad_format; #ifdef _NL_CURRENT if (! (modifier == 'E' && *(subfmt = _NL_CURRENT (LC_TIME, ERA_T_FMT)) != '\0')) subfmt = _NL_CURRENT (LC_TIME, T_FMT); goto subformat; #else # if HAVE_STRFTIME goto underlying_strftime; # else /* Fall through. */ # endif #endif case 'T': /* POSIX.2 extension. */ subfmt = "%H:%M:%S"; goto subformat; case 't': /* POSIX.2 extension. */ add (1, *p = '\t'); break; case 'u': /* POSIX.2 extension. */ DO_NUMBER (1, (tp->tm_wday - 1 + 7) % 7 + 1); case 'U': if (modifier == 'E') goto bad_format; DO_NUMBER (2, (tp->tm_yday - tp->tm_wday + 7) / 7); case 'V': case 'g': /* GNU extension. */ case 'G': /* GNU extension. */ if (modifier == 'E') goto bad_format; { int year = tp->tm_year + TM_YEAR_BASE; int days = iso_week_days (tp->tm_yday, tp->tm_wday); if (days < 0) { /* This ISO week belongs to the previous year. */ year--; days = iso_week_days (tp->tm_yday + (365 + __isleap (year)), tp->tm_wday); } else { int d = iso_week_days (tp->tm_yday - (365 + __isleap (year)), tp->tm_wday); if (0 <= d) { /* This ISO week belongs to the next year. */ year++; days = d; } } switch (*f) { case 'g': DO_NUMBER (2, (year % 100 + 100) % 100); case 'G': DO_NUMBER (1, year); default: DO_NUMBER (2, days / 7 + 1); } } case 'W': if (modifier == 'E') goto bad_format; DO_NUMBER (2, (tp->tm_yday - (tp->tm_wday - 1 + 7) % 7 + 7) / 7); case 'w': if (modifier == 'E') goto bad_format; DO_NUMBER (1, tp->tm_wday); case 'Y': if (modifier == 'E') { #if HAVE_STRUCT_ERA_ENTRY struct era_entry *era = _nl_get_era_entry (tp); if (era) { subfmt = strchr (era->name_fmt, '\0') + 1; goto subformat; } #else # if HAVE_STRFTIME goto underlying_strftime; # endif #endif } if (modifier == 'O') goto bad_format; else DO_NUMBER (1, tp->tm_year + TM_YEAR_BASE); case 'y': if (modifier == 'E') { #if HAVE_STRUCT_ERA_ENTRY struct era_entry *era = _nl_get_era_entry (tp); if (era) { int delta = tp->tm_year - era->start_date[0]; DO_NUMBER (1, (era->offset + (era->direction == '-' ? -delta : delta))); } #else # if HAVE_STRFTIME goto underlying_strftime; # endif #endif } DO_NUMBER (2, (tp->tm_year % 100 + 100) % 100); case 'Z': if (change_case) { to_uppcase = 0; to_lowcase = 1; } #if HAVE_TZNAME /* The tzset() call might have changed the value. */ if (!(zone && *zone) && tp->tm_isdst >= 0) zone = tzname[tp->tm_isdst]; #endif if (! zone) zone = ""; /* POSIX.2 requires the empty string here. */ cpy (strlen (zone), zone); break; case 'z': /* GNU extension. */ if (tp->tm_isdst < 0) break; { int diff; #if HAVE_TM_GMTOFF diff = tp->tm_gmtoff; #else if (ut) diff = 0; else { struct tm gtm; struct tm ltm; time_t lt; ltm = *tp; lt = mktime (<m); if (lt == (time_t) -1) { /* mktime returns -1 for errors, but -1 is also a valid time_t value. Check whether an error really occurred. */ struct tm tm; if (! my_strftime_localtime_r (<, &tm) || ((ltm.tm_sec ^ tm.tm_sec) | (ltm.tm_min ^ tm.tm_min) | (ltm.tm_hour ^ tm.tm_hour) | (ltm.tm_mday ^ tm.tm_mday) | (ltm.tm_mon ^ tm.tm_mon) | (ltm.tm_year ^ tm.tm_year))) break; } if (! my_strftime_gmtime_r (<, >m)) break; diff = tm_diff (<m, >m); } #endif if (diff < 0) { add (1, *p = '-'); diff = -diff; } else add (1, *p = '+'); diff /= 60; DO_NUMBER (4, (diff / 60) * 100 + diff % 60); } case '\0': /* GNU extension: % at end of format. */ --f; /* Fall through. */ default: /* Unknown format; output the format, including the '%', since this is most likely the right thing to do if a multibyte string has been misparsed. */ bad_format: { int flen; for (flen = 1; f[1 - flen] != '%'; flen++) continue; cpy (flen, &f[1 - flen]); } break; } } if (p && maxsize != 0) *p = '\0'; return i; } #ifdef emacs /* For Emacs we have a separate interface which corresponds to the normal strftime function and does not have the extra information whether the TP arguments comes from a `gmtime' call or not. */ size_t emacs_strftime (s, maxsize, format, tp) char *s; size_t maxsize; const char *format; const struct tm *tp; { return my_strftime (s, maxsize, format, tp, 0); } #endif a2ps-4.14/lib/ansi2knr.c0000644000175000017500000004441710735322361014302 0ustar mhattamhatta/* Copyright (C) 1989, 1997, 1998, 1999 Aladdin Enterprises. All rights reserved. */ /*$Id: ansi2knr.c,v 1.1.1.1 2002/03/04 18:46:24 akim Exp $*/ /* Convert ANSI C function definitions to K&R ("traditional C") syntax */ /* ansi2knr is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY. No author or distributor accepts responsibility to anyone for the consequences of using it or for whether it serves any particular purpose or works at all, unless he says so in writing. Refer to the GNU General Public License (the "GPL") for full details. Everyone is granted permission to copy, modify and redistribute ansi2knr, but only under the conditions described in the GPL. A copy of this license is supposed to have been given to you along with ansi2knr so you can know your rights and responsibilities. It should be in a file named COPYLEFT, or, if there is no file named COPYLEFT, a file named COPYING. Among other things, the copyright notice and this notice must be preserved on all copies. We explicitly state here what we believe is already implied by the GPL: if the ansi2knr program is distributed as a separate set of sources and a separate executable file which are aggregated on a storage medium together with another program, this in itself does not bring the other program under the GPL, nor does the mere fact that such a program or the procedures for constructing it invoke the ansi2knr executable bring any other part of the program under the GPL. */ /* * Usage: ansi2knr [--filename FILENAME] [INPUT_FILE [OUTPUT_FILE]] * --filename provides the file name for the #line directive in the output, * overriding input_file (if present). * If no input_file is supplied, input is read from stdin. * If no output_file is supplied, output goes to stdout. * There are no error messages. * * ansi2knr recognizes function definitions by seeing a non-keyword * identifier at the left margin, followed by a left parenthesis, * with a right parenthesis as the last character on the line, * and with a left brace as the first token on the following line * (ignoring possible intervening comments), except that a line * consisting of only * identifier1(identifier2) * will not be considered a function definition unless identifier2 is * the word "void", and a line consisting of * identifier1(identifier2, <>) * will not be considered a function definition. * ansi2knr will recognize a multi-line header provided * that no intervening line ends with a left or right brace or a semicolon. * These algorithms ignore whitespace and comments, except that * the function name must be the first thing on the line. * The following constructs will confuse it: * - Any other construct that starts at the left margin and * follows the above syntax (such as a macro or function call). * - Some macros that tinker with the syntax of function headers. */ /* * The original and principal author of ansi2knr is L. Peter Deutsch * . Other authors are noted in the change history * that follows (in reverse chronological order): lpd 1999-04-12 added minor fixes from Pavel Roskin for clean compilation with gcc -W -Wall lpd 1999-03-22 added hack to recognize lines consisting of identifier1(identifier2, xxx) as *not* being procedures lpd 1999-02-03 made indentation of preprocessor commands consistent lpd 1999-01-28 fixed two bugs: a '/' in an argument list caused an endless loop; quoted strings within an argument list confused the parser lpd 1999-01-24 added a check for write errors on the output, suggested by Jim Meyering lpd 1998-11-09 added further hack to recognize identifier(void) as being a procedure lpd 1998-10-23 added hack to recognize lines consisting of identifier1(identifier2) as *not* being procedures lpd 1997-12-08 made input_file optional; only closes input and/or output file if not stdin or stdout respectively; prints usage message on stderr rather than stdout; adds --filename switch (changes suggested by ) lpd 1996-01-21 added code to cope with not HAVE_CONFIG_H and with compilers that don't understand void, as suggested by Tom Lane lpd 1996-01-15 changed to require that the first non-comment token on the line following a function header be a left brace, to reduce sensitivity to macros, as suggested by Tom Lane lpd 1995-06-22 removed #ifndefs whose sole purpose was to define undefined preprocessor symbols as 0; changed all #ifdefs for configuration symbols to #ifs lpd 1995-04-05 changed copyright notice to make it clear that including ansi2knr in a program does not bring the entire program under the GPL lpd 1994-12-18 added conditionals for systems where ctype macros don't handle 8-bit characters properly, suggested by Francois Pinard ; removed --varargs switch (this is now the default) lpd 1994-10-10 removed CONFIG_BROKETS conditional lpd 1994-07-16 added some conditionals to help GNU `configure', suggested by Francois Pinard ; properly erase prototype args in function parameters, contributed by Jim Avera ; correct error in writeblanks (it shouldn't erase EOLs) lpd 1989-xx-xx original version */ /* Most of the conditionals here are to make ansi2knr work with */ /* or without the GNU configure machinery. */ #if HAVE_CONFIG_H # include #endif #include #include #if HAVE_CONFIG_H /* For properly autoconfiguring ansi2knr, use AC_CONFIG_HEADER(config.h). This will define HAVE_CONFIG_H and so, activate the following lines. */ # if STDC_HEADERS || HAVE_STRING_H # include # else # include # endif #else /* not HAVE_CONFIG_H */ /* Otherwise do it the hard way */ # ifdef BSD # include # else # ifdef VMS extern int strlen(), strncmp(); # else # include # endif # endif #endif /* not HAVE_CONFIG_H */ #if STDC_HEADERS # include #else /* malloc and free should be declared in stdlib.h, but if you've got a K&R compiler, they probably aren't. */ # ifdef MSDOS # include # else # ifdef VMS extern char *malloc(); extern void free(); # else extern char *malloc(); extern int free(); # endif # endif #endif /* Define NULL (for *very* old compilers). */ #ifndef NULL # define NULL (0) #endif /* * The ctype macros don't always handle 8-bit characters correctly. * Compensate for this here. */ #ifdef isascii # undef HAVE_ISASCII /* just in case */ # define HAVE_ISASCII 1 #else #endif #if STDC_HEADERS || !HAVE_ISASCII # define is_ascii(c) 1 #else # define is_ascii(c) isascii(c) #endif #define is_space(c) (is_ascii(c) && isspace(c)) #define is_alpha(c) (is_ascii(c) && isalpha(c)) #define is_alnum(c) (is_ascii(c) && isalnum(c)) /* Scanning macros */ #define isidchar(ch) (is_alnum(ch) || (ch) == '_') #define isidfirstchar(ch) (is_alpha(ch) || (ch) == '_') /* Forward references */ char *skipspace(); char *scanstring(); int writeblanks(); int test1(); int convert1(); /* The main program */ int main(argc, argv) int argc; char *argv[]; { FILE *in = stdin; FILE *out = stdout; char *filename = 0; char *program_name = argv[0]; char *output_name = 0; #define bufsize 5000 /* arbitrary size */ char *buf; char *line; char *more; char *usage = "Usage: ansi2knr [--filename FILENAME] [INPUT_FILE [OUTPUT_FILE]]\n"; /* * In previous versions, ansi2knr recognized a --varargs switch. * If this switch was supplied, ansi2knr would attempt to convert * a ... argument to va_alist and va_dcl; if this switch was not * supplied, ansi2knr would simply drop any such arguments. * Now, ansi2knr always does this conversion, and we only * check for this switch for backward compatibility. */ int convert_varargs = 1; int output_error; while ( argc > 1 && argv[1][0] == '-' ) { if ( !strcmp(argv[1], "--varargs") ) { convert_varargs = 1; argc--; argv++; continue; } if ( !strcmp(argv[1], "--filename") && argc > 2 ) { filename = argv[2]; argc -= 2; argv += 2; continue; } fprintf(stderr, "%s: Unrecognized switch: %s\n", program_name, argv[1]); fprintf(stderr, usage); exit(1); } switch ( argc ) { default: fprintf(stderr, usage); exit(0); case 3: output_name = argv[2]; out = fopen(output_name, "w"); if ( out == NULL ) { fprintf(stderr, "%s: Cannot open output file %s\n", program_name, output_name); exit(1); } /* falls through */ case 2: in = fopen(argv[1], "r"); if ( in == NULL ) { fprintf(stderr, "%s: Cannot open input file %s\n", program_name, argv[1]); exit(1); } if ( filename == 0 ) filename = argv[1]; /* falls through */ case 1: break; } if ( filename ) fprintf(out, "#line 1 \"%s\"\n", filename); buf = malloc(bufsize); if ( buf == NULL ) { fprintf(stderr, "Unable to allocate read buffer!\n"); exit(1); } line = buf; while ( fgets(line, (unsigned)(buf + bufsize - line), in) != NULL ) { test: line += strlen(line); switch ( test1(buf) ) { case 2: /* a function header */ convert1(buf, out, 1, convert_varargs); break; case 1: /* a function */ /* Check for a { at the start of the next line. */ more = ++line; f: if ( line >= buf + (bufsize - 1) ) /* overflow check */ goto wl; if ( fgets(line, (unsigned)(buf + bufsize - line), in) == NULL ) goto wl; switch ( *skipspace(more, 1) ) { case '{': /* Definitely a function header. */ convert1(buf, out, 0, convert_varargs); fputs(more, out); break; case 0: /* The next line was blank or a comment: */ /* keep scanning for a non-comment. */ line += strlen(line); goto f; default: /* buf isn't a function header, but */ /* more might be. */ fputs(buf, out); strcpy(buf, more); line = buf; goto test; } break; case -1: /* maybe the start of a function */ if ( line != buf + (bufsize - 1) ) /* overflow check */ continue; /* falls through */ default: /* not a function */ wl: fputs(buf, out); break; } line = buf; } if ( line != buf ) fputs(buf, out); free(buf); if ( output_name ) { output_error = ferror(out); output_error |= fclose(out); } else { /* out == stdout */ fflush(out); output_error = ferror(out); } if ( output_error ) { fprintf(stderr, "%s: error writing to %s\n", program_name, (output_name ? output_name : "stdout")); exit(1); } if ( in != stdin ) fclose(in); return 0; } /* Skip over whitespace and comments, in either direction. */ char * skipspace(p, dir) register char *p; register int dir; /* 1 for forward, -1 for backward */ { for ( ; ; ) { while ( is_space(*p) ) p += dir; if ( !(*p == '/' && p[dir] == '*') ) break; p += dir; p += dir; while ( !(*p == '*' && p[dir] == '/') ) { if ( *p == 0 ) return p; /* multi-line comment?? */ p += dir; } p += dir; p += dir; } return p; } /* Scan over a quoted string, in either direction. */ char * scanstring(p, dir) register char *p; register int dir; { for (p += dir; ; p += dir) if (*p == '"' && p[-dir] != '\\') return p + dir; } /* * Write blanks over part of a string. * Don't overwrite end-of-line characters. */ int writeblanks(start, end) char *start; char *end; { char *p; for ( p = start; p < end; p++ ) if ( *p != '\r' && *p != '\n' ) *p = ' '; return 0; } /* * Test whether the string in buf is a function definition. * The string may contain and/or end with a newline. * Return as follows: * 0 - definitely not a function definition; * 1 - definitely a function definition; * 2 - definitely a function prototype (NOT USED); * -1 - may be the beginning of a function definition, * append another line and look again. * The reason we don't attempt to convert function prototypes is that * Ghostscript's declaration-generating macros look too much like * prototypes, and confuse the algorithms. */ int test1(buf) char *buf; { register char *p = buf; char *bend; char *endfn; int contin; if ( !isidfirstchar(*p) ) return 0; /* no name at left margin */ bend = skipspace(buf + strlen(buf) - 1, -1); switch ( *bend ) { case ';': contin = 0 /*2*/; break; case ')': contin = 1; break; case '{': return 0; /* not a function */ case '}': return 0; /* not a function */ default: contin = -1; } while ( isidchar(*p) ) p++; endfn = p; p = skipspace(p, 1); if ( *p++ != '(' ) return 0; /* not a function */ p = skipspace(p, 1); if ( *p == ')' ) return 0; /* no parameters */ /* Check that the apparent function name isn't a keyword. */ /* We only need to check for keywords that could be followed */ /* by a left parenthesis (which, unfortunately, is most of them). */ { static char *words[] = { "asm", "auto", "case", "char", "const", "double", "extern", "float", "for", "if", "int", "long", "register", "return", "short", "signed", "sizeof", "static", "switch", "typedef", "unsigned", "void", "volatile", "while", 0 }; char **key = words; char *kp; unsigned len = endfn - buf; while ( (kp = *key) != 0 ) { if ( strlen(kp) == len && !strncmp(kp, buf, len) ) return 0; /* name is a keyword */ key++; } } { char *id = p; int len; /* * Check for identifier1(identifier2) and not * identifier1(void), or identifier1(identifier2, xxxx). */ while ( isidchar(*p) ) p++; len = p - id; p = skipspace(p, 1); if (*p == ',' || (*p == ')' && (len != 4 || strncmp(id, "void", 4))) ) return 0; /* not a function */ } /* * If the last significant character was a ), we need to count * parentheses, because it might be part of a formal parameter * that is a procedure. */ if (contin > 0) { int level = 0; for (p = skipspace(buf, 1); *p; p = skipspace(p + 1, 1)) level += (*p == '(' ? 1 : *p == ')' ? -1 : 0); if (level > 0) contin = -1; } return contin; } /* Convert a recognized function definition or header to K&R syntax. */ int convert1(buf, out, header, convert_varargs) char *buf; FILE *out; int header; /* Boolean */ int convert_varargs; /* Boolean */ { char *endfn; register char *p; /* * The breaks table contains pointers to the beginning and end * of each argument. */ char **breaks; unsigned num_breaks = 2; /* for testing */ char **btop; char **bp; char **ap; char *vararg = 0; /* Pre-ANSI implementations don't agree on whether strchr */ /* is called strchr or index, so we open-code it here. */ for ( endfn = buf; *(endfn++) != '('; ) ; top: p = endfn; breaks = (char **)malloc(sizeof(char *) * num_breaks * 2); if ( breaks == NULL ) { /* Couldn't allocate break table, give up */ fprintf(stderr, "Unable to allocate break table!\n"); fputs(buf, out); return -1; } btop = breaks + num_breaks * 2 - 2; bp = breaks; /* Parse the argument list */ do { int level = 0; char *lp = NULL; char *rp = NULL; char *end = NULL; if ( bp >= btop ) { /* Filled up break table. */ /* Allocate a bigger one and start over. */ free((char *)breaks); num_breaks <<= 1; goto top; } *bp++ = p; /* Find the end of the argument */ for ( ; end == NULL; p++ ) { switch(*p) { case ',': if ( !level ) end = p; break; case '(': if ( !level ) lp = p; level++; break; case ')': if ( --level < 0 ) end = p; else rp = p; break; case '/': if (p[1] == '*') p = skipspace(p, 1) - 1; break; case '"': p = scanstring(p, 1) - 1; break; default: ; } } /* Erase any embedded prototype parameters. */ if ( lp && rp ) writeblanks(lp + 1, rp); p--; /* back up over terminator */ /* Find the name being declared. */ /* This is complicated because of procedure and */ /* array modifiers. */ for ( ; ; ) { p = skipspace(p - 1, -1); switch ( *p ) { case ']': /* skip array dimension(s) */ case ')': /* skip procedure args OR name */ { int level = 1; while ( level ) switch ( *--p ) { case ']': case ')': level++; break; case '[': case '(': level--; break; case '/': if (p > buf && p[-1] == '*') p = skipspace(p, -1) + 1; break; case '"': p = scanstring(p, -1) + 1; break; default: ; } } if ( *p == '(' && *skipspace(p + 1, 1) == '*' ) { /* We found the name being declared */ while ( !isidfirstchar(*p) ) p = skipspace(p, 1) + 1; goto found; } break; default: goto found; } } found: if ( *p == '.' && p[-1] == '.' && p[-2] == '.' ) { if ( convert_varargs ) { *bp++ = "va_alist"; vararg = p-2; } else { p++; if ( bp == breaks + 1 ) /* sole argument */ writeblanks(breaks[0], p); else writeblanks(bp[-1] - 1, p); bp--; } } else { while ( isidchar(*p) ) p--; *bp++ = p+1; } p = end; } while ( *p++ == ',' ); *bp = p; /* Make a special check for 'void' arglist */ if ( bp == breaks+2 ) { p = skipspace(breaks[0], 1); if ( !strncmp(p, "void", 4) ) { p = skipspace(p+4, 1); if ( p == breaks[2] - 1 ) { bp = breaks; /* yup, pretend arglist is empty */ writeblanks(breaks[0], p + 1); } } } /* Put out the function name and left parenthesis. */ p = buf; while ( p != endfn ) putc(*p, out), p++; /* Put out the declaration. */ if ( header ) { fputs(");", out); for ( p = breaks[0]; *p; p++ ) if ( *p == '\r' || *p == '\n' ) putc(*p, out); } else { for ( ap = breaks+1; ap < bp; ap += 2 ) { p = *ap; while ( isidchar(*p) ) putc(*p, out), p++; if ( ap < bp - 1 ) fputs(", ", out); } fputs(") ", out); /* Put out the argument declarations */ for ( ap = breaks+2; ap <= bp; ap += 2 ) (*ap)[-1] = ';'; if ( vararg != 0 ) { *vararg = 0; fputs(breaks[0], out); /* any prior args */ fputs("va_dcl", out); /* the final arg */ fputs(bp[0], out); } else fputs(breaks[0], out); } free((char *)breaks); return 0; } a2ps-4.14/lib/strncasecmp.c0000644000175000017500000000005510735322362015064 0ustar mhattamhatta#define LENGTH_LIMIT #include "strcasecmp.c" a2ps-4.14/lib/xbackupfile.h0000644000175000017500000000270310735322367015053 0ustar mhattamhatta/* xbackupfile.c -- Backup helping routines Copyright (C) 1990-1997, 1998 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; see the file COPYING. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* Written by Akim Demaille */ #ifndef _XBACKUPFILES_H_ #define _XBACKUPFILES_H_ #if HAVE_CONFIG_H # include #endif #include #if HAVE_SYS_TYPES_H # include #endif #include "backupfile.h" /* Non failing wrapping of find_backup_file_name */ char * xfind_backup_file_name PARAMS ((const char * file, enum backup_type backup_type)); FILE * fopen_backup PARAMS ((const char * filename, enum backup_type backup_type)); int create_file_for_backup PARAMS ((char const *file, int oflag, mode_t mode, enum backup_type backup_type)); #endif /* !_XBACKUPFILES_H_ */ a2ps-4.14/lib/output.c0000644000175000017500000003362110735324675014120 0ustar mhattamhatta/* * output.c * * routines for ram-diverted output * Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana * Copyright (c) 1995, 96, 97, 98, 99 Akim Demaille, Miguel Santana * $Id: output.c,v 1.1.1.1.2.1 2007/12/29 01:58:21 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. */ #include "a2ps.h" #include "jobs.h" #include "routines.h" #include "output.h" #include "assert.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 CHUNK_MARGIN 1024 /* Be sure there is always that left */ #define MIN_DERIVATIONS 10 enum derivation_type { nothing, delayed_int, delayed_string, delayed_routine, delayed_chunk }; struct derivation { enum derivation_type type; void * arg; delayed_routine_t delayed_routine; void * delayed_routine_arg; int * delayed_int; uchar ** 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, 1); res->type = type; return res; } static void derivation_self_print (struct derivation * derivation, FILE * stream) { fprintf (stream, "At %x: ", (int) derivation); switch (derivation->type) { case nothing: fprintf (stream, "nothing "); break; case delayed_int: fprintf (stream, "delayed_int (%d)", *derivation->delayed_int); 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, 1); 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; } /* * Release the chunk */ void output_free (struct output * out) { ds_erase (out->chunk); da_free (out->derivations, (da_map_func_t) free); free (out); } 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 #if defined(VA_START) && __STDC__ output (struct output * out, const char *format, ...) #else output (out, format, va_alist) struct output * out; char * format; va_dcl #endif { #ifdef VA_START va_list args; VA_START (args, format); #endif if (out->to_void) return; #ifdef VA_START ds_unsafe_cat_vsprintf (out->chunk, format, args); va_end (args); #else ds_unsafe_cat_vsprintf (out->chunk, format, a1, a2, a3, a4, a5, a6, a7, a8); #endif } /* * Add C to the end of output */ void output_char (struct output * out, uchar 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_int (struct output * out, int * ptr) { struct derivation *tmp; if (out->to_void) return; tmp = new_derivation (delayed_int); tmp->delayed_int = 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, uchar ** 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; int 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)) { #if 0 char * fontname; font_t font; fontname = buf + strlen (FONTUSED_TAG); /* What is the face declared? */ fontname = strtok (fontname, " \t\n"); font = string_to_font (fontname); if (font == unknown_font) error_at_line (1, 0, filename, line, "unknown font `%s'", quotearg (fontname)); if (!(job->status->font_used [font])) dont_output = true; #endif 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 (strequ (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':%d\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); } free (buf2); 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 = ((char *) expand_user_string (job, FIRST_FILE (job), (const uchar *) "Expand: requirement", (const uchar *) token)); output (dest, 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); free (filename); } /* * 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_int: fprintf (stream, "%d", *derivation->delayed_int); 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 += ustrlen (piece); for (i = 0 ; i < out->derivations->len ; i++) { underivation (stream, derivations [i]); piece ++; fputs ((char *) piece, stream); piece += ustrlen (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.14/arch/0000755000175000017500000000000010735337262012552 5ustar mhattamhattaa2ps-4.14/arch/os2/0000755000175000017500000000000010735337262013255 5ustar mhattamhattaa2ps-4.14/arch/os2/Makefile.os20000644000175000017500000000661607440740377015434 0ustar mhattamhatta# # Makefile for ap2s under OS/2 using EMX # version 20000202 # # Currently it produces # - a static version of the a2ps library # - the a2ps executable # - .cmd wrappers for the supplied shell scripts # # Todo: # - install - target ? # PACKAGE = a2ps VERSION = 4.12k CC = gcc CFLAGS = -Zmt -O2 -Wall -Wno-unused -I. -I.. -I../lib -DHAVE_CONFIG_H -DSYSCONFFILE=\".\a2ps.cfg\" LDFLAGS = -Zmt -L. -L../lib -s -Zcrtdll -Zsysv-signals LIBS = AR = ar rc CP = cp RANLIB = ar s RM = rm -f ARCHDIR = arch/os2 SCRIPTS = card fixps pdiff psmandup psset CONFIGFILES = etc/a2ps.cfg etc/a2ps-site.cfg afm/fonts.map MANPAGES = man/a2ps.1 man/card.1 man/fixps.1 man/pdiff.1 man/psmandup.1 \ man/psset.1 man/texi2dvi4a2ps.1 all: alex a2ps_exe $(SCRIPTS) $(CONFIGFILES) alex: echo.exe PACKAGE = $(PACKAGE) echo.exe VERSION = $(VERSION) .c.o: $(CC) $(CFLAGS) -c $< -o $@ config.h: arch/os2/config.h.os2 # 'sed -e "s/@VERSION@/\\"$(VERSION)\\"/" -e "s/@PACKAGE@/\\"$(PACKAGE)\\"/"' <$< >$@ sed -e "s/@VERSION@/$(VERSION)/" -e "s/@PACKAGE@/$(PACKAGE)/" <$< >$@ a2ps_lib: config.h cd lib && make -f ../Makefile.os2 a2ps.a a2ps_exe: a2ps_lib cd src && make -f ../Makefile.os2 a2ps.exe # "Local rules" LIBOBJS = \ filtdir.o lexppd.o ppd.o argmatch.o fjobs.o \ media.o prange.o stream.o printers.o backupfile.o \ fonts.o printlen.o caret.o gen.o message.o \ prolog.o common.o gethostname.o metaseq.o psgen.o \ title.o confg.o psstat.o useropt.o darray.o \ obstack.o xgetcwd.o document.o options.o closeout.o\ routines.o xgethostname.o dsc.o getshline.o output.o \ xmalloc.o dstring.o pair_ht.o stpcpy.o xstrrpl.o \ encoding.o hashtab.o parseppd.o stpncpy.o error.o \ isdir.o str_ht.o faces.o jobs.o path-concat.o \ pathwalk.o getnum.o xbackupfile.o basename.o tterm.o \ addext.o madir.o getopt1.o getopt.o argv.o \ lister.o strverscmp.o quotearg.o xstrtol.o xstrdup.o \ dirname.o signame.o filalign.o userdata.o rename.o a2ps.a: $(LIBOBJS) $(AR) $@ $^ $(RANLIB) $@ MAINOBJS = \ buffer.o generate.o parsessh.o select.o versions.o \ delegate.o lexssh.o read.o ssheet.o ffaces.o \ main.o regex.o sshread.o lexps.o version-etc.o \ long-options.o sheets-map.o a2ps.exe: $(MAINOBJS) ../lib/a2ps.a $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) # Rules for configuration files etc/a2ps.cfg: $(ARCHDIR)/a2ps_cfg.os2 $(CP) $< $@ etc/a2ps-site.cfg: $(ARCHDIR)/a2ps-site.cfg.os2 $(CP) $< $@ afm/fonts.map: afm/fontsmap $(CP) $< $@ GSSE = $(ARCHDIR)/gsse.cmd.os2 # Rules how to process the contrib scripts SCRIPTWRAPPERS = $(patsubst %,%.cmd, $(SCRIPTS)) %.cmd : % $(GSSE) $(CP) $(GSSE) $@ % : contrib/%.in sed -e "s,/bin/,," <$< >$@ texi2dvi4a2ps : contrib/texi2dvi4a2ps sed -e "s,/bin/,," <$< >$@ # Maintainance rules clean: cd lib && make -f ../Makefile clean_lib cd src && make -f ../Makefile clean_src realclean: clean $(RM) config.h clean_lib: $(RM) $(LIBOBJS) a2ps.a clean_src: $(RM) $(MAINOBJS) a2ps.exe core a2ps-4.14/arch/os2/a2ps_cfg.os20000644000175000017500000003374310735322701015370 0ustar mhattamhatta# 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: A3 842 1190 Medium: A4 595 842 Medium: A5 420 595 Medium: B4 729 1032 Medium: B5 516 729 Medium: Letter 612 792 Medium: Legal 612 1008 Medium: Tabloid 792 1224 Medium: Ledger 1224 792 Medium: Statement 396 612 Medium: Executive 540 720 Medium: Folio 612 936 Medium: Quarto 610 780 Medium: 10x14 720 1008 # Desk Jet users: bigger margins Medium: A4dj 595 842 24 50 571 818 Medium: Letterdj 612 792 24 40 588 768 ################################################################# # 2) Path to the a2ps resource # ################################################################# # Default path where a2ps dropped its library files. LibraryPath: /usr/local/share/a2ps/sheets:/usr/local/share/a2ps/ps:/usr/local/share/a2ps/encoding:/usr/local/share/a2ps/afm:/usr/local/share/ogonkify/afm:/usr/local/share/a2ps/ppd:/usr/local/share/a2ps/fonts:/usr/local/share/ogonkify/fonts:/usr/local/share/a2ps # 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 taged 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 # # Calling AcrobatReader for PDF to PostScript. Variable: del.acroread \ acroread -toPostScript # Acrobat 4 lets us specify the medium, which is precious sometimes, and # that we should shrink the document to the size of the medium. #Variable: del.acroread \ # acroread -toPostScript -size "#wx#h" -shrink # 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 # We use a modified texi2dvi which accepts -b (--batch), -c (--clean), # and -l (--language). Variable: del.texi2dvi \ texi2dvi4a2ps -b -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 # 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). Variable: ghostview ghostview -arguments -dNOPLATFONTS Variable: ghostview gv -antialias -arguments -dNOPLATFONTS # # 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. Delegation: gzip-a2ps gzip:ps gzip -cd $f | #{del.a2ps} Delegation: gzip-a2ps compress:ps gzip -cd $f | #{del.a2ps} Delegation: bzip-a2ps bzip:ps bzip -cd $f | #{del.a2ps} 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 auxilary 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 three first strings of # the DVI file. Delegation: dvips dvi:ps\ if strings '$f' | sed 10q | fgrep landscape > /dev/null 2>&1; then \ #{del.dvips} -T#hpt,#wpt '$f' -o #f0 && #?o|cat|#{del.psnup} -r| #f0; \ else \ #{del.dvips} '$f' -o #f0 && #{del.psnup} #f0; \ fi ########## HTML files # Pass HTML to Netscape, hoping that there is an Netscape running... # Tricks: # 1. Netscape can't output on stdout, hence use a tmp file (#f0) # 2. openfile refuses relative paths, so prepend cwd (%d) when relative # 3. remote 'openfile' -remote 'saveas' is bad, because it is handled # asynchronously, and the output can correspond to a previously # loaded page (not that of openfile). So run Netscape twice. # 4. It asks the user if s/he wants to replace an existing output file, # so rm before. Delegation: Netscape html:ps \ rm -f #f0; \ if echo "$f" | grep '^/' >/dev/null 2>&1; then \ ${NETSCAPE:-netscape} -noraise -remote 'openfile($f)'; \ else \ ${NETSCAPE:-netscape} -noraise -remote 'openfile(%d/$f)'; \ fi && \ ${NETSCAPE:-netscape} -noraise -remote 'saveas(#f0,postscript)' && \ #{del.psselect} #f0 | #{del.psnup} ########## PDF files # Delegated to pdf2ps, GS 5.10 Delegation: pdf2ps pdf:ps \ pdf2ps $f #f0 && #{del.psselect} #f0 | #{del.psnup} # Delegated to AcrobatReader #Delegation: Acrobat pdf:ps \ # acroread -toPostScript < $f | #{del.psselnup} ########## PostScript files # Pass the PostScript files to psnup and psselect 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 %%BeginSetp/%%EndSetup section. #Delegation: Groff roff:ps \ # eval `grog -Tps $f` | fixps #?V!!-q! | #{del.psselnup} ########## TeX files, supposed to be LaTeX files in fact # Use texi2dvi for TeX file #Delegation: texi2dvi tex:ps \ # #{del.texi2dvi} -l latex $f && mv $N.dvi #f0 && #{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. #Delegation: texi2dvi texinfo:ps \ # #{del.texi2dvi} -e -l texinfo $f && mv $N.dvi #f0 && #{del.dvips} -f #f0 | #{del.psnup} ######################## Using ImageMagick for images ########## GIF files Delegation: ImageMagick gif:ps\ #{del.imagick} 'gif:$f' ps:- | #{del.psselnup} ########## JPEG files Delegation: ImageMagick jpeg:ps\ #{del.imagick} 'jpeg:$f' ps:- | #{del.psselnup} ########## PNG files Delegation: ImageMagick png:ps\ #{del.imagick} 'png:$f' ps:- | #{del.psselnup} ########## TIFF files Delegation: ImageMagick tiff:ps\ #{del.imagick} 'tiff:$f' ps:- | #{del.psselnup} ########## XBM files Delegation: ImageMagick xbm:ps\ #{del.imagick} 'xbm:$f' ps:- | #{del.psselnup} ########## XPM files Delegation: ImageMagick xpm:ps\ #{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 UserOption: mail -gEmail --strip=1 UserOption: longmail -gEmail --strip=1 -2R # 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, | psset -nt | \ ! echo "Cannot be used with more than two pages per sheet." >&2 ; exit 1! # 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 # Nice display, i.e., use colors, and one virtual per page. UserOption: display -1 --prolog=color -Pdisplay # Some special setpagedevice requests UserOption: manual -SManualFeed:true # It is better not to pipe in ghostview #Printer: display | cat > #f0 && #{ghostview} #f0 # E.g. a2ps src/foo.c => foo.ps Printer: file > $N.#. # Dry run. Helpful to know the page usage etc. Printer: void > /dev/null # We define the DefaultPrinter and the Unknown Printer just in case # a2ps-site.cfg fails to define them. Under normal circonstances # these entries *will* be overrriden. # First, the default printer (option -d, no argument) DefaultPrinter: | #{lp.default} # Second, a printer unkown 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.exe # Define a variable to call lp/lpr on the default printer, preceeded # 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} lpr #{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} lpr #{lp.options} -P # 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.14/arch/os2/a2ps-site.cfg.os20000644000175000017500000000503207440740377016253 0ustar mhattamhatta# -*- ksh -*- # a2ps-site.cfg # # 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=latin1 # Default medium Options: --medium=A4 ################################################################# # 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 ), but # is not specified below as a special case. # 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 psmandup to simulate Duplex. #Printer: dominique level2 | #?d#psmandup -n|## #{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: netscape >netscape.ps # 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.14/arch/os2/README0000644000175000017500000001106707440740377014146 0ustar mhattamhatta ================================================= = README for OS/2 version of A2PS 4.xx = ================================================= (20000202) CONTENTS OF THIS DOCUMENT: 1) What is A2PS ? 2) What about the OS/2 version ? 3) Contents of this archive: 4) Installation 5) Building a2ps for OS/2 6) Additional information 1) What is A2PS ? ************ A very powerful tool to print various file types on your Postscript printer. Since it can delegate converting jobs a2ps can handle almost every file format, provided you have it configured accordingly, of course ;-) For more and detailled information check out the supplied documentation or visit it's homepage at http://www.inf.enst.fr/~demaille/a2ps/ 2) What about the OS/2 version ? *************************** To get this utility built under OS/2 I had to work around the configure stuff which didn't work even using the latest Autoconf port. The National Language Support (NLS) for the executable's language dependent resources is not include here and I don't offer a shared library (dll) since I can see no further use for this library yet. NLS is nevertheless on my todo list. 3) Contents of the binary distribution archive: ******************************************** - the binary for OS/2 (a2ps.exe) - the supplied shell scripts with a REXX wrapper. You need an installed un*x shell (named sh.exe) in your path to run them. NOTE: not all those utils may be included here actually! - all data files for encoding, pretty printing, font selection, ... - documentation in GNU info format and man pages as well as documents regarding general issues (copyright, license, changelog, ...) 4) Installation: ************ This assumes you have my OS/2 package of a2ps. Installation from sources is more or less the same, once you have built the whole stuff ;-) - Put a2ps.exe in the path and the manpage in the manpath. - Adjust the configuration files (a2ps.cfg and a2ps-site.cfg) to your local setup. (*) - Store both files and the and the subdirectories (afm, encoding, fonts, ppd, ps, sheets) anywhere on your disk. - Set the environment variable A2PS_CONFIG to point to the your a2ps.cfg file - You're done ! :-) (*) Additional remarks to the setup: If you have my OS/2 binary package the .cfg files might already have some (more or less) reasonable default values for some settings. Two items are especially important: 1) 'LibraryPath': it has to include all those directories mentioned above; don't forget to use ';' as the path separator and '/' as the directory separator!) 2) the command to print out. In the given example I use the lpr and lpd to access one of my Postscript printer queues from the commandline. "lp" is a kind of an alias for "lpr.exe -b -p HP5MPPSQ -s localhost" where HP5MPPSQ is one my Postscript printer queues. Both tools are shipped with Warp 4. If you can't work out something similar try out starting ghostview (or ghostscript) or print to a file first. You may want to use "lportd" or tools like printmon.zip (from LEO or hobbes) 5) Building ap2s for OS/2 ********************** If you want to compile it yourself you will likely run into trouble using configure as even the latest Autoconf port may fail on this stuff. Either you manage to fix the configure script yourself or you have to create suitable versions of config.h and Makefile. Or you can just copy arch/os2/Makefile.os2 to the toplevel directory and type "make -f Makefile.os2" :-) 6) Additional information ********************** Some OS/2 specific topics: - Check whether the default encoding is set properly. German OS/2 users may need to switch to ibm-cp850 (see a2ps-site.cfg) - You can't use the OS/2 NULL device "nul" currently. For this purpose use "/dev/null" (supplied by emx.dll) 7) Availability ************ The latest compiled version can be found on my webpages listed below. There you can also find the utility 'file' which a2ps likes to call to guess the the file type. --- Alexander Mai st002279@hrzpub.tu-darmstadt.de mai@migdal.ikp.physik.tu-darmstadt.de http://www.tu-darmstadt.de/~st002279/os2 This file has $Id: README,v 1.1.1.1 2002/03/04 18:46:23 akim Exp $ a2ps-4.14/arch/os2/gsse.cmd.os20000644000175000017500000000203207440740377015406 0ustar mhattamhatta/* GSSE */ /* version 980929 */ /* Generic Shell Script Executor for OS/2 ====================================== Just rename this .cmd to and it will execute the shell script by calling sh.exe (as found in path) No need to patch the shell scripts anymore. Works also for all shells that support REXX scripts. Note that "sh.exe" is explicitly called! */ Parse Arg param Parse Source run_os run_env run_name name = FileSpec("Name", run_name) path = FileSpec("Path", run_name) drive = FileSpec("Drive", run_name) shortname = Left(name, Pos(".CMD", Translate(name))-1) scriptname = drive""path""shortname scriptname = SlashifyS(scriptname) rc = ExecCmd("sh.exe " scriptname" "param) exit /* Subroutines */ ExecCmd: PROCEDURE /* Execute a command properly and return it's return value */ Parse Arg cmdstring Address CMD "@ "cmdstring return rc SlashifyS: PROCEDURE /* Convert backslash into slashs */ Parse Arg input input = Translate( input, '/', '\' ) return input a2ps-4.14/arch/os2/config.h.os20000644000175000017500000003002107440740377015375 0ustar mhattamhatta/* config.h.in. Generated automatically from configure.in by autoheader. */ /* Define if the closedir function returns void instead of int. */ #undef CLOSEDIR_VOID /* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems. This function is required for alloca.c support on those systems. */ #undef CRAY_STACKSEG_END /* Define if using alloca.c. */ #undef C_ALLOCA /* The char used to separate component of a path */ #define DIRECTORY_SEPARATOR '/' /* Define to 1 if NLS is requested. */ #undef ENABLE_NLS /* The concatenation of the strings `GNU ', and PACKAGE. */ #define GNU_PACKAGE "GNU a2ps" /* Define if TIOCGWINSZ requires sys/ioctl.h */ #undef GWINSZ_IN_SYS_IOCTL /* Define if you have the alarm function. */ #undef HAVE_ALARM /* Define if you have `alloca', as a function or macro. */ #define HAVE_ALLOCA 1 /* Define if you have and it should be used (not on Ultrix). */ #define HAVE_ALLOCA_H 1 /* Define if you have the header file. */ #undef HAVE_ARGZ_H /* Define if you have the `atexit' function. */ #define HAVE_ATEXIT 1 /* Define if you have the `bcopy' function. */ #define HAVE_BCOPY 1 /* Define if you have the `bzero' function. */ #define HAVE_BZERO 1 /* Define as 1 if you have `catgets' and don't want to use GNU gettext. */ #undef HAVE_CATGETS /* Define if backslash-a works in C strings. */ #define HAVE_C_BACKSLASH_A 1 /* Define if you have the `dcgettext' function. */ #undef HAVE_DCGETTEXT /* Define if you have the header file. */ #define HAVE_DIRENT_H 1 /* Define if the malloc check has been performed. */ #define HAVE_DONE_WORKING_MALLOC_CHECK 1 /* Define if the realloc check has been performed. */ #define HAVE_DONE_WORKING_REALLOC_CHECK 1 /* Define if you don't have `vprintf' but do have `_doprnt.' */ #undef HAVE_DOPRNT /* Define if you have the header file. */ #define HAVE_ERRNO_H 1 /* Define if you have the header file. */ #define HAVE_FCNTL_H 1 /* Define if your system has a working `fnmatch' function. */ #define HAVE_FNMATCH 1 /* Define if you have the header file. */ #undef HAVE_FNMATCH_H /* Define if you have the `getcwd' function. */ #define HAVE_GETCWD 1 /* Define if you have the `gethostname' function. */ #undef HAVE_GETHOSTNAME /* Define if you have the `getpagesize' function. */ #define HAVE_GETPAGESIZE 1 /* Define if you have the function `getpwuid'. */ #undef HAVE_GETPWUID /* Define to 1 if you have gettext and don't want to use GNU gettext. */ #undef HAVE_GETTEXT /* Define if you have the `getuid' function. */ #define HAVE_GETUID 1 /* Define if exists, doesn't clash with , and declares uintmax_t. */ #undef HAVE_INTTYPES_H /* Define if you have the `isascii' function. */ #define HAVE_ISASCII 1 /* Define if your locale.h file contains LC_MESSAGES. */ #undef HAVE_LC_MESSAGES /* Define if you have the `dir' library (-ldir). */ #undef HAVE_LIBDIR /* Define if you have the `fl' library (-lfl). */ #undef HAVE_LIBFL /* Define if you have the `i' library (-li). */ #undef HAVE_LIBI /* Define if you have the `intl' library (-lintl). */ #undef HAVE_LIBINTL /* Define if you have the `l' library (-ll). */ #undef HAVE_LIBL /* Define if you have the `paper' library (-lpaper). */ #undef HAVE_LIBPAPER /* Define if you have the `x' library (-lx). */ #undef HAVE_LIBX /* Define if you have the header file. */ #define HAVE_LIMITS_H 1 /* Define if you have the header file. */ #define HAVE_LOCALE_H 1 /* Define if you have the header file. */ #define HAVE_MALLOC_H 1 /* Define if you have the header file. */ #define HAVE_MATH_H 1 /* Define if you have the `mblen' function. */ #undef HAVE_MBLEN /* Define if you have the `mbrlen' function. */ #undef HAVE_MBRLEN /* Define if you have the `mbrtowc' function. */ #undef HAVE_MBRTOWC /* Define if you have the `memcpy' function. */ #define HAVE_MEMCPY 1 /* Define if you have the header file. */ #define HAVE_MEMORY_H 1 /* Define if you have the `memset' function. */ #define HAVE_MEMSET 1 /* Define if you have a working `mmap' system call. */ #undef HAVE_MMAP /* Define if you have the `munmap' function. */ #undef HAVE_MUNMAP /* Define if you have the header file. */ #undef HAVE_NDIR_H /* Define if you have the header file. */ #undef HAVE_NL_TYPES_H /* Define if libc includes obstacks */ #undef HAVE_OBSTACK /* Define if you have the `on_exit' function. */ #undef HAVE_ON_EXIT /* Define if you have the header file. */ #undef HAVE_PAPER_H /* Define if you have the `psignal' function. */ #undef HAVE_PSIGNAL /* Define if you have the `putenv' function. */ #define HAVE_PUTENV 1 /* Define if you have the header file. */ #define HAVE_PWD_H 1 /* Define if you have the `rename' function. */ #define HAVE_RENAME 1 /* Define if you have the `setenv' function. */ #undef HAVE_SETENV /* Define if you have the `setlocale' function. */ #define HAVE_SETLOCALE 1 /* Define if you have the header file. */ #define HAVE_STDARG_H 1 /* Define if you have the header file. */ #undef HAVE_STDBOOL_H /* Define if you have the header file. */ #define HAVE_STDLIB_H 1 /* Define to 1 if you have the `stpcpy' function. */ #undef HAVE_STPCPY /* Define if you have the `stpncpy' function. */ #undef HAVE_STPNCPY /* Define if you have the `strcasecmp' function. */ #undef HAVE_STRCASECMP /* Define if you have the `strchr' function. */ #define HAVE_STRCHR 1 /* Define if you have the `strdup' function. */ #define HAVE_STRDUP 1 /* Define if you have the `strerror' function. */ #define HAVE_STRERROR 1 /* Define if you have the `strerror_r' function. */ #undef HAVE_STRERROR_R /* Define if you have the `strftime' function. */ #define HAVE_STRFTIME 1 /* Define if you have the `stricmp' function. */ #define HAVE_STRICMP 1 /* Define if you have the header file. */ #define HAVE_STRINGS_H 1 /* Define if you have the header file. */ #define HAVE_STRING_H 1 /* Define if you have the `strncasecmp' function. */ #undef HAVE_STRNCASECMP /* Define if you have the `strnicmp' function. */ #define HAVE_STRNICMP 1 /* Define if you have the `strsignal' function. */ #undef HAVE_STRSIGNAL /* Define if you have the `strtoul' function. */ #define HAVE_STRTOUL 1 /* Define if you have the `strtoull' function. */ #undef HAVE_STRTOULL /* Define if you have the `strtoumax' function. */ #undef HAVE_STRTOUMAX /* Define if `pw_gecos' is member of `struct passwd'. */ #undef HAVE_STRUCT_PASSWD_PW_GECOS /* Define if `tm_zone' is member of `struct tm'. */ #undef HAVE_STRUCT_TM_TM_ZONE /* Define if you have the systempapername function */ #undef HAVE_SYSTEMPAPERNAME /* Define if you have the header file. */ #undef HAVE_SYS_DIR_H /* Define if you have the header file. */ #define HAVE_SYS_IOCTL_H 1 /* Define if you have the header file. */ #undef HAVE_SYS_NDIR_H /* Define if you have the header file. */ #define HAVE_SYS_PARAM_H 1 /* Define if your system has `sys_siglist'. */ #undef HAVE_SYS_SIGLIST /* Define if you have the header file. */ #define HAVE_SYS_STAT_H 1 /* Define if you have the header file. */ #define HAVE_SYS_TIME_H 1 /* Define if you have the header file. */ #define HAVE_SYS_TYPES_H 1 /* Define if you have that is POSIX.1 compatible. */ #define HAVE_SYS_WAIT_H 1 /* Define if you have the `tempnam' function. */ #define HAVE_TEMPNAM 1 /* Define if you have the header file. */ #define HAVE_TERMIOS_H 1 /* Define if your `struct tm' has `tm_zone'. Deprecated, use `HAVE_STRUCT_TM_TM_ZONE' instead. */ #undef HAVE_TM_ZONE /* Define if you don't have `tm_zone' but do have the external array `tzname'. */ #undef HAVE_TZNAME /* Define if you have the `tzset' function. */ #undef HAVE_TZSET /* Define if you have the `uname' function. */ #define HAVE_UNAME 1 /* Define if you have the header file. */ #define HAVE_UNISTD_H 1 /* Define if you have the unsigned long long type. */ #define HAVE_UNSIGNED_LONG_LONG 1 /* Define if you have the `vprintf' function. */ #define HAVE_VPRINTF 1 /* Define if you have the header file. */ #undef HAVE_WCHAR_H /* Define if you have the `__argz_count' function. */ #undef HAVE___ARGZ_COUNT /* Define if you have the `__argz_next' function. */ #undef HAVE___ARGZ_NEXT /* Define if you have the `__argz_stringify' function. */ #undef HAVE___ARGZ_STRINGIFY /* Define if you need the declaration of `fputs'. */ #define FPUTS_DECLARED 1 /* Define if you need the declaration of `strlen'. */ #define STRLEN_DECLARED 1 /* Name of package */ #define PACKAGE "a2ps" /* The char used to separate paths. */ #define PATH_SEPARATOR ';' /* Define if compiler has function prototypes */ #define PROTOTYPES 1 /* Define as the return type of signal handlers (`int' or `void'). */ #define RETSIGTYPE void /* 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 run-time. 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 if the `S_IS*' macros in do not work properly. */ #undef STAT_MACROS_BROKEN /* Define if you have the ANSI C header files. */ #define STDC_HEADERS 1 /* Define to enable syntax table support in `regex'. */ #define SYNTAX_TABLE 1 /* Define if `sys_siglist' is declared by or . */ #undef SYS_SIGLIST_DECLARED /* Define if you can safely include both and . */ #define TIME_WITH_SYS_TIME 1 /* Define if your declares `struct tm'. */ #undef TM_IN_SYS_TIME /* Version number of package */ #define VERSION "4.12k" /* Define if `lex' declares `yytext' as a `char *' by default, not a `char[]'. */ #define YYTEXT_POINTER 1 /* Define if on AIX 3. System headers sometimes define this. We just want to avoid a redefinition error message. */ #ifndef _ALL_SOURCE #undef _ALL_SOURCE #endif /* Define if on MINIX. */ #undef _MINIX /* Define if the system does not provide POSIX.1 features except with this defined. */ #undef _POSIX_1_SOURCE /* Define if you need to in order for stat and other things to work. */ #undef _POSIX_SOURCE /* Define to empty if the keyword `const' is not conform to ANSI C. */ #undef const /* Define to rpl_exit if the replacement function should be used */ #undef exit /* Define to rpl_fnmatch if the replacement function should be used. */ #undef fnmatch /* Define as `__inline' if that's what the C compiler calls it, or to nothing if it is not supported. */ #undef inline /* Define to rpl_malloc if the replacement function should be used. */ #undef malloc /* Define to rpl_mktime if the replacement function should be used. */ #undef mktime /* Define to `long' if does not define. */ #undef off_t /* Define to `int' if does not define. */ #undef pid_t /* Define to rpl_realloc if the replacement function should be used. */ #undef realloc /* Define to `unsigned' if does not define. */ #undef size_t /* Define to the replacement function if should be used. */ #define strcasecmp stricmp /* Define to the replacement function if should be used. */ #define strncasecmp strnicmp /* Define to `unsigned char' if does not exist */ #define uchar unsigned char /* Define to `unsigned long' or `unsigned long long' if doesn't define. */ #define uintmax_t unsigned long /* special ... */ #define rename rpl_rename a2ps-4.14/encoding/0000755000175000017500000000000010735337377013432 5ustar mhattamhattaa2ps-4.14/encoding/iso3.edf0000644000175000017500000000715710735322503014762 0ustar mhattamhatta# 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.14/encoding/ms-cp1251.edf0000644000175000017500000000730610735324666015445 0ustar mhattamhatta# 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.14/encoding/iso4.edf0000644000175000017500000000713310735322503014755 0ustar mhattamhatta# 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.14/encoding/iso7.edf0000644000175000017500000000560710735322504014765 0ustar mhattamhatta# 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.14/encoding/iso5.edf0000644000175000017500000001040110735322503014746 0ustar mhattamhatta# 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.14/encoding/Makefile.am0000644000175000017500000000157710735322517015466 0ustar mhattamhatta## -*- Makefile -*- ## ## Makefile for a2ps' encodings directory. ## ## Copyright (c) 1988-1993 Miguel Santana ## Copyright (c) 1995-1999 Akim Demaille, Miguel Santana ## $Id: Makefile.am,v 1.1.1.1.2.1 2007/04/02 20:46:57 mhatta Exp $ ## # 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 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.14/encoding/Makefile.in0000644000175000017500000003171410735337307015476 0ustar mhattamhatta# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 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@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = encoding DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/a2_psutils.m4 \ $(top_srcdir)/m4/atexit.m4 $(top_srcdir)/m4/file.m4 \ $(top_srcdir)/m4/fp_echo.m4 $(top_srcdir)/m4/fullpath.m4 \ $(top_srcdir)/m4/gccwarn.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gperf-check.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \ $(top_srcdir)/m4/lex.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/lpr.m4 \ $(top_srcdir)/m4/m4.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \ $(top_srcdir)/m4/perl.m4 $(top_srcdir)/m4/prereq.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/protos.m4 \ $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/rename.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/strcasecmp.m4 \ $(top_srcdir)/m4/strftim.m4 $(top_srcdir)/m4/termios.m4 \ $(top_srcdir)/m4/tterm.m4 $(top_srcdir)/m4/uintmax_t.m4 \ $(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/winsz.m4 \ $(top_srcdir)/m4/xstrtoumax.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/auxdir/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = SOURCES = DIST_SOURCES = 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 = `echo $$p | sed -e 's|^.*/||'`; am__installdirs = "$(DESTDIR)$(encodingsdir)" encodingsDATA_INSTALL = $(INSTALL_DATA) DATA = $(encodings_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ COM_DISPLAY = @COM_DISPLAY@ COM_LATEX = @COM_LATEX@ COM_PS2PDF = @COM_PS2PDF@ COM_PSUTILS = @COM_PSUTILS@ COM_TEXI = @COM_TEXI@ COM_acroread = @COM_acroread@ COM_acroread4 = @COM_acroread4@ COM_bzip = @COM_bzip@ COM_bzip2 = @COM_bzip2@ COM_convert = @COM_convert@ COM_distill = @COM_distill@ 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_netscape = @COM_netscape@ COM_pdf2ps = @COM_pdf2ps@ COM_ps2pdf = @COM_ps2pdf@ COM_psnup = @COM_psnup@ COM_psselect = @COM_psselect@ COM_tex = @COM_tex@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ ENCODING = @ENCODING@ EXEEXT = @EXEEXT@ EXTENSIONS_FALSE = @EXTENSIONS_FALSE@ EXTENSIONS_TRUE = @EXTENSIONS_TRUE@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ F77 = @F77@ FFLAGS = @FFLAGS@ FILE_LINK = @FILE_LINK@ GMSGFMT = @GMSGFMT@ GNU_PACKAGE = @GNU_PACKAGE@ GPERF = @GPERF@ GREP = @GREP@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBVERSION = @LIBVERSION@ LN_S = @LN_S@ LPR = @LPR@ LPR_QUEUE_OPTION = @LPR_QUEUE_OPTION@ LTALLOCA = @LTALLOCA@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ M4 = @M4@ MAKEINFO = @MAKEINFO@ MEDIUM = @MEDIUM@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ POSUB = @POSUB@ PSFONT_PATH = @PSFONT_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ U = @U@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ YACC = @YACC@ YFLAGS = @YFLAGS@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ acroread = @acroread@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ 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@ bzip = @bzip@ bzip2 = @bzip2@ convert = @convert@ datadir = @datadir@ datarootdir = @datarootdir@ distill = @distill@ docdir = @docdir@ dvidir = @dvidir@ dvips = @dvips@ exec_prefix = @exec_prefix@ file_prog = @file_prog@ ghostview = @ghostview@ 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@ netscape = @netscape@ oldincludedir = @oldincludedir@ pdf2ps = @pdf2ps@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ ps2pdf = @ps2pdf@ psdir = @psdir@ psnup = @psnup@ psselect = @psselect@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ tex = @tex@ # 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 @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 \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu encoding/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu encoding/Makefile .PRECIOUS: 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__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ 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 mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: install-encodingsDATA: $(encodings_DATA) @$(NORMAL_INSTALL) test -z "$(encodingsdir)" || $(mkdir_p) "$(DESTDIR)$(encodingsdir)" @list='$(encodings_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(encodingsDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(encodingsdir)/$$f'"; \ $(encodingsDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(encodingsdir)/$$f"; \ done uninstall-encodingsDATA: @$(NORMAL_UNINSTALL) @list='$(encodings_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(encodingsdir)/$$f'"; \ rm -f "$(DESTDIR)$(encodingsdir)/$$f"; \ done tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(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: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-libtool dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-encodingsDATA install-exec-am: install-info: install-info-am install-man: 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 mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-encodingsDATA uninstall-info-am .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-encodingsDATA \ install-exec install-exec-am install-info install-info-am \ install-man install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am uninstall uninstall-am uninstall-encodingsDATA \ uninstall-info-am # 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.14/encoding/koi8.edf0000644000175000017500000000700610735324666014764 0ustar mhattamhatta# 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 # # # 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 # Regular fonts don't support Cyrillic glyphs 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 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.14/encoding/hp.edf0000644000175000017500000000533110735322503014504 0ustar mhattamhatta# 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.14/encoding/README0000644000175000017500000000040307440740400014267 0ustar mhattamhatta 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.14/encoding/iso15.edf0000644000175000017500000000715710735322503015045 0ustar mhattamhatta# 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.14/encoding/ibm-cp437.edf0000644000175000017500000000665710735322503015516 0ustar mhattamhatta# 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.14/encoding/mac.edf0000644000175000017500000000557610735322504014651 0ustar mhattamhatta# 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.14/encoding/encoding.map0000644000175000017500000000573310735322511015707 0ustar mhattamhatta# -*- 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: # # # In which case whenever is requested, a2ps uses the # . Matching to is case insensitive, hence # and must be lower case in this file. # # *** # 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 ######################################################################## # 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.14/encoding/ibm-cp850.edf0000644000175000017500000000541210735322503015501 0ustar mhattamhatta# 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.14/encoding/iso13.edf0000644000175000017500000000720510735322503015035 0ustar mhattamhatta# 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.14/encoding/iso2.edf0000644000175000017500000000730110735322503014750 0ustar mhattamhatta# 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.14/encoding/iso9.edf0000644000175000017500000000717510735322504014771 0ustar mhattamhatta# 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.14/encoding/ascii.edf0000644000175000017500000000521410735322503015165 0ustar mhattamhatta# 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.14/encoding/iso10.edf0000644000175000017500000000711210735322503015027 0ustar mhattamhatta# 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.14/encoding/ms-cp1250.edf0000644000175000017500000000662310735322504015432 0ustar mhattamhatta# 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.14/encoding/iso1.edf0000644000175000017500000000722410735322503014753 0ustar mhattamhatta# 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.14/COPYING0000644000175000017500000010437410735337377012710 0ustar mhattamhatta GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. 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 them 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 prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. 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. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey 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; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If 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 convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU 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 that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. 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. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS 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. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS 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 state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute 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 . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program 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, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU 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 Lesser General Public License instead of this License. But first, please read . a2ps-4.14/tests/0000755000175000017500000000000010735337377013006 5ustar mhattamhattaa2ps-4.14/tests/options-1.tst0000755000175000017500000000123507440740404015363 0ustar mhattamhatta#! /bin/sh # -*- ksh -*- # Test if the basic options work, and produce on stdout only. . ./defs || exit 1 tmp=$tmpdir/opt-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 # There should be nothing on stderr */ $verbose "Running a2ps $p" # I used to run this test: #err=`$CHK $p 2>&1 >/dev/null` #test "x$err" = x # but it seems that many shells are not able to redirect fd 2 like this. $CHK $p >/dev/null 2>$tmp test "x`cat $tmp`" = x done exit 0 a2ps-4.14/tests/a2ps-tst.cfg.in0000644000175000017500000000665707440740404015553 0ustar mhattamhatta# 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 Medium: A4 595 842 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' # 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.14/tests/pages-2.tst0000755000175000017500000000107307440740404014770 0ustar mhattamhatta#! /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.14/tests/inout-2.tst0000755000175000017500000000102307440740404015022 0ustar mhattamhatta#! /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.14/tests/deleg-1.tst0000755000175000017500000000072607440740404014754 0ustar mhattamhatta#! /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.14/tests/guess-1.tst0000755000175000017500000000206307440740404015016 0ustar mhattamhatta#! /bin/sh # -*- ksh -*- # This program tries most common options of the program # This is were 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.14/tests/Makefile.am0000644000175000017500000000405310735326425015034 0ustar mhattamhatta## -*- Makefile -*- ## `tests' Subdirectory Makefile for a2ps. ## Copyright (c) 1997-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. ## ## Process this file with automake to produce Makefile.in # .tst instead of .test to avoid tar warnings on MS-DOS TESTS = \ align-1.tst \ backup.tst \ contrib.tst \ cut.tst \ deleg-1.tst \ deleg-2.tst \ encoding.tst \ guess-1.tst \ guess-2.tst \ inline.tst \ inout-1.tst \ inout-2.tst \ inout-3.tst \ options-1.tst \ pages-1.tst \ pages-2.tst \ po.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.14/tests/Makefile.in0000644000175000017500000003533410735337310015046 0ustar mhattamhatta# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 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@ # .tst instead of .test to avoid tar warnings on MS-DOS srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = tests DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(srcdir)/defs.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/a2_psutils.m4 \ $(top_srcdir)/m4/atexit.m4 $(top_srcdir)/m4/file.m4 \ $(top_srcdir)/m4/fp_echo.m4 $(top_srcdir)/m4/fullpath.m4 \ $(top_srcdir)/m4/gccwarn.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gperf-check.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \ $(top_srcdir)/m4/lex.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/lpr.m4 \ $(top_srcdir)/m4/m4.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \ $(top_srcdir)/m4/perl.m4 $(top_srcdir)/m4/prereq.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/protos.m4 \ $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/rename.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/strcasecmp.m4 \ $(top_srcdir)/m4/strftim.m4 $(top_srcdir)/m4/termios.m4 \ $(top_srcdir)/m4/tterm.m4 $(top_srcdir)/m4/uintmax_t.m4 \ $(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/winsz.m4 \ $(top_srcdir)/m4/xstrtoumax.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/auxdir/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = defs SOURCES = DIST_SOURCES = DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ COM_DISPLAY = @COM_DISPLAY@ COM_LATEX = @COM_LATEX@ COM_PS2PDF = @COM_PS2PDF@ COM_PSUTILS = @COM_PSUTILS@ COM_TEXI = @COM_TEXI@ COM_acroread = @COM_acroread@ COM_acroread4 = @COM_acroread4@ COM_bzip = @COM_bzip@ COM_bzip2 = @COM_bzip2@ COM_convert = @COM_convert@ COM_distill = @COM_distill@ 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_netscape = @COM_netscape@ COM_pdf2ps = @COM_pdf2ps@ COM_ps2pdf = @COM_ps2pdf@ COM_psnup = @COM_psnup@ COM_psselect = @COM_psselect@ COM_tex = @COM_tex@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ ENCODING = @ENCODING@ EXEEXT = @EXEEXT@ EXTENSIONS_FALSE = @EXTENSIONS_FALSE@ EXTENSIONS_TRUE = @EXTENSIONS_TRUE@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ F77 = @F77@ FFLAGS = @FFLAGS@ FILE_LINK = @FILE_LINK@ GMSGFMT = @GMSGFMT@ GNU_PACKAGE = @GNU_PACKAGE@ GPERF = @GPERF@ GREP = @GREP@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBVERSION = @LIBVERSION@ LN_S = @LN_S@ LPR = @LPR@ LPR_QUEUE_OPTION = @LPR_QUEUE_OPTION@ LTALLOCA = @LTALLOCA@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ M4 = @M4@ MAKEINFO = @MAKEINFO@ MEDIUM = @MEDIUM@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ POSUB = @POSUB@ PSFONT_PATH = @PSFONT_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ U = @U@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ YACC = @YACC@ YFLAGS = @YFLAGS@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ acroread = @acroread@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ 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@ bzip = @bzip@ bzip2 = @bzip2@ convert = @convert@ datadir = @datadir@ datarootdir = @datarootdir@ distill = @distill@ docdir = @docdir@ dvidir = @dvidir@ dvips = @dvips@ exec_prefix = @exec_prefix@ file_prog = @file_prog@ ghostview = @ghostview@ 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@ netscape = @netscape@ oldincludedir = @oldincludedir@ pdf2ps = @pdf2ps@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ ps2pdf = @ps2pdf@ psdir = @psdir@ psnup = @psnup@ psselect = @psselect@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ tex = @tex@ TESTS = \ align-1.tst \ backup.tst \ contrib.tst \ cut.tst \ deleg-1.tst \ deleg-2.tst \ encoding.tst \ guess-1.tst \ guess-2.tst \ inline.tst \ inout-1.tst \ inout-2.tst \ inout-3.tst \ options-1.tst \ pages-1.tst \ pages-2.tst \ po.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: $(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 \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu tests/Makefile .PRECIOUS: 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__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ 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 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 distclean-libtool: -rm -f libtool uninstall-info-am: tags: TAGS TAGS: ctags: CTAGS CTAGS: check-TESTS: $(TESTS) @failed=0; all=0; xfail=0; xpass=0; skip=0; \ srcdir=$(srcdir); export srcdir; \ list='$(TESTS)'; \ if test -n "$$list"; then \ for tst in $$list; do \ if test -f ./$$tst; then dir=./; \ elif test -f $$tst; then dir=; \ else dir="$(srcdir)/"; fi; \ if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ all=`expr $$all + 1`; \ case " $(XFAIL_TESTS) " in \ *" $$tst "*) \ xpass=`expr $$xpass + 1`; \ failed=`expr $$failed + 1`; \ echo "XPASS: $$tst"; \ ;; \ *) \ echo "PASS: $$tst"; \ ;; \ esac; \ elif test $$? -ne 77; then \ all=`expr $$all + 1`; \ case " $(XFAIL_TESTS) " in \ *" $$tst "*) \ xfail=`expr $$xfail + 1`; \ echo "XFAIL: $$tst"; \ ;; \ *) \ failed=`expr $$failed + 1`; \ echo "FAIL: $$tst"; \ ;; \ esac; \ else \ skip=`expr $$skip + 1`; \ echo "SKIP: $$tst"; \ fi; \ done; \ if test "$$failed" -eq 0; then \ if test "$$xfail" -eq 0; then \ banner="All $$all tests passed"; \ else \ banner="All $$all tests behaved as expected ($$xfail expected failures)"; \ fi; \ else \ if test "$$xpass" -eq 0; then \ banner="$$failed of $$all tests failed"; \ else \ banner="$$failed of $$all tests did not behave as expected ($$xpass unexpected passes)"; \ fi; \ fi; \ dashes="$$banner"; \ skipped=""; \ if test "$$skip" -ne 0; then \ skipped="($$skip tests were not run)"; \ test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ dashes="$$skipped"; \ fi; \ report=""; \ if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ report="Please report to $(PACKAGE_BUGREPORT)"; \ test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ dashes="$$report"; \ fi; \ dashes=`echo "$$dashes" | sed s/./=/g`; \ echo "$$dashes"; \ echo "$$banner"; \ test -z "$$skipped" || echo "$$skipped"; \ test -z "$$report" || echo "$$report"; \ echo "$$dashes"; \ test "$$failed" -eq 0; \ else :; fi distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am $(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: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_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 distclean-libtool dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: 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 mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-info-am .PHONY: all all-am all-local check check-TESTS check-am clean \ clean-generic clean-libtool distclean distclean-generic \ distclean-libtool distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am install-man \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ uninstall uninstall-am uninstall-info-am 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.14/tests/prolog-2.tst0000755000175000017500000000117507440740404015176 0ustar mhattamhatta#! /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.14/tests/defs.in0000644000175000017500000000507010612612212014233 0ustar mhattamhatta#! /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.in: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.14/tests/cut.tst0000755000175000017500000000071307440740404014325 0ustar mhattamhatta#! /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.14/tests/backup.tst0000755000175000017500000000367407440740404015010 0ustar mhattamhatta#! /bin/sh # -*- ksh -*- # This program checks that a2ps correctly backups only when needed # This test tries 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.14/tests/inline.tst0000755000175000017500000000137707441652051015020 0ustar mhattamhatta#! /bin/sh # -*- ksh -*- # This program verifies that any inline function is static. # This test is meant to avoid problems I had on IRIX. : ${SRCDIR=.} # Set up other vars . $SRCDIR/defs || exit 1 # Get the guilty lines in *.c files # Omit strfime.c and confg.c, coz' their inlines are safe. # Exclude the word inlined. res=`(cd $top_srcdir && fgrep 'inline' src/*.c lib/*.c) | egrep -v '__inline|static|inlined|lib/(confg|strftime)\.c' | sort -u` if test -n "$res"; then echo "The following files use non static inline:" echo "$res" exit 1 fi # No inline allowed in a header. res=`(cd $top_srcdir && fgrep 'inline' src/*.h lib/*.h) | sort -u` if test -n "$res"; then echo "The following headers use inline:" echo "$res" exit 1 fi exit 0 a2ps-4.14/tests/styles.tst0000755000175000017500000000672707440740404015070 0ustar mhattamhatta#! /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 explicitely 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 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 fi exit $failure a2ps-4.14/tests/usropt-1.tst0000755000175000017500000000066607440740404015233 0ustar mhattamhatta#! /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.14/tests/view-diff0000755000175000017500000000066507440740404014607 0ustar mhattamhatta#! /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 a2ps-4.14/tests/params.tst0000755000175000017500000000125307440740404015015 0ustar mhattamhatta#! /bin/sh # -*- ksh -*- # This program verifies that the use of PARAMS in consistent : ${SRCDIR=.} # Set up other vars . $SRCDIR/defs || exit 1 fail=0 cd $top_srcdir srcfiles=`echo lib/*.[chily] src/*.[chily]` # Get all the files that define PARAMS or __P res=`\ grep -l '#[\t ]*define[\t ]*PARAMS' $srcfiles;\ grep -l '#[\t ]*define[\t ]*__P' $srcfiles` # These files _must_ check for PROTOTYPES for i in $res; do case $i in # Don't check obstack.h which has a macro starting with __P *obstack.h) ;; *) if grep -s PROTOTYPES $i; then :; else echo "$i defines PARAMS without checking PROTOTYPES"; fail=1 fi ;; esac done exit $fail a2ps-4.14/tests/strip.tst0000755000175000017500000000160207440740404014671 0ustar mhattamhatta#! /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.14/tests/tstfiles/0000755000175000017500000000000010735337262014634 5ustar mhattamhattaa2ps-4.14/tests/tstfiles/ex_PSGETRS.f900000644000175000017500000001770107440740405017001 0ustar mhattamhatta! 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.14/tests/tstfiles/formfeed.txt0000644000175000017500000000002207440740405017152 0ustar mhattamhatta1 2 5 6 7 a2ps-4.14/tests/tstfiles/configure.in0000644000175000017500000000013307440740405017136 0ustar mhattamhattaAC_INIT AC_FATAL([You are not supposed to run this file])dnl Kill the empty line. AC_OUTPUTa2ps-4.14/tests/tstfiles/essai2.o2c0000644000175000017500000000700607440740405016426 0ustar mhattamhattaset 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.14/tests/tstfiles/ex1.asn10000644000175000017500000000144507441454654016126 0ustar mhattamhatta-- 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.14/tests/tstfiles/eplv_chkr.v0000644000175000017500000000173507441454654017013 0ustar mhattamhatta// 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.14/tests/tstfiles/wide.txt0000644000175000017500000000731407440740405016326 0ustar mhattamhatta 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.14/tests/tstfiles/typing.cl0000644000175000017500000002750007440740405016466 0ustar mhattamhatta//------------------------------------------------------------------+ // 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.14/tests/tstfiles/pi.b0000644000175000017500000000224407440740405015405 0ustar mhattamhatta/* 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.14/tests/tstfiles/sqlspace.pkb0000644000175000017500000000242107440740405017140 0ustar mhattamhattaREM 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.14/tests/tstfiles/ehandler0000644000175000017500000000524507441454654016354 0ustar mhattamhatta%!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.14/tests/tstfiles/symbol.pre0000644000175000017500000001335207440740405016651 0ustar mhattamhatta 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.14/tests/tstfiles/includeres0000644000175000017500000000311307440740405016706 0ustar mhattamhatta#!/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.14/tests/tstfiles/confirm.m30000644000175000017500000000231507440740405016527 0ustar mhattamhatta 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.14/tests/tstfiles/report.pre0000644000175000017500000002620307440740405016656 0ustar mhattamhatta% 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.14/tests/tstfiles/s-garnam.adb0000644000175000017500000003121510735325312017004 0ustar mhattamhatta------------------------------------------------------------------------------ -- -- -- 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.14/tests/tstfiles/mofibida.hs0000644000175000017500000000347407440740405016746 0ustar mhattamhatta#!/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.14/tests/tstfiles/InsertBlock.java0000644000175000017500000000177310612612212017707 0ustar mhattamhatta/* 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.14/tests/tstfiles/vrcaml.ml0000644000175000017500000001171507441454654016464 0ustar mhattamhatta(**************************************************************************) (* 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.14/tests/tstfiles/template.e0000644000175000017500000000702107440740405016611 0ustar mhattamhattaclass 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.14/tests/tstfiles/sqlpq92.sql0000644000175000017500000000016307440740405016664 0ustar mhattamhattaSELECT H.emp_no, H.hist_type, count(*) FROM emp_history H GROUP BY H.emp_no, H.hist_type; a2ps-4.14/tests/tstfiles/snacc.mib0000644000175000017500000000722107440740405016412 0ustar mhattamhatta-- 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.14/tests/tstfiles/3-pages.txt0000644000175000017500000000002507440740405016625 0ustar mhattamhattaPage 1 Page 2 Page 3 a2ps-4.14/tests/tstfiles/synopsys.setup0000644000175000017500000000236407440740405017626 0ustar mhattamhatta/* 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.14/tests/tstfiles/sqlinit.ora0000644000175000017500000001200507441454654017025 0ustar mhattamhatta# ############################################################################## # 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.14/tests/tstfiles/AppDelegate.m0000644000175000017500000000605707440740405017171 0ustar mhattamhatta #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.14/tests/tstfiles/a2ps.man0000644000175000017500000000607007440740405016175 0ustar mhattamhatta 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.14/tests/tstfiles/mutex.py0000644000175000017500000000305507440740405016347 0ustar mhattamhatta# 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.14/tests/tstfiles/psmandup0000644000175000017500000001732710735325332016413 0ustar mhattamhatta#! /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.14/tests/tstfiles/ShellNewDummyHook.pas0000644000175000017500000000704410612612212020705 0ustar mhattamhatta{----------------------------------------------------------------------------- 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.14/tests/tstfiles/run-help0000644000175000017500000000057107440740405016310 0ustar mhattamhatta#! /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.14/tests/tstfiles/strange.mail0000644000175000017500000001131207440740405017135 0ustar mhattamhattaTopics: 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.14/tests/tstfiles/ftp2.pml0000644000175000017500000002761407440740405016227 0ustar mhattamhatta/* * 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.14/tests/tstfiles/tabulation.pre0000644000175000017500000000367307440740405017513 0ustar mhattamhatta\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.14/tests/tstfiles/bookie.idl0000644000175000017500000000550207440740405016574 0ustar mhattamhatta/* ######################################################################## 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.14/tests/tstfiles/sqlcrtbl.sql0000644000175000017500000001345607440740405017210 0ustar mhattamhatta# 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.14/tests/tstfiles/polkaIDL.hh0000644000175000017500000000704207440740405016613 0ustar mhattamhatta#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.14/tests/tstfiles/prosamp.pre0000644000175000017500000000073707440740405017030 0ustar mhattamhatta% 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.14/tests/tstfiles/space.pls0000644000175000017500000000242107440740405016442 0ustar mhattamhattaREM 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.14/tests/tstfiles/mtvplot.octave0000644000175000017500000000136207440740405017542 0ustar mhattamhatta## 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.14/tests/tstfiles/encoding.pre0000644000175000017500000001535007440740405017132 0ustar mhattamhatta\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 français accentué, comme dans août, ou décembre, et non pas aoùt et dècembre... \Label{latin2} \encoding{latin2}% dok±d DOK¡D pamiêtasz PAMIÊTASZ ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie GA¦NIE ki¶æ KI¦Æ mrówka MRÓWKA wska¼nik WSKA¬NIK mo¿na MO¯NA dok±d \Keyword{DOK¡D pamiêtasz PAMIÊTASZ ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie GA¦NIE ki¶æ} KI¦Æ mrówka MRÓWKA wska¼nik WSKA¬NIK mo¿na MO¯NA dok±d DOK¡D pamiêtasz PAMIÊTASZ ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie GA¦NIE ki¶æ KI¦Æ mrówka MRÓWKA wska¼nik WSKA¬NIK mo¿na MO¯NA dok±d DOK¡D pamiêtasz PAMIÊTASZ ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie GA¦NIE ki¶æ KI¦Æ mrówka MRÓWKA wska¼nik WSKA¬NIK mo¿na MO¯NA \Label{latin3} \encoding{latin3}% dok±d DOK¡D pamiêtasz PAMIÊTASZ ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie GA¦NIE ki¶æ KI¦Æ mrówka MRÓWKA wska¼nik WSKA¬NIK mo¿na MO¯NA dok±d DOK¡D pamiêtasz PAMIÊTASZ ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie GA¦NIE ki¶æ \keyword{KI¦Æ mrówka MRÓWKA wska¼nik WSKA¬NIK mo¿na MO¯NA dok±d DOK¡D pamiêtasz PAMIÊTASZ ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie GA¦NIE ki¶æ KI¦Æ mrówka} MRÓWKA wska¼nik WSKA¬NIK mo¿na MO¯NA dok±d DOK¡D pamiêtasz PAMIÊTASZ ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie GA¦NIE ki¶æ KI¦Æ mrówka MRÓWKA wska¼nik WSKA¬NIK mo¿na MO¯NA \Label{latin4} \encoding{latin4}% dok±d DOK¡D pamiêtasz PAMIÊTASZ ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie GA¦NIE ki¶æ KI¦Æ mrówka MRÓWKA wska¼nik WSKA¬NIK mo¿na MO¯NA dok±d DOK¡D pamiêtasz PAMIÊTASZ ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie GA¦NIE ki¶æ KI¦Æ mrówka MRÓWKA wska¼nik WSKA¬NIK mo¿na MO¯NA dok±d DOK¡D pamiêtasz PAMIÊTASZ ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie GA¦NIE ki¶æ KI¦Æ mrówka MRÓWKA wska¼nik WSKA¬NIK mo¿na MO¯NA dok±d DOK¡D pamiêtasz PAMIÊTASZ ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie GA¦NIE ki¶æ KI¦Æ mrówka MRÓWKA wska¼nik WSKA¬NIK mo¿na MO¯NA \Label{latin5} \encoding{latin5}% dok±d DOK¡D pamiêtasz PAMIÊTASZ ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie GA¦NIE ki¶æ KI¦Æ mrówka MRÓWKA wska¼nik WSKA¬NIK mo¿na MO¯NA dok±d DOK¡D pamiêtasz PAMIÊTASZ ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie GA¦NIE ki¶æ KI¦Æ mrówka MRÓWKA wska¼nik WSKA¬NIK mo¿na MO¯NA dok±d DOK¡D pamiêtasz PAMIÊTASZ ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie GA¦NIE ki¶æ KI¦Æ mrówka MRÓWKA wska¼nik WSKA¬NIK mo¿na MO¯NA dok±d DOK¡D pamiêtasz PAMIÊTASZ ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie GA¦NIE ki¶æ KI¦Æ mrówka MRÓWKA wska¼nik WSKA¬NIK mo¿na MO¯NA \Label{latin6} \encoding{latin6}% dok±d DOK¡D pamiêtasz PAMIÊTASZ ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie GA¦NIE ki¶æ KI¦Æ mrówka MRÓWKA wska¼nik WSKA¬NIK mo¿na MO¯NA dok±d DOK¡D pamiêtasz PAMIÊTASZ ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie GA¦NIE ki¶æ KI¦Æ mrówka MRÓWKA wska¼nik WSKA¬NIK mo¿na MO¯NA dok±d DOK¡D pamiêtasz PAMIÊTASZ ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie GA¦NIE ki¶æ KI¦Æ mrówka MRÓWKA wska¼nik WSKA¬NIK mo¿na MO¯NA dok±d DOK¡D pamiêtasz PAMIÊTASZ ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie GA¦NIE ki¶æ KI¦Æ mrówka MRÓWKA wska¼nik WSKA¬NIK mo¿na MO¯NA % We no longer include Cyrillic fonts in the package. % \Label{iso5} % \encoding{iso5}% % dok±d DOK¡D pamiêtasz PAMIÊTASZ ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie % GA¦NIE ki¶æ KI¦Æ mrówka MRÓWKA wska¼nik WSKA¬NIK mo¿na MO¯NA dok±d % DOK¡D pamiêtasz PAMIÊTASZ ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie GA¦NIE ki¶æ % KI¦Æ mrówka MRÓWKA wska¼nik WSKA¬NIK mo¿na MO¯NA dok±d DOK¡D pamiêtasz % PAMIÊTASZ ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie GA¦NIE ki¶æ KI¦Æ mrówka % MRÓWKA wska¼nik WSKA¬NIK mo¿na MO¯NA dok±d DOK¡D pamiêtasz PAMIÊTASZ % ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie GA¦NIE ki¶æ KI¦Æ mrówka MRÓWKA % wska¼nik WSKA¬NIK mo¿na MO¯NA % % \Label{koi8} % \encoding{koi8}% % dok±d DOK¡D pamiêtasz PAMIÊTASZ ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie % GA¦NIE ki¶æ KI¦Æ mrówka MRÓWKA wska¼nik WSKA¬NIK mo¿na MO¯NA dok±d % DOK¡D pamiêtasz PAMIÊTASZ ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie GA¦NIE ki¶æ % KI¦Æ mrówka MRÓWKA wska¼nik WSKA¬NIK mo¿na MO¯NA dok±d DOK¡D pamiêtasz % PAMIÊTASZ ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie GA¦NIE ki¶æ KI¦Æ mrówka % MRÓWKA wska¼nik WSKA¬NIK mo¿na MO¯NA dok±d DOK¡D pamiêtasz PAMIÊTASZ % ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie GA¦NIE ki¶æ KI¦Æ mrówka MRÓWKA % wska¼nik WSKA¬NIK mo¿na MO¯NA \Label{CP1250} \encoding{CP1250}% dok±d DOK¡D pamiêtasz PAMIÊTASZ ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie GA¦NIE ki¶æ KI¦Æ mrówka MRÓWKA wska¼nik WSKA¬NIK mo¿na MO¯NA dok±d DOK¡D pamiêtasz PAMIÊTASZ ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie GA¦NIE ki¶æ KI¦Æ mrówka MRÓWKA wska¼nik WSKA¬NIK mo¿na MO¯NA dok±d DOK¡D pamiêtasz PAMIÊTASZ ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie GA¦NIE ki¶æ KI¦Æ mrówka MRÓWKA wska¼nik WSKA¬NIK mo¿na MO¯NA dok±d DOK¡D pamiêtasz PAMIÊTASZ ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie GA¦NIE ki¶æ KI¦Æ mrówka MRÓWKA wska¼nik WSKA¬NIK mo¿na MO¯NA \Label{ibmpc} \encoding{ibmpc}% dok±d DOK¡D pamiêtasz PAMIÊTASZ ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie GA¦NIE ki¶æ KI¦Æ mrówka MRÓWKA wska¼nik WSKA¬NIK mo¿na MO¯NA dok±d DOK¡D pamiêtasz PAMIÊTASZ ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie GA¦NIE ki¶æ KI¦Æ mrówka MRÓWKA wska¼nik WSKA¬NIK mo¿na MO¯NA dok±d DOK¡D pamiêtasz PAMIÊTASZ ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie GA¦NIE ki¶æ KI¦Æ mrówka MRÓWKA wska¼nik WSKA¬NIK mo¿na MO¯NA dok±d DOK¡D pamiêtasz PAMIÊTASZ ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie GA¦NIE ki¶æ KI¦Æ mrówka MRÓWKA wska¼nik WSKA¬NIK mo¿na MO¯NA \Label{pcg} \encoding{pcg}% dok±d DOK¡D pamiêtasz PAMIÊTASZ ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie GA¦NIE ki¶æ KI¦Æ mrówka MRÓWKA wska¼nik WSKA¬NIK mo¿na MO¯NA dok±d DOK¡D pamiêtasz PAMIÊTASZ ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie GA¦NIE ki¶æ KI¦Æ mrówka MRÓWKA wska¼nik WSKA¬NIK mo¿na MO¯NA dok±d DOK¡D pamiêtasz PAMIÊTASZ ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie GA¦NIE ki¶æ KI¦Æ mrówka MRÓWKA wska¼nik WSKA¬NIK mo¿na MO¯NA dok±d DOK¡D pamiêtasz PAMIÊTASZ ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie GA¦NIE ki¶æ KI¦Æ mrówka MRÓWKA wska¼nik WSKA¬NIK mo¿na MO¯NA \Label{Hp} \encoding{Hp}% dok±d DOK¡D pamiêtasz PAMIÊTASZ ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie GA¦NIE ki¶æ KI¦Æ mrówka MRÓWKA wska¼nik WSKA¬NIK mo¿na MO¯NA dok±d DOK¡D pamiêtasz PAMIÊTASZ ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie GA¦NIE ki¶æ KI¦Æ mrówka MRÓWKA wska¼nik WSKA¬NIK mo¿na MO¯NA dok±d DOK¡D pamiêtasz PAMIÊTASZ ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie GA¦NIE ki¶æ KI¦Æ mrówka MRÓWKA wska¼nik WSKA¬NIK mo¿na MO¯NA dok±d DOK¡D pamiêtasz PAMIÊTASZ ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie GA¦NIE ki¶æ KI¦Æ mrówka MRÓWKA wska¼nik WSKA¬NIK mo¿na MO¯NA \Label{Mac} \encoding{Mac}% dok±d DOK¡D pamiêtasz PAMIÊTASZ ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie GA¦NIE ki¶æ KI¦Æ mrówka MRÓWKA wska¼nik WSKA¬NIK mo¿na MO¯NA dok±d DOK¡D pamiêtasz PAMIÊTASZ ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie GA¦NIE ki¶æ KI¦Æ mrówka MRÓWKA wska¼nik WSKA¬NIK mo¿na MO¯NA dok±d DOK¡D pamiêtasz PAMIÊTASZ ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie GA¦NIE ki¶æ KI¦Æ mrówka MRÓWKA wska¼nik WSKA¬NIK mo¿na MO¯NA dok±d DOK¡D pamiêtasz PAMIÊTASZ ³awka £AWKA naæpaæ NAÆPAÆ ga¶nie GA¦NIE ki¶æ KI¦Æ mrówka MRÓWKA wska¼nik WSKA¬NIK mo¿na MO¯NA a2ps-4.14/tests/deleg-2.tst0000755000175000017500000000074007440740404014751 0ustar mhattamhatta#! /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 | fgrep 'cannot find style sheet' > /dev/null 2>&1 # Return status of fgrep exit $? a2ps-4.14/tests/gps-ref/0000755000175000017500000000000010735337262014342 5ustar mhattamhattaa2ps-4.14/tests/gps-ref/a2ps.ps0000644000175000017500000001036110735323374015553 0ustar mhattamhatta%%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.14/tests/gps-ref/configure.ps0000644000175000017500000000110610735323374016664 0ustar mhattamhatta%%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.in) (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.14/tests/gps-ref/vrcaml.ps0000644000175000017500000002075410735323374016201 0ustar mhattamhatta%%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.14/tests/gps-ref/ftp2.ps0000644000175000017500000005726310735323374015575 0ustar mhattamhatta%%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]\) 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.14/tests/gps-ref/strange.ps0000644000175000017500000003213510735323374016354 0ustar mhattamhatta%%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.14/tests/gps-ref/template.ps0000644000175000017500000001720710735323374016527 0ustar mhattamhatta%%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.14/tests/gps-ref/typing.ps0000644000175000017500000004550410735323374016227 0ustar mhattamhatta%%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.14/tests/gps-ref/synopsys.ps0000644000175000017500000000465610735323374016627 0ustar mhattamhatta%%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.14/tests/gps-ref/pi.ps0000644000175000017500000000500110735323374015311 0ustar mhattamhatta%%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.14/tests/gps-ref/tabulation.ps0000644000175000017500000000577410735323374017064 0ustar mhattamhatta%%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.14/tests/gps-ref/sqlpq92.ps0000644000175000017500000000113710735323374016222 0ustar mhattamhatta%%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.14/tests/gps-ref/ex1.ps0000644000175000017500000000361210735323374015404 0ustar mhattamhatta%%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.14/tests/gps-ref/essai2.ps0000644000175000017500000001564610735323374016107 0ustar mhattamhatta%%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.14/tests/gps-ref/run-help.ps0000644000175000017500000000221410735323374016436 0ustar mhattamhatta%%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.14/tests/gps-ref/s-garnam.ps0000644000175000017500000006006010735323374016414 0ustar mhattamhatta%%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.14/tests/gps-ref/formfeed.ps0000644000175000017500000000576010735323374016504 0ustar mhattamhatta%%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.14/tests/gps-ref/wide.ps0000644000175000017500000001735310735323374015646 0ustar mhattamhatta%%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.14/tests/gps-ref/ex_PSGETRS.ps0000644000175000017500000003317610735323374016542 0ustar mhattamhatta%%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.14/tests/gps-ref/AppDelegate.ps0000644000175000017500000001373610735323374017072 0ustar mhattamhatta%%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.14/tests/gps-ref/symbol.ps0000644000175000017500000002357710735323374016230 0ustar mhattamhatta%%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.14/tests/gps-ref/bookie.ps0000644000175000017500000001315010735323374016155 0ustar mhattamhatta%%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 3, 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.14/tests/gps-ref/ShellNewDummyHook.ps0000644000175000017500000001361510735323374020271 0ustar mhattamhatta%%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.14/tests/gps-ref/report.ps0000644000175000017500000002321710735323374016225 0ustar mhattamhatta%%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.14/tests/gps-ref/confirm.ps0000644000175000017500000000465310735323374016352 0ustar mhattamhatta%%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.14/tests/gps-ref/InsertBlock.ps0000644000175000017500000000512010735323374017122 0ustar mhattamhatta%%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 3 \(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.14/tests/gps-ref/prosamp.ps0000644000175000017500000000160310735323374016366 0ustar mhattamhatta%%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.14/tests/gps-ref/mofibida.ps0000644000175000017500000000677110735323374016472 0ustar mhattamhatta%%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.14/tests/gps-ref/polkaIDL.ps0000644000175000017500000001534210735323374016351 0ustar mhattamhatta%%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.14/tests/gps-ref/ehandler.ps0000644000175000017500000001306510735323374016474 0ustar mhattamhatta%%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.14/tests/gps-ref/sqlspace.ps0000644000175000017500000000551710735323374016530 0ustar mhattamhatta%%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.14/tests/gps-ref/snacc.ps0000644000175000017500000001431010735323374015773 0ustar mhattamhatta%%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.14/tests/gps-ref/eplv_chkr.ps0000644000175000017500000000423310735323374016664 0ustar mhattamhatta%%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.14/tests/gps-ref/space.ps0000644000175000017500000000551410735323374016005 0ustar mhattamhatta%%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.14/tests/gps-ref/sqlinit.ps0000644000175000017500000001755710735323374016407 0ustar mhattamhatta%%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.14/tests/gps-ref/includeres.ps0000644000175000017500000000707210735323374017050 0ustar mhattamhatta%%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/local/bin/perl) c n 0 T () S (eval) K ( ') p (exec perl -S $0 "$@") str (') p n 0 T () S 8 T () S (if) K ( $running_under_some_shell;) p n 0 T () N (5) # () S (# includeres: include resources in PostScript file) c n 0 T (#) N 0 T (# Copyright \(C\) Angus J. C. Duggan 1991-1995) N 0 T (# See file LICENSE for details.) N 0 T () N (10) # () S ($prog = \($0 =~ ) p (s) K (=.*/==\);) p n 0 T () N 0 T (%extn = \(") S (font) str (", ") p (.pfa) str (", ") p (file) str (", ") p (.ps) str (", ") p (procset) str (", ") p (.ps) str (", ) p (# resource extns) c n 0 T () S () p 8 T ( ") S (pattern) str (", ") p (.pat) str (", ") p (form) str (", ") p (.frm) str (", ") p (encoding) str (", ") p (.enc) str ("\);) p n 0 T (%type = \(") S (%%BeginFile:) str (", ") p (file) str (", ") p (%%BeginProcSet:) str (", ") p (procset) str (",) p n (15) # () S 8 T ( ") S (%%BeginFont:) str (", ") p (font) str ("\); ) p (# resource types) c n 0 T () N 0 T () S (=head1 NAME) C n 0 T () N 0 T ( foo - script which blah ) N (20) # () N 0 T (=cut) N 0 T () N 0 T () N 0 T () S (sub) K ( ) p (filename) L ( {) p 16 T () S 24 T () S 32 T () S (# make filename for resource in @_) c n (25) # () S ( ) p (local) K (\($name\);) p n 0 T ( ) S (foreach) K ( \(@_\) {) p 24 T () S 32 T () S (# sanitise name) c n 0 T () S ( ) p (s) K (/[!\(\)\\$\\#*&\\\\\\|\\`\\'\\"\\~\\{\\}\\[\\]\\<\\>\\?]//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.14/tests/gps-ref/mtvplot.ps0000644000175000017500000000317110735323374016414 0ustar mhattamhatta%%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.14/tests/gps-ref/mutex.ps0000644000175000017500000000712410735323374016053 0ustar mhattamhatta%%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.14/tests/gps-ref/psmandup.ps0000644000175000017500000003442110735323374016540 0ustar mhattamhatta%%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.14/tests/ps-chk/0000755000175000017500000000000010735337371014165 5ustar mhattamhattaa2ps-4.14/tests/toc.tst0000755000175000017500000000173407440740404014323 0ustar mhattamhatta#! /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.14/tests/usropt-2.tst0000755000175000017500000000144507440740404015230 0ustar mhattamhatta#! /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.14/tests/inout-1.tst0000755000175000017500000000101607440740404015023 0ustar mhattamhatta#! /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.14/tests/ps-ref/0000755000175000017500000000000010735337262014173 5ustar mhattamhattaa2ps-4.14/tests/ps-ref/a2ps.ps0000644000175000017500000000753710735323410015406 0ustar mhattamhatta%%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.14/tests/ps-ref/cut.ps0000644000175000017500000000346710735323410015332 0ustar mhattamhatta%%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.14/tests/ps-ref/pages-1.ps0000644000175000017500000000444610735323410015772 0ustar mhattamhatta%%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.14/tests/ps-ref/configure.ps0000644000175000017500000000106510735323410016510 0ustar mhattamhatta%%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.in) (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.14/tests/ps-ref/vrcaml.ps0000644000175000017500000002022410735323410016011 0ustar mhattamhatta%%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.14/tests/ps-ref/al1-3.ps0000644000175000017500000000304710735323410015346 0ustar mhattamhatta%%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.14/tests/ps-ref/ftp2.ps0000644000175000017500000004732010735323410015406 0ustar mhattamhatta%%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.14/tests/ps-ref/sqlcrtbl.ps0000644000175000017500000002650010735323410016356 0ustar mhattamhatta%%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.14/tests/ps-ref/strip-1.ps0000644000175000017500000000142510735323410016026 0ustar mhattamhatta%%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.14/tests/ps-ref/strange.ps0000644000175000017500000003027210735323410016174 0ustar mhattamhatta%%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.14/tests/ps-ref/template.ps0000644000175000017500000001623010735323410016342 0ustar mhattamhatta%%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.14/tests/ps-ref/typing.ps0000644000175000017500000004103510735323410016042 0ustar mhattamhatta%%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.14/tests/ps-ref/synopsys.ps0000644000175000017500000000420210735323410016432 0ustar mhattamhatta%%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.14/tests/ps-ref/pi.ps0000644000175000017500000000436410735323410015144 0ustar mhattamhatta%%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.14/tests/ps-ref/tabulation.ps0000644000175000017500000000550710735323410016676 0ustar mhattamhatta%%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.14/tests/ps-ref/sqlpq92.ps0000644000175000017500000000111110735323410016032 0ustar mhattamhatta%%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.14/tests/ps-ref/ex1.ps0000644000175000017500000000331010735323410015217 0ustar mhattamhatta%%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.14/tests/ps-ref/encoding.ps0000644000175000017500000037132710735323410016330 0ustar mhattamhatta%!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, 89, 90, 91, 92, 93 Miguel Santana %%Copyright: (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana % 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 /FontMatrix get 3 get 1000 mul } 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 % 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.14/tests/ps-ref/toc.ps0000644000175000017500000001557710735323410015331 0ustar mhattamhatta%%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.in........) 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.14/tests/ps-ref/run-help.ps0000644000175000017500000000172710735323410016266 0ustar mhattamhatta%%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.14/tests/ps-ref/s-garnam.ps0000644000175000017500000005202710735323410016240 0ustar mhattamhatta%%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.14/tests/ps-ref/formfeed.ps0000644000175000017500000000571210735323410016321 0ustar mhattamhatta%%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.14/tests/ps-ref/wide.ps0000644000175000017500000001660010735323410015460 0ustar mhattamhatta%%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.14/tests/ps-ref/ex_PSGETRS.ps0000644000175000017500000003056310735323410016357 0ustar mhattamhatta%%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.14/tests/ps-ref/AppDelegate.ps0000644000175000017500000001223010735323410016676 0ustar mhattamhatta%%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.14/tests/ps-ref/symbol.ps0000644000175000017500000002322110735323410016032 0ustar mhattamhatta%%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.14/tests/ps-ref/strip-3.ps0000644000175000017500000000135710735323410016034 0ustar mhattamhatta%%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.14/tests/ps-ref/bookie.ps0000644000175000017500000001206310735323410015777 0ustar mhattamhatta%%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 3, 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.14/tests/ps-ref/ShellNewDummyHook.ps0000644000175000017500000001244510735323410020111 0ustar mhattamhatta%%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.14/tests/ps-ref/report.ps0000644000175000017500000002171010735323410016041 0ustar mhattamhatta%%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.14/tests/ps-ref/confirm.ps0000644000175000017500000000410510735323410016162 0ustar mhattamhatta%%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.14/tests/ps-ref/InsertBlock.ps0000644000175000017500000000453110735323410016747 0ustar mhattamhatta%%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 3 \(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.14/tests/ps-ref/al1-rank.ps0000644000175000017500000000273710735323410016144 0ustar mhattamhatta%%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.14/tests/ps-ref/prosamp.ps0000644000175000017500000000146210735323410016211 0ustar mhattamhatta%%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.14/tests/ps-ref/mofibida.ps0000644000175000017500000000604610735323410016305 0ustar mhattamhatta%%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.14/tests/ps-ref/del.ps0000644000175000017500000000000310735323410015262 0ustar mhattamhattaOK a2ps-4.14/tests/ps-ref/polkaIDL.ps0000644000175000017500000001410410735323410016164 0ustar mhattamhatta%%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.14/tests/ps-ref/ehandler.ps0000644000175000017500000001205610735323410016313 0ustar mhattamhatta%%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.14/tests/ps-ref/sqlspace.ps0000644000175000017500000000505310735323410016343 0ustar mhattamhatta%%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.14/tests/ps-ref/snacc.ps0000644000175000017500000001305410735323410015617 0ustar mhattamhatta%%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.14/tests/ps-ref/strip-0.ps0000644000175000017500000000146210735323410016026 0ustar mhattamhatta%%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.14/tests/ps-ref/eplv_chkr.ps0000644000175000017500000000361310735323410016505 0ustar mhattamhatta%%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 module checks for BDVL deasserting when BEPVL is asserted.) c n () p n (module) K ( epvl_chkr\(clk, bpvl, bepvl, bdvl, stop\);) p n ( ) S (input) K ( clk;) p n ( ) S (input) K ( bpvl;) p n ( ) S (input) K ( bepvl;) p n ( ) S (input) K ( bdvl;) p n ( ) S (input) K ( stop; ) p (// $stop \(or $finish if BATCH\) on error) c n () p n (`ifdef) k ( JUST_COUNT_PACKETS) p n ( ) S (// Do nothing) c n (`else) k n ( ) p (integer) K ( status;) p n (`endif) k ( ) p (// ifdef JUST_COUNT_PACKETS) c n () p n ( ) S (always) K ( @\() p (posedge) K ( clk\) ) p (begin) K n ( ) p (if) K ( \(!bpvl && bepvl && bdvl\) ) p (begin) K n ( $display\(") p (%%E-%M, %0t BDVL cannot be deasserted with BEPVL) str (",) p n ( $time\);) N ( ) S (if) K ( \(stop\) ) p (begin) K n ( #1000) p n (`ifdef) k ( JUST_CHECK_COUNTS) p n ( ) S (// Do nothing) c n (`else) k n ( status = $check_counts;) p n (`endif) k ( ) p (// !ifdef JUST_CHECK_COUNTS) c n ( $display\(") p (%%I-%M, %0t Stopping simulation on error!) str (", $time\);) p n (`ifdef) k ( BATCH) p n ( $finish;) N (`else) k n ( $stop;) p n (`endif) k ( ) p (// !ifdef BATCH) c n ( ) p (end) K ( ) p (// if \(backplane.stop_on_error\)) c n () p n ( ) S (end) K ( ) p (// if \(!bpvl && bepvl && bdvl\)) c n ( ) p (end) K ( ) p (// always @ \(posedge clk\)) c n () p n (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.14/tests/ps-ref/space.ps0000644000175000017500000000505010735323410015620 0ustar mhattamhatta%%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.14/tests/ps-ref/al1-sheet.ps0000644000175000017500000000300310735323410016304 0ustar mhattamhatta%%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.14/tests/ps-ref/sqlinit.ps0000644000175000017500000001647610735323410016226 0ustar mhattamhatta%%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.14/tests/ps-ref/includeres.ps0000644000175000017500000000636110735323410016670 0ustar mhattamhatta%%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.14/tests/ps-ref/al1-page.ps0000644000175000017500000000273710735323410016125 0ustar mhattamhatta%%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.14/tests/ps-ref/strip-2.ps0000644000175000017500000000141610735323410016027 0ustar mhattamhatta%%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.14/tests/ps-ref/mtvplot.ps0000644000175000017500000000275010735323410016236 0ustar mhattamhatta%%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.14/tests/ps-ref/mutex.ps0000644000175000017500000000633210735323410015673 0ustar mhattamhatta%%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.14/tests/ps-ref/psmandup.ps0000644000175000017500000003152210735323410016357 0ustar mhattamhatta%%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.14/tests/ps-ref/prolog-1.ps0000644000175000017500000003216010735323410016167 0ustar mhattamhatta%!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, 89, 90, 91, 92, 93 Miguel Santana %%Copyright: (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana % 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 /FontMatrix get 3 get 1000 mul } 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 % 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.14/tests/ps-ref/prolog-4.ps0000644000175000017500000003240410735323410016173 0ustar mhattamhatta%!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, 89, 90, 91, 92, 93 Miguel Santana %%Copyright: (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana % 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 /FontMatrix get 3 get 1000 mul } 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 % 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.14/tests/ps-ref/al1-virtual.ps0000644000175000017500000000274110735323410016672 0ustar mhattamhatta%%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.14/tests/align-1.tst0000755000175000017500000000155207440740404014764 0ustar mhattamhatta#! /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.14/tests/encoding.tst0000755000175000017500000000102407440740404015314 0ustar mhattamhatta#! /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.14/tests/inout-3.tst0000755000175000017500000000104007440740404015022 0ustar mhattamhatta#! /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.14/tests/printers.tst0000755000175000017500000000030107440740404015371 0ustar mhattamhatta#! /bin/sh # -*- ksh -*- # The DefaultPrinter is not defined in a2ps-test.cfg, but that's # no reason to dump! . ./defs || exit 1 (echo | $CHK -d 2>&1) | grep "^a2ps:" >&5 || exit 1 exit 0 a2ps-4.14/tests/po.tst0000755000175000017500000000045407440740404014152 0ustar mhattamhatta#! /bin/sh : ${SRCDIR=.} # Set up other vars . $SRCDIR/defs || exit 1 for file in `(cd $top_srcdir && fgrep -l '_(' lib/*.c src/*.c)` do if fgrep "$file" $top_srcdir/po/POTFILES.in >/dev/null 2>&1; then :; else echo "Did not see $file in POTFILES.in." failure=1 fi done exit $failure a2ps-4.14/tests/guess-2.tst0000755000175000017500000000360407440740404015021 0ustar mhattamhatta#! /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.14/tests/pages-1.tst0000755000175000017500000000147207440740404014772 0ustar mhattamhatta#! /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.14/tests/prolog-1.tst0000755000175000017500000000055007440740404015171 0ustar mhattamhatta#! /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.14/tests/contrib.tst0000755000175000017500000000064707440740404015200 0ustar mhattamhatta#! /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 psmandup psset 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.14/bootstrap0000755000175000017500000000111107515774213013575 0ustar mhattamhatta#! /bin/sh set -e contrib_scripts="card fixps pdiff psmandup psset" echo "Bootstrapping a2ps..." # These are created by the Makefile, which is missing for the time # being. They are needed by configure. for i in $contrib_scripts do touch contrib/$i.in done # Autoconf, Automake, Gettext. autoreconf --force --install --verbose # Configure and make the missing guys. ./configure # Configure was using card.in etc. But they were probably fake ones. # Remove them, and let make do the rest. ( cd contrib for i in $contrib_scripts do rm -f $i $i.in done make ) make a2ps-4.14/afm/0000755000175000017500000000000010735337377012407 5ustar mhattamhattaa2ps-4.14/afm/pbkdi.afm0000644000175000017500000010364110674334151014157 0ustar mhattamhattaStartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1989, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Thu May 1 13:56:49 1997 Comment UniqueID 43080 Comment VMusage 43194 54219 FontName Bookman-DemiItalic FullName ITC Bookman Demi Italic FamilyName ITC Bookman Weight Demi ItalicAngle -10 IsFixedPitch false FontBBox -231 -250 1333 941 UnderlinePosition -100 UnderlineThickness 50 Version 002.000 Notice Copyright (c) 1985, 1987, 1989, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.ITC Bookman is a registered trademark of International Typeface Corporation. EncodingScheme AdobeStandardEncoding CapHeight 681 XHeight 515 Ascender 717 Descender -228 StdHW 82 StdVW 172 StartCharMetrics 314 C 32 ; WX 340 ; N space ; B 0 0 0 0 ; C 33 ; WX 320 ; N exclam ; B 86 -8 366 698 ; C 34 ; WX 380 ; N quotedbl ; B 140 371 507 697 ; C 35 ; WX 680 ; N numbersign ; B 157 0 649 681 ; C 36 ; WX 680 ; N dollar ; B 45 -164 697 790 ; C 37 ; WX 880 ; N percent ; B 106 -17 899 698 ; C 38 ; WX 980 ; N ampersand ; B 48 -17 1016 698 ; C 39 ; WX 320 ; N quoteright ; B 171 420 349 698 ; C 40 ; WX 260 ; N parenleft ; B 31 -134 388 741 ; C 41 ; WX 260 ; N parenright ; B -35 -134 322 741 ; C 42 ; WX 460 ; N asterisk ; B 126 346 508 698 ; C 43 ; WX 600 ; N plus ; B 91 9 595 514 ; C 44 ; WX 340 ; N comma ; B 100 -124 298 185 ; C 45 ; WX 280 ; N hyphen ; B 59 218 319 313 ; C 46 ; WX 340 ; N period ; B 106 -8 296 177 ; C 47 ; WX 360 ; N slash ; B 9 -106 502 742 ; C 48 ; WX 680 ; N zero ; B 87 -17 703 698 ; C 49 ; WX 680 ; N one ; B 123 0 565 681 ; C 50 ; WX 680 ; N two ; B 67 0 674 698 ; C 51 ; WX 680 ; N three ; B 72 -17 683 698 ; C 52 ; WX 680 ; N four ; B 63 0 708 681 ; C 53 ; WX 680 ; N five ; B 78 -17 669 681 ; C 54 ; WX 680 ; N six ; B 88 -17 704 698 ; C 55 ; WX 680 ; N seven ; B 123 0 739 681 ; C 56 ; WX 680 ; N eight ; B 68 -17 686 698 ; C 57 ; WX 680 ; N nine ; B 71 -17 712 698 ; C 58 ; WX 340 ; N colon ; B 106 -8 356 515 ; C 59 ; WX 340 ; N semicolon ; B 100 -124 352 515 ; C 60 ; WX 620 ; N less ; B 79 -9 588 540 ; C 61 ; WX 600 ; N equal ; B 91 109 595 421 ; C 62 ; WX 620 ; N greater ; B 89 -9 598 540 ; C 63 ; WX 620 ; N question ; B 145 -8 668 698 ; C 64 ; WX 780 ; N at ; B 80 -17 790 698 ; C 65 ; WX 720 ; N A ; B -27 0 769 681 ; C 66 ; WX 720 ; N B ; B 14 0 762 681 ; C 67 ; WX 700 ; N C ; B 78 -17 754 698 ; C 68 ; WX 760 ; N D ; B 14 0 805 681 ; C 69 ; WX 720 ; N E ; B 14 0 777 681 ; C 70 ; WX 660 ; N F ; B 14 0 763 681 ; C 71 ; WX 760 ; N G ; B 77 -17 828 698 ; C 72 ; WX 800 ; N H ; B 14 0 910 681 ; C 73 ; WX 380 ; N I ; B 14 0 485 681 ; C 74 ; WX 620 ; N J ; B 8 -17 721 681 ; C 75 ; WX 780 ; N K ; B 14 0 879 681 ; C 76 ; WX 640 ; N L ; B 14 0 725 681 ; C 77 ; WX 860 ; N M ; B 14 0 970 681 ; C 78 ; WX 740 ; N N ; B 14 0 845 681 ; C 79 ; WX 760 ; N O ; B 78 -17 806 698 ; C 80 ; WX 640 ; N P ; B -6 0 724 681 ; C 81 ; WX 760 ; N Q ; B 37 -213 805 698 ; C 82 ; WX 740 ; N R ; B 14 0 765 681 ; C 83 ; WX 700 ; N S ; B 59 -17 731 698 ; C 84 ; WX 700 ; N T ; B 70 0 802 681 ; C 85 ; WX 740 ; N U ; B 112 -17 855 681 ; C 86 ; WX 660 ; N V ; B 72 0 819 681 ; C 87 ; WX 1000 ; N W ; B 72 0 1090 681 ; C 88 ; WX 740 ; N X ; B -7 0 835 681 ; C 89 ; WX 660 ; N Y ; B 72 0 817 681 ; C 90 ; WX 680 ; N Z ; B 23 0 740 681 ; C 91 ; WX 260 ; N bracketleft ; B 9 -118 374 741 ; C 92 ; WX 580 ; N backslash ; B 73 0 575 741 ; C 93 ; WX 260 ; N bracketright ; B -18 -118 347 741 ; C 94 ; WX 620 ; N asciicircum ; B 92 281 594 681 ; C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; C 96 ; WX 320 ; N quoteleft ; B 155 420 333 698 ; C 97 ; WX 680 ; N a ; B 84 -8 735 515 ; C 98 ; WX 600 ; N b ; B 57 -8 633 732 ; C 99 ; WX 560 ; N c ; B 58 -8 597 515 ; C 100 ; WX 680 ; N d ; B 60 -8 714 732 ; C 101 ; WX 560 ; N e ; B 59 -8 596 515 ; C 102 ; WX 420 ; N f ; B -192 -213 641 741 ; L i fi ; L l fl ; C 103 ; WX 620 ; N g ; B 21 -213 669 515 ; C 104 ; WX 700 ; N h ; B 93 -8 736 732 ; C 105 ; WX 380 ; N i ; B 83 -8 420 755 ; C 106 ; WX 320 ; N j ; B -160 -213 392 755 ; C 107 ; WX 700 ; N k ; B 97 -8 732 732 ; C 108 ; WX 380 ; N l ; B 109 -8 410 732 ; C 109 ; WX 960 ; N m ; B 83 -8 996 515 ; C 110 ; WX 680 ; N n ; B 83 -8 715 515 ; C 111 ; WX 600 ; N o ; B 59 -8 627 515 ; C 112 ; WX 660 ; N p ; B -24 -213 682 515 ; C 113 ; WX 620 ; N q ; B 60 -213 640 515 ; C 114 ; WX 500 ; N r ; B 84 0 582 515 ; C 115 ; WX 540 ; N s ; B 32 -8 573 515 ; C 116 ; WX 440 ; N t ; B 106 -8 488 658 ; C 117 ; WX 680 ; N u ; B 83 -8 720 507 ; C 118 ; WX 540 ; N v ; B 56 -8 572 515 ; C 119 ; WX 860 ; N w ; B 56 -8 891 515 ; C 120 ; WX 620 ; N x ; B 10 -8 654 515 ; C 121 ; WX 600 ; N y ; B 25 -213 642 507 ; C 122 ; WX 560 ; N z ; B 36 -8 586 515 ; C 123 ; WX 300 ; N braceleft ; B 49 -123 413 742 ; C 124 ; WX 620 ; N bar ; B 303 -250 422 750 ; C 125 ; WX 300 ; N braceright ; B -8 -114 356 751 ; C 126 ; WX 620 ; N asciitilde ; B 101 162 605 368 ; C 161 ; WX 320 ; N exclamdown ; B 64 -191 344 515 ; C 162 ; WX 680 ; N cent ; B 161 25 616 718 ; C 163 ; WX 680 ; N sterling ; B 0 -17 787 698 ; C 164 ; WX 120 ; N fraction ; B -144 0 382 681 ; C 165 ; WX 680 ; N yen ; B 92 0 782 681 ; C 166 ; WX 680 ; N florin ; B -28 -199 743 741 ; C 167 ; WX 620 ; N section ; B 46 -137 638 698 ; C 168 ; WX 680 ; N currency ; B 148 85 637 571 ; C 169 ; WX 180 ; N quotesingle ; B 126 370 295 696 ; C 170 ; WX 520 ; N quotedblleft ; B 156 420 545 698 ; C 171 ; WX 380 ; N guillemotleft ; B 62 84 406 503 ; C 172 ; WX 220 ; N guilsinglleft ; B 62 84 249 503 ; C 173 ; WX 220 ; N guilsinglright ; B 62 84 249 503 ; C 174 ; WX 820 ; N fi ; B -191 -213 850 741 ; C 175 ; WX 820 ; N fl ; B -191 -213 850 741 ; C 177 ; WX 500 ; N endash ; B 40 219 573 311 ; C 178 ; WX 420 ; N dagger ; B 89 -137 466 698 ; C 179 ; WX 420 ; N daggerdbl ; B 79 -137 486 698 ; C 180 ; WX 340 ; N periodcentered ; B 126 173 316 358 ; C 182 ; WX 680 ; N paragraph ; B 137 0 715 681 ; C 183 ; WX 360 ; N bullet ; B 60 170 404 511 ; C 184 ; WX 300 ; N quotesinglbase ; B 106 -112 284 166 ; C 185 ; WX 520 ; N quotedblbase ; B 106 -112 495 166 ; C 186 ; WX 520 ; N quotedblright ; B 171 420 560 698 ; C 187 ; WX 380 ; N guillemotright ; B 62 84 406 503 ; C 188 ; WX 1000 ; N ellipsis ; B 86 -8 942 177 ; C 189 ; WX 1360 ; N perthousand ; B 106 -17 1333 698 ; C 191 ; WX 620 ; N questiondown ; B 83 -189 606 515 ; C 193 ; WX 380 ; N grave ; B 193 566 424 771 ; C 194 ; WX 340 ; N acute ; B 176 566 407 771 ; C 195 ; WX 480 ; N circumflex ; B 183 582 523 749 ; C 196 ; WX 480 ; N tilde ; B 178 587 533 709 ; C 197 ; WX 480 ; N macron ; B 177 603 531 691 ; C 198 ; WX 460 ; N breve ; B 177 577 516 707 ; C 199 ; WX 380 ; N dotaccent ; B 167 563 365 755 ; C 200 ; WX 520 ; N dieresis ; B 180 563 569 727 ; C 202 ; WX 360 ; N ring ; B 185 558 406 775 ; C 203 ; WX 360 ; N cedilla ; B 68 -220 289 -8 ; C 205 ; WX 560 ; N hungarumlaut ; B 181 560 616 775 ; C 206 ; WX 320 ; N ogonek ; B 58 -199 293 0 ; C 207 ; WX 480 ; N caron ; B 183 582 523 749 ; C 208 ; WX 1000 ; N emdash ; B 40 219 1073 311 ; C 225 ; WX 1140 ; N AE ; B -27 0 1207 681 ; C 227 ; WX 440 ; N ordfeminine ; B 118 400 495 685 ; C 232 ; WX 640 ; N Lslash ; B 14 0 724 681 ; C 233 ; WX 760 ; N Oslash ; B 21 -29 847 725 ; C 234 ; WX 1180 ; N OE ; B 94 -17 1245 698 ; C 235 ; WX 440 ; N ordmasculine ; B 127 400 455 685 ; C 241 ; WX 880 ; N ae ; B 39 -8 913 515 ; C 245 ; WX 380 ; N dotlessi ; B 83 -8 420 507 ; C 248 ; WX 380 ; N lslash ; B 75 -8 424 732 ; C 249 ; WX 600 ; N oslash ; B 17 -54 661 571 ; C 250 ; WX 920 ; N oe ; B 48 -8 961 515 ; C 251 ; WX 660 ; N germandbls ; B -231 -213 702 741 ; C -1 ; WX 380 ; N Idieresis ; B 14 0 499 900 ; C -1 ; WX 560 ; N eacute ; B 59 -8 596 771 ; C -1 ; WX 680 ; N abreve ; B 84 -8 735 707 ; C -1 ; WX 680 ; N uhungarumlaut ; B 83 -8 720 775 ; C -1 ; WX 560 ; N ecaron ; B 59 -8 596 749 ; C -1 ; WX 660 ; N Ydieresis ; B 72 0 817 900 ; C -1 ; WX 600 ; N divide ; B 91 9 595 521 ; C -1 ; WX 660 ; N Yacute ; B 72 0 817 937 ; C -1 ; WX 720 ; N Acircumflex ; B -27 0 769 915 ; C -1 ; WX 680 ; N aacute ; B 84 -8 735 771 ; C -1 ; WX 740 ; N Ucircumflex ; B 112 -17 855 915 ; C -1 ; WX 600 ; N yacute ; B 25 -213 642 771 ; C -1 ; WX 540 ; N scommaaccent ; B 32 -250 573 515 ; C -1 ; WX 560 ; N ecircumflex ; B 59 -8 596 749 ; C -1 ; WX 740 ; N Uring ; B 112 -17 855 941 ; C -1 ; WX 740 ; N Udieresis ; B 112 -17 855 900 ; C -1 ; WX 680 ; N aogonek ; B 84 -199 735 515 ; C -1 ; WX 740 ; N Uacute ; B 112 -17 855 937 ; C -1 ; WX 680 ; N uogonek ; B 83 -199 720 507 ; C -1 ; WX 720 ; N Edieresis ; B 14 0 777 900 ; C -1 ; WX 760 ; N Dcroat ; B 14 0 805 681 ; C -1 ; WX 250 ; N commaaccent ; B 55 -250 199 -50 ; C -1 ; WX 780 ; N copyright ; B 83 -17 783 698 ; C -1 ; WX 720 ; N Emacron ; B 14 0 777 857 ; C -1 ; WX 560 ; N ccaron ; B 58 -8 597 749 ; C -1 ; WX 680 ; N aring ; B 84 -8 735 775 ; C -1 ; WX 740 ; N Ncommaaccent ; B 14 -250 845 681 ; C -1 ; WX 380 ; N lacute ; B 109 -8 466 940 ; C -1 ; WX 680 ; N agrave ; B 84 -8 735 771 ; C -1 ; WX 700 ; N Tcommaaccent ; B 70 -250 802 681 ; C -1 ; WX 700 ; N Cacute ; B 78 -17 754 937 ; C -1 ; WX 680 ; N atilde ; B 84 -8 735 709 ; C -1 ; WX 720 ; N Edotaccent ; B 14 0 777 928 ; C -1 ; WX 540 ; N scaron ; B 32 -8 573 749 ; C -1 ; WX 540 ; N scedilla ; B 32 -220 573 515 ; C -1 ; WX 380 ; N iacute ; B 83 -8 420 771 ; C -1 ; WX 494 ; N lozenge ; B 10 0 484 745 ; C -1 ; WX 740 ; N Rcaron ; B 14 0 765 915 ; C -1 ; WX 760 ; N Gcommaaccent ; B 77 -250 828 698 ; C -1 ; WX 680 ; N ucircumflex ; B 83 -8 720 749 ; C -1 ; WX 680 ; N acircumflex ; B 84 -8 735 749 ; C -1 ; WX 720 ; N Amacron ; B -27 0 769 857 ; C -1 ; WX 500 ; N rcaron ; B 84 0 582 749 ; C -1 ; WX 560 ; N ccedilla ; B 58 -220 597 515 ; C -1 ; WX 680 ; N Zdotaccent ; B 23 0 740 928 ; C -1 ; WX 640 ; N Thorn ; B -6 0 701 681 ; C -1 ; WX 760 ; N Omacron ; B 78 -17 806 857 ; C -1 ; WX 740 ; N Racute ; B 14 0 765 937 ; C -1 ; WX 700 ; N Sacute ; B 59 -17 731 937 ; C -1 ; WX 755 ; N dcaron ; B 60 -8 874 738 ; C -1 ; WX 740 ; N Umacron ; B 112 -17 855 857 ; C -1 ; WX 680 ; N uring ; B 83 -8 720 775 ; C -1 ; WX 408 ; N threesuperior ; B 86 269 483 698 ; C -1 ; WX 760 ; N Ograve ; B 78 -17 806 937 ; C -1 ; WX 720 ; N Agrave ; B -27 0 769 937 ; C -1 ; WX 720 ; N Abreve ; B -27 0 769 873 ; C -1 ; WX 600 ; N multiply ; B 91 10 595 514 ; C -1 ; WX 680 ; N uacute ; B 83 -8 720 771 ; C -1 ; WX 700 ; N Tcaron ; B 70 0 802 915 ; C -1 ; WX 505 ; N partialdiff ; B 11 -21 494 750 ; C -1 ; WX 600 ; N ydieresis ; B 25 -213 642 734 ; C -1 ; WX 740 ; N Nacute ; B 14 0 845 937 ; C -1 ; WX 380 ; N icircumflex ; B 83 -8 433 749 ; C -1 ; WX 720 ; N Ecircumflex ; B 14 0 777 915 ; C -1 ; WX 680 ; N adieresis ; B 84 -8 735 734 ; C -1 ; WX 560 ; N edieresis ; B 59 -8 596 734 ; C -1 ; WX 560 ; N cacute ; B 58 -8 597 771 ; C -1 ; WX 680 ; N nacute ; B 83 -8 715 771 ; C -1 ; WX 680 ; N umacron ; B 83 -8 720 691 ; C -1 ; WX 740 ; N Ncaron ; B 14 0 845 915 ; C -1 ; WX 380 ; N Iacute ; B 14 0 487 937 ; C -1 ; WX 600 ; N plusminus ; B 91 0 595 514 ; C -1 ; WX 620 ; N brokenbar ; B 303 -175 422 675 ; C -1 ; WX 780 ; N registered ; B 83 -17 783 698 ; C -1 ; WX 760 ; N Gbreve ; B 77 -17 828 873 ; C -1 ; WX 380 ; N Idotaccent ; B 14 0 485 928 ; C -1 ; WX 599 ; N summation ; B 14 -10 585 706 ; C -1 ; WX 720 ; N Egrave ; B 14 0 777 937 ; C -1 ; WX 500 ; N racute ; B 84 0 582 771 ; C -1 ; WX 600 ; N omacron ; B 59 -8 627 691 ; C -1 ; WX 680 ; N Zacute ; B 23 0 740 937 ; C -1 ; WX 680 ; N Zcaron ; B 23 0 740 915 ; C -1 ; WX 549 ; N greaterequal ; B 26 0 523 704 ; C -1 ; WX 760 ; N Eth ; B 14 0 805 681 ; C -1 ; WX 700 ; N Ccedilla ; B 78 -220 754 698 ; C -1 ; WX 380 ; N lcommaaccent ; B 109 -250 410 732 ; C -1 ; WX 450 ; N tcaron ; B 106 -8 571 798 ; C -1 ; WX 560 ; N eogonek ; B 59 -199 596 515 ; C -1 ; WX 740 ; N Uogonek ; B 112 -199 855 681 ; C -1 ; WX 720 ; N Aacute ; B -27 0 769 937 ; C -1 ; WX 720 ; N Adieresis ; B -27 0 769 900 ; C -1 ; WX 560 ; N egrave ; B 59 -8 596 771 ; C -1 ; WX 560 ; N zacute ; B 36 -8 586 771 ; C -1 ; WX 380 ; N iogonek ; B 83 -199 420 755 ; C -1 ; WX 760 ; N Oacute ; B 78 -17 806 937 ; C -1 ; WX 600 ; N oacute ; B 59 -8 627 771 ; C -1 ; WX 680 ; N amacron ; B 84 -8 735 691 ; C -1 ; WX 540 ; N sacute ; B 32 -8 573 771 ; C -1 ; WX 380 ; N idieresis ; B 83 -8 479 734 ; C -1 ; WX 760 ; N Ocircumflex ; B 78 -17 806 915 ; C -1 ; WX 740 ; N Ugrave ; B 112 -17 855 937 ; C -1 ; WX 614 ; N Delta ; B 6 0 608 688 ; C -1 ; WX 660 ; N thorn ; B -24 -213 682 732 ; C -1 ; WX 408 ; N twosuperior ; B 91 279 485 698 ; C -1 ; WX 760 ; N Odieresis ; B 78 -17 806 900 ; C -1 ; WX 680 ; N mu ; B 54 -213 720 507 ; C -1 ; WX 380 ; N igrave ; B 83 -8 420 771 ; C -1 ; WX 600 ; N ohungarumlaut ; B 59 -8 636 775 ; C -1 ; WX 720 ; N Eogonek ; B 14 -199 777 681 ; C -1 ; WX 680 ; N dcroat ; B 60 -8 748 732 ; C -1 ; WX 1020 ; N threequarters ; B 86 0 1054 691 ; C -1 ; WX 700 ; N Scedilla ; B 59 -220 731 698 ; C -1 ; WX 463 ; N lcaron ; B 109 -8 573 738 ; C -1 ; WX 780 ; N Kcommaaccent ; B 14 -250 879 681 ; C -1 ; WX 640 ; N Lacute ; B 14 0 725 937 ; C -1 ; WX 940 ; N trademark ; B 42 277 982 681 ; C -1 ; WX 560 ; N edotaccent ; B 59 -8 596 762 ; C -1 ; WX 380 ; N Igrave ; B 14 0 485 937 ; C -1 ; WX 380 ; N Imacron ; B 14 0 485 857 ; C -1 ; WX 640 ; N Lcaron ; B 14 0 725 698 ; C -1 ; WX 1020 ; N onehalf ; B 118 0 1036 681 ; C -1 ; WX 549 ; N lessequal ; B 29 0 526 704 ; C -1 ; WX 600 ; N ocircumflex ; B 59 -8 627 749 ; C -1 ; WX 680 ; N ntilde ; B 83 -8 715 709 ; C -1 ; WX 740 ; N Uhungarumlaut ; B 112 -17 855 941 ; C -1 ; WX 720 ; N Eacute ; B 14 0 777 937 ; C -1 ; WX 560 ; N emacron ; B 59 -8 596 691 ; C -1 ; WX 620 ; N gbreve ; B 21 -213 669 707 ; C -1 ; WX 1020 ; N onequarter ; B 118 0 1054 681 ; C -1 ; WX 700 ; N Scaron ; B 59 -17 731 915 ; C -1 ; WX 700 ; N Scommaaccent ; B 59 -250 731 698 ; C -1 ; WX 760 ; N Ohungarumlaut ; B 78 -17 806 941 ; C -1 ; WX 400 ; N degree ; B 130 398 430 698 ; C -1 ; WX 600 ; N ograve ; B 59 -8 627 771 ; C -1 ; WX 700 ; N Ccaron ; B 78 -17 754 915 ; C -1 ; WX 680 ; N ugrave ; B 83 -8 720 771 ; C -1 ; WX 522 ; N radical ; B 10 -46 512 850 ; C -1 ; WX 760 ; N Dcaron ; B 14 0 805 915 ; C -1 ; WX 500 ; N rcommaaccent ; B 80 -250 582 515 ; C -1 ; WX 740 ; N Ntilde ; B 14 0 845 875 ; C -1 ; WX 600 ; N otilde ; B 59 -8 627 709 ; C -1 ; WX 740 ; N Rcommaaccent ; B 14 -250 765 681 ; C -1 ; WX 640 ; N Lcommaaccent ; B 14 -250 725 681 ; C -1 ; WX 720 ; N Atilde ; B -27 0 769 875 ; C -1 ; WX 720 ; N Aogonek ; B -27 -199 789 681 ; C -1 ; WX 720 ; N Aring ; B -27 0 769 941 ; C -1 ; WX 760 ; N Otilde ; B 78 -17 806 875 ; C -1 ; WX 560 ; N zdotaccent ; B 36 -8 586 762 ; C -1 ; WX 720 ; N Ecaron ; B 14 0 777 915 ; C -1 ; WX 380 ; N Iogonek ; B 14 -199 485 681 ; C -1 ; WX 700 ; N kcommaaccent ; B 97 -250 732 732 ; C -1 ; WX 600 ; N minus ; B 91 207 595 323 ; C -1 ; WX 380 ; N Icircumflex ; B 14 0 493 915 ; C -1 ; WX 680 ; N ncaron ; B 83 -8 715 749 ; C -1 ; WX 440 ; N tcommaaccent ; B 106 -250 488 658 ; C -1 ; WX 620 ; N logicalnot ; B 81 129 585 421 ; C -1 ; WX 600 ; N odieresis ; B 59 -8 627 734 ; C -1 ; WX 680 ; N udieresis ; B 83 -8 720 734 ; C -1 ; WX 555 ; N notequal ; B 15 -49 540 570 ; C -1 ; WX 620 ; N gcommaaccent ; B 21 -213 669 827 ; C -1 ; WX 600 ; N eth ; B 59 -8 662 741 ; C -1 ; WX 560 ; N zcaron ; B 36 -8 586 749 ; C -1 ; WX 680 ; N ncommaaccent ; B 83 -250 715 515 ; C -1 ; WX 408 ; N onesuperior ; B 118 279 406 688 ; C -1 ; WX 380 ; N imacron ; B 83 -8 461 691 ; EndCharMetrics StartKernData StartKernPairs 931 KPX A T -17 KPX A Tcaron -17 KPX A Tcommaaccent -17 KPX A V -40 KPX A W -35 KPX A Y -25 KPX A Yacute -25 KPX A Ydieresis -25 KPX A v 20 KPX A w 20 KPX A y 20 KPX A yacute 20 KPX A ydieresis 20 KPX Aacute T -17 KPX Aacute Tcaron -17 KPX Aacute Tcommaaccent -17 KPX Aacute V -40 KPX Aacute W -35 KPX Aacute Y -25 KPX Aacute Yacute -25 KPX Aacute Ydieresis -25 KPX Aacute v 20 KPX Aacute w 20 KPX Aacute y 20 KPX Aacute yacute 20 KPX Aacute ydieresis 20 KPX Abreve T -17 KPX Abreve Tcaron -17 KPX Abreve Tcommaaccent -17 KPX Abreve V -40 KPX Abreve W -35 KPX Abreve Y -25 KPX Abreve Yacute -25 KPX Abreve Ydieresis -25 KPX Abreve v 20 KPX Abreve w 20 KPX Abreve y 20 KPX Abreve yacute 20 KPX Abreve ydieresis 20 KPX Acircumflex T -17 KPX Acircumflex Tcaron -17 KPX Acircumflex Tcommaaccent -17 KPX Acircumflex V -40 KPX Acircumflex W -35 KPX Acircumflex Y -25 KPX Acircumflex Yacute -25 KPX Acircumflex Ydieresis -25 KPX Acircumflex v 20 KPX Acircumflex w 20 KPX Acircumflex y 20 KPX Acircumflex yacute 20 KPX Acircumflex ydieresis 20 KPX Adieresis T -17 KPX Adieresis Tcaron -17 KPX Adieresis Tcommaaccent -17 KPX Adieresis V -40 KPX Adieresis W -35 KPX Adieresis Y -25 KPX Adieresis Yacute -25 KPX Adieresis Ydieresis -25 KPX Adieresis v 20 KPX Adieresis w 20 KPX Adieresis y 20 KPX Adieresis yacute 20 KPX Adieresis ydieresis 20 KPX Agrave T -17 KPX Agrave Tcaron -17 KPX Agrave Tcommaaccent -17 KPX Agrave V -40 KPX Agrave W -35 KPX Agrave Y -25 KPX Agrave Yacute -25 KPX Agrave Ydieresis -25 KPX Agrave v 20 KPX Agrave w 20 KPX Agrave y 20 KPX Agrave yacute 20 KPX Agrave ydieresis 20 KPX Amacron T -17 KPX Amacron Tcaron -17 KPX Amacron Tcommaaccent -17 KPX Amacron V -40 KPX Amacron W -35 KPX Amacron Y -25 KPX Amacron Yacute -25 KPX Amacron Ydieresis -25 KPX Amacron v 20 KPX Amacron w 20 KPX Amacron y 20 KPX Amacron yacute 20 KPX Amacron ydieresis 20 KPX Aogonek T -17 KPX Aogonek Tcaron -17 KPX Aogonek Tcommaaccent -17 KPX Aogonek V -40 KPX Aogonek W -35 KPX Aogonek Y -25 KPX Aogonek Yacute -25 KPX Aogonek Ydieresis -25 KPX Aogonek v 20 KPX Aogonek w 20 KPX Aogonek y 20 KPX Aogonek yacute 20 KPX Aogonek ydieresis 20 KPX Aring T -17 KPX Aring Tcaron -17 KPX Aring Tcommaaccent -17 KPX Aring V -40 KPX Aring W -35 KPX Aring Y -25 KPX Aring Yacute -25 KPX Aring Ydieresis -25 KPX Aring v 20 KPX Aring w 20 KPX Aring y 20 KPX Aring yacute 20 KPX Aring ydieresis 20 KPX Atilde T -17 KPX Atilde Tcaron -17 KPX Atilde Tcommaaccent -17 KPX Atilde V -40 KPX Atilde W -35 KPX Atilde Y -25 KPX Atilde Yacute -25 KPX Atilde Ydieresis -25 KPX Atilde v 20 KPX Atilde w 20 KPX Atilde y 20 KPX Atilde yacute 20 KPX Atilde ydieresis 20 KPX F A -35 KPX F Aacute -35 KPX F Abreve -35 KPX F Acircumflex -35 KPX F Adieresis -35 KPX F Agrave -35 KPX F Amacron -35 KPX F Aogonek -35 KPX F Aring -35 KPX F Atilde -35 KPX F comma -98 KPX F period -105 KPX L T -26 KPX L Tcaron -26 KPX L Tcommaaccent -26 KPX L V -19 KPX L W -15 KPX L Y -5 KPX L Yacute -5 KPX L Ydieresis -5 KPX L y 62 KPX L yacute 62 KPX L ydieresis 62 KPX Lacute T -26 KPX Lacute Tcaron -26 KPX Lacute Tcommaaccent -26 KPX Lacute V -19 KPX Lacute W -15 KPX Lacute Y -5 KPX Lacute Yacute -5 KPX Lacute Ydieresis -5 KPX Lacute y 62 KPX Lacute yacute 62 KPX Lacute ydieresis 62 KPX Lcommaaccent T -26 KPX Lcommaaccent Tcaron -26 KPX Lcommaaccent Tcommaaccent -26 KPX Lcommaaccent V -19 KPX Lcommaaccent W -15 KPX Lcommaaccent Y -5 KPX Lcommaaccent Yacute -5 KPX Lcommaaccent Ydieresis -5 KPX Lcommaaccent y 62 KPX Lcommaaccent yacute 62 KPX Lcommaaccent ydieresis 62 KPX Lslash T -26 KPX Lslash Tcaron -26 KPX Lslash Tcommaaccent -26 KPX Lslash V -19 KPX Lslash W -15 KPX Lslash Y -5 KPX Lslash Yacute -5 KPX Lslash Ydieresis -5 KPX Lslash y 62 KPX Lslash yacute 62 KPX Lslash ydieresis 62 KPX P A -31 KPX P Aacute -31 KPX P Abreve -31 KPX P Acircumflex -31 KPX P Adieresis -31 KPX P Agrave -31 KPX P Amacron -31 KPX P Aogonek -31 KPX P Aring -31 KPX P Atilde -31 KPX P comma -98 KPX P period -105 KPX R T -3 KPX R Tcaron -3 KPX R Tcommaaccent -3 KPX R V -8 KPX R W -4 KPX R Y 4 KPX R Yacute 4 KPX R Ydieresis 4 KPX R y 27 KPX R yacute 27 KPX R ydieresis 27 KPX Racute T -3 KPX Racute Tcaron -3 KPX Racute Tcommaaccent -3 KPX Racute V -8 KPX Racute W -4 KPX Racute Y 4 KPX Racute Yacute 4 KPX Racute Ydieresis 4 KPX Racute y 27 KPX Racute yacute 27 KPX Racute ydieresis 27 KPX Rcaron T -3 KPX Rcaron Tcaron -3 KPX Rcaron Tcommaaccent -3 KPX Rcaron V -8 KPX Rcaron W -4 KPX Rcaron Y 4 KPX Rcaron Yacute 4 KPX Rcaron Ydieresis 4 KPX Rcaron y 27 KPX Rcaron yacute 27 KPX Rcaron ydieresis 27 KPX Rcommaaccent T -3 KPX Rcommaaccent Tcaron -3 KPX Rcommaaccent Tcommaaccent -3 KPX Rcommaaccent V -8 KPX Rcommaaccent W -4 KPX Rcommaaccent Y 4 KPX Rcommaaccent Yacute 4 KPX Rcommaaccent Ydieresis 4 KPX Rcommaaccent y 27 KPX Rcommaaccent yacute 27 KPX Rcommaaccent ydieresis 27 KPX T A -42 KPX T Aacute -42 KPX T Abreve -42 KPX T Acircumflex -42 KPX T Adieresis -42 KPX T Agrave -42 KPX T Amacron -42 KPX T Aogonek -42 KPX T Aring -42 KPX T Atilde -42 KPX T a -8 KPX T aacute -8 KPX T abreve -8 KPX T acircumflex -8 KPX T adieresis -8 KPX T agrave -8 KPX T amacron -8 KPX T aogonek -8 KPX T aring -8 KPX T atilde -8 KPX T c -8 KPX T cacute -8 KPX T ccaron -8 KPX T ccedilla -8 KPX T colon 26 KPX T comma -100 KPX T e -10 KPX T eacute -10 KPX T ecaron -10 KPX T ecircumflex -10 KPX T edieresis -10 KPX T edotaccent -10 KPX T egrave -10 KPX T emacron -10 KPX T eogonek -10 KPX T hyphen -20 KPX T i 42 KPX T iacute 42 KPX T icircumflex 42 KPX T idieresis 42 KPX T igrave 42 KPX T imacron 42 KPX T iogonek 42 KPX T o -5 KPX T oacute -5 KPX T ocircumflex -5 KPX T odieresis -5 KPX T ograve -5 KPX T ohungarumlaut -5 KPX T omacron -5 KPX T oslash -5 KPX T otilde -5 KPX T period -107 KPX T r 41 KPX T racute 41 KPX T rcaron 41 KPX T rcommaaccent 41 KPX T s -1 KPX T sacute -1 KPX T scaron -1 KPX T scedilla -1 KPX T scommaaccent -1 KPX T semicolon 31 KPX T u 42 KPX T uacute 42 KPX T ucircumflex 42 KPX T udieresis 42 KPX T ugrave 42 KPX T uhungarumlaut 42 KPX T umacron 42 KPX T uogonek 42 KPX T uring 42 KPX T w 69 KPX T y 56 KPX T yacute 56 KPX T ydieresis 56 KPX Tcaron A -42 KPX Tcaron Aacute -42 KPX Tcaron Abreve -42 KPX Tcaron Acircumflex -42 KPX Tcaron Adieresis -42 KPX Tcaron Agrave -42 KPX Tcaron Amacron -42 KPX Tcaron Aogonek -42 KPX Tcaron Aring -42 KPX Tcaron Atilde -42 KPX Tcaron a -8 KPX Tcaron aacute -8 KPX Tcaron abreve -8 KPX Tcaron acircumflex -8 KPX Tcaron adieresis -8 KPX Tcaron agrave -8 KPX Tcaron amacron -8 KPX Tcaron aogonek -8 KPX Tcaron aring -8 KPX Tcaron atilde -8 KPX Tcaron c -8 KPX Tcaron cacute -8 KPX Tcaron ccaron -8 KPX Tcaron ccedilla -8 KPX Tcaron colon 26 KPX Tcaron comma -100 KPX Tcaron e -10 KPX Tcaron eacute -10 KPX Tcaron ecaron -10 KPX Tcaron ecircumflex -10 KPX Tcaron edieresis -10 KPX Tcaron edotaccent -10 KPX Tcaron egrave -10 KPX Tcaron emacron -10 KPX Tcaron eogonek -10 KPX Tcaron hyphen -20 KPX Tcaron i 42 KPX Tcaron iacute 42 KPX Tcaron icircumflex 42 KPX Tcaron idieresis 42 KPX Tcaron igrave 42 KPX Tcaron imacron 42 KPX Tcaron iogonek 42 KPX Tcaron o -5 KPX Tcaron oacute -5 KPX Tcaron ocircumflex -5 KPX Tcaron odieresis -5 KPX Tcaron ograve -5 KPX Tcaron ohungarumlaut -5 KPX Tcaron omacron -5 KPX Tcaron oslash -5 KPX Tcaron otilde -5 KPX Tcaron period -107 KPX Tcaron r 41 KPX Tcaron racute 41 KPX Tcaron rcaron 41 KPX Tcaron rcommaaccent 41 KPX Tcaron s -1 KPX Tcaron sacute -1 KPX Tcaron scaron -1 KPX Tcaron scedilla -1 KPX Tcaron scommaaccent -1 KPX Tcaron semicolon 31 KPX Tcaron u 42 KPX Tcaron uacute 42 KPX Tcaron ucircumflex 42 KPX Tcaron udieresis 42 KPX Tcaron ugrave 42 KPX Tcaron uhungarumlaut 42 KPX Tcaron umacron 42 KPX Tcaron uogonek 42 KPX Tcaron uring 42 KPX Tcaron w 69 KPX Tcaron y 56 KPX Tcaron yacute 56 KPX Tcaron ydieresis 56 KPX Tcommaaccent A -42 KPX Tcommaaccent Aacute -42 KPX Tcommaaccent Abreve -42 KPX Tcommaaccent Acircumflex -42 KPX Tcommaaccent Adieresis -42 KPX Tcommaaccent Agrave -42 KPX Tcommaaccent Amacron -42 KPX Tcommaaccent Aogonek -42 KPX Tcommaaccent Aring -42 KPX Tcommaaccent Atilde -42 KPX Tcommaaccent a -8 KPX Tcommaaccent aacute -8 KPX Tcommaaccent abreve -8 KPX Tcommaaccent acircumflex -8 KPX Tcommaaccent adieresis -8 KPX Tcommaaccent agrave -8 KPX Tcommaaccent amacron -8 KPX Tcommaaccent aogonek -8 KPX Tcommaaccent aring -8 KPX Tcommaaccent atilde -8 KPX Tcommaaccent c -8 KPX Tcommaaccent cacute -8 KPX Tcommaaccent ccaron -8 KPX Tcommaaccent ccedilla -8 KPX Tcommaaccent colon 26 KPX Tcommaaccent comma -100 KPX Tcommaaccent e -10 KPX Tcommaaccent eacute -10 KPX Tcommaaccent ecaron -10 KPX Tcommaaccent ecircumflex -10 KPX Tcommaaccent edieresis -10 KPX Tcommaaccent edotaccent -10 KPX Tcommaaccent egrave -10 KPX Tcommaaccent emacron -10 KPX Tcommaaccent eogonek -10 KPX Tcommaaccent hyphen -20 KPX Tcommaaccent i 42 KPX Tcommaaccent iacute 42 KPX Tcommaaccent icircumflex 42 KPX Tcommaaccent idieresis 42 KPX Tcommaaccent igrave 42 KPX Tcommaaccent imacron 42 KPX Tcommaaccent iogonek 42 KPX Tcommaaccent o -5 KPX Tcommaaccent oacute -5 KPX Tcommaaccent ocircumflex -5 KPX Tcommaaccent odieresis -5 KPX Tcommaaccent ograve -5 KPX Tcommaaccent ohungarumlaut -5 KPX Tcommaaccent omacron -5 KPX Tcommaaccent oslash -5 KPX Tcommaaccent otilde -5 KPX Tcommaaccent period -107 KPX Tcommaaccent r 41 KPX Tcommaaccent racute 41 KPX Tcommaaccent rcaron 41 KPX Tcommaaccent rcommaaccent 41 KPX Tcommaaccent s -1 KPX Tcommaaccent sacute -1 KPX Tcommaaccent scaron -1 KPX Tcommaaccent scedilla -1 KPX Tcommaaccent scommaaccent -1 KPX Tcommaaccent semicolon 31 KPX Tcommaaccent u 42 KPX Tcommaaccent uacute 42 KPX Tcommaaccent ucircumflex 42 KPX Tcommaaccent udieresis 42 KPX Tcommaaccent ugrave 42 KPX Tcommaaccent uhungarumlaut 42 KPX Tcommaaccent umacron 42 KPX Tcommaaccent uogonek 42 KPX Tcommaaccent uring 42 KPX Tcommaaccent w 69 KPX Tcommaaccent y 56 KPX Tcommaaccent yacute 56 KPX Tcommaaccent ydieresis 56 KPX V A -50 KPX V Aacute -50 KPX V Abreve -50 KPX V Acircumflex -50 KPX V Adieresis -50 KPX V Agrave -50 KPX V Amacron -50 KPX V Aogonek -50 KPX V Aring -50 KPX V Atilde -50 KPX V a -50 KPX V aacute -50 KPX V abreve -50 KPX V acircumflex -50 KPX V adieresis -50 KPX V agrave -50 KPX V amacron -50 KPX V aogonek -50 KPX V aring -50 KPX V atilde -50 KPX V colon -28 KPX V comma -137 KPX V e -50 KPX V eacute -50 KPX V ecaron -50 KPX V ecircumflex -50 KPX V edotaccent -50 KPX V egrave -50 KPX V eogonek -50 KPX V hyphen -20 KPX V i 32 KPX V iacute 32 KPX V icircumflex 48 KPX V idieresis 48 KPX V igrave 32 KPX V imacron 48 KPX V iogonek 32 KPX V o -50 KPX V oacute -50 KPX V ocircumflex -50 KPX V odieresis -50 KPX V ograve -50 KPX V ohungarumlaut -20 KPX V omacron -52 KPX V oslash -50 KPX V otilde -20 KPX V period -115 KPX V r 2 KPX V racute 2 KPX V rcaron 2 KPX V rcommaaccent 2 KPX V semicolon -22 KPX V u -1 KPX V uacute -1 KPX V ucircumflex -1 KPX V udieresis -1 KPX V ugrave -1 KPX V uhungarumlaut -1 KPX V umacron -1 KPX V uogonek -1 KPX V uring -1 KPX V y 17 KPX V yacute 17 KPX V ydieresis 17 KPX W A -77 KPX W Aacute -77 KPX W Abreve -77 KPX W Acircumflex -77 KPX W Adieresis -77 KPX W Agrave -77 KPX W Amacron -77 KPX W Aogonek -77 KPX W Aring -77 KPX W Atilde -77 KPX W a -100 KPX W aacute -100 KPX W abreve -100 KPX W acircumflex -100 KPX W adieresis -100 KPX W agrave -100 KPX W amacron -100 KPX W aogonek -100 KPX W aring -100 KPX W atilde -100 KPX W colon -86 KPX W comma -201 KPX W e -100 KPX W eacute -100 KPX W ecaron -100 KPX W ecircumflex -100 KPX W edieresis -100 KPX W edotaccent -100 KPX W egrave -100 KPX W emacron -100 KPX W eogonek -100 KPX W hyphen -22 KPX W i -36 KPX W iacute -36 KPX W igrave -36 KPX W iogonek -36 KPX W o -100 KPX W oacute -100 KPX W ocircumflex -100 KPX W odieresis -100 KPX W ograve -100 KPX W ohungarumlaut -100 KPX W omacron -100 KPX W oslash -100 KPX W otilde -100 KPX W period -183 KPX W r -66 KPX W racute -66 KPX W rcaron -66 KPX W rcommaaccent -66 KPX W semicolon -81 KPX W u -69 KPX W uacute -69 KPX W ucircumflex -69 KPX W udieresis -69 KPX W ugrave -69 KPX W uhungarumlaut -69 KPX W umacron -69 KPX W uogonek -69 KPX W uring -69 KPX W y -51 KPX W yacute -51 KPX W ydieresis -51 KPX Y A -30 KPX Y Aacute -30 KPX Y Abreve -30 KPX Y Acircumflex -30 KPX Y Adieresis -30 KPX Y Agrave -30 KPX Y Amacron -30 KPX Y Aogonek -30 KPX Y Aring -30 KPX Y Atilde -30 KPX Y a -45 KPX Y aacute -45 KPX Y abreve -45 KPX Y acircumflex -45 KPX Y adieresis -45 KPX Y agrave -45 KPX Y amacron -45 KPX Y aogonek -45 KPX Y aring -45 KPX Y atilde -45 KPX Y colon -9 KPX Y comma -106 KPX Y e -46 KPX Y eacute -46 KPX Y ecaron -46 KPX Y ecircumflex -46 KPX Y edotaccent -46 KPX Y egrave -46 KPX Y eogonek -46 KPX Y hyphen -20 KPX Y i 20 KPX Y iacute 20 KPX Y icircumflex 40 KPX Y idieresis 40 KPX Y igrave 40 KPX Y imacron 40 KPX Y iogonek 20 KPX Y o -41 KPX Y oacute -41 KPX Y ocircumflex -41 KPX Y odieresis -21 KPX Y ograve -41 KPX Y ohungarumlaut -21 KPX Y omacron -41 KPX Y oslash -41 KPX Y otilde -41 KPX Y period -113 KPX Y q -43 KPX Y semicolon -4 KPX Y u -1 KPX Y uacute -1 KPX Y ucircumflex -1 KPX Y udieresis -1 KPX Y ugrave -1 KPX Y uhungarumlaut -1 KPX Y umacron -1 KPX Y uogonek -1 KPX Y uring -1 KPX Y v 26 KPX Yacute A -30 KPX Yacute Aacute -30 KPX Yacute Abreve -30 KPX Yacute Acircumflex -30 KPX Yacute Adieresis -30 KPX Yacute Agrave -30 KPX Yacute Amacron -30 KPX Yacute Aogonek -30 KPX Yacute Aring -30 KPX Yacute Atilde -30 KPX Yacute a -45 KPX Yacute aacute -45 KPX Yacute abreve -45 KPX Yacute acircumflex -45 KPX Yacute adieresis -45 KPX Yacute agrave -45 KPX Yacute amacron -45 KPX Yacute aogonek -45 KPX Yacute aring -45 KPX Yacute atilde -45 KPX Yacute colon -9 KPX Yacute comma -106 KPX Yacute e -46 KPX Yacute eacute -46 KPX Yacute ecaron -46 KPX Yacute ecircumflex -46 KPX Yacute edotaccent -46 KPX Yacute egrave -46 KPX Yacute eogonek -46 KPX Yacute hyphen -20 KPX Yacute i 20 KPX Yacute iacute 20 KPX Yacute icircumflex 40 KPX Yacute idieresis 40 KPX Yacute igrave 40 KPX Yacute imacron 40 KPX Yacute iogonek 20 KPX Yacute o -41 KPX Yacute oacute -41 KPX Yacute ocircumflex -41 KPX Yacute odieresis -21 KPX Yacute ograve -41 KPX Yacute ohungarumlaut -21 KPX Yacute omacron -41 KPX Yacute oslash -41 KPX Yacute otilde -41 KPX Yacute period -113 KPX Yacute q -43 KPX Yacute semicolon -4 KPX Yacute u -1 KPX Yacute uacute -1 KPX Yacute ucircumflex -1 KPX Yacute udieresis -1 KPX Yacute ugrave -1 KPX Yacute uhungarumlaut -1 KPX Yacute umacron -1 KPX Yacute uogonek -1 KPX Yacute uring -1 KPX Yacute v 26 KPX Ydieresis A -30 KPX Ydieresis Aacute -30 KPX Ydieresis Abreve -30 KPX Ydieresis Acircumflex -30 KPX Ydieresis Adieresis -30 KPX Ydieresis Agrave -30 KPX Ydieresis Amacron -30 KPX Ydieresis Aogonek -30 KPX Ydieresis Aring -30 KPX Ydieresis Atilde -30 KPX Ydieresis a -45 KPX Ydieresis aacute -45 KPX Ydieresis abreve -45 KPX Ydieresis acircumflex -45 KPX Ydieresis adieresis -45 KPX Ydieresis agrave -45 KPX Ydieresis amacron -45 KPX Ydieresis aogonek -45 KPX Ydieresis aring -45 KPX Ydieresis atilde -45 KPX Ydieresis colon -9 KPX Ydieresis comma -106 KPX Ydieresis e -46 KPX Ydieresis eacute -46 KPX Ydieresis ecaron -46 KPX Ydieresis ecircumflex -46 KPX Ydieresis edotaccent -46 KPX Ydieresis egrave -46 KPX Ydieresis eogonek -46 KPX Ydieresis hyphen -20 KPX Ydieresis i 20 KPX Ydieresis iacute 20 KPX Ydieresis icircumflex 40 KPX Ydieresis idieresis 40 KPX Ydieresis igrave 40 KPX Ydieresis imacron 40 KPX Ydieresis iogonek 20 KPX Ydieresis o -41 KPX Ydieresis oacute -41 KPX Ydieresis ocircumflex -41 KPX Ydieresis odieresis -21 KPX Ydieresis ograve -41 KPX Ydieresis ohungarumlaut -21 KPX Ydieresis omacron -41 KPX Ydieresis oslash -41 KPX Ydieresis otilde -41 KPX Ydieresis period -113 KPX Ydieresis q -43 KPX Ydieresis semicolon -4 KPX Ydieresis u -1 KPX Ydieresis uacute -1 KPX Ydieresis ucircumflex -1 KPX Ydieresis udieresis -1 KPX Ydieresis ugrave -1 KPX Ydieresis uhungarumlaut -1 KPX Ydieresis umacron -1 KPX Ydieresis uogonek -1 KPX Ydieresis uring -1 KPX Ydieresis v 26 KPX f f 10 KPX r c -5 KPX r cacute -5 KPX r ccaron -5 KPX r ccedilla -5 KPX r comma -113 KPX r d -3 KPX r dcroat -3 KPX r e -6 KPX r eacute -6 KPX r ecaron -6 KPX r ecircumflex -6 KPX r edieresis -6 KPX r edotaccent -6 KPX r egrave -6 KPX r emacron -6 KPX r eogonek -6 KPX r f 42 KPX r g -23 KPX r gbreve -23 KPX r gcommaaccent -23 KPX r h -35 KPX r hyphen -20 KPX r m 39 KPX r n 39 KPX r nacute 39 KPX r ncaron 39 KPX r ncommaaccent 39 KPX r ntilde 39 KPX r o -1 KPX r oacute -1 KPX r ocircumflex -1 KPX r odieresis -1 KPX r ograve -1 KPX r ohungarumlaut -1 KPX r omacron -1 KPX r oslash -1 KPX r otilde -1 KPX r period -120 KPX r q -3 KPX racute c -5 KPX racute cacute -5 KPX racute ccaron -5 KPX racute ccedilla -5 KPX racute comma -113 KPX racute d -3 KPX racute dcroat -3 KPX racute e -6 KPX racute eacute -6 KPX racute ecaron -6 KPX racute ecircumflex -6 KPX racute edieresis -6 KPX racute edotaccent -6 KPX racute egrave -6 KPX racute emacron -6 KPX racute eogonek -6 KPX racute f 42 KPX racute g -23 KPX racute gbreve -23 KPX racute gcommaaccent -23 KPX racute h -35 KPX racute hyphen -20 KPX racute m 39 KPX racute n 39 KPX racute nacute 39 KPX racute ncaron 39 KPX racute ncommaaccent 39 KPX racute ntilde 39 KPX racute o -1 KPX racute oacute -1 KPX racute ocircumflex -1 KPX racute odieresis -1 KPX racute ograve -1 KPX racute ohungarumlaut -1 KPX racute omacron -1 KPX racute oslash -1 KPX racute otilde -1 KPX racute period -120 KPX racute q -3 KPX rcaron c -5 KPX rcaron cacute -5 KPX rcaron ccaron -5 KPX rcaron ccedilla -5 KPX rcaron comma -113 KPX rcaron d -3 KPX rcaron dcroat -3 KPX rcaron e -6 KPX rcaron eacute -6 KPX rcaron ecaron -6 KPX rcaron ecircumflex -6 KPX rcaron edieresis -6 KPX rcaron edotaccent -6 KPX rcaron egrave -6 KPX rcaron emacron -6 KPX rcaron eogonek -6 KPX rcaron f 42 KPX rcaron g -23 KPX rcaron gbreve -23 KPX rcaron gcommaaccent -23 KPX rcaron h -35 KPX rcaron hyphen -20 KPX rcaron m 39 KPX rcaron n 39 KPX rcaron nacute 39 KPX rcaron ncaron 39 KPX rcaron ncommaaccent 39 KPX rcaron ntilde 39 KPX rcaron o -1 KPX rcaron oacute -1 KPX rcaron ocircumflex -1 KPX rcaron odieresis -1 KPX rcaron ograve -1 KPX rcaron ohungarumlaut -1 KPX rcaron omacron -1 KPX rcaron oslash -1 KPX rcaron otilde -1 KPX rcaron period -120 KPX rcaron q -3 KPX rcommaaccent c -5 KPX rcommaaccent cacute -5 KPX rcommaaccent ccaron -5 KPX rcommaaccent ccedilla -5 KPX rcommaaccent comma -113 KPX rcommaaccent d -3 KPX rcommaaccent dcroat -3 KPX rcommaaccent e -6 KPX rcommaaccent eacute -6 KPX rcommaaccent ecaron -6 KPX rcommaaccent ecircumflex -6 KPX rcommaaccent edieresis -6 KPX rcommaaccent edotaccent -6 KPX rcommaaccent egrave -6 KPX rcommaaccent emacron -6 KPX rcommaaccent eogonek -6 KPX rcommaaccent f 42 KPX rcommaaccent g -23 KPX rcommaaccent gbreve -23 KPX rcommaaccent gcommaaccent -23 KPX rcommaaccent h -35 KPX rcommaaccent hyphen -20 KPX rcommaaccent m 39 KPX rcommaaccent n 39 KPX rcommaaccent nacute 39 KPX rcommaaccent ncaron 39 KPX rcommaaccent ncommaaccent 39 KPX rcommaaccent ntilde 39 KPX rcommaaccent o -1 KPX rcommaaccent oacute -1 KPX rcommaaccent ocircumflex -1 KPX rcommaaccent odieresis -1 KPX rcommaaccent ograve -1 KPX rcommaaccent ohungarumlaut -1 KPX rcommaaccent omacron -1 KPX rcommaaccent oslash -1 KPX rcommaaccent otilde -1 KPX rcommaaccent period -120 KPX rcommaaccent q -3 EndKernPairs EndKernData EndFontMetrics a2ps-4.14/afm/ptmbi.afm0000644000175000017500000016427210674334154014213 0ustar mhattamhattaStartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Thu May 1 13:04:06 1997 Comment UniqueID 43066 Comment VMusage 45874 56899 FontName Times-BoldItalic FullName Times Bold Italic FamilyName Times Weight Bold ItalicAngle -15 IsFixedPitch false FontBBox -200 -218 996 921 UnderlinePosition -100 UnderlineThickness 50 Version 002.000 Notice Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype-Hell AG and/or its subsidiaries. EncodingScheme AdobeStandardEncoding CapHeight 669 XHeight 462 Ascender 683 Descender -217 StdHW 42 StdVW 121 StartCharMetrics 314 C 32 ; WX 250 ; N space ; B 0 0 0 0 ; C 33 ; WX 389 ; N exclam ; B 67 -13 370 684 ; C 34 ; WX 555 ; N quotedbl ; B 136 398 536 685 ; C 35 ; WX 500 ; N numbersign ; B -33 0 533 700 ; C 36 ; WX 500 ; N dollar ; B -20 -100 497 733 ; C 37 ; WX 833 ; N percent ; B 39 -10 793 692 ; C 38 ; WX 778 ; N ampersand ; B 5 -19 699 682 ; C 39 ; WX 333 ; N quoteright ; B 98 369 302 685 ; C 40 ; WX 333 ; N parenleft ; B 28 -179 344 685 ; C 41 ; WX 333 ; N parenright ; B -44 -179 271 685 ; C 42 ; WX 500 ; N asterisk ; B 65 249 456 685 ; C 43 ; WX 570 ; N plus ; B 33 0 537 506 ; C 44 ; WX 250 ; N comma ; B -60 -182 144 134 ; C 45 ; WX 333 ; N hyphen ; B 2 166 271 282 ; C 46 ; WX 250 ; N period ; B -9 -13 139 135 ; C 47 ; WX 278 ; N slash ; B -64 -18 342 685 ; C 48 ; WX 500 ; N zero ; B 17 -14 477 683 ; C 49 ; WX 500 ; N one ; B 5 0 419 683 ; C 50 ; WX 500 ; N two ; B -27 0 446 683 ; C 51 ; WX 500 ; N three ; B -15 -13 450 683 ; C 52 ; WX 500 ; N four ; B -15 0 503 683 ; C 53 ; WX 500 ; N five ; B -11 -13 487 669 ; C 54 ; WX 500 ; N six ; B 23 -15 509 679 ; C 55 ; WX 500 ; N seven ; B 52 0 525 669 ; C 56 ; WX 500 ; N eight ; B 3 -13 476 683 ; C 57 ; WX 500 ; N nine ; B -12 -10 475 683 ; C 58 ; WX 333 ; N colon ; B 23 -13 264 459 ; C 59 ; WX 333 ; N semicolon ; B -25 -183 264 459 ; C 60 ; WX 570 ; N less ; B 31 -8 539 514 ; C 61 ; WX 570 ; N equal ; B 33 107 537 399 ; C 62 ; WX 570 ; N greater ; B 31 -8 539 514 ; C 63 ; WX 500 ; N question ; B 79 -13 470 684 ; C 64 ; WX 832 ; N at ; B 63 -18 770 685 ; C 65 ; WX 667 ; N A ; B -67 0 593 683 ; C 66 ; WX 667 ; N B ; B -24 0 624 669 ; C 67 ; WX 667 ; N C ; B 32 -18 677 685 ; C 68 ; WX 722 ; N D ; B -46 0 685 669 ; C 69 ; WX 667 ; N E ; B -27 0 653 669 ; C 70 ; WX 667 ; N F ; B -13 0 660 669 ; C 71 ; WX 722 ; N G ; B 21 -18 706 685 ; C 72 ; WX 778 ; N H ; B -24 0 799 669 ; C 73 ; WX 389 ; N I ; B -32 0 406 669 ; C 74 ; WX 500 ; N J ; B -46 -99 524 669 ; C 75 ; WX 667 ; N K ; B -21 0 702 669 ; C 76 ; WX 611 ; N L ; B -22 0 590 669 ; C 77 ; WX 889 ; N M ; B -29 -12 917 669 ; C 78 ; WX 722 ; N N ; B -27 -15 748 669 ; C 79 ; WX 722 ; N O ; B 27 -18 691 685 ; C 80 ; WX 611 ; N P ; B -27 0 613 669 ; C 81 ; WX 722 ; N Q ; B 27 -208 691 685 ; C 82 ; WX 667 ; N R ; B -29 0 623 669 ; C 83 ; WX 556 ; N S ; B 2 -18 526 685 ; C 84 ; WX 611 ; N T ; B 50 0 650 669 ; C 85 ; WX 722 ; N U ; B 67 -18 744 669 ; C 86 ; WX 667 ; N V ; B 65 -18 715 669 ; C 87 ; WX 889 ; N W ; B 65 -18 940 669 ; C 88 ; WX 667 ; N X ; B -24 0 694 669 ; C 89 ; WX 611 ; N Y ; B 73 0 659 669 ; C 90 ; WX 611 ; N Z ; B -11 0 590 669 ; C 91 ; WX 333 ; N bracketleft ; B -37 -159 362 674 ; C 92 ; WX 278 ; N backslash ; B -1 -18 279 685 ; C 93 ; WX 333 ; N bracketright ; B -56 -157 343 674 ; C 94 ; WX 570 ; N asciicircum ; B 67 304 503 669 ; C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; C 96 ; WX 333 ; N quoteleft ; B 128 369 332 685 ; C 97 ; WX 500 ; N a ; B -21 -14 455 462 ; C 98 ; WX 500 ; N b ; B -14 -13 444 699 ; C 99 ; WX 444 ; N c ; B -5 -13 392 462 ; C 100 ; WX 500 ; N d ; B -21 -13 517 699 ; C 101 ; WX 444 ; N e ; B 5 -13 398 462 ; C 102 ; WX 333 ; N f ; B -169 -205 446 698 ; L i fi ; L l fl ; C 103 ; WX 500 ; N g ; B -52 -203 478 462 ; C 104 ; WX 556 ; N h ; B -13 -9 498 699 ; C 105 ; WX 278 ; N i ; B 2 -9 263 684 ; C 106 ; WX 278 ; N j ; B -189 -207 279 684 ; C 107 ; WX 500 ; N k ; B -23 -8 483 699 ; C 108 ; WX 278 ; N l ; B 2 -9 290 699 ; C 109 ; WX 778 ; N m ; B -14 -9 722 462 ; C 110 ; WX 556 ; N n ; B -6 -9 493 462 ; C 111 ; WX 500 ; N o ; B -3 -13 441 462 ; C 112 ; WX 500 ; N p ; B -120 -205 446 462 ; C 113 ; WX 500 ; N q ; B 1 -205 471 462 ; C 114 ; WX 389 ; N r ; B -21 0 389 462 ; C 115 ; WX 389 ; N s ; B -19 -13 333 462 ; C 116 ; WX 278 ; N t ; B -11 -9 281 594 ; C 117 ; WX 556 ; N u ; B 15 -9 492 462 ; C 118 ; WX 444 ; N v ; B 16 -13 401 462 ; C 119 ; WX 667 ; N w ; B 16 -13 614 462 ; C 120 ; WX 500 ; N x ; B -46 -13 469 462 ; C 121 ; WX 444 ; N y ; B -94 -205 392 462 ; C 122 ; WX 389 ; N z ; B -43 -78 368 449 ; C 123 ; WX 348 ; N braceleft ; B 5 -187 436 686 ; C 124 ; WX 220 ; N bar ; B 66 -218 154 782 ; C 125 ; WX 348 ; N braceright ; B -129 -187 302 686 ; C 126 ; WX 570 ; N asciitilde ; B 54 173 516 333 ; C 161 ; WX 389 ; N exclamdown ; B 19 -205 322 492 ; C 162 ; WX 500 ; N cent ; B 42 -143 439 576 ; C 163 ; WX 500 ; N sterling ; B -32 -12 510 683 ; C 164 ; WX 167 ; N fraction ; B -169 -14 324 683 ; C 165 ; WX 500 ; N yen ; B 33 0 628 669 ; C 166 ; WX 500 ; N florin ; B -87 -156 537 707 ; C 167 ; WX 500 ; N section ; B 36 -143 459 685 ; C 168 ; WX 500 ; N currency ; B -26 34 526 586 ; C 169 ; WX 278 ; N quotesingle ; B 128 398 268 685 ; C 170 ; WX 500 ; N quotedblleft ; B 53 369 513 685 ; C 171 ; WX 500 ; N guillemotleft ; B 12 32 468 415 ; C 172 ; WX 333 ; N guilsinglleft ; B 32 32 303 415 ; C 173 ; WX 333 ; N guilsinglright ; B 10 32 281 415 ; C 174 ; WX 556 ; N fi ; B -188 -205 514 703 ; C 175 ; WX 556 ; N fl ; B -186 -205 553 704 ; C 177 ; WX 500 ; N endash ; B -40 178 477 269 ; C 178 ; WX 500 ; N dagger ; B 91 -145 494 685 ; C 179 ; WX 500 ; N daggerdbl ; B 10 -139 493 685 ; C 180 ; WX 250 ; N periodcentered ; B 51 257 199 405 ; C 182 ; WX 500 ; N paragraph ; B -57 -193 562 669 ; C 183 ; WX 350 ; N bullet ; B 0 175 350 525 ; C 184 ; WX 333 ; N quotesinglbase ; B -5 -182 199 134 ; C 185 ; WX 500 ; N quotedblbase ; B -57 -182 403 134 ; C 186 ; WX 500 ; N quotedblright ; B 53 369 513 685 ; C 187 ; WX 500 ; N guillemotright ; B 12 32 468 415 ; C 188 ; WX 1000 ; N ellipsis ; B 40 -13 852 135 ; C 189 ; WX 1000 ; N perthousand ; B 7 -29 996 706 ; C 191 ; WX 500 ; N questiondown ; B 30 -205 421 492 ; C 193 ; WX 333 ; N grave ; B 85 516 297 697 ; C 194 ; WX 333 ; N acute ; B 139 516 379 697 ; C 195 ; WX 333 ; N circumflex ; B 40 516 367 690 ; C 196 ; WX 333 ; N tilde ; B 48 536 407 655 ; C 197 ; WX 333 ; N macron ; B 51 553 393 623 ; C 198 ; WX 333 ; N breve ; B 71 516 387 678 ; C 199 ; WX 333 ; N dotaccent ; B 163 550 298 684 ; C 200 ; WX 333 ; N dieresis ; B 55 550 402 684 ; C 202 ; WX 333 ; N ring ; B 127 516 340 729 ; C 203 ; WX 333 ; N cedilla ; B -80 -218 156 5 ; C 205 ; WX 333 ; N hungarumlaut ; B 69 516 498 697 ; C 206 ; WX 333 ; N ogonek ; B 15 -183 244 34 ; C 207 ; WX 333 ; N caron ; B 79 516 411 690 ; C 208 ; WX 1000 ; N emdash ; B -40 178 977 269 ; C 225 ; WX 944 ; N AE ; B -64 0 918 669 ; C 227 ; WX 266 ; N ordfeminine ; B 16 399 330 685 ; C 232 ; WX 611 ; N Lslash ; B -22 0 590 669 ; C 233 ; WX 722 ; N Oslash ; B 27 -125 691 764 ; C 234 ; WX 944 ; N OE ; B 23 -8 946 677 ; C 235 ; WX 300 ; N ordmasculine ; B 56 400 347 685 ; C 241 ; WX 722 ; N ae ; B -5 -13 673 462 ; C 245 ; WX 278 ; N dotlessi ; B 2 -9 238 462 ; C 248 ; WX 278 ; N lslash ; B -7 -9 307 699 ; C 249 ; WX 500 ; N oslash ; B -3 -119 441 560 ; C 250 ; WX 722 ; N oe ; B 6 -13 674 462 ; C 251 ; WX 500 ; N germandbls ; B -200 -200 473 705 ; C -1 ; WX 389 ; N Idieresis ; B -32 0 450 862 ; C -1 ; WX 444 ; N eacute ; B 5 -13 435 697 ; C -1 ; WX 500 ; N abreve ; B -21 -14 471 678 ; C -1 ; WX 556 ; N uhungarumlaut ; B 15 -9 610 697 ; C -1 ; WX 444 ; N ecaron ; B 5 -13 467 690 ; C -1 ; WX 611 ; N Ydieresis ; B 73 0 659 862 ; C -1 ; WX 570 ; N divide ; B 33 -29 537 535 ; C -1 ; WX 611 ; N Yacute ; B 73 0 659 904 ; C -1 ; WX 667 ; N Acircumflex ; B -67 0 593 897 ; C -1 ; WX 500 ; N aacute ; B -21 -14 463 697 ; C -1 ; WX 722 ; N Ucircumflex ; B 67 -18 744 897 ; C -1 ; WX 444 ; N yacute ; B -94 -205 435 697 ; C -1 ; WX 389 ; N scommaaccent ; B -19 -218 333 462 ; C -1 ; WX 444 ; N ecircumflex ; B 5 -13 423 690 ; C -1 ; WX 722 ; N Uring ; B 67 -18 744 921 ; C -1 ; WX 722 ; N Udieresis ; B 67 -18 744 862 ; C -1 ; WX 500 ; N aogonek ; B -21 -183 455 462 ; C -1 ; WX 722 ; N Uacute ; B 67 -18 744 904 ; C -1 ; WX 556 ; N uogonek ; B 15 -183 492 462 ; C -1 ; WX 667 ; N Edieresis ; B -27 0 653 862 ; C -1 ; WX 722 ; N Dcroat ; B -31 0 700 669 ; C -1 ; WX 250 ; N commaaccent ; B -36 -218 131 -50 ; C -1 ; WX 747 ; N copyright ; B 30 -18 718 685 ; C -1 ; WX 667 ; N Emacron ; B -27 0 653 830 ; C -1 ; WX 444 ; N ccaron ; B -5 -13 467 690 ; C -1 ; WX 500 ; N aring ; B -21 -14 455 729 ; C -1 ; WX 722 ; N Ncommaaccent ; B -27 -218 748 669 ; C -1 ; WX 278 ; N lacute ; B 2 -9 392 904 ; C -1 ; WX 500 ; N agrave ; B -21 -14 455 697 ; C -1 ; WX 611 ; N Tcommaaccent ; B 50 -218 650 669 ; C -1 ; WX 667 ; N Cacute ; B 32 -18 677 904 ; C -1 ; WX 500 ; N atilde ; B -21 -14 491 655 ; C -1 ; WX 667 ; N Edotaccent ; B -27 0 653 862 ; C -1 ; WX 389 ; N scaron ; B -19 -13 424 690 ; C -1 ; WX 389 ; N scedilla ; B -19 -218 333 462 ; C -1 ; WX 278 ; N iacute ; B 2 -9 352 697 ; C -1 ; WX 494 ; N lozenge ; B 10 0 484 745 ; C -1 ; WX 667 ; N Rcaron ; B -29 0 623 897 ; C -1 ; WX 722 ; N Gcommaaccent ; B 21 -218 706 685 ; C -1 ; WX 556 ; N ucircumflex ; B 15 -9 492 690 ; C -1 ; WX 500 ; N acircumflex ; B -21 -14 455 690 ; C -1 ; WX 667 ; N Amacron ; B -67 0 593 830 ; C -1 ; WX 389 ; N rcaron ; B -21 0 424 690 ; C -1 ; WX 444 ; N ccedilla ; B -5 -218 392 462 ; C -1 ; WX 611 ; N Zdotaccent ; B -11 0 590 862 ; C -1 ; WX 611 ; N Thorn ; B -27 0 573 669 ; C -1 ; WX 722 ; N Omacron ; B 27 -18 691 830 ; C -1 ; WX 667 ; N Racute ; B -29 0 623 904 ; C -1 ; WX 556 ; N Sacute ; B 2 -18 531 904 ; C -1 ; WX 608 ; N dcaron ; B -21 -13 675 708 ; C -1 ; WX 722 ; N Umacron ; B 67 -18 744 830 ; C -1 ; WX 556 ; N uring ; B 15 -9 492 729 ; C -1 ; WX 300 ; N threesuperior ; B 17 265 321 683 ; C -1 ; WX 722 ; N Ograve ; B 27 -18 691 904 ; C -1 ; WX 667 ; N Agrave ; B -67 0 593 904 ; C -1 ; WX 667 ; N Abreve ; B -67 0 593 885 ; C -1 ; WX 570 ; N multiply ; B 48 16 522 490 ; C -1 ; WX 556 ; N uacute ; B 15 -9 492 697 ; C -1 ; WX 611 ; N Tcaron ; B 50 0 650 897 ; C -1 ; WX 494 ; N partialdiff ; B 11 -21 494 750 ; C -1 ; WX 444 ; N ydieresis ; B -94 -205 443 655 ; C -1 ; WX 722 ; N Nacute ; B -27 -15 748 904 ; C -1 ; WX 278 ; N icircumflex ; B -3 -9 324 690 ; C -1 ; WX 667 ; N Ecircumflex ; B -27 0 653 897 ; C -1 ; WX 500 ; N adieresis ; B -21 -14 476 655 ; C -1 ; WX 444 ; N edieresis ; B 5 -13 448 655 ; C -1 ; WX 444 ; N cacute ; B -5 -13 435 697 ; C -1 ; WX 556 ; N nacute ; B -6 -9 493 697 ; C -1 ; WX 556 ; N umacron ; B 15 -9 492 623 ; C -1 ; WX 722 ; N Ncaron ; B -27 -15 748 897 ; C -1 ; WX 389 ; N Iacute ; B -32 0 432 904 ; C -1 ; WX 570 ; N plusminus ; B 33 0 537 506 ; C -1 ; WX 220 ; N brokenbar ; B 66 -143 154 707 ; C -1 ; WX 747 ; N registered ; B 30 -18 718 685 ; C -1 ; WX 722 ; N Gbreve ; B 21 -18 706 885 ; C -1 ; WX 389 ; N Idotaccent ; B -32 0 406 862 ; C -1 ; WX 600 ; N summation ; B 14 -10 585 706 ; C -1 ; WX 667 ; N Egrave ; B -27 0 653 904 ; C -1 ; WX 389 ; N racute ; B -21 0 407 697 ; C -1 ; WX 500 ; N omacron ; B -3 -13 462 623 ; C -1 ; WX 611 ; N Zacute ; B -11 0 590 904 ; C -1 ; WX 611 ; N Zcaron ; B -11 0 590 897 ; C -1 ; WX 549 ; N greaterequal ; B 26 0 523 704 ; C -1 ; WX 722 ; N Eth ; B -31 0 700 669 ; C -1 ; WX 667 ; N Ccedilla ; B 32 -218 677 685 ; C -1 ; WX 278 ; N lcommaaccent ; B -42 -218 290 699 ; C -1 ; WX 366 ; N tcaron ; B -11 -9 434 754 ; C -1 ; WX 444 ; N eogonek ; B 5 -183 398 462 ; C -1 ; WX 722 ; N Uogonek ; B 67 -183 744 669 ; C -1 ; WX 667 ; N Aacute ; B -67 0 593 904 ; C -1 ; WX 667 ; N Adieresis ; B -67 0 593 862 ; C -1 ; WX 444 ; N egrave ; B 5 -13 398 697 ; C -1 ; WX 389 ; N zacute ; B -43 -78 407 697 ; C -1 ; WX 278 ; N iogonek ; B -20 -183 263 684 ; C -1 ; WX 722 ; N Oacute ; B 27 -18 691 904 ; C -1 ; WX 500 ; N oacute ; B -3 -13 463 697 ; C -1 ; WX 500 ; N amacron ; B -21 -14 467 623 ; C -1 ; WX 389 ; N sacute ; B -19 -13 407 697 ; C -1 ; WX 278 ; N idieresis ; B 2 -9 364 655 ; C -1 ; WX 722 ; N Ocircumflex ; B 27 -18 691 897 ; C -1 ; WX 722 ; N Ugrave ; B 67 -18 744 904 ; C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ; C -1 ; WX 500 ; N thorn ; B -120 -205 446 699 ; C -1 ; WX 300 ; N twosuperior ; B 2 274 313 683 ; C -1 ; WX 722 ; N Odieresis ; B 27 -18 691 862 ; C -1 ; WX 576 ; N mu ; B -60 -207 516 449 ; C -1 ; WX 278 ; N igrave ; B 2 -9 259 697 ; C -1 ; WX 500 ; N ohungarumlaut ; B -3 -13 582 697 ; C -1 ; WX 667 ; N Eogonek ; B -27 -183 653 669 ; C -1 ; WX 500 ; N dcroat ; B -21 -13 552 699 ; C -1 ; WX 750 ; N threequarters ; B 7 -14 726 683 ; C -1 ; WX 556 ; N Scedilla ; B 2 -218 526 685 ; C -1 ; WX 382 ; N lcaron ; B 2 -9 448 708 ; C -1 ; WX 667 ; N Kcommaaccent ; B -21 -218 702 669 ; C -1 ; WX 611 ; N Lacute ; B -22 0 590 904 ; C -1 ; WX 1000 ; N trademark ; B 32 263 968 669 ; C -1 ; WX 444 ; N edotaccent ; B 5 -13 398 655 ; C -1 ; WX 389 ; N Igrave ; B -32 0 406 904 ; C -1 ; WX 389 ; N Imacron ; B -32 0 461 830 ; C -1 ; WX 611 ; N Lcaron ; B -22 0 671 718 ; C -1 ; WX 750 ; N onehalf ; B -9 -14 723 683 ; C -1 ; WX 549 ; N lessequal ; B 29 0 526 704 ; C -1 ; WX 500 ; N ocircumflex ; B -3 -13 451 690 ; C -1 ; WX 556 ; N ntilde ; B -6 -9 504 655 ; C -1 ; WX 722 ; N Uhungarumlaut ; B 67 -18 744 904 ; C -1 ; WX 667 ; N Eacute ; B -27 0 653 904 ; C -1 ; WX 444 ; N emacron ; B 5 -13 439 623 ; C -1 ; WX 500 ; N gbreve ; B -52 -203 478 678 ; C -1 ; WX 750 ; N onequarter ; B 7 -14 721 683 ; C -1 ; WX 556 ; N Scaron ; B 2 -18 553 897 ; C -1 ; WX 556 ; N Scommaaccent ; B 2 -218 526 685 ; C -1 ; WX 722 ; N Ohungarumlaut ; B 27 -18 723 904 ; C -1 ; WX 400 ; N degree ; B 83 397 369 683 ; C -1 ; WX 500 ; N ograve ; B -3 -13 441 697 ; C -1 ; WX 667 ; N Ccaron ; B 32 -18 677 897 ; C -1 ; WX 556 ; N ugrave ; B 15 -9 492 697 ; C -1 ; WX 549 ; N radical ; B 10 -46 512 850 ; C -1 ; WX 722 ; N Dcaron ; B -46 0 685 897 ; C -1 ; WX 389 ; N rcommaaccent ; B -67 -218 389 462 ; C -1 ; WX 722 ; N Ntilde ; B -27 -15 748 862 ; C -1 ; WX 500 ; N otilde ; B -3 -13 491 655 ; C -1 ; WX 667 ; N Rcommaaccent ; B -29 -218 623 669 ; C -1 ; WX 611 ; N Lcommaaccent ; B -22 -218 590 669 ; C -1 ; WX 667 ; N Atilde ; B -67 0 593 862 ; C -1 ; WX 667 ; N Aogonek ; B -67 -183 604 683 ; C -1 ; WX 667 ; N Aring ; B -67 0 593 921 ; C -1 ; WX 722 ; N Otilde ; B 27 -18 691 862 ; C -1 ; WX 389 ; N zdotaccent ; B -43 -78 368 655 ; C -1 ; WX 667 ; N Ecaron ; B -27 0 653 897 ; C -1 ; WX 389 ; N Iogonek ; B -32 -183 406 669 ; C -1 ; WX 500 ; N kcommaaccent ; B -23 -218 483 699 ; C -1 ; WX 606 ; N minus ; B 51 209 555 297 ; C -1 ; WX 389 ; N Icircumflex ; B -32 0 450 897 ; C -1 ; WX 556 ; N ncaron ; B -6 -9 523 690 ; C -1 ; WX 278 ; N tcommaaccent ; B -62 -218 281 594 ; C -1 ; WX 606 ; N logicalnot ; B 51 108 555 399 ; C -1 ; WX 500 ; N odieresis ; B -3 -13 471 655 ; C -1 ; WX 556 ; N udieresis ; B 15 -9 499 655 ; C -1 ; WX 549 ; N notequal ; B 15 -49 540 570 ; C -1 ; WX 500 ; N gcommaaccent ; B -52 -203 478 767 ; C -1 ; WX 500 ; N eth ; B -3 -13 454 699 ; C -1 ; WX 389 ; N zcaron ; B -43 -78 424 690 ; C -1 ; WX 556 ; N ncommaaccent ; B -6 -218 493 462 ; C -1 ; WX 300 ; N onesuperior ; B 30 274 301 683 ; C -1 ; WX 278 ; N imacron ; B 2 -9 294 623 ; EndCharMetrics StartKernData StartKernPairs 2038 KPX A C -65 KPX A Cacute -65 KPX A Ccaron -65 KPX A Ccedilla -65 KPX A G -60 KPX A Gbreve -60 KPX A Gcommaaccent -60 KPX A O -50 KPX A Oacute -50 KPX A Ocircumflex -50 KPX A Odieresis -50 KPX A Ograve -50 KPX A Ohungarumlaut -50 KPX A Omacron -50 KPX A Oslash -50 KPX A Otilde -50 KPX A Q -55 KPX A T -55 KPX A Tcaron -55 KPX A Tcommaaccent -55 KPX A U -50 KPX A Uacute -50 KPX A Ucircumflex -50 KPX A Udieresis -50 KPX A Ugrave -50 KPX A Uhungarumlaut -50 KPX A Umacron -50 KPX A Uogonek -50 KPX A Uring -50 KPX A V -95 KPX A W -100 KPX A Y -70 KPX A Yacute -70 KPX A Ydieresis -70 KPX A quoteright -74 KPX A u -30 KPX A uacute -30 KPX A ucircumflex -30 KPX A udieresis -30 KPX A ugrave -30 KPX A uhungarumlaut -30 KPX A umacron -30 KPX A uogonek -30 KPX A uring -30 KPX A v -74 KPX A w -74 KPX A y -74 KPX A yacute -74 KPX A ydieresis -74 KPX Aacute C -65 KPX Aacute Cacute -65 KPX Aacute Ccaron -65 KPX Aacute Ccedilla -65 KPX Aacute G -60 KPX Aacute Gbreve -60 KPX Aacute Gcommaaccent -60 KPX Aacute O -50 KPX Aacute Oacute -50 KPX Aacute Ocircumflex -50 KPX Aacute Odieresis -50 KPX Aacute Ograve -50 KPX Aacute Ohungarumlaut -50 KPX Aacute Omacron -50 KPX Aacute Oslash -50 KPX Aacute Otilde -50 KPX Aacute Q -55 KPX Aacute T -55 KPX Aacute Tcaron -55 KPX Aacute Tcommaaccent -55 KPX Aacute U -50 KPX Aacute Uacute -50 KPX Aacute Ucircumflex -50 KPX Aacute Udieresis -50 KPX Aacute Ugrave -50 KPX Aacute Uhungarumlaut -50 KPX Aacute Umacron -50 KPX Aacute Uogonek -50 KPX Aacute Uring -50 KPX Aacute V -95 KPX Aacute W -100 KPX Aacute Y -70 KPX Aacute Yacute -70 KPX Aacute Ydieresis -70 KPX Aacute quoteright -74 KPX Aacute u -30 KPX Aacute uacute -30 KPX Aacute ucircumflex -30 KPX Aacute udieresis -30 KPX Aacute ugrave -30 KPX Aacute uhungarumlaut -30 KPX Aacute umacron -30 KPX Aacute uogonek -30 KPX Aacute uring -30 KPX Aacute v -74 KPX Aacute w -74 KPX Aacute y -74 KPX Aacute yacute -74 KPX Aacute ydieresis -74 KPX Abreve C -65 KPX Abreve Cacute -65 KPX Abreve Ccaron -65 KPX Abreve Ccedilla -65 KPX Abreve G -60 KPX Abreve Gbreve -60 KPX Abreve Gcommaaccent -60 KPX Abreve O -50 KPX Abreve Oacute -50 KPX Abreve Ocircumflex -50 KPX Abreve Odieresis -50 KPX Abreve Ograve -50 KPX Abreve Ohungarumlaut -50 KPX Abreve Omacron -50 KPX Abreve Oslash -50 KPX Abreve Otilde -50 KPX Abreve Q -55 KPX Abreve T -55 KPX Abreve Tcaron -55 KPX Abreve Tcommaaccent -55 KPX Abreve U -50 KPX Abreve Uacute -50 KPX Abreve Ucircumflex -50 KPX Abreve Udieresis -50 KPX Abreve Ugrave -50 KPX Abreve Uhungarumlaut -50 KPX Abreve Umacron -50 KPX Abreve Uogonek -50 KPX Abreve Uring -50 KPX Abreve V -95 KPX Abreve W -100 KPX Abreve Y -70 KPX Abreve Yacute -70 KPX Abreve Ydieresis -70 KPX Abreve quoteright -74 KPX Abreve u -30 KPX Abreve uacute -30 KPX Abreve ucircumflex -30 KPX Abreve udieresis -30 KPX Abreve ugrave -30 KPX Abreve uhungarumlaut -30 KPX Abreve umacron -30 KPX Abreve uogonek -30 KPX Abreve uring -30 KPX Abreve v -74 KPX Abreve w -74 KPX Abreve y -74 KPX Abreve yacute -74 KPX Abreve ydieresis -74 KPX Acircumflex C -65 KPX Acircumflex Cacute -65 KPX Acircumflex Ccaron -65 KPX Acircumflex Ccedilla -65 KPX Acircumflex G -60 KPX Acircumflex Gbreve -60 KPX Acircumflex Gcommaaccent -60 KPX Acircumflex O -50 KPX Acircumflex Oacute -50 KPX Acircumflex Ocircumflex -50 KPX Acircumflex Odieresis -50 KPX Acircumflex Ograve -50 KPX Acircumflex Ohungarumlaut -50 KPX Acircumflex Omacron -50 KPX Acircumflex Oslash -50 KPX Acircumflex Otilde -50 KPX Acircumflex Q -55 KPX Acircumflex T -55 KPX Acircumflex Tcaron -55 KPX Acircumflex Tcommaaccent -55 KPX Acircumflex U -50 KPX Acircumflex Uacute -50 KPX Acircumflex Ucircumflex -50 KPX Acircumflex Udieresis -50 KPX Acircumflex Ugrave -50 KPX Acircumflex Uhungarumlaut -50 KPX Acircumflex Umacron -50 KPX Acircumflex Uogonek -50 KPX Acircumflex Uring -50 KPX Acircumflex V -95 KPX Acircumflex W -100 KPX Acircumflex Y -70 KPX Acircumflex Yacute -70 KPX Acircumflex Ydieresis -70 KPX Acircumflex quoteright -74 KPX Acircumflex u -30 KPX Acircumflex uacute -30 KPX Acircumflex ucircumflex -30 KPX Acircumflex udieresis -30 KPX Acircumflex ugrave -30 KPX Acircumflex uhungarumlaut -30 KPX Acircumflex umacron -30 KPX Acircumflex uogonek -30 KPX Acircumflex uring -30 KPX Acircumflex v -74 KPX Acircumflex w -74 KPX Acircumflex y -74 KPX Acircumflex yacute -74 KPX Acircumflex ydieresis -74 KPX Adieresis C -65 KPX Adieresis Cacute -65 KPX Adieresis Ccaron -65 KPX Adieresis Ccedilla -65 KPX Adieresis G -60 KPX Adieresis Gbreve -60 KPX Adieresis Gcommaaccent -60 KPX Adieresis O -50 KPX Adieresis Oacute -50 KPX Adieresis Ocircumflex -50 KPX Adieresis Odieresis -50 KPX Adieresis Ograve -50 KPX Adieresis Ohungarumlaut -50 KPX Adieresis Omacron -50 KPX Adieresis Oslash -50 KPX Adieresis Otilde -50 KPX Adieresis Q -55 KPX Adieresis T -55 KPX Adieresis Tcaron -55 KPX Adieresis Tcommaaccent -55 KPX Adieresis U -50 KPX Adieresis Uacute -50 KPX Adieresis Ucircumflex -50 KPX Adieresis Udieresis -50 KPX Adieresis Ugrave -50 KPX Adieresis Uhungarumlaut -50 KPX Adieresis Umacron -50 KPX Adieresis Uogonek -50 KPX Adieresis Uring -50 KPX Adieresis V -95 KPX Adieresis W -100 KPX Adieresis Y -70 KPX Adieresis Yacute -70 KPX Adieresis Ydieresis -70 KPX Adieresis quoteright -74 KPX Adieresis u -30 KPX Adieresis uacute -30 KPX Adieresis ucircumflex -30 KPX Adieresis udieresis -30 KPX Adieresis ugrave -30 KPX Adieresis uhungarumlaut -30 KPX Adieresis umacron -30 KPX Adieresis uogonek -30 KPX Adieresis uring -30 KPX Adieresis v -74 KPX Adieresis w -74 KPX Adieresis y -74 KPX Adieresis yacute -74 KPX Adieresis ydieresis -74 KPX Agrave C -65 KPX Agrave Cacute -65 KPX Agrave Ccaron -65 KPX Agrave Ccedilla -65 KPX Agrave G -60 KPX Agrave Gbreve -60 KPX Agrave Gcommaaccent -60 KPX Agrave O -50 KPX Agrave Oacute -50 KPX Agrave Ocircumflex -50 KPX Agrave Odieresis -50 KPX Agrave Ograve -50 KPX Agrave Ohungarumlaut -50 KPX Agrave Omacron -50 KPX Agrave Oslash -50 KPX Agrave Otilde -50 KPX Agrave Q -55 KPX Agrave T -55 KPX Agrave Tcaron -55 KPX Agrave Tcommaaccent -55 KPX Agrave U -50 KPX Agrave Uacute -50 KPX Agrave Ucircumflex -50 KPX Agrave Udieresis -50 KPX Agrave Ugrave -50 KPX Agrave Uhungarumlaut -50 KPX Agrave Umacron -50 KPX Agrave Uogonek -50 KPX Agrave Uring -50 KPX Agrave V -95 KPX Agrave W -100 KPX Agrave Y -70 KPX Agrave Yacute -70 KPX Agrave Ydieresis -70 KPX Agrave quoteright -74 KPX Agrave u -30 KPX Agrave uacute -30 KPX Agrave ucircumflex -30 KPX Agrave udieresis -30 KPX Agrave ugrave -30 KPX Agrave uhungarumlaut -30 KPX Agrave umacron -30 KPX Agrave uogonek -30 KPX Agrave uring -30 KPX Agrave v -74 KPX Agrave w -74 KPX Agrave y -74 KPX Agrave yacute -74 KPX Agrave ydieresis -74 KPX Amacron C -65 KPX Amacron Cacute -65 KPX Amacron Ccaron -65 KPX Amacron Ccedilla -65 KPX Amacron G -60 KPX Amacron Gbreve -60 KPX Amacron Gcommaaccent -60 KPX Amacron O -50 KPX Amacron Oacute -50 KPX Amacron Ocircumflex -50 KPX Amacron Odieresis -50 KPX Amacron Ograve -50 KPX Amacron Ohungarumlaut -50 KPX Amacron Omacron -50 KPX Amacron Oslash -50 KPX Amacron Otilde -50 KPX Amacron Q -55 KPX Amacron T -55 KPX Amacron Tcaron -55 KPX Amacron Tcommaaccent -55 KPX Amacron U -50 KPX Amacron Uacute -50 KPX Amacron Ucircumflex -50 KPX Amacron Udieresis -50 KPX Amacron Ugrave -50 KPX Amacron Uhungarumlaut -50 KPX Amacron Umacron -50 KPX Amacron Uogonek -50 KPX Amacron Uring -50 KPX Amacron V -95 KPX Amacron W -100 KPX Amacron Y -70 KPX Amacron Yacute -70 KPX Amacron Ydieresis -70 KPX Amacron quoteright -74 KPX Amacron u -30 KPX Amacron uacute -30 KPX Amacron ucircumflex -30 KPX Amacron udieresis -30 KPX Amacron ugrave -30 KPX Amacron uhungarumlaut -30 KPX Amacron umacron -30 KPX Amacron uogonek -30 KPX Amacron uring -30 KPX Amacron v -74 KPX Amacron w -74 KPX Amacron y -74 KPX Amacron yacute -74 KPX Amacron ydieresis -74 KPX Aogonek C -65 KPX Aogonek Cacute -65 KPX Aogonek Ccaron -65 KPX Aogonek Ccedilla -65 KPX Aogonek G -60 KPX Aogonek Gbreve -60 KPX Aogonek Gcommaaccent -60 KPX Aogonek O -50 KPX Aogonek Oacute -50 KPX Aogonek Ocircumflex -50 KPX Aogonek Odieresis -50 KPX Aogonek Ograve -50 KPX Aogonek Ohungarumlaut -50 KPX Aogonek Omacron -50 KPX Aogonek Oslash -50 KPX Aogonek Otilde -50 KPX Aogonek Q -55 KPX Aogonek T -55 KPX Aogonek Tcaron -55 KPX Aogonek Tcommaaccent -55 KPX Aogonek U -50 KPX Aogonek Uacute -50 KPX Aogonek Ucircumflex -50 KPX Aogonek Udieresis -50 KPX Aogonek Ugrave -50 KPX Aogonek Uhungarumlaut -50 KPX Aogonek Umacron -50 KPX Aogonek Uogonek -50 KPX Aogonek Uring -50 KPX Aogonek V -95 KPX Aogonek W -100 KPX Aogonek Y -70 KPX Aogonek Yacute -70 KPX Aogonek Ydieresis -70 KPX Aogonek quoteright -74 KPX Aogonek u -30 KPX Aogonek uacute -30 KPX Aogonek ucircumflex -30 KPX Aogonek udieresis -30 KPX Aogonek ugrave -30 KPX Aogonek uhungarumlaut -30 KPX Aogonek umacron -30 KPX Aogonek uogonek -30 KPX Aogonek uring -30 KPX Aogonek v -74 KPX Aogonek w -74 KPX Aogonek y -34 KPX Aogonek yacute -34 KPX Aogonek ydieresis -34 KPX Aring C -65 KPX Aring Cacute -65 KPX Aring Ccaron -65 KPX Aring Ccedilla -65 KPX Aring G -60 KPX Aring Gbreve -60 KPX Aring Gcommaaccent -60 KPX Aring O -50 KPX Aring Oacute -50 KPX Aring Ocircumflex -50 KPX Aring Odieresis -50 KPX Aring Ograve -50 KPX Aring Ohungarumlaut -50 KPX Aring Omacron -50 KPX Aring Oslash -50 KPX Aring Otilde -50 KPX Aring Q -55 KPX Aring T -55 KPX Aring Tcaron -55 KPX Aring Tcommaaccent -55 KPX Aring U -50 KPX Aring Uacute -50 KPX Aring Ucircumflex -50 KPX Aring Udieresis -50 KPX Aring Ugrave -50 KPX Aring Uhungarumlaut -50 KPX Aring Umacron -50 KPX Aring Uogonek -50 KPX Aring Uring -50 KPX Aring V -95 KPX Aring W -100 KPX Aring Y -70 KPX Aring Yacute -70 KPX Aring Ydieresis -70 KPX Aring quoteright -74 KPX Aring u -30 KPX Aring uacute -30 KPX Aring ucircumflex -30 KPX Aring udieresis -30 KPX Aring ugrave -30 KPX Aring uhungarumlaut -30 KPX Aring umacron -30 KPX Aring uogonek -30 KPX Aring uring -30 KPX Aring v -74 KPX Aring w -74 KPX Aring y -74 KPX Aring yacute -74 KPX Aring ydieresis -74 KPX Atilde C -65 KPX Atilde Cacute -65 KPX Atilde Ccaron -65 KPX Atilde Ccedilla -65 KPX Atilde G -60 KPX Atilde Gbreve -60 KPX Atilde Gcommaaccent -60 KPX Atilde O -50 KPX Atilde Oacute -50 KPX Atilde Ocircumflex -50 KPX Atilde Odieresis -50 KPX Atilde Ograve -50 KPX Atilde Ohungarumlaut -50 KPX Atilde Omacron -50 KPX Atilde Oslash -50 KPX Atilde Otilde -50 KPX Atilde Q -55 KPX Atilde T -55 KPX Atilde Tcaron -55 KPX Atilde Tcommaaccent -55 KPX Atilde U -50 KPX Atilde Uacute -50 KPX Atilde Ucircumflex -50 KPX Atilde Udieresis -50 KPX Atilde Ugrave -50 KPX Atilde Uhungarumlaut -50 KPX Atilde Umacron -50 KPX Atilde Uogonek -50 KPX Atilde Uring -50 KPX Atilde V -95 KPX Atilde W -100 KPX Atilde Y -70 KPX Atilde Yacute -70 KPX Atilde Ydieresis -70 KPX Atilde quoteright -74 KPX Atilde u -30 KPX Atilde uacute -30 KPX Atilde ucircumflex -30 KPX Atilde udieresis -30 KPX Atilde ugrave -30 KPX Atilde uhungarumlaut -30 KPX Atilde umacron -30 KPX Atilde uogonek -30 KPX Atilde uring -30 KPX Atilde v -74 KPX Atilde w -74 KPX Atilde y -74 KPX Atilde yacute -74 KPX Atilde ydieresis -74 KPX B A -25 KPX B Aacute -25 KPX B Abreve -25 KPX B Acircumflex -25 KPX B Adieresis -25 KPX B Agrave -25 KPX B Amacron -25 KPX B Aogonek -25 KPX B Aring -25 KPX B Atilde -25 KPX B U -10 KPX B Uacute -10 KPX B Ucircumflex -10 KPX B Udieresis -10 KPX B Ugrave -10 KPX B Uhungarumlaut -10 KPX B Umacron -10 KPX B Uogonek -10 KPX B Uring -10 KPX D A -25 KPX D Aacute -25 KPX D Abreve -25 KPX D Acircumflex -25 KPX D Adieresis -25 KPX D Agrave -25 KPX D Amacron -25 KPX D Aogonek -25 KPX D Aring -25 KPX D Atilde -25 KPX D V -50 KPX D W -40 KPX D Y -50 KPX D Yacute -50 KPX D Ydieresis -50 KPX Dcaron A -25 KPX Dcaron Aacute -25 KPX Dcaron Abreve -25 KPX Dcaron Acircumflex -25 KPX Dcaron Adieresis -25 KPX Dcaron Agrave -25 KPX Dcaron Amacron -25 KPX Dcaron Aogonek -25 KPX Dcaron Aring -25 KPX Dcaron Atilde -25 KPX Dcaron V -50 KPX Dcaron W -40 KPX Dcaron Y -50 KPX Dcaron Yacute -50 KPX Dcaron Ydieresis -50 KPX Dcroat A -25 KPX Dcroat Aacute -25 KPX Dcroat Abreve -25 KPX Dcroat Acircumflex -25 KPX Dcroat Adieresis -25 KPX Dcroat Agrave -25 KPX Dcroat Amacron -25 KPX Dcroat Aogonek -25 KPX Dcroat Aring -25 KPX Dcroat Atilde -25 KPX Dcroat V -50 KPX Dcroat W -40 KPX Dcroat Y -50 KPX Dcroat Yacute -50 KPX Dcroat Ydieresis -50 KPX F A -100 KPX F Aacute -100 KPX F Abreve -100 KPX F Acircumflex -100 KPX F Adieresis -100 KPX F Agrave -100 KPX F Amacron -100 KPX F Aogonek -100 KPX F Aring -100 KPX F Atilde -100 KPX F a -95 KPX F aacute -95 KPX F abreve -95 KPX F acircumflex -95 KPX F adieresis -95 KPX F agrave -95 KPX F amacron -95 KPX F aogonek -95 KPX F aring -95 KPX F atilde -95 KPX F comma -129 KPX F e -100 KPX F eacute -100 KPX F ecaron -100 KPX F ecircumflex -100 KPX F edieresis -100 KPX F edotaccent -100 KPX F egrave -100 KPX F emacron -100 KPX F eogonek -100 KPX F i -40 KPX F iacute -40 KPX F icircumflex -40 KPX F idieresis -40 KPX F igrave -40 KPX F imacron -40 KPX F iogonek -40 KPX F o -70 KPX F oacute -70 KPX F ocircumflex -70 KPX F odieresis -70 KPX F ograve -70 KPX F ohungarumlaut -70 KPX F omacron -70 KPX F oslash -70 KPX F otilde -70 KPX F period -129 KPX F r -50 KPX F racute -50 KPX F rcaron -50 KPX F rcommaaccent -50 KPX J A -25 KPX J Aacute -25 KPX J Abreve -25 KPX J Acircumflex -25 KPX J Adieresis -25 KPX J Agrave -25 KPX J Amacron -25 KPX J Aogonek -25 KPX J Aring -25 KPX J Atilde -25 KPX J a -40 KPX J aacute -40 KPX J abreve -40 KPX J acircumflex -40 KPX J adieresis -40 KPX J agrave -40 KPX J amacron -40 KPX J aogonek -40 KPX J aring -40 KPX J atilde -40 KPX J comma -10 KPX J e -40 KPX J eacute -40 KPX J ecaron -40 KPX J ecircumflex -40 KPX J edieresis -40 KPX J edotaccent -40 KPX J egrave -40 KPX J emacron -40 KPX J eogonek -40 KPX J o -40 KPX J oacute -40 KPX J ocircumflex -40 KPX J odieresis -40 KPX J ograve -40 KPX J ohungarumlaut -40 KPX J omacron -40 KPX J oslash -40 KPX J otilde -40 KPX J period -10 KPX J u -40 KPX J uacute -40 KPX J ucircumflex -40 KPX J udieresis -40 KPX J ugrave -40 KPX J uhungarumlaut -40 KPX J umacron -40 KPX J uogonek -40 KPX J uring -40 KPX K O -30 KPX K Oacute -30 KPX K Ocircumflex -30 KPX K Odieresis -30 KPX K Ograve -30 KPX K Ohungarumlaut -30 KPX K Omacron -30 KPX K Oslash -30 KPX K Otilde -30 KPX K e -25 KPX K eacute -25 KPX K ecaron -25 KPX K ecircumflex -25 KPX K edieresis -25 KPX K edotaccent -25 KPX K egrave -25 KPX K emacron -25 KPX K eogonek -25 KPX K o -25 KPX K oacute -25 KPX K ocircumflex -25 KPX K odieresis -25 KPX K ograve -25 KPX K ohungarumlaut -25 KPX K omacron -25 KPX K oslash -25 KPX K otilde -25 KPX K u -20 KPX K uacute -20 KPX K ucircumflex -20 KPX K udieresis -20 KPX K ugrave -20 KPX K uhungarumlaut -20 KPX K umacron -20 KPX K uogonek -20 KPX K uring -20 KPX K y -20 KPX K yacute -20 KPX K ydieresis -20 KPX Kcommaaccent O -30 KPX Kcommaaccent Oacute -30 KPX Kcommaaccent Ocircumflex -30 KPX Kcommaaccent Odieresis -30 KPX Kcommaaccent Ograve -30 KPX Kcommaaccent Ohungarumlaut -30 KPX Kcommaaccent Omacron -30 KPX Kcommaaccent Oslash -30 KPX Kcommaaccent Otilde -30 KPX Kcommaaccent e -25 KPX Kcommaaccent eacute -25 KPX Kcommaaccent ecaron -25 KPX Kcommaaccent ecircumflex -25 KPX Kcommaaccent edieresis -25 KPX Kcommaaccent edotaccent -25 KPX Kcommaaccent egrave -25 KPX Kcommaaccent emacron -25 KPX Kcommaaccent eogonek -25 KPX Kcommaaccent o -25 KPX Kcommaaccent oacute -25 KPX Kcommaaccent ocircumflex -25 KPX Kcommaaccent odieresis -25 KPX Kcommaaccent ograve -25 KPX Kcommaaccent ohungarumlaut -25 KPX Kcommaaccent omacron -25 KPX Kcommaaccent oslash -25 KPX Kcommaaccent otilde -25 KPX Kcommaaccent u -20 KPX Kcommaaccent uacute -20 KPX Kcommaaccent ucircumflex -20 KPX Kcommaaccent udieresis -20 KPX Kcommaaccent ugrave -20 KPX Kcommaaccent uhungarumlaut -20 KPX Kcommaaccent umacron -20 KPX Kcommaaccent uogonek -20 KPX Kcommaaccent uring -20 KPX Kcommaaccent y -20 KPX Kcommaaccent yacute -20 KPX Kcommaaccent ydieresis -20 KPX L T -18 KPX L Tcaron -18 KPX L Tcommaaccent -18 KPX L V -37 KPX L W -37 KPX L Y -37 KPX L Yacute -37 KPX L Ydieresis -37 KPX L quoteright -55 KPX L y -37 KPX L yacute -37 KPX L ydieresis -37 KPX Lacute T -18 KPX Lacute Tcaron -18 KPX Lacute Tcommaaccent -18 KPX Lacute V -37 KPX Lacute W -37 KPX Lacute Y -37 KPX Lacute Yacute -37 KPX Lacute Ydieresis -37 KPX Lacute quoteright -55 KPX Lacute y -37 KPX Lacute yacute -37 KPX Lacute ydieresis -37 KPX Lcommaaccent T -18 KPX Lcommaaccent Tcaron -18 KPX Lcommaaccent Tcommaaccent -18 KPX Lcommaaccent V -37 KPX Lcommaaccent W -37 KPX Lcommaaccent Y -37 KPX Lcommaaccent Yacute -37 KPX Lcommaaccent Ydieresis -37 KPX Lcommaaccent quoteright -55 KPX Lcommaaccent y -37 KPX Lcommaaccent yacute -37 KPX Lcommaaccent ydieresis -37 KPX Lslash T -18 KPX Lslash Tcaron -18 KPX Lslash Tcommaaccent -18 KPX Lslash V -37 KPX Lslash W -37 KPX Lslash Y -37 KPX Lslash Yacute -37 KPX Lslash Ydieresis -37 KPX Lslash quoteright -55 KPX Lslash y -37 KPX Lslash yacute -37 KPX Lslash ydieresis -37 KPX N A -30 KPX N Aacute -30 KPX N Abreve -30 KPX N Acircumflex -30 KPX N Adieresis -30 KPX N Agrave -30 KPX N Amacron -30 KPX N Aogonek -30 KPX N Aring -30 KPX N Atilde -30 KPX Nacute A -30 KPX Nacute Aacute -30 KPX Nacute Abreve -30 KPX Nacute Acircumflex -30 KPX Nacute Adieresis -30 KPX Nacute Agrave -30 KPX Nacute Amacron -30 KPX Nacute Aogonek -30 KPX Nacute Aring -30 KPX Nacute Atilde -30 KPX Ncaron A -30 KPX Ncaron Aacute -30 KPX Ncaron Abreve -30 KPX Ncaron Acircumflex -30 KPX Ncaron Adieresis -30 KPX Ncaron Agrave -30 KPX Ncaron Amacron -30 KPX Ncaron Aogonek -30 KPX Ncaron Aring -30 KPX Ncaron Atilde -30 KPX Ncommaaccent A -30 KPX Ncommaaccent Aacute -30 KPX Ncommaaccent Abreve -30 KPX Ncommaaccent Acircumflex -30 KPX Ncommaaccent Adieresis -30 KPX Ncommaaccent Agrave -30 KPX Ncommaaccent Amacron -30 KPX Ncommaaccent Aogonek -30 KPX Ncommaaccent Aring -30 KPX Ncommaaccent Atilde -30 KPX Ntilde A -30 KPX Ntilde Aacute -30 KPX Ntilde Abreve -30 KPX Ntilde Acircumflex -30 KPX Ntilde Adieresis -30 KPX Ntilde Agrave -30 KPX Ntilde Amacron -30 KPX Ntilde Aogonek -30 KPX Ntilde Aring -30 KPX Ntilde Atilde -30 KPX O A -40 KPX O Aacute -40 KPX O Abreve -40 KPX O Acircumflex -40 KPX O Adieresis -40 KPX O Agrave -40 KPX O Amacron -40 KPX O Aogonek -40 KPX O Aring -40 KPX O Atilde -40 KPX O T -40 KPX O Tcaron -40 KPX O Tcommaaccent -40 KPX O V -50 KPX O W -50 KPX O X -40 KPX O Y -50 KPX O Yacute -50 KPX O Ydieresis -50 KPX Oacute A -40 KPX Oacute Aacute -40 KPX Oacute Abreve -40 KPX Oacute Acircumflex -40 KPX Oacute Adieresis -40 KPX Oacute Agrave -40 KPX Oacute Amacron -40 KPX Oacute Aogonek -40 KPX Oacute Aring -40 KPX Oacute Atilde -40 KPX Oacute T -40 KPX Oacute Tcaron -40 KPX Oacute Tcommaaccent -40 KPX Oacute V -50 KPX Oacute W -50 KPX Oacute X -40 KPX Oacute Y -50 KPX Oacute Yacute -50 KPX Oacute Ydieresis -50 KPX Ocircumflex A -40 KPX Ocircumflex Aacute -40 KPX Ocircumflex Abreve -40 KPX Ocircumflex Acircumflex -40 KPX Ocircumflex Adieresis -40 KPX Ocircumflex Agrave -40 KPX Ocircumflex Amacron -40 KPX Ocircumflex Aogonek -40 KPX Ocircumflex Aring -40 KPX Ocircumflex Atilde -40 KPX Ocircumflex T -40 KPX Ocircumflex Tcaron -40 KPX Ocircumflex Tcommaaccent -40 KPX Ocircumflex V -50 KPX Ocircumflex W -50 KPX Ocircumflex X -40 KPX Ocircumflex Y -50 KPX Ocircumflex Yacute -50 KPX Ocircumflex Ydieresis -50 KPX Odieresis A -40 KPX Odieresis Aacute -40 KPX Odieresis Abreve -40 KPX Odieresis Acircumflex -40 KPX Odieresis Adieresis -40 KPX Odieresis Agrave -40 KPX Odieresis Amacron -40 KPX Odieresis Aogonek -40 KPX Odieresis Aring -40 KPX Odieresis Atilde -40 KPX Odieresis T -40 KPX Odieresis Tcaron -40 KPX Odieresis Tcommaaccent -40 KPX Odieresis V -50 KPX Odieresis W -50 KPX Odieresis X -40 KPX Odieresis Y -50 KPX Odieresis Yacute -50 KPX Odieresis Ydieresis -50 KPX Ograve A -40 KPX Ograve Aacute -40 KPX Ograve Abreve -40 KPX Ograve Acircumflex -40 KPX Ograve Adieresis -40 KPX Ograve Agrave -40 KPX Ograve Amacron -40 KPX Ograve Aogonek -40 KPX Ograve Aring -40 KPX Ograve Atilde -40 KPX Ograve T -40 KPX Ograve Tcaron -40 KPX Ograve Tcommaaccent -40 KPX Ograve V -50 KPX Ograve W -50 KPX Ograve X -40 KPX Ograve Y -50 KPX Ograve Yacute -50 KPX Ograve Ydieresis -50 KPX Ohungarumlaut A -40 KPX Ohungarumlaut Aacute -40 KPX Ohungarumlaut Abreve -40 KPX Ohungarumlaut Acircumflex -40 KPX Ohungarumlaut Adieresis -40 KPX Ohungarumlaut Agrave -40 KPX Ohungarumlaut Amacron -40 KPX Ohungarumlaut Aogonek -40 KPX Ohungarumlaut Aring -40 KPX Ohungarumlaut Atilde -40 KPX Ohungarumlaut T -40 KPX Ohungarumlaut Tcaron -40 KPX Ohungarumlaut Tcommaaccent -40 KPX Ohungarumlaut V -50 KPX Ohungarumlaut W -50 KPX Ohungarumlaut X -40 KPX Ohungarumlaut Y -50 KPX Ohungarumlaut Yacute -50 KPX Ohungarumlaut Ydieresis -50 KPX Omacron A -40 KPX Omacron Aacute -40 KPX Omacron Abreve -40 KPX Omacron Acircumflex -40 KPX Omacron Adieresis -40 KPX Omacron Agrave -40 KPX Omacron Amacron -40 KPX Omacron Aogonek -40 KPX Omacron Aring -40 KPX Omacron Atilde -40 KPX Omacron T -40 KPX Omacron Tcaron -40 KPX Omacron Tcommaaccent -40 KPX Omacron V -50 KPX Omacron W -50 KPX Omacron X -40 KPX Omacron Y -50 KPX Omacron Yacute -50 KPX Omacron Ydieresis -50 KPX Oslash A -40 KPX Oslash Aacute -40 KPX Oslash Abreve -40 KPX Oslash Acircumflex -40 KPX Oslash Adieresis -40 KPX Oslash Agrave -40 KPX Oslash Amacron -40 KPX Oslash Aogonek -40 KPX Oslash Aring -40 KPX Oslash Atilde -40 KPX Oslash T -40 KPX Oslash Tcaron -40 KPX Oslash Tcommaaccent -40 KPX Oslash V -50 KPX Oslash W -50 KPX Oslash X -40 KPX Oslash Y -50 KPX Oslash Yacute -50 KPX Oslash Ydieresis -50 KPX Otilde A -40 KPX Otilde Aacute -40 KPX Otilde Abreve -40 KPX Otilde Acircumflex -40 KPX Otilde Adieresis -40 KPX Otilde Agrave -40 KPX Otilde Amacron -40 KPX Otilde Aogonek -40 KPX Otilde Aring -40 KPX Otilde Atilde -40 KPX Otilde T -40 KPX Otilde Tcaron -40 KPX Otilde Tcommaaccent -40 KPX Otilde V -50 KPX Otilde W -50 KPX Otilde X -40 KPX Otilde Y -50 KPX Otilde Yacute -50 KPX Otilde Ydieresis -50 KPX P A -85 KPX P Aacute -85 KPX P Abreve -85 KPX P Acircumflex -85 KPX P Adieresis -85 KPX P Agrave -85 KPX P Amacron -85 KPX P Aogonek -85 KPX P Aring -85 KPX P Atilde -85 KPX P a -40 KPX P aacute -40 KPX P abreve -40 KPX P acircumflex -40 KPX P adieresis -40 KPX P agrave -40 KPX P amacron -40 KPX P aogonek -40 KPX P aring -40 KPX P atilde -40 KPX P comma -129 KPX P e -50 KPX P eacute -50 KPX P ecaron -50 KPX P ecircumflex -50 KPX P edieresis -50 KPX P edotaccent -50 KPX P egrave -50 KPX P emacron -50 KPX P eogonek -50 KPX P o -55 KPX P oacute -55 KPX P ocircumflex -55 KPX P odieresis -55 KPX P ograve -55 KPX P ohungarumlaut -55 KPX P omacron -55 KPX P oslash -55 KPX P otilde -55 KPX P period -129 KPX Q U -10 KPX Q Uacute -10 KPX Q Ucircumflex -10 KPX Q Udieresis -10 KPX Q Ugrave -10 KPX Q Uhungarumlaut -10 KPX Q Umacron -10 KPX Q Uogonek -10 KPX Q Uring -10 KPX R O -40 KPX R Oacute -40 KPX R Ocircumflex -40 KPX R Odieresis -40 KPX R Ograve -40 KPX R Ohungarumlaut -40 KPX R Omacron -40 KPX R Oslash -40 KPX R Otilde -40 KPX R T -30 KPX R Tcaron -30 KPX R Tcommaaccent -30 KPX R U -40 KPX R Uacute -40 KPX R Ucircumflex -40 KPX R Udieresis -40 KPX R Ugrave -40 KPX R Uhungarumlaut -40 KPX R Umacron -40 KPX R Uogonek -40 KPX R Uring -40 KPX R V -18 KPX R W -18 KPX R Y -18 KPX R Yacute -18 KPX R Ydieresis -18 KPX Racute O -40 KPX Racute Oacute -40 KPX Racute Ocircumflex -40 KPX Racute Odieresis -40 KPX Racute Ograve -40 KPX Racute Ohungarumlaut -40 KPX Racute Omacron -40 KPX Racute Oslash -40 KPX Racute Otilde -40 KPX Racute T -30 KPX Racute Tcaron -30 KPX Racute Tcommaaccent -30 KPX Racute U -40 KPX Racute Uacute -40 KPX Racute Ucircumflex -40 KPX Racute Udieresis -40 KPX Racute Ugrave -40 KPX Racute Uhungarumlaut -40 KPX Racute Umacron -40 KPX Racute Uogonek -40 KPX Racute Uring -40 KPX Racute V -18 KPX Racute W -18 KPX Racute Y -18 KPX Racute Yacute -18 KPX Racute Ydieresis -18 KPX Rcaron O -40 KPX Rcaron Oacute -40 KPX Rcaron Ocircumflex -40 KPX Rcaron Odieresis -40 KPX Rcaron Ograve -40 KPX Rcaron Ohungarumlaut -40 KPX Rcaron Omacron -40 KPX Rcaron Oslash -40 KPX Rcaron Otilde -40 KPX Rcaron T -30 KPX Rcaron Tcaron -30 KPX Rcaron Tcommaaccent -30 KPX Rcaron U -40 KPX Rcaron Uacute -40 KPX Rcaron Ucircumflex -40 KPX Rcaron Udieresis -40 KPX Rcaron Ugrave -40 KPX Rcaron Uhungarumlaut -40 KPX Rcaron Umacron -40 KPX Rcaron Uogonek -40 KPX Rcaron Uring -40 KPX Rcaron V -18 KPX Rcaron W -18 KPX Rcaron Y -18 KPX Rcaron Yacute -18 KPX Rcaron Ydieresis -18 KPX Rcommaaccent O -40 KPX Rcommaaccent Oacute -40 KPX Rcommaaccent Ocircumflex -40 KPX Rcommaaccent Odieresis -40 KPX Rcommaaccent Ograve -40 KPX Rcommaaccent Ohungarumlaut -40 KPX Rcommaaccent Omacron -40 KPX Rcommaaccent Oslash -40 KPX Rcommaaccent Otilde -40 KPX Rcommaaccent T -30 KPX Rcommaaccent Tcaron -30 KPX Rcommaaccent Tcommaaccent -30 KPX Rcommaaccent U -40 KPX Rcommaaccent Uacute -40 KPX Rcommaaccent Ucircumflex -40 KPX Rcommaaccent Udieresis -40 KPX Rcommaaccent Ugrave -40 KPX Rcommaaccent Uhungarumlaut -40 KPX Rcommaaccent Umacron -40 KPX Rcommaaccent Uogonek -40 KPX Rcommaaccent Uring -40 KPX Rcommaaccent V -18 KPX Rcommaaccent W -18 KPX Rcommaaccent Y -18 KPX Rcommaaccent Yacute -18 KPX Rcommaaccent Ydieresis -18 KPX T A -55 KPX T Aacute -55 KPX T Abreve -55 KPX T Acircumflex -55 KPX T Adieresis -55 KPX T Agrave -55 KPX T Amacron -55 KPX T Aogonek -55 KPX T Aring -55 KPX T Atilde -55 KPX T O -18 KPX T Oacute -18 KPX T Ocircumflex -18 KPX T Odieresis -18 KPX T Ograve -18 KPX T Ohungarumlaut -18 KPX T Omacron -18 KPX T Oslash -18 KPX T Otilde -18 KPX T a -92 KPX T aacute -92 KPX T abreve -92 KPX T acircumflex -92 KPX T adieresis -92 KPX T agrave -92 KPX T amacron -92 KPX T aogonek -92 KPX T aring -92 KPX T atilde -92 KPX T colon -74 KPX T comma -92 KPX T e -92 KPX T eacute -92 KPX T ecaron -92 KPX T ecircumflex -92 KPX T edieresis -52 KPX T edotaccent -92 KPX T egrave -52 KPX T emacron -52 KPX T eogonek -92 KPX T hyphen -92 KPX T i -37 KPX T iacute -37 KPX T iogonek -37 KPX T o -95 KPX T oacute -95 KPX T ocircumflex -95 KPX T odieresis -95 KPX T ograve -95 KPX T ohungarumlaut -95 KPX T omacron -95 KPX T oslash -95 KPX T otilde -95 KPX T period -92 KPX T r -37 KPX T racute -37 KPX T rcaron -37 KPX T rcommaaccent -37 KPX T semicolon -74 KPX T u -37 KPX T uacute -37 KPX T ucircumflex -37 KPX T udieresis -37 KPX T ugrave -37 KPX T uhungarumlaut -37 KPX T umacron -37 KPX T uogonek -37 KPX T uring -37 KPX T w -37 KPX T y -37 KPX T yacute -37 KPX T ydieresis -37 KPX Tcaron A -55 KPX Tcaron Aacute -55 KPX Tcaron Abreve -55 KPX Tcaron Acircumflex -55 KPX Tcaron Adieresis -55 KPX Tcaron Agrave -55 KPX Tcaron Amacron -55 KPX Tcaron Aogonek -55 KPX Tcaron Aring -55 KPX Tcaron Atilde -55 KPX Tcaron O -18 KPX Tcaron Oacute -18 KPX Tcaron Ocircumflex -18 KPX Tcaron Odieresis -18 KPX Tcaron Ograve -18 KPX Tcaron Ohungarumlaut -18 KPX Tcaron Omacron -18 KPX Tcaron Oslash -18 KPX Tcaron Otilde -18 KPX Tcaron a -92 KPX Tcaron aacute -92 KPX Tcaron abreve -92 KPX Tcaron acircumflex -92 KPX Tcaron adieresis -92 KPX Tcaron agrave -92 KPX Tcaron amacron -92 KPX Tcaron aogonek -92 KPX Tcaron aring -92 KPX Tcaron atilde -92 KPX Tcaron colon -74 KPX Tcaron comma -92 KPX Tcaron e -92 KPX Tcaron eacute -92 KPX Tcaron ecaron -92 KPX Tcaron ecircumflex -92 KPX Tcaron edieresis -52 KPX Tcaron edotaccent -92 KPX Tcaron egrave -52 KPX Tcaron emacron -52 KPX Tcaron eogonek -92 KPX Tcaron hyphen -92 KPX Tcaron i -37 KPX Tcaron iacute -37 KPX Tcaron iogonek -37 KPX Tcaron o -95 KPX Tcaron oacute -95 KPX Tcaron ocircumflex -95 KPX Tcaron odieresis -95 KPX Tcaron ograve -95 KPX Tcaron ohungarumlaut -95 KPX Tcaron omacron -95 KPX Tcaron oslash -95 KPX Tcaron otilde -95 KPX Tcaron period -92 KPX Tcaron r -37 KPX Tcaron racute -37 KPX Tcaron rcaron -37 KPX Tcaron rcommaaccent -37 KPX Tcaron semicolon -74 KPX Tcaron u -37 KPX Tcaron uacute -37 KPX Tcaron ucircumflex -37 KPX Tcaron udieresis -37 KPX Tcaron ugrave -37 KPX Tcaron uhungarumlaut -37 KPX Tcaron umacron -37 KPX Tcaron uogonek -37 KPX Tcaron uring -37 KPX Tcaron w -37 KPX Tcaron y -37 KPX Tcaron yacute -37 KPX Tcaron ydieresis -37 KPX Tcommaaccent A -55 KPX Tcommaaccent Aacute -55 KPX Tcommaaccent Abreve -55 KPX Tcommaaccent Acircumflex -55 KPX Tcommaaccent Adieresis -55 KPX Tcommaaccent Agrave -55 KPX Tcommaaccent Amacron -55 KPX Tcommaaccent Aogonek -55 KPX Tcommaaccent Aring -55 KPX Tcommaaccent Atilde -55 KPX Tcommaaccent O -18 KPX Tcommaaccent Oacute -18 KPX Tcommaaccent Ocircumflex -18 KPX Tcommaaccent Odieresis -18 KPX Tcommaaccent Ograve -18 KPX Tcommaaccent Ohungarumlaut -18 KPX Tcommaaccent Omacron -18 KPX Tcommaaccent Oslash -18 KPX Tcommaaccent Otilde -18 KPX Tcommaaccent a -92 KPX Tcommaaccent aacute -92 KPX Tcommaaccent abreve -92 KPX Tcommaaccent acircumflex -92 KPX Tcommaaccent adieresis -92 KPX Tcommaaccent agrave -92 KPX Tcommaaccent amacron -92 KPX Tcommaaccent aogonek -92 KPX Tcommaaccent aring -92 KPX Tcommaaccent atilde -92 KPX Tcommaaccent colon -74 KPX Tcommaaccent comma -92 KPX Tcommaaccent e -92 KPX Tcommaaccent eacute -92 KPX Tcommaaccent ecaron -92 KPX Tcommaaccent ecircumflex -92 KPX Tcommaaccent edieresis -52 KPX Tcommaaccent edotaccent -92 KPX Tcommaaccent egrave -52 KPX Tcommaaccent emacron -52 KPX Tcommaaccent eogonek -92 KPX Tcommaaccent hyphen -92 KPX Tcommaaccent i -37 KPX Tcommaaccent iacute -37 KPX Tcommaaccent iogonek -37 KPX Tcommaaccent o -95 KPX Tcommaaccent oacute -95 KPX Tcommaaccent ocircumflex -95 KPX Tcommaaccent odieresis -95 KPX Tcommaaccent ograve -95 KPX Tcommaaccent ohungarumlaut -95 KPX Tcommaaccent omacron -95 KPX Tcommaaccent oslash -95 KPX Tcommaaccent otilde -95 KPX Tcommaaccent period -92 KPX Tcommaaccent r -37 KPX Tcommaaccent racute -37 KPX Tcommaaccent rcaron -37 KPX Tcommaaccent rcommaaccent -37 KPX Tcommaaccent semicolon -74 KPX Tcommaaccent u -37 KPX Tcommaaccent uacute -37 KPX Tcommaaccent ucircumflex -37 KPX Tcommaaccent udieresis -37 KPX Tcommaaccent ugrave -37 KPX Tcommaaccent uhungarumlaut -37 KPX Tcommaaccent umacron -37 KPX Tcommaaccent uogonek -37 KPX Tcommaaccent uring -37 KPX Tcommaaccent w -37 KPX Tcommaaccent y -37 KPX Tcommaaccent yacute -37 KPX Tcommaaccent ydieresis -37 KPX U A -45 KPX U Aacute -45 KPX U Abreve -45 KPX U Acircumflex -45 KPX U Adieresis -45 KPX U Agrave -45 KPX U Amacron -45 KPX U Aogonek -45 KPX U Aring -45 KPX U Atilde -45 KPX Uacute A -45 KPX Uacute Aacute -45 KPX Uacute Abreve -45 KPX Uacute Acircumflex -45 KPX Uacute Adieresis -45 KPX Uacute Agrave -45 KPX Uacute Amacron -45 KPX Uacute Aogonek -45 KPX Uacute Aring -45 KPX Uacute Atilde -45 KPX Ucircumflex A -45 KPX Ucircumflex Aacute -45 KPX Ucircumflex Abreve -45 KPX Ucircumflex Acircumflex -45 KPX Ucircumflex Adieresis -45 KPX Ucircumflex Agrave -45 KPX Ucircumflex Amacron -45 KPX Ucircumflex Aogonek -45 KPX Ucircumflex Aring -45 KPX Ucircumflex Atilde -45 KPX Udieresis A -45 KPX Udieresis Aacute -45 KPX Udieresis Abreve -45 KPX Udieresis Acircumflex -45 KPX Udieresis Adieresis -45 KPX Udieresis Agrave -45 KPX Udieresis Amacron -45 KPX Udieresis Aogonek -45 KPX Udieresis Aring -45 KPX Udieresis Atilde -45 KPX Ugrave A -45 KPX Ugrave Aacute -45 KPX Ugrave Abreve -45 KPX Ugrave Acircumflex -45 KPX Ugrave Adieresis -45 KPX Ugrave Agrave -45 KPX Ugrave Amacron -45 KPX Ugrave Aogonek -45 KPX Ugrave Aring -45 KPX Ugrave Atilde -45 KPX Uhungarumlaut A -45 KPX Uhungarumlaut Aacute -45 KPX Uhungarumlaut Abreve -45 KPX Uhungarumlaut Acircumflex -45 KPX Uhungarumlaut Adieresis -45 KPX Uhungarumlaut Agrave -45 KPX Uhungarumlaut Amacron -45 KPX Uhungarumlaut Aogonek -45 KPX Uhungarumlaut Aring -45 KPX Uhungarumlaut Atilde -45 KPX Umacron A -45 KPX Umacron Aacute -45 KPX Umacron Abreve -45 KPX Umacron Acircumflex -45 KPX Umacron Adieresis -45 KPX Umacron Agrave -45 KPX Umacron Amacron -45 KPX Umacron Aogonek -45 KPX Umacron Aring -45 KPX Umacron Atilde -45 KPX Uogonek A -45 KPX Uogonek Aacute -45 KPX Uogonek Abreve -45 KPX Uogonek Acircumflex -45 KPX Uogonek Adieresis -45 KPX Uogonek Agrave -45 KPX Uogonek Amacron -45 KPX Uogonek Aogonek -45 KPX Uogonek Aring -45 KPX Uogonek Atilde -45 KPX Uring A -45 KPX Uring Aacute -45 KPX Uring Abreve -45 KPX Uring Acircumflex -45 KPX Uring Adieresis -45 KPX Uring Agrave -45 KPX Uring Amacron -45 KPX Uring Aogonek -45 KPX Uring Aring -45 KPX Uring Atilde -45 KPX V A -85 KPX V Aacute -85 KPX V Abreve -85 KPX V Acircumflex -85 KPX V Adieresis -85 KPX V Agrave -85 KPX V Amacron -85 KPX V Aogonek -85 KPX V Aring -85 KPX V Atilde -85 KPX V G -10 KPX V Gbreve -10 KPX V Gcommaaccent -10 KPX V O -30 KPX V Oacute -30 KPX V Ocircumflex -30 KPX V Odieresis -30 KPX V Ograve -30 KPX V Ohungarumlaut -30 KPX V Omacron -30 KPX V Oslash -30 KPX V Otilde -30 KPX V a -111 KPX V aacute -111 KPX V abreve -111 KPX V acircumflex -111 KPX V adieresis -111 KPX V agrave -111 KPX V amacron -111 KPX V aogonek -111 KPX V aring -111 KPX V atilde -111 KPX V colon -74 KPX V comma -129 KPX V e -111 KPX V eacute -111 KPX V ecaron -111 KPX V ecircumflex -111 KPX V edieresis -71 KPX V edotaccent -111 KPX V egrave -71 KPX V emacron -71 KPX V eogonek -111 KPX V hyphen -70 KPX V i -55 KPX V iacute -55 KPX V iogonek -55 KPX V o -111 KPX V oacute -111 KPX V ocircumflex -111 KPX V odieresis -111 KPX V ograve -111 KPX V ohungarumlaut -111 KPX V omacron -111 KPX V oslash -111 KPX V otilde -111 KPX V period -129 KPX V semicolon -74 KPX V u -55 KPX V uacute -55 KPX V ucircumflex -55 KPX V udieresis -55 KPX V ugrave -55 KPX V uhungarumlaut -55 KPX V umacron -55 KPX V uogonek -55 KPX V uring -55 KPX W A -74 KPX W Aacute -74 KPX W Abreve -74 KPX W Acircumflex -74 KPX W Adieresis -74 KPX W Agrave -74 KPX W Amacron -74 KPX W Aogonek -74 KPX W Aring -74 KPX W Atilde -74 KPX W O -15 KPX W Oacute -15 KPX W Ocircumflex -15 KPX W Odieresis -15 KPX W Ograve -15 KPX W Ohungarumlaut -15 KPX W Omacron -15 KPX W Oslash -15 KPX W Otilde -15 KPX W a -85 KPX W aacute -85 KPX W abreve -85 KPX W acircumflex -85 KPX W adieresis -85 KPX W agrave -85 KPX W amacron -85 KPX W aogonek -85 KPX W aring -85 KPX W atilde -85 KPX W colon -55 KPX W comma -74 KPX W e -90 KPX W eacute -90 KPX W ecaron -90 KPX W ecircumflex -90 KPX W edieresis -50 KPX W edotaccent -90 KPX W egrave -50 KPX W emacron -50 KPX W eogonek -90 KPX W hyphen -50 KPX W i -37 KPX W iacute -37 KPX W iogonek -37 KPX W o -80 KPX W oacute -80 KPX W ocircumflex -80 KPX W odieresis -80 KPX W ograve -80 KPX W ohungarumlaut -80 KPX W omacron -80 KPX W oslash -80 KPX W otilde -80 KPX W period -74 KPX W semicolon -55 KPX W u -55 KPX W uacute -55 KPX W ucircumflex -55 KPX W udieresis -55 KPX W ugrave -55 KPX W uhungarumlaut -55 KPX W umacron -55 KPX W uogonek -55 KPX W uring -55 KPX W y -55 KPX W yacute -55 KPX W ydieresis -55 KPX Y A -74 KPX Y Aacute -74 KPX Y Abreve -74 KPX Y Acircumflex -74 KPX Y Adieresis -74 KPX Y Agrave -74 KPX Y Amacron -74 KPX Y Aogonek -74 KPX Y Aring -74 KPX Y Atilde -74 KPX Y O -25 KPX Y Oacute -25 KPX Y Ocircumflex -25 KPX Y Odieresis -25 KPX Y Ograve -25 KPX Y Ohungarumlaut -25 KPX Y Omacron -25 KPX Y Oslash -25 KPX Y Otilde -25 KPX Y a -92 KPX Y aacute -92 KPX Y abreve -92 KPX Y acircumflex -92 KPX Y adieresis -92 KPX Y agrave -92 KPX Y amacron -92 KPX Y aogonek -92 KPX Y aring -92 KPX Y atilde -92 KPX Y colon -92 KPX Y comma -92 KPX Y e -111 KPX Y eacute -111 KPX Y ecaron -111 KPX Y ecircumflex -71 KPX Y edieresis -71 KPX Y edotaccent -111 KPX Y egrave -71 KPX Y emacron -71 KPX Y eogonek -111 KPX Y hyphen -92 KPX Y i -55 KPX Y iacute -55 KPX Y iogonek -55 KPX Y o -111 KPX Y oacute -111 KPX Y ocircumflex -111 KPX Y odieresis -111 KPX Y ograve -111 KPX Y ohungarumlaut -111 KPX Y omacron -111 KPX Y oslash -111 KPX Y otilde -111 KPX Y period -74 KPX Y semicolon -92 KPX Y u -92 KPX Y uacute -92 KPX Y ucircumflex -92 KPX Y udieresis -92 KPX Y ugrave -92 KPX Y uhungarumlaut -92 KPX Y umacron -92 KPX Y uogonek -92 KPX Y uring -92 KPX Yacute A -74 KPX Yacute Aacute -74 KPX Yacute Abreve -74 KPX Yacute Acircumflex -74 KPX Yacute Adieresis -74 KPX Yacute Agrave -74 KPX Yacute Amacron -74 KPX Yacute Aogonek -74 KPX Yacute Aring -74 KPX Yacute Atilde -74 KPX Yacute O -25 KPX Yacute Oacute -25 KPX Yacute Ocircumflex -25 KPX Yacute Odieresis -25 KPX Yacute Ograve -25 KPX Yacute Ohungarumlaut -25 KPX Yacute Omacron -25 KPX Yacute Oslash -25 KPX Yacute Otilde -25 KPX Yacute a -92 KPX Yacute aacute -92 KPX Yacute abreve -92 KPX Yacute acircumflex -92 KPX Yacute adieresis -92 KPX Yacute agrave -92 KPX Yacute amacron -92 KPX Yacute aogonek -92 KPX Yacute aring -92 KPX Yacute atilde -92 KPX Yacute colon -92 KPX Yacute comma -92 KPX Yacute e -111 KPX Yacute eacute -111 KPX Yacute ecaron -111 KPX Yacute ecircumflex -71 KPX Yacute edieresis -71 KPX Yacute edotaccent -111 KPX Yacute egrave -71 KPX Yacute emacron -71 KPX Yacute eogonek -111 KPX Yacute hyphen -92 KPX Yacute i -55 KPX Yacute iacute -55 KPX Yacute iogonek -55 KPX Yacute o -111 KPX Yacute oacute -111 KPX Yacute ocircumflex -111 KPX Yacute odieresis -111 KPX Yacute ograve -111 KPX Yacute ohungarumlaut -111 KPX Yacute omacron -111 KPX Yacute oslash -111 KPX Yacute otilde -111 KPX Yacute period -74 KPX Yacute semicolon -92 KPX Yacute u -92 KPX Yacute uacute -92 KPX Yacute ucircumflex -92 KPX Yacute udieresis -92 KPX Yacute ugrave -92 KPX Yacute uhungarumlaut -92 KPX Yacute umacron -92 KPX Yacute uogonek -92 KPX Yacute uring -92 KPX Ydieresis A -74 KPX Ydieresis Aacute -74 KPX Ydieresis Abreve -74 KPX Ydieresis Acircumflex -74 KPX Ydieresis Adieresis -74 KPX Ydieresis Agrave -74 KPX Ydieresis Amacron -74 KPX Ydieresis Aogonek -74 KPX Ydieresis Aring -74 KPX Ydieresis Atilde -74 KPX Ydieresis O -25 KPX Ydieresis Oacute -25 KPX Ydieresis Ocircumflex -25 KPX Ydieresis Odieresis -25 KPX Ydieresis Ograve -25 KPX Ydieresis Ohungarumlaut -25 KPX Ydieresis Omacron -25 KPX Ydieresis Oslash -25 KPX Ydieresis Otilde -25 KPX Ydieresis a -92 KPX Ydieresis aacute -92 KPX Ydieresis abreve -92 KPX Ydieresis acircumflex -92 KPX Ydieresis adieresis -92 KPX Ydieresis agrave -92 KPX Ydieresis amacron -92 KPX Ydieresis aogonek -92 KPX Ydieresis aring -92 KPX Ydieresis atilde -92 KPX Ydieresis colon -92 KPX Ydieresis comma -92 KPX Ydieresis e -111 KPX Ydieresis eacute -111 KPX Ydieresis ecaron -111 KPX Ydieresis ecircumflex -71 KPX Ydieresis edieresis -71 KPX Ydieresis edotaccent -111 KPX Ydieresis egrave -71 KPX Ydieresis emacron -71 KPX Ydieresis eogonek -111 KPX Ydieresis hyphen -92 KPX Ydieresis i -55 KPX Ydieresis iacute -55 KPX Ydieresis iogonek -55 KPX Ydieresis o -111 KPX Ydieresis oacute -111 KPX Ydieresis ocircumflex -111 KPX Ydieresis odieresis -111 KPX Ydieresis ograve -111 KPX Ydieresis ohungarumlaut -111 KPX Ydieresis omacron -111 KPX Ydieresis oslash -111 KPX Ydieresis otilde -111 KPX Ydieresis period -74 KPX Ydieresis semicolon -92 KPX Ydieresis u -92 KPX Ydieresis uacute -92 KPX Ydieresis ucircumflex -92 KPX Ydieresis udieresis -92 KPX Ydieresis ugrave -92 KPX Ydieresis uhungarumlaut -92 KPX Ydieresis umacron -92 KPX Ydieresis uogonek -92 KPX Ydieresis uring -92 KPX b b -10 KPX b period -40 KPX b u -20 KPX b uacute -20 KPX b ucircumflex -20 KPX b udieresis -20 KPX b ugrave -20 KPX b uhungarumlaut -20 KPX b umacron -20 KPX b uogonek -20 KPX b uring -20 KPX c h -10 KPX c k -10 KPX c kcommaaccent -10 KPX cacute h -10 KPX cacute k -10 KPX cacute kcommaaccent -10 KPX ccaron h -10 KPX ccaron k -10 KPX ccaron kcommaaccent -10 KPX ccedilla h -10 KPX ccedilla k -10 KPX ccedilla kcommaaccent -10 KPX comma quotedblright -95 KPX comma quoteright -95 KPX e b -10 KPX eacute b -10 KPX ecaron b -10 KPX ecircumflex b -10 KPX edieresis b -10 KPX edotaccent b -10 KPX egrave b -10 KPX emacron b -10 KPX eogonek b -10 KPX f comma -10 KPX f dotlessi -30 KPX f e -10 KPX f eacute -10 KPX f edotaccent -10 KPX f eogonek -10 KPX f f -18 KPX f o -10 KPX f oacute -10 KPX f ocircumflex -10 KPX f ograve -10 KPX f ohungarumlaut -10 KPX f oslash -10 KPX f otilde -10 KPX f period -10 KPX f quoteright 55 KPX k e -30 KPX k eacute -30 KPX k ecaron -30 KPX k ecircumflex -30 KPX k edieresis -30 KPX k edotaccent -30 KPX k egrave -30 KPX k emacron -30 KPX k eogonek -30 KPX k o -10 KPX k oacute -10 KPX k ocircumflex -10 KPX k odieresis -10 KPX k ograve -10 KPX k ohungarumlaut -10 KPX k omacron -10 KPX k oslash -10 KPX k otilde -10 KPX kcommaaccent e -30 KPX kcommaaccent eacute -30 KPX kcommaaccent ecaron -30 KPX kcommaaccent ecircumflex -30 KPX kcommaaccent edieresis -30 KPX kcommaaccent edotaccent -30 KPX kcommaaccent egrave -30 KPX kcommaaccent emacron -30 KPX kcommaaccent eogonek -30 KPX kcommaaccent o -10 KPX kcommaaccent oacute -10 KPX kcommaaccent ocircumflex -10 KPX kcommaaccent odieresis -10 KPX kcommaaccent ograve -10 KPX kcommaaccent ohungarumlaut -10 KPX kcommaaccent omacron -10 KPX kcommaaccent oslash -10 KPX kcommaaccent otilde -10 KPX n v -40 KPX nacute v -40 KPX ncaron v -40 KPX ncommaaccent v -40 KPX ntilde v -40 KPX o v -15 KPX o w -25 KPX o x -10 KPX o y -10 KPX o yacute -10 KPX o ydieresis -10 KPX oacute v -15 KPX oacute w -25 KPX oacute x -10 KPX oacute y -10 KPX oacute yacute -10 KPX oacute ydieresis -10 KPX ocircumflex v -15 KPX ocircumflex w -25 KPX ocircumflex x -10 KPX ocircumflex y -10 KPX ocircumflex yacute -10 KPX ocircumflex ydieresis -10 KPX odieresis v -15 KPX odieresis w -25 KPX odieresis x -10 KPX odieresis y -10 KPX odieresis yacute -10 KPX odieresis ydieresis -10 KPX ograve v -15 KPX ograve w -25 KPX ograve x -10 KPX ograve y -10 KPX ograve yacute -10 KPX ograve ydieresis -10 KPX ohungarumlaut v -15 KPX ohungarumlaut w -25 KPX ohungarumlaut x -10 KPX ohungarumlaut y -10 KPX ohungarumlaut yacute -10 KPX ohungarumlaut ydieresis -10 KPX omacron v -15 KPX omacron w -25 KPX omacron x -10 KPX omacron y -10 KPX omacron yacute -10 KPX omacron ydieresis -10 KPX oslash v -15 KPX oslash w -25 KPX oslash x -10 KPX oslash y -10 KPX oslash yacute -10 KPX oslash ydieresis -10 KPX otilde v -15 KPX otilde w -25 KPX otilde x -10 KPX otilde y -10 KPX otilde yacute -10 KPX otilde ydieresis -10 KPX period quotedblright -95 KPX period quoteright -95 KPX quoteleft quoteleft -74 KPX quoteright d -15 KPX quoteright dcroat -15 KPX quoteright quoteright -74 KPX quoteright r -15 KPX quoteright racute -15 KPX quoteright rcaron -15 KPX quoteright rcommaaccent -15 KPX quoteright s -74 KPX quoteright sacute -74 KPX quoteright scaron -74 KPX quoteright scedilla -74 KPX quoteright scommaaccent -74 KPX quoteright space -74 KPX quoteright t -37 KPX quoteright tcommaaccent -37 KPX quoteright v -15 KPX r comma -65 KPX r period -65 KPX racute comma -65 KPX racute period -65 KPX rcaron comma -65 KPX rcaron period -65 KPX rcommaaccent comma -65 KPX rcommaaccent period -65 KPX space A -37 KPX space Aacute -37 KPX space Abreve -37 KPX space Acircumflex -37 KPX space Adieresis -37 KPX space Agrave -37 KPX space Amacron -37 KPX space Aogonek -37 KPX space Aring -37 KPX space Atilde -37 KPX space V -70 KPX space W -70 KPX space Y -70 KPX space Yacute -70 KPX space Ydieresis -70 KPX v comma -37 KPX v e -15 KPX v eacute -15 KPX v ecaron -15 KPX v ecircumflex -15 KPX v edieresis -15 KPX v edotaccent -15 KPX v egrave -15 KPX v emacron -15 KPX v eogonek -15 KPX v o -15 KPX v oacute -15 KPX v ocircumflex -15 KPX v odieresis -15 KPX v ograve -15 KPX v ohungarumlaut -15 KPX v omacron -15 KPX v oslash -15 KPX v otilde -15 KPX v period -37 KPX w a -10 KPX w aacute -10 KPX w abreve -10 KPX w acircumflex -10 KPX w adieresis -10 KPX w agrave -10 KPX w amacron -10 KPX w aogonek -10 KPX w aring -10 KPX w atilde -10 KPX w comma -37 KPX w e -10 KPX w eacute -10 KPX w ecaron -10 KPX w ecircumflex -10 KPX w edieresis -10 KPX w edotaccent -10 KPX w egrave -10 KPX w emacron -10 KPX w eogonek -10 KPX w o -15 KPX w oacute -15 KPX w ocircumflex -15 KPX w odieresis -15 KPX w ograve -15 KPX w ohungarumlaut -15 KPX w omacron -15 KPX w oslash -15 KPX w otilde -15 KPX w period -37 KPX x e -10 KPX x eacute -10 KPX x ecaron -10 KPX x ecircumflex -10 KPX x edieresis -10 KPX x edotaccent -10 KPX x egrave -10 KPX x emacron -10 KPX x eogonek -10 KPX y comma -37 KPX y period -37 KPX yacute comma -37 KPX yacute period -37 KPX ydieresis comma -37 KPX ydieresis period -37 EndKernPairs EndKernData EndFontMetrics a2ps-4.14/afm/MustRead.html0000644000175000017500000000174710674335050015016 0ustar mhattamhatta Adobe Core 35 AFM Files with 314 Glyph Entries - ReadMe

    Adobe Core 35 AFM Files with 314 Glyph Entries - ReadMe

    This file and the 35 PostScript(R) AFM files it accompanies may be used, copied, and distributed for any purpose and without charge, with or without modification, provided that all copyright notices are retained; that the AFM files are not distributed without this file; that all modifications to this file or any of the AFM files are prominently noted in the modified file(s); and that this paragraph is not modified. Adobe Systems has no responsibility or obligation to support the use of the AFM files.
    a2ps-4.14/afm/phvbrn.afm0000644000175000017500000020710310674334152014364 0ustar mhattamhattaStartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Fri May 2 16:55:34 1997 Comment UniqueID 43181 Comment VMusage 14482 68586 FontName Helvetica-Narrow-Bold FullName Helvetica Narrow Bold FamilyName Helvetica Weight Bold ItalicAngle 0 IsFixedPitch false FontBBox -139 -228 822 962 UnderlinePosition -100 UnderlineThickness 50 Version 002.000 Notice Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries. EncodingScheme AdobeStandardEncoding CapHeight 718 XHeight 532 Ascender 718 Descender -207 StdHW 118 StdVW 140 StartCharMetrics 314 C 32 ; WX 228 ; N space ; B 0 0 0 0 ; C 33 ; WX 273 ; N exclam ; B 74 0 200 718 ; C 34 ; WX 389 ; N quotedbl ; B 80 447 308 718 ; C 35 ; WX 456 ; N numbersign ; B 15 0 441 698 ; C 36 ; WX 456 ; N dollar ; B 25 -115 429 775 ; C 37 ; WX 729 ; N percent ; B 23 -19 706 710 ; C 38 ; WX 592 ; N ampersand ; B 44 -19 575 718 ; C 39 ; WX 228 ; N quoteright ; B 57 445 171 718 ; C 40 ; WX 273 ; N parenleft ; B 29 -208 257 734 ; C 41 ; WX 273 ; N parenright ; B 16 -208 244 734 ; C 42 ; WX 319 ; N asterisk ; B 22 387 297 718 ; C 43 ; WX 479 ; N plus ; B 33 0 446 506 ; C 44 ; WX 228 ; N comma ; B 52 -168 175 146 ; C 45 ; WX 273 ; N hyphen ; B 22 215 251 345 ; C 46 ; WX 228 ; N period ; B 52 0 175 146 ; C 47 ; WX 228 ; N slash ; B -27 -19 255 737 ; C 48 ; WX 456 ; N zero ; B 26 -19 430 710 ; C 49 ; WX 456 ; N one ; B 57 0 310 710 ; C 50 ; WX 456 ; N two ; B 21 0 419 710 ; C 51 ; WX 456 ; N three ; B 22 -19 423 710 ; C 52 ; WX 456 ; N four ; B 22 0 431 710 ; C 53 ; WX 456 ; N five ; B 22 -19 423 698 ; C 54 ; WX 456 ; N six ; B 25 -19 426 710 ; C 55 ; WX 456 ; N seven ; B 21 0 433 698 ; C 56 ; WX 456 ; N eight ; B 26 -19 430 710 ; C 57 ; WX 456 ; N nine ; B 25 -19 428 710 ; C 58 ; WX 273 ; N colon ; B 75 0 198 512 ; C 59 ; WX 273 ; N semicolon ; B 75 -168 198 512 ; C 60 ; WX 479 ; N less ; B 31 -8 448 514 ; C 61 ; WX 479 ; N equal ; B 33 87 446 419 ; C 62 ; WX 479 ; N greater ; B 31 -8 448 514 ; C 63 ; WX 501 ; N question ; B 49 0 456 727 ; C 64 ; WX 800 ; N at ; B 97 -19 702 737 ; C 65 ; WX 592 ; N A ; B 16 0 576 718 ; C 66 ; WX 592 ; N B ; B 62 0 549 718 ; C 67 ; WX 592 ; N C ; B 36 -19 561 737 ; C 68 ; WX 592 ; N D ; B 62 0 562 718 ; C 69 ; WX 547 ; N E ; B 62 0 509 718 ; C 70 ; WX 501 ; N F ; B 62 0 481 718 ; C 71 ; WX 638 ; N G ; B 36 -19 585 737 ; C 72 ; WX 592 ; N H ; B 58 0 534 718 ; C 73 ; WX 228 ; N I ; B 52 0 175 718 ; C 74 ; WX 456 ; N J ; B 18 -18 397 718 ; C 75 ; WX 592 ; N K ; B 71 0 592 718 ; C 76 ; WX 501 ; N L ; B 62 0 478 718 ; C 77 ; WX 683 ; N M ; B 57 0 627 718 ; C 78 ; WX 592 ; N N ; B 57 0 536 718 ; C 79 ; WX 638 ; N O ; B 36 -19 602 737 ; C 80 ; WX 547 ; N P ; B 62 0 514 718 ; C 81 ; WX 638 ; N Q ; B 36 -52 604 737 ; C 82 ; WX 592 ; N R ; B 62 0 555 718 ; C 83 ; WX 547 ; N S ; B 32 -19 516 737 ; C 84 ; WX 501 ; N T ; B 11 0 490 718 ; C 85 ; WX 592 ; N U ; B 59 -19 534 718 ; C 86 ; WX 547 ; N V ; B 16 0 531 718 ; C 87 ; WX 774 ; N W ; B 13 0 762 718 ; C 88 ; WX 547 ; N X ; B 11 0 535 718 ; C 89 ; WX 547 ; N Y ; B 12 0 535 718 ; C 90 ; WX 501 ; N Z ; B 21 0 481 718 ; C 91 ; WX 273 ; N bracketleft ; B 52 -196 253 722 ; C 92 ; WX 228 ; N backslash ; B -27 -19 255 737 ; C 93 ; WX 273 ; N bracketright ; B 20 -196 221 722 ; C 94 ; WX 479 ; N asciicircum ; B 51 323 428 698 ; C 95 ; WX 456 ; N underscore ; B 0 -125 456 -75 ; C 96 ; WX 228 ; N quoteleft ; B 57 454 171 727 ; C 97 ; WX 456 ; N a ; B 24 -14 432 546 ; C 98 ; WX 501 ; N b ; B 50 -14 474 718 ; C 99 ; WX 456 ; N c ; B 28 -14 430 546 ; C 100 ; WX 501 ; N d ; B 28 -14 452 718 ; C 101 ; WX 456 ; N e ; B 19 -14 433 546 ; C 102 ; WX 273 ; N f ; B 8 0 261 727 ; L i fi ; L l fl ; C 103 ; WX 501 ; N g ; B 33 -217 453 546 ; C 104 ; WX 501 ; N h ; B 53 0 448 718 ; C 105 ; WX 228 ; N i ; B 57 0 171 725 ; C 106 ; WX 228 ; N j ; B 2 -214 171 725 ; C 107 ; WX 456 ; N k ; B 57 0 461 718 ; C 108 ; WX 228 ; N l ; B 57 0 171 718 ; C 109 ; WX 729 ; N m ; B 52 0 677 546 ; C 110 ; WX 501 ; N n ; B 53 0 448 546 ; C 111 ; WX 501 ; N o ; B 28 -14 474 546 ; C 112 ; WX 501 ; N p ; B 51 -207 474 546 ; C 113 ; WX 501 ; N q ; B 28 -207 453 546 ; C 114 ; WX 319 ; N r ; B 52 0 306 546 ; C 115 ; WX 456 ; N s ; B 25 -14 426 546 ; C 116 ; WX 273 ; N t ; B 8 -6 253 676 ; C 117 ; WX 501 ; N u ; B 54 -14 447 532 ; C 118 ; WX 456 ; N v ; B 11 0 445 532 ; C 119 ; WX 638 ; N w ; B 8 0 631 532 ; C 120 ; WX 456 ; N x ; B 12 0 444 532 ; C 121 ; WX 456 ; N y ; B 8 -214 442 532 ; C 122 ; WX 410 ; N z ; B 16 0 394 532 ; C 123 ; WX 319 ; N braceleft ; B 39 -196 299 722 ; C 124 ; WX 230 ; N bar ; B 69 -225 161 775 ; C 125 ; WX 319 ; N braceright ; B 20 -196 280 722 ; C 126 ; WX 479 ; N asciitilde ; B 50 163 429 343 ; C 161 ; WX 273 ; N exclamdown ; B 74 -186 200 532 ; C 162 ; WX 456 ; N cent ; B 28 -118 430 628 ; C 163 ; WX 456 ; N sterling ; B 23 -16 444 718 ; C 164 ; WX 137 ; N fraction ; B -139 -19 276 710 ; C 165 ; WX 456 ; N yen ; B -7 0 463 698 ; C 166 ; WX 456 ; N florin ; B -8 -210 423 737 ; C 167 ; WX 456 ; N section ; B 28 -184 428 727 ; C 168 ; WX 456 ; N currency ; B -2 76 458 636 ; C 169 ; WX 195 ; N quotesingle ; B 57 447 138 718 ; C 170 ; WX 410 ; N quotedblleft ; B 52 454 358 727 ; C 171 ; WX 456 ; N guillemotleft ; B 72 76 384 484 ; C 172 ; WX 273 ; N guilsinglleft ; B 68 76 205 484 ; C 173 ; WX 273 ; N guilsinglright ; B 68 76 205 484 ; C 174 ; WX 501 ; N fi ; B 8 0 444 727 ; C 175 ; WX 501 ; N fl ; B 8 0 444 727 ; C 177 ; WX 456 ; N endash ; B 0 227 456 333 ; C 178 ; WX 456 ; N dagger ; B 30 -171 426 718 ; C 179 ; WX 456 ; N daggerdbl ; B 30 -171 426 718 ; C 180 ; WX 228 ; N periodcentered ; B 48 172 180 334 ; C 182 ; WX 456 ; N paragraph ; B -7 -191 442 700 ; C 183 ; WX 287 ; N bullet ; B 8 194 279 524 ; C 184 ; WX 228 ; N quotesinglbase ; B 57 -146 171 127 ; C 185 ; WX 410 ; N quotedblbase ; B 52 -146 358 127 ; C 186 ; WX 410 ; N quotedblright ; B 52 445 358 718 ; C 187 ; WX 456 ; N guillemotright ; B 72 76 384 484 ; C 188 ; WX 820 ; N ellipsis ; B 75 0 745 146 ; C 189 ; WX 820 ; N perthousand ; B -2 -19 822 710 ; C 191 ; WX 501 ; N questiondown ; B 45 -195 452 532 ; C 193 ; WX 273 ; N grave ; B -19 604 185 750 ; C 194 ; WX 273 ; N acute ; B 89 604 292 750 ; C 195 ; WX 273 ; N circumflex ; B -8 604 281 750 ; C 196 ; WX 273 ; N tilde ; B -14 610 287 737 ; C 197 ; WX 273 ; N macron ; B -5 604 278 678 ; C 198 ; WX 273 ; N breve ; B -2 604 275 750 ; C 199 ; WX 273 ; N dotaccent ; B 85 614 189 729 ; C 200 ; WX 273 ; N dieresis ; B 5 614 268 729 ; C 202 ; WX 273 ; N ring ; B 48 568 226 776 ; C 203 ; WX 273 ; N cedilla ; B 5 -228 201 0 ; C 205 ; WX 273 ; N hungarumlaut ; B 7 604 399 750 ; C 206 ; WX 273 ; N ogonek ; B 58 -228 249 0 ; C 207 ; WX 273 ; N caron ; B -8 604 281 750 ; C 208 ; WX 820 ; N emdash ; B 0 227 820 333 ; C 225 ; WX 820 ; N AE ; B 4 0 782 718 ; C 227 ; WX 303 ; N ordfeminine ; B 18 401 285 737 ; C 232 ; WX 501 ; N Lslash ; B -16 0 478 718 ; C 233 ; WX 638 ; N Oslash ; B 27 -27 610 745 ; C 234 ; WX 820 ; N OE ; B 30 -19 788 737 ; C 235 ; WX 299 ; N ordmasculine ; B 5 401 295 737 ; C 241 ; WX 729 ; N ae ; B 24 -14 704 546 ; C 245 ; WX 228 ; N dotlessi ; B 57 0 171 532 ; C 248 ; WX 228 ; N lslash ; B -15 0 243 718 ; C 249 ; WX 501 ; N oslash ; B 18 -29 483 560 ; C 250 ; WX 774 ; N oe ; B 28 -14 748 546 ; C 251 ; WX 501 ; N germandbls ; B 57 -14 475 731 ; C -1 ; WX 228 ; N Idieresis ; B -17 0 246 915 ; C -1 ; WX 456 ; N eacute ; B 19 -14 433 750 ; C -1 ; WX 456 ; N abreve ; B 24 -14 432 750 ; C -1 ; WX 501 ; N uhungarumlaut ; B 54 -14 513 750 ; C -1 ; WX 456 ; N ecaron ; B 19 -14 433 750 ; C -1 ; WX 547 ; N Ydieresis ; B 12 0 535 915 ; C -1 ; WX 479 ; N divide ; B 33 -42 446 548 ; C -1 ; WX 547 ; N Yacute ; B 12 0 535 936 ; C -1 ; WX 592 ; N Acircumflex ; B 16 0 576 936 ; C -1 ; WX 456 ; N aacute ; B 24 -14 432 750 ; C -1 ; WX 592 ; N Ucircumflex ; B 59 -19 534 936 ; C -1 ; WX 456 ; N yacute ; B 8 -214 442 750 ; C -1 ; WX 456 ; N scommaaccent ; B 25 -228 426 546 ; C -1 ; WX 456 ; N ecircumflex ; B 19 -14 433 750 ; C -1 ; WX 592 ; N Uring ; B 59 -19 534 962 ; C -1 ; WX 592 ; N Udieresis ; B 59 -19 534 915 ; C -1 ; WX 456 ; N aogonek ; B 24 -224 447 546 ; C -1 ; WX 592 ; N Uacute ; B 59 -19 534 936 ; C -1 ; WX 501 ; N uogonek ; B 54 -228 447 532 ; C -1 ; WX 547 ; N Edieresis ; B 62 0 509 915 ; C -1 ; WX 592 ; N Dcroat ; B -4 0 562 718 ; C -1 ; WX 205 ; N commaaccent ; B 52 -228 163 -50 ; C -1 ; WX 604 ; N copyright ; B -9 -19 614 737 ; C -1 ; WX 547 ; N Emacron ; B 62 0 509 864 ; C -1 ; WX 456 ; N ccaron ; B 28 -14 430 750 ; C -1 ; WX 456 ; N aring ; B 24 -14 432 776 ; C -1 ; WX 592 ; N Ncommaaccent ; B 57 -228 536 718 ; C -1 ; WX 228 ; N lacute ; B 57 0 270 936 ; C -1 ; WX 456 ; N agrave ; B 24 -14 432 750 ; C -1 ; WX 501 ; N Tcommaaccent ; B 11 -228 490 718 ; C -1 ; WX 592 ; N Cacute ; B 36 -19 561 936 ; C -1 ; WX 456 ; N atilde ; B 24 -14 432 737 ; C -1 ; WX 547 ; N Edotaccent ; B 62 0 509 915 ; C -1 ; WX 456 ; N scaron ; B 25 -14 426 750 ; C -1 ; WX 456 ; N scedilla ; B 25 -228 426 546 ; C -1 ; WX 228 ; N iacute ; B 57 0 270 750 ; C -1 ; WX 405 ; N lozenge ; B 8 0 397 745 ; C -1 ; WX 592 ; N Rcaron ; B 62 0 555 936 ; C -1 ; WX 638 ; N Gcommaaccent ; B 36 -228 585 737 ; C -1 ; WX 501 ; N ucircumflex ; B 54 -14 447 750 ; C -1 ; WX 456 ; N acircumflex ; B 24 -14 432 750 ; C -1 ; WX 592 ; N Amacron ; B 16 0 576 864 ; C -1 ; WX 319 ; N rcaron ; B 15 0 306 750 ; C -1 ; WX 456 ; N ccedilla ; B 28 -228 430 546 ; C -1 ; WX 501 ; N Zdotaccent ; B 21 0 481 915 ; C -1 ; WX 547 ; N Thorn ; B 62 0 514 718 ; C -1 ; WX 638 ; N Omacron ; B 36 -19 602 864 ; C -1 ; WX 592 ; N Racute ; B 62 0 555 936 ; C -1 ; WX 547 ; N Sacute ; B 32 -19 516 936 ; C -1 ; WX 609 ; N dcaron ; B 28 -14 615 718 ; C -1 ; WX 592 ; N Umacron ; B 59 -19 534 864 ; C -1 ; WX 501 ; N uring ; B 54 -14 447 776 ; C -1 ; WX 273 ; N threesuperior ; B 7 271 267 710 ; C -1 ; WX 638 ; N Ograve ; B 36 -19 602 936 ; C -1 ; WX 592 ; N Agrave ; B 16 0 576 936 ; C -1 ; WX 592 ; N Abreve ; B 16 0 576 936 ; C -1 ; WX 479 ; N multiply ; B 33 1 447 505 ; C -1 ; WX 501 ; N uacute ; B 54 -14 447 750 ; C -1 ; WX 501 ; N Tcaron ; B 11 0 490 936 ; C -1 ; WX 405 ; N partialdiff ; B 9 -21 405 750 ; C -1 ; WX 456 ; N ydieresis ; B 8 -214 442 729 ; C -1 ; WX 592 ; N Nacute ; B 57 0 536 936 ; C -1 ; WX 228 ; N icircumflex ; B -30 0 259 750 ; C -1 ; WX 547 ; N Ecircumflex ; B 62 0 509 936 ; C -1 ; WX 456 ; N adieresis ; B 24 -14 432 729 ; C -1 ; WX 456 ; N edieresis ; B 19 -14 433 729 ; C -1 ; WX 456 ; N cacute ; B 28 -14 430 750 ; C -1 ; WX 501 ; N nacute ; B 53 0 448 750 ; C -1 ; WX 501 ; N umacron ; B 54 -14 447 678 ; C -1 ; WX 592 ; N Ncaron ; B 57 0 536 936 ; C -1 ; WX 228 ; N Iacute ; B 52 0 270 936 ; C -1 ; WX 479 ; N plusminus ; B 33 0 446 506 ; C -1 ; WX 230 ; N brokenbar ; B 69 -150 161 700 ; C -1 ; WX 604 ; N registered ; B -9 -19 613 737 ; C -1 ; WX 638 ; N Gbreve ; B 36 -19 585 936 ; C -1 ; WX 228 ; N Idotaccent ; B 52 0 175 915 ; C -1 ; WX 492 ; N summation ; B 11 -10 480 706 ; C -1 ; WX 547 ; N Egrave ; B 62 0 509 936 ; C -1 ; WX 319 ; N racute ; B 52 0 315 750 ; C -1 ; WX 501 ; N omacron ; B 28 -14 474 678 ; C -1 ; WX 501 ; N Zacute ; B 21 0 481 936 ; C -1 ; WX 501 ; N Zcaron ; B 21 0 481 936 ; C -1 ; WX 450 ; N greaterequal ; B 21 0 429 704 ; C -1 ; WX 592 ; N Eth ; B -4 0 562 718 ; C -1 ; WX 592 ; N Ccedilla ; B 36 -228 561 737 ; C -1 ; WX 228 ; N lcommaaccent ; B 57 -228 175 718 ; C -1 ; WX 319 ; N tcaron ; B 8 -6 345 878 ; C -1 ; WX 456 ; N eogonek ; B 19 -228 433 546 ; C -1 ; WX 592 ; N Uogonek ; B 59 -228 534 718 ; C -1 ; WX 592 ; N Aacute ; B 16 0 576 936 ; C -1 ; WX 592 ; N Adieresis ; B 16 0 576 915 ; C -1 ; WX 456 ; N egrave ; B 19 -14 433 750 ; C -1 ; WX 410 ; N zacute ; B 16 0 394 750 ; C -1 ; WX 228 ; N iogonek ; B 13 -224 204 725 ; C -1 ; WX 638 ; N Oacute ; B 36 -19 602 936 ; C -1 ; WX 501 ; N oacute ; B 28 -14 474 750 ; C -1 ; WX 456 ; N amacron ; B 24 -14 432 678 ; C -1 ; WX 456 ; N sacute ; B 25 -14 426 750 ; C -1 ; WX 228 ; N idieresis ; B -17 0 246 729 ; C -1 ; WX 638 ; N Ocircumflex ; B 36 -19 602 936 ; C -1 ; WX 592 ; N Ugrave ; B 59 -19 534 936 ; C -1 ; WX 502 ; N Delta ; B 5 0 499 688 ; C -1 ; WX 501 ; N thorn ; B 51 -208 474 718 ; C -1 ; WX 273 ; N twosuperior ; B 7 283 266 710 ; C -1 ; WX 638 ; N Odieresis ; B 36 -19 602 915 ; C -1 ; WX 501 ; N mu ; B 54 -207 447 532 ; C -1 ; WX 228 ; N igrave ; B -41 0 171 750 ; C -1 ; WX 501 ; N ohungarumlaut ; B 28 -14 513 750 ; C -1 ; WX 547 ; N Eogonek ; B 62 -224 524 718 ; C -1 ; WX 501 ; N dcroat ; B 28 -14 533 718 ; C -1 ; WX 684 ; N threequarters ; B 13 -19 655 710 ; C -1 ; WX 547 ; N Scedilla ; B 32 -228 516 737 ; C -1 ; WX 328 ; N lcaron ; B 57 0 335 718 ; C -1 ; WX 592 ; N Kcommaaccent ; B 71 -228 592 718 ; C -1 ; WX 501 ; N Lacute ; B 62 0 478 936 ; C -1 ; WX 820 ; N trademark ; B 36 306 784 718 ; C -1 ; WX 456 ; N edotaccent ; B 19 -14 433 729 ; C -1 ; WX 228 ; N Igrave ; B -41 0 175 936 ; C -1 ; WX 228 ; N Imacron ; B -27 0 256 864 ; C -1 ; WX 501 ; N Lcaron ; B 62 0 478 718 ; C -1 ; WX 684 ; N onehalf ; B 21 -19 651 710 ; C -1 ; WX 450 ; N lessequal ; B 24 0 431 704 ; C -1 ; WX 501 ; N ocircumflex ; B 28 -14 474 750 ; C -1 ; WX 501 ; N ntilde ; B 53 0 448 737 ; C -1 ; WX 592 ; N Uhungarumlaut ; B 59 -19 558 936 ; C -1 ; WX 547 ; N Eacute ; B 62 0 509 936 ; C -1 ; WX 456 ; N emacron ; B 19 -14 433 678 ; C -1 ; WX 501 ; N gbreve ; B 33 -217 453 750 ; C -1 ; WX 684 ; N onequarter ; B 21 -19 628 710 ; C -1 ; WX 547 ; N Scaron ; B 32 -19 516 936 ; C -1 ; WX 547 ; N Scommaaccent ; B 32 -228 516 737 ; C -1 ; WX 638 ; N Ohungarumlaut ; B 36 -19 602 936 ; C -1 ; WX 328 ; N degree ; B 47 426 281 712 ; C -1 ; WX 501 ; N ograve ; B 28 -14 474 750 ; C -1 ; WX 592 ; N Ccaron ; B 36 -19 561 936 ; C -1 ; WX 501 ; N ugrave ; B 54 -14 447 750 ; C -1 ; WX 450 ; N radical ; B 8 -46 420 850 ; C -1 ; WX 592 ; N Dcaron ; B 62 0 562 936 ; C -1 ; WX 319 ; N rcommaaccent ; B 52 -228 306 546 ; C -1 ; WX 592 ; N Ntilde ; B 57 0 536 923 ; C -1 ; WX 501 ; N otilde ; B 28 -14 474 737 ; C -1 ; WX 592 ; N Rcommaaccent ; B 62 -228 555 718 ; C -1 ; WX 501 ; N Lcommaaccent ; B 62 -228 478 718 ; C -1 ; WX 592 ; N Atilde ; B 16 0 576 923 ; C -1 ; WX 592 ; N Aogonek ; B 16 -224 608 718 ; C -1 ; WX 592 ; N Aring ; B 16 0 576 962 ; C -1 ; WX 638 ; N Otilde ; B 36 -19 602 923 ; C -1 ; WX 410 ; N zdotaccent ; B 16 0 394 729 ; C -1 ; WX 547 ; N Ecaron ; B 62 0 509 936 ; C -1 ; WX 228 ; N Iogonek ; B -9 -228 182 718 ; C -1 ; WX 456 ; N kcommaaccent ; B 57 -228 461 718 ; C -1 ; WX 479 ; N minus ; B 33 197 446 309 ; C -1 ; WX 228 ; N Icircumflex ; B -30 0 259 936 ; C -1 ; WX 501 ; N ncaron ; B 53 0 448 750 ; C -1 ; WX 273 ; N tcommaaccent ; B 8 -228 253 676 ; C -1 ; WX 479 ; N logicalnot ; B 33 108 446 419 ; C -1 ; WX 501 ; N odieresis ; B 28 -14 474 729 ; C -1 ; WX 501 ; N udieresis ; B 54 -14 447 729 ; C -1 ; WX 450 ; N notequal ; B 12 -49 443 570 ; C -1 ; WX 501 ; N gcommaaccent ; B 33 -217 453 850 ; C -1 ; WX 501 ; N eth ; B 28 -14 474 737 ; C -1 ; WX 410 ; N zcaron ; B 16 0 394 750 ; C -1 ; WX 501 ; N ncommaaccent ; B 53 -228 448 546 ; C -1 ; WX 273 ; N onesuperior ; B 21 283 194 710 ; C -1 ; WX 228 ; N imacron ; B -7 0 234 678 ; EndCharMetrics StartKernData StartKernPairs 2481 KPX A C -40 KPX A Cacute -40 KPX A Ccaron -40 KPX A Ccedilla -40 KPX A G -50 KPX A Gbreve -50 KPX A Gcommaaccent -50 KPX A O -40 KPX A Oacute -40 KPX A Ocircumflex -40 KPX A Odieresis -40 KPX A Ograve -40 KPX A Ohungarumlaut -40 KPX A Omacron -40 KPX A Oslash -40 KPX A Otilde -40 KPX A Q -40 KPX A T -90 KPX A Tcaron -90 KPX A Tcommaaccent -90 KPX A U -50 KPX A Uacute -50 KPX A Ucircumflex -50 KPX A Udieresis -50 KPX A Ugrave -50 KPX A Uhungarumlaut -50 KPX A Umacron -50 KPX A Uogonek -50 KPX A Uring -50 KPX A V -80 KPX A W -60 KPX A Y -110 KPX A Yacute -110 KPX A Ydieresis -110 KPX A u -30 KPX A uacute -30 KPX A ucircumflex -30 KPX A udieresis -30 KPX A ugrave -30 KPX A uhungarumlaut -30 KPX A umacron -30 KPX A uogonek -30 KPX A uring -30 KPX A v -40 KPX A w -30 KPX A y -30 KPX A yacute -30 KPX A ydieresis -30 KPX Aacute C -40 KPX Aacute Cacute -40 KPX Aacute Ccaron -40 KPX Aacute Ccedilla -40 KPX Aacute G -50 KPX Aacute Gbreve -50 KPX Aacute Gcommaaccent -50 KPX Aacute O -40 KPX Aacute Oacute -40 KPX Aacute Ocircumflex -40 KPX Aacute Odieresis -40 KPX Aacute Ograve -40 KPX Aacute Ohungarumlaut -40 KPX Aacute Omacron -40 KPX Aacute Oslash -40 KPX Aacute Otilde -40 KPX Aacute Q -40 KPX Aacute T -90 KPX Aacute Tcaron -90 KPX Aacute Tcommaaccent -90 KPX Aacute U -50 KPX Aacute Uacute -50 KPX Aacute Ucircumflex -50 KPX Aacute Udieresis -50 KPX Aacute Ugrave -50 KPX Aacute Uhungarumlaut -50 KPX Aacute Umacron -50 KPX Aacute Uogonek -50 KPX Aacute Uring -50 KPX Aacute V -80 KPX Aacute W -60 KPX Aacute Y -110 KPX Aacute Yacute -110 KPX Aacute Ydieresis -110 KPX Aacute u -30 KPX Aacute uacute -30 KPX Aacute ucircumflex -30 KPX Aacute udieresis -30 KPX Aacute ugrave -30 KPX Aacute uhungarumlaut -30 KPX Aacute umacron -30 KPX Aacute uogonek -30 KPX Aacute uring -30 KPX Aacute v -40 KPX Aacute w -30 KPX Aacute y -30 KPX Aacute yacute -30 KPX Aacute ydieresis -30 KPX Abreve C -40 KPX Abreve Cacute -40 KPX Abreve Ccaron -40 KPX Abreve Ccedilla -40 KPX Abreve G -50 KPX Abreve Gbreve -50 KPX Abreve Gcommaaccent -50 KPX Abreve O -40 KPX Abreve Oacute -40 KPX Abreve Ocircumflex -40 KPX Abreve Odieresis -40 KPX Abreve Ograve -40 KPX Abreve Ohungarumlaut -40 KPX Abreve Omacron -40 KPX Abreve Oslash -40 KPX Abreve Otilde -40 KPX Abreve Q -40 KPX Abreve T -90 KPX Abreve Tcaron -90 KPX Abreve Tcommaaccent -90 KPX Abreve U -50 KPX Abreve Uacute -50 KPX Abreve Ucircumflex -50 KPX Abreve Udieresis -50 KPX Abreve Ugrave -50 KPX Abreve Uhungarumlaut -50 KPX Abreve Umacron -50 KPX Abreve Uogonek -50 KPX Abreve Uring -50 KPX Abreve V -80 KPX Abreve W -60 KPX Abreve Y -110 KPX Abreve Yacute -110 KPX Abreve Ydieresis -110 KPX Abreve u -30 KPX Abreve uacute -30 KPX Abreve ucircumflex -30 KPX Abreve udieresis -30 KPX Abreve ugrave -30 KPX Abreve uhungarumlaut -30 KPX Abreve umacron -30 KPX Abreve uogonek -30 KPX Abreve uring -30 KPX Abreve v -40 KPX Abreve w -30 KPX Abreve y -30 KPX Abreve yacute -30 KPX Abreve ydieresis -30 KPX Acircumflex C -40 KPX Acircumflex Cacute -40 KPX Acircumflex Ccaron -40 KPX Acircumflex Ccedilla -40 KPX Acircumflex G -50 KPX Acircumflex Gbreve -50 KPX Acircumflex Gcommaaccent -50 KPX Acircumflex O -40 KPX Acircumflex Oacute -40 KPX Acircumflex Ocircumflex -40 KPX Acircumflex Odieresis -40 KPX Acircumflex Ograve -40 KPX Acircumflex Ohungarumlaut -40 KPX Acircumflex Omacron -40 KPX Acircumflex Oslash -40 KPX Acircumflex Otilde -40 KPX Acircumflex Q -40 KPX Acircumflex T -90 KPX Acircumflex Tcaron -90 KPX Acircumflex Tcommaaccent -90 KPX Acircumflex U -50 KPX Acircumflex Uacute -50 KPX Acircumflex Ucircumflex -50 KPX Acircumflex Udieresis -50 KPX Acircumflex Ugrave -50 KPX Acircumflex Uhungarumlaut -50 KPX Acircumflex Umacron -50 KPX Acircumflex Uogonek -50 KPX Acircumflex Uring -50 KPX Acircumflex V -80 KPX Acircumflex W -60 KPX Acircumflex Y -110 KPX Acircumflex Yacute -110 KPX Acircumflex Ydieresis -110 KPX Acircumflex u -30 KPX Acircumflex uacute -30 KPX Acircumflex ucircumflex -30 KPX Acircumflex udieresis -30 KPX Acircumflex ugrave -30 KPX Acircumflex uhungarumlaut -30 KPX Acircumflex umacron -30 KPX Acircumflex uogonek -30 KPX Acircumflex uring -30 KPX Acircumflex v -40 KPX Acircumflex w -30 KPX Acircumflex y -30 KPX Acircumflex yacute -30 KPX Acircumflex ydieresis -30 KPX Adieresis C -40 KPX Adieresis Cacute -40 KPX Adieresis Ccaron -40 KPX Adieresis Ccedilla -40 KPX Adieresis G -50 KPX Adieresis Gbreve -50 KPX Adieresis Gcommaaccent -50 KPX Adieresis O -40 KPX Adieresis Oacute -40 KPX Adieresis Ocircumflex -40 KPX Adieresis Odieresis -40 KPX Adieresis Ograve -40 KPX Adieresis Ohungarumlaut -40 KPX Adieresis Omacron -40 KPX Adieresis Oslash -40 KPX Adieresis Otilde -40 KPX Adieresis Q -40 KPX Adieresis T -90 KPX Adieresis Tcaron -90 KPX Adieresis Tcommaaccent -90 KPX Adieresis U -50 KPX Adieresis Uacute -50 KPX Adieresis Ucircumflex -50 KPX Adieresis Udieresis -50 KPX Adieresis Ugrave -50 KPX Adieresis Uhungarumlaut -50 KPX Adieresis Umacron -50 KPX Adieresis Uogonek -50 KPX Adieresis Uring -50 KPX Adieresis V -80 KPX Adieresis W -60 KPX Adieresis Y -110 KPX Adieresis Yacute -110 KPX Adieresis Ydieresis -110 KPX Adieresis u -30 KPX Adieresis uacute -30 KPX Adieresis ucircumflex -30 KPX Adieresis udieresis -30 KPX Adieresis ugrave -30 KPX Adieresis uhungarumlaut -30 KPX Adieresis umacron -30 KPX Adieresis uogonek -30 KPX Adieresis uring -30 KPX Adieresis v -40 KPX Adieresis w -30 KPX Adieresis y -30 KPX Adieresis yacute -30 KPX Adieresis ydieresis -30 KPX Agrave C -40 KPX Agrave Cacute -40 KPX Agrave Ccaron -40 KPX Agrave Ccedilla -40 KPX Agrave G -50 KPX Agrave Gbreve -50 KPX Agrave Gcommaaccent -50 KPX Agrave O -40 KPX Agrave Oacute -40 KPX Agrave Ocircumflex -40 KPX Agrave Odieresis -40 KPX Agrave Ograve -40 KPX Agrave Ohungarumlaut -40 KPX Agrave Omacron -40 KPX Agrave Oslash -40 KPX Agrave Otilde -40 KPX Agrave Q -40 KPX Agrave T -90 KPX Agrave Tcaron -90 KPX Agrave Tcommaaccent -90 KPX Agrave U -50 KPX Agrave Uacute -50 KPX Agrave Ucircumflex -50 KPX Agrave Udieresis -50 KPX Agrave Ugrave -50 KPX Agrave Uhungarumlaut -50 KPX Agrave Umacron -50 KPX Agrave Uogonek -50 KPX Agrave Uring -50 KPX Agrave V -80 KPX Agrave W -60 KPX Agrave Y -110 KPX Agrave Yacute -110 KPX Agrave Ydieresis -110 KPX Agrave u -30 KPX Agrave uacute -30 KPX Agrave ucircumflex -30 KPX Agrave udieresis -30 KPX Agrave ugrave -30 KPX Agrave uhungarumlaut -30 KPX Agrave umacron -30 KPX Agrave uogonek -30 KPX Agrave uring -30 KPX Agrave v -40 KPX Agrave w -30 KPX Agrave y -30 KPX Agrave yacute -30 KPX Agrave ydieresis -30 KPX Amacron C -40 KPX Amacron Cacute -40 KPX Amacron Ccaron -40 KPX Amacron Ccedilla -40 KPX Amacron G -50 KPX Amacron Gbreve -50 KPX Amacron Gcommaaccent -50 KPX Amacron O -40 KPX Amacron Oacute -40 KPX Amacron Ocircumflex -40 KPX Amacron Odieresis -40 KPX Amacron Ograve -40 KPX Amacron Ohungarumlaut -40 KPX Amacron Omacron -40 KPX Amacron Oslash -40 KPX Amacron Otilde -40 KPX Amacron Q -40 KPX Amacron T -90 KPX Amacron Tcaron -90 KPX Amacron Tcommaaccent -90 KPX Amacron U -50 KPX Amacron Uacute -50 KPX Amacron Ucircumflex -50 KPX Amacron Udieresis -50 KPX Amacron Ugrave -50 KPX Amacron Uhungarumlaut -50 KPX Amacron Umacron -50 KPX Amacron Uogonek -50 KPX Amacron Uring -50 KPX Amacron V -80 KPX Amacron W -60 KPX Amacron Y -110 KPX Amacron Yacute -110 KPX Amacron Ydieresis -110 KPX Amacron u -30 KPX Amacron uacute -30 KPX Amacron ucircumflex -30 KPX Amacron udieresis -30 KPX Amacron ugrave -30 KPX Amacron uhungarumlaut -30 KPX Amacron umacron -30 KPX Amacron uogonek -30 KPX Amacron uring -30 KPX Amacron v -40 KPX Amacron w -30 KPX Amacron y -30 KPX Amacron yacute -30 KPX Amacron ydieresis -30 KPX Aogonek C -40 KPX Aogonek Cacute -40 KPX Aogonek Ccaron -40 KPX Aogonek Ccedilla -40 KPX Aogonek G -50 KPX Aogonek Gbreve -50 KPX Aogonek Gcommaaccent -50 KPX Aogonek O -40 KPX Aogonek Oacute -40 KPX Aogonek Ocircumflex -40 KPX Aogonek Odieresis -40 KPX Aogonek Ograve -40 KPX Aogonek Ohungarumlaut -40 KPX Aogonek Omacron -40 KPX Aogonek Oslash -40 KPX Aogonek Otilde -40 KPX Aogonek Q -40 KPX Aogonek T -90 KPX Aogonek Tcaron -90 KPX Aogonek Tcommaaccent -90 KPX Aogonek U -50 KPX Aogonek Uacute -50 KPX Aogonek Ucircumflex -50 KPX Aogonek Udieresis -50 KPX Aogonek Ugrave -50 KPX Aogonek Uhungarumlaut -50 KPX Aogonek Umacron -50 KPX Aogonek Uogonek -50 KPX Aogonek Uring -50 KPX Aogonek V -80 KPX Aogonek W -60 KPX Aogonek Y -110 KPX Aogonek Yacute -110 KPX Aogonek Ydieresis -110 KPX Aogonek u -30 KPX Aogonek uacute -30 KPX Aogonek ucircumflex -30 KPX Aogonek udieresis -30 KPX Aogonek ugrave -30 KPX Aogonek uhungarumlaut -30 KPX Aogonek umacron -30 KPX Aogonek uogonek -30 KPX Aogonek uring -30 KPX Aogonek v -40 KPX Aogonek w -30 KPX Aogonek y -30 KPX Aogonek yacute -30 KPX Aogonek ydieresis -30 KPX Aring C -40 KPX Aring Cacute -40 KPX Aring Ccaron -40 KPX Aring Ccedilla -40 KPX Aring G -50 KPX Aring Gbreve -50 KPX Aring Gcommaaccent -50 KPX Aring O -40 KPX Aring Oacute -40 KPX Aring Ocircumflex -40 KPX Aring Odieresis -40 KPX Aring Ograve -40 KPX Aring Ohungarumlaut -40 KPX Aring Omacron -40 KPX Aring Oslash -40 KPX Aring Otilde -40 KPX Aring Q -40 KPX Aring T -90 KPX Aring Tcaron -90 KPX Aring Tcommaaccent -90 KPX Aring U -50 KPX Aring Uacute -50 KPX Aring Ucircumflex -50 KPX Aring Udieresis -50 KPX Aring Ugrave -50 KPX Aring Uhungarumlaut -50 KPX Aring Umacron -50 KPX Aring Uogonek -50 KPX Aring Uring -50 KPX Aring V -80 KPX Aring W -60 KPX Aring Y -110 KPX Aring Yacute -110 KPX Aring Ydieresis -110 KPX Aring u -30 KPX Aring uacute -30 KPX Aring ucircumflex -30 KPX Aring udieresis -30 KPX Aring ugrave -30 KPX Aring uhungarumlaut -30 KPX Aring umacron -30 KPX Aring uogonek -30 KPX Aring uring -30 KPX Aring v -40 KPX Aring w -30 KPX Aring y -30 KPX Aring yacute -30 KPX Aring ydieresis -30 KPX Atilde C -40 KPX Atilde Cacute -40 KPX Atilde Ccaron -40 KPX Atilde Ccedilla -40 KPX Atilde G -50 KPX Atilde Gbreve -50 KPX Atilde Gcommaaccent -50 KPX Atilde O -40 KPX Atilde Oacute -40 KPX Atilde Ocircumflex -40 KPX Atilde Odieresis -40 KPX Atilde Ograve -40 KPX Atilde Ohungarumlaut -40 KPX Atilde Omacron -40 KPX Atilde Oslash -40 KPX Atilde Otilde -40 KPX Atilde Q -40 KPX Atilde T -90 KPX Atilde Tcaron -90 KPX Atilde Tcommaaccent -90 KPX Atilde U -50 KPX Atilde Uacute -50 KPX Atilde Ucircumflex -50 KPX Atilde Udieresis -50 KPX Atilde Ugrave -50 KPX Atilde Uhungarumlaut -50 KPX Atilde Umacron -50 KPX Atilde Uogonek -50 KPX Atilde Uring -50 KPX Atilde V -80 KPX Atilde W -60 KPX Atilde Y -110 KPX Atilde Yacute -110 KPX Atilde Ydieresis -110 KPX Atilde u -30 KPX Atilde uacute -30 KPX Atilde ucircumflex -30 KPX Atilde udieresis -30 KPX Atilde ugrave -30 KPX Atilde uhungarumlaut -30 KPX Atilde umacron -30 KPX Atilde uogonek -30 KPX Atilde uring -30 KPX Atilde v -40 KPX Atilde w -30 KPX Atilde y -30 KPX Atilde yacute -30 KPX Atilde ydieresis -30 KPX B A -30 KPX B Aacute -30 KPX B Abreve -30 KPX B Acircumflex -30 KPX B Adieresis -30 KPX B Agrave -30 KPX B Amacron -30 KPX B Aogonek -30 KPX B Aring -30 KPX B Atilde -30 KPX B U -10 KPX B Uacute -10 KPX B Ucircumflex -10 KPX B Udieresis -10 KPX B Ugrave -10 KPX B Uhungarumlaut -10 KPX B Umacron -10 KPX B Uogonek -10 KPX B Uring -10 KPX D A -40 KPX D Aacute -40 KPX D Abreve -40 KPX D Acircumflex -40 KPX D Adieresis -40 KPX D Agrave -40 KPX D Amacron -40 KPX D Aogonek -40 KPX D Aring -40 KPX D Atilde -40 KPX D V -40 KPX D W -40 KPX D Y -70 KPX D Yacute -70 KPX D Ydieresis -70 KPX D comma -30 KPX D period -30 KPX Dcaron A -40 KPX Dcaron Aacute -40 KPX Dcaron Abreve -40 KPX Dcaron Acircumflex -40 KPX Dcaron Adieresis -40 KPX Dcaron Agrave -40 KPX Dcaron Amacron -40 KPX Dcaron Aogonek -40 KPX Dcaron Aring -40 KPX Dcaron Atilde -40 KPX Dcaron V -40 KPX Dcaron W -40 KPX Dcaron Y -70 KPX Dcaron Yacute -70 KPX Dcaron Ydieresis -70 KPX Dcaron comma -30 KPX Dcaron period -30 KPX Dcroat A -40 KPX Dcroat Aacute -40 KPX Dcroat Abreve -40 KPX Dcroat Acircumflex -40 KPX Dcroat Adieresis -40 KPX Dcroat Agrave -40 KPX Dcroat Amacron -40 KPX Dcroat Aogonek -40 KPX Dcroat Aring -40 KPX Dcroat Atilde -40 KPX Dcroat V -40 KPX Dcroat W -40 KPX Dcroat Y -70 KPX Dcroat Yacute -70 KPX Dcroat Ydieresis -70 KPX Dcroat comma -30 KPX Dcroat period -30 KPX F A -80 KPX F Aacute -80 KPX F Abreve -80 KPX F Acircumflex -80 KPX F Adieresis -80 KPX F Agrave -80 KPX F Amacron -80 KPX F Aogonek -80 KPX F Aring -80 KPX F Atilde -80 KPX F a -20 KPX F aacute -20 KPX F abreve -20 KPX F acircumflex -20 KPX F adieresis -20 KPX F agrave -20 KPX F amacron -20 KPX F aogonek -20 KPX F aring -20 KPX F atilde -20 KPX F comma -100 KPX F period -100 KPX J A -20 KPX J Aacute -20 KPX J Abreve -20 KPX J Acircumflex -20 KPX J Adieresis -20 KPX J Agrave -20 KPX J Amacron -20 KPX J Aogonek -20 KPX J Aring -20 KPX J Atilde -20 KPX J comma -20 KPX J period -20 KPX J u -20 KPX J uacute -20 KPX J ucircumflex -20 KPX J udieresis -20 KPX J ugrave -20 KPX J uhungarumlaut -20 KPX J umacron -20 KPX J uogonek -20 KPX J uring -20 KPX K O -30 KPX K Oacute -30 KPX K Ocircumflex -30 KPX K Odieresis -30 KPX K Ograve -30 KPX K Ohungarumlaut -30 KPX K Omacron -30 KPX K Oslash -30 KPX K Otilde -30 KPX K e -15 KPX K eacute -15 KPX K ecaron -15 KPX K ecircumflex -15 KPX K edieresis -15 KPX K edotaccent -15 KPX K egrave -15 KPX K emacron -15 KPX K eogonek -15 KPX K o -35 KPX K oacute -35 KPX K ocircumflex -35 KPX K odieresis -35 KPX K ograve -35 KPX K ohungarumlaut -35 KPX K omacron -35 KPX K oslash -35 KPX K otilde -35 KPX K u -30 KPX K uacute -30 KPX K ucircumflex -30 KPX K udieresis -30 KPX K ugrave -30 KPX K uhungarumlaut -30 KPX K umacron -30 KPX K uogonek -30 KPX K uring -30 KPX K y -40 KPX K yacute -40 KPX K ydieresis -40 KPX Kcommaaccent O -30 KPX Kcommaaccent Oacute -30 KPX Kcommaaccent Ocircumflex -30 KPX Kcommaaccent Odieresis -30 KPX Kcommaaccent Ograve -30 KPX Kcommaaccent Ohungarumlaut -30 KPX Kcommaaccent Omacron -30 KPX Kcommaaccent Oslash -30 KPX Kcommaaccent Otilde -30 KPX Kcommaaccent e -15 KPX Kcommaaccent eacute -15 KPX Kcommaaccent ecaron -15 KPX Kcommaaccent ecircumflex -15 KPX Kcommaaccent edieresis -15 KPX Kcommaaccent edotaccent -15 KPX Kcommaaccent egrave -15 KPX Kcommaaccent emacron -15 KPX Kcommaaccent eogonek -15 KPX Kcommaaccent o -35 KPX Kcommaaccent oacute -35 KPX Kcommaaccent ocircumflex -35 KPX Kcommaaccent odieresis -35 KPX Kcommaaccent ograve -35 KPX Kcommaaccent ohungarumlaut -35 KPX Kcommaaccent omacron -35 KPX Kcommaaccent oslash -35 KPX Kcommaaccent otilde -35 KPX Kcommaaccent u -30 KPX Kcommaaccent uacute -30 KPX Kcommaaccent ucircumflex -30 KPX Kcommaaccent udieresis -30 KPX Kcommaaccent ugrave -30 KPX Kcommaaccent uhungarumlaut -30 KPX Kcommaaccent umacron -30 KPX Kcommaaccent uogonek -30 KPX Kcommaaccent uring -30 KPX Kcommaaccent y -40 KPX Kcommaaccent yacute -40 KPX Kcommaaccent ydieresis -40 KPX L T -90 KPX L Tcaron -90 KPX L Tcommaaccent -90 KPX L V -110 KPX L W -80 KPX L Y -120 KPX L Yacute -120 KPX L Ydieresis -120 KPX L quotedblright -140 KPX L quoteright -140 KPX L y -30 KPX L yacute -30 KPX L ydieresis -30 KPX Lacute T -90 KPX Lacute Tcaron -90 KPX Lacute Tcommaaccent -90 KPX Lacute V -110 KPX Lacute W -80 KPX Lacute Y -120 KPX Lacute Yacute -120 KPX Lacute Ydieresis -120 KPX Lacute quotedblright -140 KPX Lacute quoteright -140 KPX Lacute y -30 KPX Lacute yacute -30 KPX Lacute ydieresis -30 KPX Lcommaaccent T -90 KPX Lcommaaccent Tcaron -90 KPX Lcommaaccent Tcommaaccent -90 KPX Lcommaaccent V -110 KPX Lcommaaccent W -80 KPX Lcommaaccent Y -120 KPX Lcommaaccent Yacute -120 KPX Lcommaaccent Ydieresis -120 KPX Lcommaaccent quotedblright -140 KPX Lcommaaccent quoteright -140 KPX Lcommaaccent y -30 KPX Lcommaaccent yacute -30 KPX Lcommaaccent ydieresis -30 KPX Lslash T -90 KPX Lslash Tcaron -90 KPX Lslash Tcommaaccent -90 KPX Lslash V -110 KPX Lslash W -80 KPX Lslash Y -120 KPX Lslash Yacute -120 KPX Lslash Ydieresis -120 KPX Lslash quotedblright -140 KPX Lslash quoteright -140 KPX Lslash y -30 KPX Lslash yacute -30 KPX Lslash ydieresis -30 KPX O A -50 KPX O Aacute -50 KPX O Abreve -50 KPX O Acircumflex -50 KPX O Adieresis -50 KPX O Agrave -50 KPX O Amacron -50 KPX O Aogonek -50 KPX O Aring -50 KPX O Atilde -50 KPX O T -40 KPX O Tcaron -40 KPX O Tcommaaccent -40 KPX O V -50 KPX O W -50 KPX O X -50 KPX O Y -70 KPX O Yacute -70 KPX O Ydieresis -70 KPX O comma -40 KPX O period -40 KPX Oacute A -50 KPX Oacute Aacute -50 KPX Oacute Abreve -50 KPX Oacute Acircumflex -50 KPX Oacute Adieresis -50 KPX Oacute Agrave -50 KPX Oacute Amacron -50 KPX Oacute Aogonek -50 KPX Oacute Aring -50 KPX Oacute Atilde -50 KPX Oacute T -40 KPX Oacute Tcaron -40 KPX Oacute Tcommaaccent -40 KPX Oacute V -50 KPX Oacute W -50 KPX Oacute X -50 KPX Oacute Y -70 KPX Oacute Yacute -70 KPX Oacute Ydieresis -70 KPX Oacute comma -40 KPX Oacute period -40 KPX Ocircumflex A -50 KPX Ocircumflex Aacute -50 KPX Ocircumflex Abreve -50 KPX Ocircumflex Acircumflex -50 KPX Ocircumflex Adieresis -50 KPX Ocircumflex Agrave -50 KPX Ocircumflex Amacron -50 KPX Ocircumflex Aogonek -50 KPX Ocircumflex Aring -50 KPX Ocircumflex Atilde -50 KPX Ocircumflex T -40 KPX Ocircumflex Tcaron -40 KPX Ocircumflex Tcommaaccent -40 KPX Ocircumflex V -50 KPX Ocircumflex W -50 KPX Ocircumflex X -50 KPX Ocircumflex Y -70 KPX Ocircumflex Yacute -70 KPX Ocircumflex Ydieresis -70 KPX Ocircumflex comma -40 KPX Ocircumflex period -40 KPX Odieresis A -50 KPX Odieresis Aacute -50 KPX Odieresis Abreve -50 KPX Odieresis Acircumflex -50 KPX Odieresis Adieresis -50 KPX Odieresis Agrave -50 KPX Odieresis Amacron -50 KPX Odieresis Aogonek -50 KPX Odieresis Aring -50 KPX Odieresis Atilde -50 KPX Odieresis T -40 KPX Odieresis Tcaron -40 KPX Odieresis Tcommaaccent -40 KPX Odieresis V -50 KPX Odieresis W -50 KPX Odieresis X -50 KPX Odieresis Y -70 KPX Odieresis Yacute -70 KPX Odieresis Ydieresis -70 KPX Odieresis comma -40 KPX Odieresis period -40 KPX Ograve A -50 KPX Ograve Aacute -50 KPX Ograve Abreve -50 KPX Ograve Acircumflex -50 KPX Ograve Adieresis -50 KPX Ograve Agrave -50 KPX Ograve Amacron -50 KPX Ograve Aogonek -50 KPX Ograve Aring -50 KPX Ograve Atilde -50 KPX Ograve T -40 KPX Ograve Tcaron -40 KPX Ograve Tcommaaccent -40 KPX Ograve V -50 KPX Ograve W -50 KPX Ograve X -50 KPX Ograve Y -70 KPX Ograve Yacute -70 KPX Ograve Ydieresis -70 KPX Ograve comma -40 KPX Ograve period -40 KPX Ohungarumlaut A -50 KPX Ohungarumlaut Aacute -50 KPX Ohungarumlaut Abreve -50 KPX Ohungarumlaut Acircumflex -50 KPX Ohungarumlaut Adieresis -50 KPX Ohungarumlaut Agrave -50 KPX Ohungarumlaut Amacron -50 KPX Ohungarumlaut Aogonek -50 KPX Ohungarumlaut Aring -50 KPX Ohungarumlaut Atilde -50 KPX Ohungarumlaut T -40 KPX Ohungarumlaut Tcaron -40 KPX Ohungarumlaut Tcommaaccent -40 KPX Ohungarumlaut V -50 KPX Ohungarumlaut W -50 KPX Ohungarumlaut X -50 KPX Ohungarumlaut Y -70 KPX Ohungarumlaut Yacute -70 KPX Ohungarumlaut Ydieresis -70 KPX Ohungarumlaut comma -40 KPX Ohungarumlaut period -40 KPX Omacron A -50 KPX Omacron Aacute -50 KPX Omacron Abreve -50 KPX Omacron Acircumflex -50 KPX Omacron Adieresis -50 KPX Omacron Agrave -50 KPX Omacron Amacron -50 KPX Omacron Aogonek -50 KPX Omacron Aring -50 KPX Omacron Atilde -50 KPX Omacron T -40 KPX Omacron Tcaron -40 KPX Omacron Tcommaaccent -40 KPX Omacron V -50 KPX Omacron W -50 KPX Omacron X -50 KPX Omacron Y -70 KPX Omacron Yacute -70 KPX Omacron Ydieresis -70 KPX Omacron comma -40 KPX Omacron period -40 KPX Oslash A -50 KPX Oslash Aacute -50 KPX Oslash Abreve -50 KPX Oslash Acircumflex -50 KPX Oslash Adieresis -50 KPX Oslash Agrave -50 KPX Oslash Amacron -50 KPX Oslash Aogonek -50 KPX Oslash Aring -50 KPX Oslash Atilde -50 KPX Oslash T -40 KPX Oslash Tcaron -40 KPX Oslash Tcommaaccent -40 KPX Oslash V -50 KPX Oslash W -50 KPX Oslash X -50 KPX Oslash Y -70 KPX Oslash Yacute -70 KPX Oslash Ydieresis -70 KPX Oslash comma -40 KPX Oslash period -40 KPX Otilde A -50 KPX Otilde Aacute -50 KPX Otilde Abreve -50 KPX Otilde Acircumflex -50 KPX Otilde Adieresis -50 KPX Otilde Agrave -50 KPX Otilde Amacron -50 KPX Otilde Aogonek -50 KPX Otilde Aring -50 KPX Otilde Atilde -50 KPX Otilde T -40 KPX Otilde Tcaron -40 KPX Otilde Tcommaaccent -40 KPX Otilde V -50 KPX Otilde W -50 KPX Otilde X -50 KPX Otilde Y -70 KPX Otilde Yacute -70 KPX Otilde Ydieresis -70 KPX Otilde comma -40 KPX Otilde period -40 KPX P A -100 KPX P Aacute -100 KPX P Abreve -100 KPX P Acircumflex -100 KPX P Adieresis -100 KPX P Agrave -100 KPX P Amacron -100 KPX P Aogonek -100 KPX P Aring -100 KPX P Atilde -100 KPX P a -30 KPX P aacute -30 KPX P abreve -30 KPX P acircumflex -30 KPX P adieresis -30 KPX P agrave -30 KPX P amacron -30 KPX P aogonek -30 KPX P aring -30 KPX P atilde -30 KPX P comma -120 KPX P e -30 KPX P eacute -30 KPX P ecaron -30 KPX P ecircumflex -30 KPX P edieresis -30 KPX P edotaccent -30 KPX P egrave -30 KPX P emacron -30 KPX P eogonek -30 KPX P o -40 KPX P oacute -40 KPX P ocircumflex -40 KPX P odieresis -40 KPX P ograve -40 KPX P ohungarumlaut -40 KPX P omacron -40 KPX P oslash -40 KPX P otilde -40 KPX P period -120 KPX Q U -10 KPX Q Uacute -10 KPX Q Ucircumflex -10 KPX Q Udieresis -10 KPX Q Ugrave -10 KPX Q Uhungarumlaut -10 KPX Q Umacron -10 KPX Q Uogonek -10 KPX Q Uring -10 KPX Q comma 20 KPX Q period 20 KPX R O -20 KPX R Oacute -20 KPX R Ocircumflex -20 KPX R Odieresis -20 KPX R Ograve -20 KPX R Ohungarumlaut -20 KPX R Omacron -20 KPX R Oslash -20 KPX R Otilde -20 KPX R T -20 KPX R Tcaron -20 KPX R Tcommaaccent -20 KPX R U -20 KPX R Uacute -20 KPX R Ucircumflex -20 KPX R Udieresis -20 KPX R Ugrave -20 KPX R Uhungarumlaut -20 KPX R Umacron -20 KPX R Uogonek -20 KPX R Uring -20 KPX R V -50 KPX R W -40 KPX R Y -50 KPX R Yacute -50 KPX R Ydieresis -50 KPX Racute O -20 KPX Racute Oacute -20 KPX Racute Ocircumflex -20 KPX Racute Odieresis -20 KPX Racute Ograve -20 KPX Racute Ohungarumlaut -20 KPX Racute Omacron -20 KPX Racute Oslash -20 KPX Racute Otilde -20 KPX Racute T -20 KPX Racute Tcaron -20 KPX Racute Tcommaaccent -20 KPX Racute U -20 KPX Racute Uacute -20 KPX Racute Ucircumflex -20 KPX Racute Udieresis -20 KPX Racute Ugrave -20 KPX Racute Uhungarumlaut -20 KPX Racute Umacron -20 KPX Racute Uogonek -20 KPX Racute Uring -20 KPX Racute V -50 KPX Racute W -40 KPX Racute Y -50 KPX Racute Yacute -50 KPX Racute Ydieresis -50 KPX Rcaron O -20 KPX Rcaron Oacute -20 KPX Rcaron Ocircumflex -20 KPX Rcaron Odieresis -20 KPX Rcaron Ograve -20 KPX Rcaron Ohungarumlaut -20 KPX Rcaron Omacron -20 KPX Rcaron Oslash -20 KPX Rcaron Otilde -20 KPX Rcaron T -20 KPX Rcaron Tcaron -20 KPX Rcaron Tcommaaccent -20 KPX Rcaron U -20 KPX Rcaron Uacute -20 KPX Rcaron Ucircumflex -20 KPX Rcaron Udieresis -20 KPX Rcaron Ugrave -20 KPX Rcaron Uhungarumlaut -20 KPX Rcaron Umacron -20 KPX Rcaron Uogonek -20 KPX Rcaron Uring -20 KPX Rcaron V -50 KPX Rcaron W -40 KPX Rcaron Y -50 KPX Rcaron Yacute -50 KPX Rcaron Ydieresis -50 KPX Rcommaaccent O -20 KPX Rcommaaccent Oacute -20 KPX Rcommaaccent Ocircumflex -20 KPX Rcommaaccent Odieresis -20 KPX Rcommaaccent Ograve -20 KPX Rcommaaccent Ohungarumlaut -20 KPX Rcommaaccent Omacron -20 KPX Rcommaaccent Oslash -20 KPX Rcommaaccent Otilde -20 KPX Rcommaaccent T -20 KPX Rcommaaccent Tcaron -20 KPX Rcommaaccent Tcommaaccent -20 KPX Rcommaaccent U -20 KPX Rcommaaccent Uacute -20 KPX Rcommaaccent Ucircumflex -20 KPX Rcommaaccent Udieresis -20 KPX Rcommaaccent Ugrave -20 KPX Rcommaaccent Uhungarumlaut -20 KPX Rcommaaccent Umacron -20 KPX Rcommaaccent Uogonek -20 KPX Rcommaaccent Uring -20 KPX Rcommaaccent V -50 KPX Rcommaaccent W -40 KPX Rcommaaccent Y -50 KPX Rcommaaccent Yacute -50 KPX Rcommaaccent Ydieresis -50 KPX T A -90 KPX T Aacute -90 KPX T Abreve -90 KPX T Acircumflex -90 KPX T Adieresis -90 KPX T Agrave -90 KPX T Amacron -90 KPX T Aogonek -90 KPX T Aring -90 KPX T Atilde -90 KPX T O -40 KPX T Oacute -40 KPX T Ocircumflex -40 KPX T Odieresis -40 KPX T Ograve -40 KPX T Ohungarumlaut -40 KPX T Omacron -40 KPX T Oslash -40 KPX T Otilde -40 KPX T a -80 KPX T aacute -80 KPX T abreve -80 KPX T acircumflex -80 KPX T adieresis -80 KPX T agrave -80 KPX T amacron -80 KPX T aogonek -80 KPX T aring -80 KPX T atilde -80 KPX T colon -40 KPX T comma -80 KPX T e -60 KPX T eacute -60 KPX T ecaron -60 KPX T ecircumflex -60 KPX T edieresis -60 KPX T edotaccent -60 KPX T egrave -60 KPX T emacron -60 KPX T eogonek -60 KPX T hyphen -120 KPX T o -80 KPX T oacute -80 KPX T ocircumflex -80 KPX T odieresis -80 KPX T ograve -80 KPX T ohungarumlaut -80 KPX T omacron -80 KPX T oslash -80 KPX T otilde -80 KPX T period -80 KPX T r -80 KPX T racute -80 KPX T rcommaaccent -80 KPX T semicolon -40 KPX T u -90 KPX T uacute -90 KPX T ucircumflex -90 KPX T udieresis -90 KPX T ugrave -90 KPX T uhungarumlaut -90 KPX T umacron -90 KPX T uogonek -90 KPX T uring -90 KPX T w -60 KPX T y -60 KPX T yacute -60 KPX T ydieresis -60 KPX Tcaron A -90 KPX Tcaron Aacute -90 KPX Tcaron Abreve -90 KPX Tcaron Acircumflex -90 KPX Tcaron Adieresis -90 KPX Tcaron Agrave -90 KPX Tcaron Amacron -90 KPX Tcaron Aogonek -90 KPX Tcaron Aring -90 KPX Tcaron Atilde -90 KPX Tcaron O -40 KPX Tcaron Oacute -40 KPX Tcaron Ocircumflex -40 KPX Tcaron Odieresis -40 KPX Tcaron Ograve -40 KPX Tcaron Ohungarumlaut -40 KPX Tcaron Omacron -40 KPX Tcaron Oslash -40 KPX Tcaron Otilde -40 KPX Tcaron a -80 KPX Tcaron aacute -80 KPX Tcaron abreve -80 KPX Tcaron acircumflex -80 KPX Tcaron adieresis -80 KPX Tcaron agrave -80 KPX Tcaron amacron -80 KPX Tcaron aogonek -80 KPX Tcaron aring -80 KPX Tcaron atilde -80 KPX Tcaron colon -40 KPX Tcaron comma -80 KPX Tcaron e -60 KPX Tcaron eacute -60 KPX Tcaron ecaron -60 KPX Tcaron ecircumflex -60 KPX Tcaron edieresis -60 KPX Tcaron edotaccent -60 KPX Tcaron egrave -60 KPX Tcaron emacron -60 KPX Tcaron eogonek -60 KPX Tcaron hyphen -120 KPX Tcaron o -80 KPX Tcaron oacute -80 KPX Tcaron ocircumflex -80 KPX Tcaron odieresis -80 KPX Tcaron ograve -80 KPX Tcaron ohungarumlaut -80 KPX Tcaron omacron -80 KPX Tcaron oslash -80 KPX Tcaron otilde -80 KPX Tcaron period -80 KPX Tcaron r -80 KPX Tcaron racute -80 KPX Tcaron rcommaaccent -80 KPX Tcaron semicolon -40 KPX Tcaron u -90 KPX Tcaron uacute -90 KPX Tcaron ucircumflex -90 KPX Tcaron udieresis -90 KPX Tcaron ugrave -90 KPX Tcaron uhungarumlaut -90 KPX Tcaron umacron -90 KPX Tcaron uogonek -90 KPX Tcaron uring -90 KPX Tcaron w -60 KPX Tcaron y -60 KPX Tcaron yacute -60 KPX Tcaron ydieresis -60 KPX Tcommaaccent A -90 KPX Tcommaaccent Aacute -90 KPX Tcommaaccent Abreve -90 KPX Tcommaaccent Acircumflex -90 KPX Tcommaaccent Adieresis -90 KPX Tcommaaccent Agrave -90 KPX Tcommaaccent Amacron -90 KPX Tcommaaccent Aogonek -90 KPX Tcommaaccent Aring -90 KPX Tcommaaccent Atilde -90 KPX Tcommaaccent O -40 KPX Tcommaaccent Oacute -40 KPX Tcommaaccent Ocircumflex -40 KPX Tcommaaccent Odieresis -40 KPX Tcommaaccent Ograve -40 KPX Tcommaaccent Ohungarumlaut -40 KPX Tcommaaccent Omacron -40 KPX Tcommaaccent Oslash -40 KPX Tcommaaccent Otilde -40 KPX Tcommaaccent a -80 KPX Tcommaaccent aacute -80 KPX Tcommaaccent abreve -80 KPX Tcommaaccent acircumflex -80 KPX Tcommaaccent adieresis -80 KPX Tcommaaccent agrave -80 KPX Tcommaaccent amacron -80 KPX Tcommaaccent aogonek -80 KPX Tcommaaccent aring -80 KPX Tcommaaccent atilde -80 KPX Tcommaaccent colon -40 KPX Tcommaaccent comma -80 KPX Tcommaaccent e -60 KPX Tcommaaccent eacute -60 KPX Tcommaaccent ecaron -60 KPX Tcommaaccent ecircumflex -60 KPX Tcommaaccent edieresis -60 KPX Tcommaaccent edotaccent -60 KPX Tcommaaccent egrave -60 KPX Tcommaaccent emacron -60 KPX Tcommaaccent eogonek -60 KPX Tcommaaccent hyphen -120 KPX Tcommaaccent o -80 KPX Tcommaaccent oacute -80 KPX Tcommaaccent ocircumflex -80 KPX Tcommaaccent odieresis -80 KPX Tcommaaccent ograve -80 KPX Tcommaaccent ohungarumlaut -80 KPX Tcommaaccent omacron -80 KPX Tcommaaccent oslash -80 KPX Tcommaaccent otilde -80 KPX Tcommaaccent period -80 KPX Tcommaaccent r -80 KPX Tcommaaccent racute -80 KPX Tcommaaccent rcommaaccent -80 KPX Tcommaaccent semicolon -40 KPX Tcommaaccent u -90 KPX Tcommaaccent uacute -90 KPX Tcommaaccent ucircumflex -90 KPX Tcommaaccent udieresis -90 KPX Tcommaaccent ugrave -90 KPX Tcommaaccent uhungarumlaut -90 KPX Tcommaaccent umacron -90 KPX Tcommaaccent uogonek -90 KPX Tcommaaccent uring -90 KPX Tcommaaccent w -60 KPX Tcommaaccent y -60 KPX Tcommaaccent yacute -60 KPX Tcommaaccent ydieresis -60 KPX U A -50 KPX U Aacute -50 KPX U Abreve -50 KPX U Acircumflex -50 KPX U Adieresis -50 KPX U Agrave -50 KPX U Amacron -50 KPX U Aogonek -50 KPX U Aring -50 KPX U Atilde -50 KPX U comma -30 KPX U period -30 KPX Uacute A -50 KPX Uacute Aacute -50 KPX Uacute Abreve -50 KPX Uacute Acircumflex -50 KPX Uacute Adieresis -50 KPX Uacute Agrave -50 KPX Uacute Amacron -50 KPX Uacute Aogonek -50 KPX Uacute Aring -50 KPX Uacute Atilde -50 KPX Uacute comma -30 KPX Uacute period -30 KPX Ucircumflex A -50 KPX Ucircumflex Aacute -50 KPX Ucircumflex Abreve -50 KPX Ucircumflex Acircumflex -50 KPX Ucircumflex Adieresis -50 KPX Ucircumflex Agrave -50 KPX Ucircumflex Amacron -50 KPX Ucircumflex Aogonek -50 KPX Ucircumflex Aring -50 KPX Ucircumflex Atilde -50 KPX Ucircumflex comma -30 KPX Ucircumflex period -30 KPX Udieresis A -50 KPX Udieresis Aacute -50 KPX Udieresis Abreve -50 KPX Udieresis Acircumflex -50 KPX Udieresis Adieresis -50 KPX Udieresis Agrave -50 KPX Udieresis Amacron -50 KPX Udieresis Aogonek -50 KPX Udieresis Aring -50 KPX Udieresis Atilde -50 KPX Udieresis comma -30 KPX Udieresis period -30 KPX Ugrave A -50 KPX Ugrave Aacute -50 KPX Ugrave Abreve -50 KPX Ugrave Acircumflex -50 KPX Ugrave Adieresis -50 KPX Ugrave Agrave -50 KPX Ugrave Amacron -50 KPX Ugrave Aogonek -50 KPX Ugrave Aring -50 KPX Ugrave Atilde -50 KPX Ugrave comma -30 KPX Ugrave period -30 KPX Uhungarumlaut A -50 KPX Uhungarumlaut Aacute -50 KPX Uhungarumlaut Abreve -50 KPX Uhungarumlaut Acircumflex -50 KPX Uhungarumlaut Adieresis -50 KPX Uhungarumlaut Agrave -50 KPX Uhungarumlaut Amacron -50 KPX Uhungarumlaut Aogonek -50 KPX Uhungarumlaut Aring -50 KPX Uhungarumlaut Atilde -50 KPX Uhungarumlaut comma -30 KPX Uhungarumlaut period -30 KPX Umacron A -50 KPX Umacron Aacute -50 KPX Umacron Abreve -50 KPX Umacron Acircumflex -50 KPX Umacron Adieresis -50 KPX Umacron Agrave -50 KPX Umacron Amacron -50 KPX Umacron Aogonek -50 KPX Umacron Aring -50 KPX Umacron Atilde -50 KPX Umacron comma -30 KPX Umacron period -30 KPX Uogonek A -50 KPX Uogonek Aacute -50 KPX Uogonek Abreve -50 KPX Uogonek Acircumflex -50 KPX Uogonek Adieresis -50 KPX Uogonek Agrave -50 KPX Uogonek Amacron -50 KPX Uogonek Aogonek -50 KPX Uogonek Aring -50 KPX Uogonek Atilde -50 KPX Uogonek comma -30 KPX Uogonek period -30 KPX Uring A -50 KPX Uring Aacute -50 KPX Uring Abreve -50 KPX Uring Acircumflex -50 KPX Uring Adieresis -50 KPX Uring Agrave -50 KPX Uring Amacron -50 KPX Uring Aogonek -50 KPX Uring Aring -50 KPX Uring Atilde -50 KPX Uring comma -30 KPX Uring period -30 KPX V A -80 KPX V Aacute -80 KPX V Abreve -80 KPX V Acircumflex -80 KPX V Adieresis -80 KPX V Agrave -80 KPX V Amacron -80 KPX V Aogonek -80 KPX V Aring -80 KPX V Atilde -80 KPX V G -50 KPX V Gbreve -50 KPX V Gcommaaccent -50 KPX V O -50 KPX V Oacute -50 KPX V Ocircumflex -50 KPX V Odieresis -50 KPX V Ograve -50 KPX V Ohungarumlaut -50 KPX V Omacron -50 KPX V Oslash -50 KPX V Otilde -50 KPX V a -60 KPX V aacute -60 KPX V abreve -60 KPX V acircumflex -60 KPX V adieresis -60 KPX V agrave -60 KPX V amacron -60 KPX V aogonek -60 KPX V aring -60 KPX V atilde -60 KPX V colon -40 KPX V comma -120 KPX V e -50 KPX V eacute -50 KPX V ecaron -50 KPX V ecircumflex -50 KPX V edieresis -50 KPX V edotaccent -50 KPX V egrave -50 KPX V emacron -50 KPX V eogonek -50 KPX V hyphen -80 KPX V o -90 KPX V oacute -90 KPX V ocircumflex -90 KPX V odieresis -90 KPX V ograve -90 KPX V ohungarumlaut -90 KPX V omacron -90 KPX V oslash -90 KPX V otilde -90 KPX V period -120 KPX V semicolon -40 KPX V u -60 KPX V uacute -60 KPX V ucircumflex -60 KPX V udieresis -60 KPX V ugrave -60 KPX V uhungarumlaut -60 KPX V umacron -60 KPX V uogonek -60 KPX V uring -60 KPX W A -60 KPX W Aacute -60 KPX W Abreve -60 KPX W Acircumflex -60 KPX W Adieresis -60 KPX W Agrave -60 KPX W Amacron -60 KPX W Aogonek -60 KPX W Aring -60 KPX W Atilde -60 KPX W O -20 KPX W Oacute -20 KPX W Ocircumflex -20 KPX W Odieresis -20 KPX W Ograve -20 KPX W Ohungarumlaut -20 KPX W Omacron -20 KPX W Oslash -20 KPX W Otilde -20 KPX W a -40 KPX W aacute -40 KPX W abreve -40 KPX W acircumflex -40 KPX W adieresis -40 KPX W agrave -40 KPX W amacron -40 KPX W aogonek -40 KPX W aring -40 KPX W atilde -40 KPX W colon -10 KPX W comma -80 KPX W e -35 KPX W eacute -35 KPX W ecaron -35 KPX W ecircumflex -35 KPX W edieresis -35 KPX W edotaccent -35 KPX W egrave -35 KPX W emacron -35 KPX W eogonek -35 KPX W hyphen -40 KPX W o -60 KPX W oacute -60 KPX W ocircumflex -60 KPX W odieresis -60 KPX W ograve -60 KPX W ohungarumlaut -60 KPX W omacron -60 KPX W oslash -60 KPX W otilde -60 KPX W period -80 KPX W semicolon -10 KPX W u -45 KPX W uacute -45 KPX W ucircumflex -45 KPX W udieresis -45 KPX W ugrave -45 KPX W uhungarumlaut -45 KPX W umacron -45 KPX W uogonek -45 KPX W uring -45 KPX W y -20 KPX W yacute -20 KPX W ydieresis -20 KPX Y A -110 KPX Y Aacute -110 KPX Y Abreve -110 KPX Y Acircumflex -110 KPX Y Adieresis -110 KPX Y Agrave -110 KPX Y Amacron -110 KPX Y Aogonek -110 KPX Y Aring -110 KPX Y Atilde -110 KPX Y O -70 KPX Y Oacute -70 KPX Y Ocircumflex -70 KPX Y Odieresis -70 KPX Y Ograve -70 KPX Y Ohungarumlaut -70 KPX Y Omacron -70 KPX Y Oslash -70 KPX Y Otilde -70 KPX Y a -90 KPX Y aacute -90 KPX Y abreve -90 KPX Y acircumflex -90 KPX Y adieresis -90 KPX Y agrave -90 KPX Y amacron -90 KPX Y aogonek -90 KPX Y aring -90 KPX Y atilde -90 KPX Y colon -50 KPX Y comma -100 KPX Y e -80 KPX Y eacute -80 KPX Y ecaron -80 KPX Y ecircumflex -80 KPX Y edieresis -80 KPX Y edotaccent -80 KPX Y egrave -80 KPX Y emacron -80 KPX Y eogonek -80 KPX Y o -100 KPX Y oacute -100 KPX Y ocircumflex -100 KPX Y odieresis -100 KPX Y ograve -100 KPX Y ohungarumlaut -100 KPX Y omacron -100 KPX Y oslash -100 KPX Y otilde -100 KPX Y period -100 KPX Y semicolon -50 KPX Y u -100 KPX Y uacute -100 KPX Y ucircumflex -100 KPX Y udieresis -100 KPX Y ugrave -100 KPX Y uhungarumlaut -100 KPX Y umacron -100 KPX Y uogonek -100 KPX Y uring -100 KPX Yacute A -110 KPX Yacute Aacute -110 KPX Yacute Abreve -110 KPX Yacute Acircumflex -110 KPX Yacute Adieresis -110 KPX Yacute Agrave -110 KPX Yacute Amacron -110 KPX Yacute Aogonek -110 KPX Yacute Aring -110 KPX Yacute Atilde -110 KPX Yacute O -70 KPX Yacute Oacute -70 KPX Yacute Ocircumflex -70 KPX Yacute Odieresis -70 KPX Yacute Ograve -70 KPX Yacute Ohungarumlaut -70 KPX Yacute Omacron -70 KPX Yacute Oslash -70 KPX Yacute Otilde -70 KPX Yacute a -90 KPX Yacute aacute -90 KPX Yacute abreve -90 KPX Yacute acircumflex -90 KPX Yacute adieresis -90 KPX Yacute agrave -90 KPX Yacute amacron -90 KPX Yacute aogonek -90 KPX Yacute aring -90 KPX Yacute atilde -90 KPX Yacute colon -50 KPX Yacute comma -100 KPX Yacute e -80 KPX Yacute eacute -80 KPX Yacute ecaron -80 KPX Yacute ecircumflex -80 KPX Yacute edieresis -80 KPX Yacute edotaccent -80 KPX Yacute egrave -80 KPX Yacute emacron -80 KPX Yacute eogonek -80 KPX Yacute o -100 KPX Yacute oacute -100 KPX Yacute ocircumflex -100 KPX Yacute odieresis -100 KPX Yacute ograve -100 KPX Yacute ohungarumlaut -100 KPX Yacute omacron -100 KPX Yacute oslash -100 KPX Yacute otilde -100 KPX Yacute period -100 KPX Yacute semicolon -50 KPX Yacute u -100 KPX Yacute uacute -100 KPX Yacute ucircumflex -100 KPX Yacute udieresis -100 KPX Yacute ugrave -100 KPX Yacute uhungarumlaut -100 KPX Yacute umacron -100 KPX Yacute uogonek -100 KPX Yacute uring -100 KPX Ydieresis A -110 KPX Ydieresis Aacute -110 KPX Ydieresis Abreve -110 KPX Ydieresis Acircumflex -110 KPX Ydieresis Adieresis -110 KPX Ydieresis Agrave -110 KPX Ydieresis Amacron -110 KPX Ydieresis Aogonek -110 KPX Ydieresis Aring -110 KPX Ydieresis Atilde -110 KPX Ydieresis O -70 KPX Ydieresis Oacute -70 KPX Ydieresis Ocircumflex -70 KPX Ydieresis Odieresis -70 KPX Ydieresis Ograve -70 KPX Ydieresis Ohungarumlaut -70 KPX Ydieresis Omacron -70 KPX Ydieresis Oslash -70 KPX Ydieresis Otilde -70 KPX Ydieresis a -90 KPX Ydieresis aacute -90 KPX Ydieresis abreve -90 KPX Ydieresis acircumflex -90 KPX Ydieresis adieresis -90 KPX Ydieresis agrave -90 KPX Ydieresis amacron -90 KPX Ydieresis aogonek -90 KPX Ydieresis aring -90 KPX Ydieresis atilde -90 KPX Ydieresis colon -50 KPX Ydieresis comma -100 KPX Ydieresis e -80 KPX Ydieresis eacute -80 KPX Ydieresis ecaron -80 KPX Ydieresis ecircumflex -80 KPX Ydieresis edieresis -80 KPX Ydieresis edotaccent -80 KPX Ydieresis egrave -80 KPX Ydieresis emacron -80 KPX Ydieresis eogonek -80 KPX Ydieresis o -100 KPX Ydieresis oacute -100 KPX Ydieresis ocircumflex -100 KPX Ydieresis odieresis -100 KPX Ydieresis ograve -100 KPX Ydieresis ohungarumlaut -100 KPX Ydieresis omacron -100 KPX Ydieresis oslash -100 KPX Ydieresis otilde -100 KPX Ydieresis period -100 KPX Ydieresis semicolon -50 KPX Ydieresis u -100 KPX Ydieresis uacute -100 KPX Ydieresis ucircumflex -100 KPX Ydieresis udieresis -100 KPX Ydieresis ugrave -100 KPX Ydieresis uhungarumlaut -100 KPX Ydieresis umacron -100 KPX Ydieresis uogonek -100 KPX Ydieresis uring -100 KPX a g -10 KPX a gbreve -10 KPX a gcommaaccent -10 KPX a v -15 KPX a w -15 KPX a y -20 KPX a yacute -20 KPX a ydieresis -20 KPX aacute g -10 KPX aacute gbreve -10 KPX aacute gcommaaccent -10 KPX aacute v -15 KPX aacute w -15 KPX aacute y -20 KPX aacute yacute -20 KPX aacute ydieresis -20 KPX abreve g -10 KPX abreve gbreve -10 KPX abreve gcommaaccent -10 KPX abreve v -15 KPX abreve w -15 KPX abreve y -20 KPX abreve yacute -20 KPX abreve ydieresis -20 KPX acircumflex g -10 KPX acircumflex gbreve -10 KPX acircumflex gcommaaccent -10 KPX acircumflex v -15 KPX acircumflex w -15 KPX acircumflex y -20 KPX acircumflex yacute -20 KPX acircumflex ydieresis -20 KPX adieresis g -10 KPX adieresis gbreve -10 KPX adieresis gcommaaccent -10 KPX adieresis v -15 KPX adieresis w -15 KPX adieresis y -20 KPX adieresis yacute -20 KPX adieresis ydieresis -20 KPX agrave g -10 KPX agrave gbreve -10 KPX agrave gcommaaccent -10 KPX agrave v -15 KPX agrave w -15 KPX agrave y -20 KPX agrave yacute -20 KPX agrave ydieresis -20 KPX amacron g -10 KPX amacron gbreve -10 KPX amacron gcommaaccent -10 KPX amacron v -15 KPX amacron w -15 KPX amacron y -20 KPX amacron yacute -20 KPX amacron ydieresis -20 KPX aogonek g -10 KPX aogonek gbreve -10 KPX aogonek gcommaaccent -10 KPX aogonek v -15 KPX aogonek w -15 KPX aogonek y -20 KPX aogonek yacute -20 KPX aogonek ydieresis -20 KPX aring g -10 KPX aring gbreve -10 KPX aring gcommaaccent -10 KPX aring v -15 KPX aring w -15 KPX aring y -20 KPX aring yacute -20 KPX aring ydieresis -20 KPX atilde g -10 KPX atilde gbreve -10 KPX atilde gcommaaccent -10 KPX atilde v -15 KPX atilde w -15 KPX atilde y -20 KPX atilde yacute -20 KPX atilde ydieresis -20 KPX b l -10 KPX b lacute -10 KPX b lcommaaccent -10 KPX b lslash -10 KPX b u -20 KPX b uacute -20 KPX b ucircumflex -20 KPX b udieresis -20 KPX b ugrave -20 KPX b uhungarumlaut -20 KPX b umacron -20 KPX b uogonek -20 KPX b uring -20 KPX b v -20 KPX b y -20 KPX b yacute -20 KPX b ydieresis -20 KPX c h -10 KPX c k -20 KPX c kcommaaccent -20 KPX c l -20 KPX c lacute -20 KPX c lcommaaccent -20 KPX c lslash -20 KPX c y -10 KPX c yacute -10 KPX c ydieresis -10 KPX cacute h -10 KPX cacute k -20 KPX cacute kcommaaccent -20 KPX cacute l -20 KPX cacute lacute -20 KPX cacute lcommaaccent -20 KPX cacute lslash -20 KPX cacute y -10 KPX cacute yacute -10 KPX cacute ydieresis -10 KPX ccaron h -10 KPX ccaron k -20 KPX ccaron kcommaaccent -20 KPX ccaron l -20 KPX ccaron lacute -20 KPX ccaron lcommaaccent -20 KPX ccaron lslash -20 KPX ccaron y -10 KPX ccaron yacute -10 KPX ccaron ydieresis -10 KPX ccedilla h -10 KPX ccedilla k -20 KPX ccedilla kcommaaccent -20 KPX ccedilla l -20 KPX ccedilla lacute -20 KPX ccedilla lcommaaccent -20 KPX ccedilla lslash -20 KPX ccedilla y -10 KPX ccedilla yacute -10 KPX ccedilla ydieresis -10 KPX colon space -40 KPX comma quotedblright -120 KPX comma quoteright -120 KPX comma space -40 KPX d d -10 KPX d dcroat -10 KPX d v -15 KPX d w -15 KPX d y -15 KPX d yacute -15 KPX d ydieresis -15 KPX dcroat d -10 KPX dcroat dcroat -10 KPX dcroat v -15 KPX dcroat w -15 KPX dcroat y -15 KPX dcroat yacute -15 KPX dcroat ydieresis -15 KPX e comma 10 KPX e period 20 KPX e v -15 KPX e w -15 KPX e x -15 KPX e y -15 KPX e yacute -15 KPX e ydieresis -15 KPX eacute comma 10 KPX eacute period 20 KPX eacute v -15 KPX eacute w -15 KPX eacute x -15 KPX eacute y -15 KPX eacute yacute -15 KPX eacute ydieresis -15 KPX ecaron comma 10 KPX ecaron period 20 KPX ecaron v -15 KPX ecaron w -15 KPX ecaron x -15 KPX ecaron y -15 KPX ecaron yacute -15 KPX ecaron ydieresis -15 KPX ecircumflex comma 10 KPX ecircumflex period 20 KPX ecircumflex v -15 KPX ecircumflex w -15 KPX ecircumflex x -15 KPX ecircumflex y -15 KPX ecircumflex yacute -15 KPX ecircumflex ydieresis -15 KPX edieresis comma 10 KPX edieresis period 20 KPX edieresis v -15 KPX edieresis w -15 KPX edieresis x -15 KPX edieresis y -15 KPX edieresis yacute -15 KPX edieresis ydieresis -15 KPX edotaccent comma 10 KPX edotaccent period 20 KPX edotaccent v -15 KPX edotaccent w -15 KPX edotaccent x -15 KPX edotaccent y -15 KPX edotaccent yacute -15 KPX edotaccent ydieresis -15 KPX egrave comma 10 KPX egrave period 20 KPX egrave v -15 KPX egrave w -15 KPX egrave x -15 KPX egrave y -15 KPX egrave yacute -15 KPX egrave ydieresis -15 KPX emacron comma 10 KPX emacron period 20 KPX emacron v -15 KPX emacron w -15 KPX emacron x -15 KPX emacron y -15 KPX emacron yacute -15 KPX emacron ydieresis -15 KPX eogonek comma 10 KPX eogonek period 20 KPX eogonek v -15 KPX eogonek w -15 KPX eogonek x -15 KPX eogonek y -15 KPX eogonek yacute -15 KPX eogonek ydieresis -15 KPX f comma -10 KPX f e -10 KPX f eacute -10 KPX f ecaron -10 KPX f ecircumflex -10 KPX f edieresis -10 KPX f edotaccent -10 KPX f egrave -10 KPX f emacron -10 KPX f eogonek -10 KPX f o -20 KPX f oacute -20 KPX f ocircumflex -20 KPX f odieresis -20 KPX f ograve -20 KPX f ohungarumlaut -20 KPX f omacron -20 KPX f oslash -20 KPX f otilde -20 KPX f period -10 KPX f quotedblright 30 KPX f quoteright 30 KPX g e 10 KPX g eacute 10 KPX g ecaron 10 KPX g ecircumflex 10 KPX g edieresis 10 KPX g edotaccent 10 KPX g egrave 10 KPX g emacron 10 KPX g eogonek 10 KPX g g -10 KPX g gbreve -10 KPX g gcommaaccent -10 KPX gbreve e 10 KPX gbreve eacute 10 KPX gbreve ecaron 10 KPX gbreve ecircumflex 10 KPX gbreve edieresis 10 KPX gbreve edotaccent 10 KPX gbreve egrave 10 KPX gbreve emacron 10 KPX gbreve eogonek 10 KPX gbreve g -10 KPX gbreve gbreve -10 KPX gbreve gcommaaccent -10 KPX gcommaaccent e 10 KPX gcommaaccent eacute 10 KPX gcommaaccent ecaron 10 KPX gcommaaccent ecircumflex 10 KPX gcommaaccent edieresis 10 KPX gcommaaccent edotaccent 10 KPX gcommaaccent egrave 10 KPX gcommaaccent emacron 10 KPX gcommaaccent eogonek 10 KPX gcommaaccent g -10 KPX gcommaaccent gbreve -10 KPX gcommaaccent gcommaaccent -10 KPX h y -20 KPX h yacute -20 KPX h ydieresis -20 KPX k o -15 KPX k oacute -15 KPX k ocircumflex -15 KPX k odieresis -15 KPX k ograve -15 KPX k ohungarumlaut -15 KPX k omacron -15 KPX k oslash -15 KPX k otilde -15 KPX kcommaaccent o -15 KPX kcommaaccent oacute -15 KPX kcommaaccent ocircumflex -15 KPX kcommaaccent odieresis -15 KPX kcommaaccent ograve -15 KPX kcommaaccent ohungarumlaut -15 KPX kcommaaccent omacron -15 KPX kcommaaccent oslash -15 KPX kcommaaccent otilde -15 KPX l w -15 KPX l y -15 KPX l yacute -15 KPX l ydieresis -15 KPX lacute w -15 KPX lacute y -15 KPX lacute yacute -15 KPX lacute ydieresis -15 KPX lcommaaccent w -15 KPX lcommaaccent y -15 KPX lcommaaccent yacute -15 KPX lcommaaccent ydieresis -15 KPX lslash w -15 KPX lslash y -15 KPX lslash yacute -15 KPX lslash ydieresis -15 KPX m u -20 KPX m uacute -20 KPX m ucircumflex -20 KPX m udieresis -20 KPX m ugrave -20 KPX m uhungarumlaut -20 KPX m umacron -20 KPX m uogonek -20 KPX m uring -20 KPX m y -30 KPX m yacute -30 KPX m ydieresis -30 KPX n u -10 KPX n uacute -10 KPX n ucircumflex -10 KPX n udieresis -10 KPX n ugrave -10 KPX n uhungarumlaut -10 KPX n umacron -10 KPX n uogonek -10 KPX n uring -10 KPX n v -40 KPX n y -20 KPX n yacute -20 KPX n ydieresis -20 KPX nacute u -10 KPX nacute uacute -10 KPX nacute ucircumflex -10 KPX nacute udieresis -10 KPX nacute ugrave -10 KPX nacute uhungarumlaut -10 KPX nacute umacron -10 KPX nacute uogonek -10 KPX nacute uring -10 KPX nacute v -40 KPX nacute y -20 KPX nacute yacute -20 KPX nacute ydieresis -20 KPX ncaron u -10 KPX ncaron uacute -10 KPX ncaron ucircumflex -10 KPX ncaron udieresis -10 KPX ncaron ugrave -10 KPX ncaron uhungarumlaut -10 KPX ncaron umacron -10 KPX ncaron uogonek -10 KPX ncaron uring -10 KPX ncaron v -40 KPX ncaron y -20 KPX ncaron yacute -20 KPX ncaron ydieresis -20 KPX ncommaaccent u -10 KPX ncommaaccent uacute -10 KPX ncommaaccent ucircumflex -10 KPX ncommaaccent udieresis -10 KPX ncommaaccent ugrave -10 KPX ncommaaccent uhungarumlaut -10 KPX ncommaaccent umacron -10 KPX ncommaaccent uogonek -10 KPX ncommaaccent uring -10 KPX ncommaaccent v -40 KPX ncommaaccent y -20 KPX ncommaaccent yacute -20 KPX ncommaaccent ydieresis -20 KPX ntilde u -10 KPX ntilde uacute -10 KPX ntilde ucircumflex -10 KPX ntilde udieresis -10 KPX ntilde ugrave -10 KPX ntilde uhungarumlaut -10 KPX ntilde umacron -10 KPX ntilde uogonek -10 KPX ntilde uring -10 KPX ntilde v -40 KPX ntilde y -20 KPX ntilde yacute -20 KPX ntilde ydieresis -20 KPX o v -20 KPX o w -15 KPX o x -30 KPX o y -20 KPX o yacute -20 KPX o ydieresis -20 KPX oacute v -20 KPX oacute w -15 KPX oacute x -30 KPX oacute y -20 KPX oacute yacute -20 KPX oacute ydieresis -20 KPX ocircumflex v -20 KPX ocircumflex w -15 KPX ocircumflex x -30 KPX ocircumflex y -20 KPX ocircumflex yacute -20 KPX ocircumflex ydieresis -20 KPX odieresis v -20 KPX odieresis w -15 KPX odieresis x -30 KPX odieresis y -20 KPX odieresis yacute -20 KPX odieresis ydieresis -20 KPX ograve v -20 KPX ograve w -15 KPX ograve x -30 KPX ograve y -20 KPX ograve yacute -20 KPX ograve ydieresis -20 KPX ohungarumlaut v -20 KPX ohungarumlaut w -15 KPX ohungarumlaut x -30 KPX ohungarumlaut y -20 KPX ohungarumlaut yacute -20 KPX ohungarumlaut ydieresis -20 KPX omacron v -20 KPX omacron w -15 KPX omacron x -30 KPX omacron y -20 KPX omacron yacute -20 KPX omacron ydieresis -20 KPX oslash v -20 KPX oslash w -15 KPX oslash x -30 KPX oslash y -20 KPX oslash yacute -20 KPX oslash ydieresis -20 KPX otilde v -20 KPX otilde w -15 KPX otilde x -30 KPX otilde y -20 KPX otilde yacute -20 KPX otilde ydieresis -20 KPX p y -15 KPX p yacute -15 KPX p ydieresis -15 KPX period quotedblright -120 KPX period quoteright -120 KPX period space -40 KPX quotedblright space -80 KPX quoteleft quoteleft -46 KPX quoteright d -80 KPX quoteright dcroat -80 KPX quoteright l -20 KPX quoteright lacute -20 KPX quoteright lcommaaccent -20 KPX quoteright lslash -20 KPX quoteright quoteright -46 KPX quoteright r -40 KPX quoteright racute -40 KPX quoteright rcaron -40 KPX quoteright rcommaaccent -40 KPX quoteright s -60 KPX quoteright sacute -60 KPX quoteright scaron -60 KPX quoteright scedilla -60 KPX quoteright scommaaccent -60 KPX quoteright space -80 KPX quoteright v -20 KPX r c -20 KPX r cacute -20 KPX r ccaron -20 KPX r ccedilla -20 KPX r comma -60 KPX r d -20 KPX r dcroat -20 KPX r g -15 KPX r gbreve -15 KPX r gcommaaccent -15 KPX r hyphen -20 KPX r o -20 KPX r oacute -20 KPX r ocircumflex -20 KPX r odieresis -20 KPX r ograve -20 KPX r ohungarumlaut -20 KPX r omacron -20 KPX r oslash -20 KPX r otilde -20 KPX r period -60 KPX r q -20 KPX r s -15 KPX r sacute -15 KPX r scaron -15 KPX r scedilla -15 KPX r scommaaccent -15 KPX r t 20 KPX r tcommaaccent 20 KPX r v 10 KPX r y 10 KPX r yacute 10 KPX r ydieresis 10 KPX racute c -20 KPX racute cacute -20 KPX racute ccaron -20 KPX racute ccedilla -20 KPX racute comma -60 KPX racute d -20 KPX racute dcroat -20 KPX racute g -15 KPX racute gbreve -15 KPX racute gcommaaccent -15 KPX racute hyphen -20 KPX racute o -20 KPX racute oacute -20 KPX racute ocircumflex -20 KPX racute odieresis -20 KPX racute ograve -20 KPX racute ohungarumlaut -20 KPX racute omacron -20 KPX racute oslash -20 KPX racute otilde -20 KPX racute period -60 KPX racute q -20 KPX racute s -15 KPX racute sacute -15 KPX racute scaron -15 KPX racute scedilla -15 KPX racute scommaaccent -15 KPX racute t 20 KPX racute tcommaaccent 20 KPX racute v 10 KPX racute y 10 KPX racute yacute 10 KPX racute ydieresis 10 KPX rcaron c -20 KPX rcaron cacute -20 KPX rcaron ccaron -20 KPX rcaron ccedilla -20 KPX rcaron comma -60 KPX rcaron d -20 KPX rcaron dcroat -20 KPX rcaron g -15 KPX rcaron gbreve -15 KPX rcaron gcommaaccent -15 KPX rcaron hyphen -20 KPX rcaron o -20 KPX rcaron oacute -20 KPX rcaron ocircumflex -20 KPX rcaron odieresis -20 KPX rcaron ograve -20 KPX rcaron ohungarumlaut -20 KPX rcaron omacron -20 KPX rcaron oslash -20 KPX rcaron otilde -20 KPX rcaron period -60 KPX rcaron q -20 KPX rcaron s -15 KPX rcaron sacute -15 KPX rcaron scaron -15 KPX rcaron scedilla -15 KPX rcaron scommaaccent -15 KPX rcaron t 20 KPX rcaron tcommaaccent 20 KPX rcaron v 10 KPX rcaron y 10 KPX rcaron yacute 10 KPX rcaron ydieresis 10 KPX rcommaaccent c -20 KPX rcommaaccent cacute -20 KPX rcommaaccent ccaron -20 KPX rcommaaccent ccedilla -20 KPX rcommaaccent comma -60 KPX rcommaaccent d -20 KPX rcommaaccent dcroat -20 KPX rcommaaccent g -15 KPX rcommaaccent gbreve -15 KPX rcommaaccent gcommaaccent -15 KPX rcommaaccent hyphen -20 KPX rcommaaccent o -20 KPX rcommaaccent oacute -20 KPX rcommaaccent ocircumflex -20 KPX rcommaaccent odieresis -20 KPX rcommaaccent ograve -20 KPX rcommaaccent ohungarumlaut -20 KPX rcommaaccent omacron -20 KPX rcommaaccent oslash -20 KPX rcommaaccent otilde -20 KPX rcommaaccent period -60 KPX rcommaaccent q -20 KPX rcommaaccent s -15 KPX rcommaaccent sacute -15 KPX rcommaaccent scaron -15 KPX rcommaaccent scedilla -15 KPX rcommaaccent scommaaccent -15 KPX rcommaaccent t 20 KPX rcommaaccent tcommaaccent 20 KPX rcommaaccent v 10 KPX rcommaaccent y 10 KPX rcommaaccent yacute 10 KPX rcommaaccent ydieresis 10 KPX s w -15 KPX sacute w -15 KPX scaron w -15 KPX scedilla w -15 KPX scommaaccent w -15 KPX semicolon space -40 KPX space T -100 KPX space Tcaron -100 KPX space Tcommaaccent -100 KPX space V -80 KPX space W -80 KPX space Y -120 KPX space Yacute -120 KPX space Ydieresis -120 KPX space quotedblleft -80 KPX space quoteleft -60 KPX v a -20 KPX v aacute -20 KPX v abreve -20 KPX v acircumflex -20 KPX v adieresis -20 KPX v agrave -20 KPX v amacron -20 KPX v aogonek -20 KPX v aring -20 KPX v atilde -20 KPX v comma -80 KPX v o -30 KPX v oacute -30 KPX v ocircumflex -30 KPX v odieresis -30 KPX v ograve -30 KPX v ohungarumlaut -30 KPX v omacron -30 KPX v oslash -30 KPX v otilde -30 KPX v period -80 KPX w comma -40 KPX w o -20 KPX w oacute -20 KPX w ocircumflex -20 KPX w odieresis -20 KPX w ograve -20 KPX w ohungarumlaut -20 KPX w omacron -20 KPX w oslash -20 KPX w otilde -20 KPX w period -40 KPX x e -10 KPX x eacute -10 KPX x ecaron -10 KPX x ecircumflex -10 KPX x edieresis -10 KPX x edotaccent -10 KPX x egrave -10 KPX x emacron -10 KPX x eogonek -10 KPX y a -30 KPX y aacute -30 KPX y abreve -30 KPX y acircumflex -30 KPX y adieresis -30 KPX y agrave -30 KPX y amacron -30 KPX y aogonek -30 KPX y aring -30 KPX y atilde -30 KPX y comma -80 KPX y e -10 KPX y eacute -10 KPX y ecaron -10 KPX y ecircumflex -10 KPX y edieresis -10 KPX y edotaccent -10 KPX y egrave -10 KPX y emacron -10 KPX y eogonek -10 KPX y o -25 KPX y oacute -25 KPX y ocircumflex -25 KPX y odieresis -25 KPX y ograve -25 KPX y ohungarumlaut -25 KPX y omacron -25 KPX y oslash -25 KPX y otilde -25 KPX y period -80 KPX yacute a -30 KPX yacute aacute -30 KPX yacute abreve -30 KPX yacute acircumflex -30 KPX yacute adieresis -30 KPX yacute agrave -30 KPX yacute amacron -30 KPX yacute aogonek -30 KPX yacute aring -30 KPX yacute atilde -30 KPX yacute comma -80 KPX yacute e -10 KPX yacute eacute -10 KPX yacute ecaron -10 KPX yacute ecircumflex -10 KPX yacute edieresis -10 KPX yacute edotaccent -10 KPX yacute egrave -10 KPX yacute emacron -10 KPX yacute eogonek -10 KPX yacute o -25 KPX yacute oacute -25 KPX yacute ocircumflex -25 KPX yacute odieresis -25 KPX yacute ograve -25 KPX yacute ohungarumlaut -25 KPX yacute omacron -25 KPX yacute oslash -25 KPX yacute otilde -25 KPX yacute period -80 KPX ydieresis a -30 KPX ydieresis aacute -30 KPX ydieresis abreve -30 KPX ydieresis acircumflex -30 KPX ydieresis adieresis -30 KPX ydieresis agrave -30 KPX ydieresis amacron -30 KPX ydieresis aogonek -30 KPX ydieresis aring -30 KPX ydieresis atilde -30 KPX ydieresis comma -80 KPX ydieresis e -10 KPX ydieresis eacute -10 KPX ydieresis ecaron -10 KPX ydieresis ecircumflex -10 KPX ydieresis edieresis -10 KPX ydieresis edotaccent -10 KPX ydieresis egrave -10 KPX ydieresis emacron -10 KPX ydieresis eogonek -10 KPX ydieresis o -25 KPX ydieresis oacute -25 KPX ydieresis ocircumflex -25 KPX ydieresis odieresis -25 KPX ydieresis ograve -25 KPX ydieresis ohungarumlaut -25 KPX ydieresis omacron -25 KPX ydieresis oslash -25 KPX ydieresis otilde -25 KPX ydieresis period -80 KPX z e 10 KPX z eacute 10 KPX z ecaron 10 KPX z ecircumflex 10 KPX z edieresis 10 KPX z edotaccent 10 KPX z egrave 10 KPX z emacron 10 KPX z eogonek 10 KPX zacute e 10 KPX zacute eacute 10 KPX zacute ecaron 10 KPX zacute ecircumflex 10 KPX zacute edieresis 10 KPX zacute edotaccent 10 KPX zacute egrave 10 KPX zacute emacron 10 KPX zacute eogonek 10 KPX zcaron e 10 KPX zcaron eacute 10 KPX zcaron ecaron 10 KPX zcaron ecircumflex 10 KPX zcaron edieresis 10 KPX zcaron edotaccent 10 KPX zcaron egrave 10 KPX zcaron emacron 10 KPX zcaron eogonek 10 KPX zdotaccent e 10 KPX zdotaccent eacute 10 KPX zdotaccent ecaron 10 KPX zdotaccent ecircumflex 10 KPX zdotaccent edieresis 10 KPX zdotaccent edotaccent 10 KPX zdotaccent egrave 10 KPX zdotaccent emacron 10 KPX zdotaccent eogonek 10 EndKernPairs EndKernData EndFontMetrics a2ps-4.14/afm/ptmb.afm0000644000175000017500000017527310674334154014045 0ustar mhattamhattaStartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Thu May 1 12:52:56 1997 Comment UniqueID 43065 Comment VMusage 41636 52661 FontName Times-Bold FullName Times Bold FamilyName Times Weight Bold ItalicAngle 0 IsFixedPitch false FontBBox -168 -218 1000 935 UnderlinePosition -100 UnderlineThickness 50 Version 002.000 Notice Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype-Hell AG and/or its subsidiaries. EncodingScheme AdobeStandardEncoding CapHeight 676 XHeight 461 Ascender 683 Descender -217 StdHW 44 StdVW 139 StartCharMetrics 314 C 32 ; WX 250 ; N space ; B 0 0 0 0 ; C 33 ; WX 333 ; N exclam ; B 81 -13 251 691 ; C 34 ; WX 555 ; N quotedbl ; B 83 404 472 691 ; C 35 ; WX 500 ; N numbersign ; B 4 0 496 700 ; C 36 ; WX 500 ; N dollar ; B 29 -99 472 750 ; C 37 ; WX 1000 ; N percent ; B 124 -14 877 692 ; C 38 ; WX 833 ; N ampersand ; B 62 -16 787 691 ; C 39 ; WX 333 ; N quoteright ; B 79 356 263 691 ; C 40 ; WX 333 ; N parenleft ; B 46 -168 306 694 ; C 41 ; WX 333 ; N parenright ; B 27 -168 287 694 ; C 42 ; WX 500 ; N asterisk ; B 56 255 447 691 ; C 43 ; WX 570 ; N plus ; B 33 0 537 506 ; C 44 ; WX 250 ; N comma ; B 39 -180 223 155 ; C 45 ; WX 333 ; N hyphen ; B 44 171 287 287 ; C 46 ; WX 250 ; N period ; B 41 -13 210 156 ; C 47 ; WX 278 ; N slash ; B -24 -19 302 691 ; C 48 ; WX 500 ; N zero ; B 24 -13 476 688 ; C 49 ; WX 500 ; N one ; B 65 0 442 688 ; C 50 ; WX 500 ; N two ; B 17 0 478 688 ; C 51 ; WX 500 ; N three ; B 16 -14 468 688 ; C 52 ; WX 500 ; N four ; B 19 0 475 688 ; C 53 ; WX 500 ; N five ; B 22 -8 470 676 ; C 54 ; WX 500 ; N six ; B 28 -13 475 688 ; C 55 ; WX 500 ; N seven ; B 17 0 477 676 ; C 56 ; WX 500 ; N eight ; B 28 -13 472 688 ; C 57 ; WX 500 ; N nine ; B 26 -13 473 688 ; C 58 ; WX 333 ; N colon ; B 82 -13 251 472 ; C 59 ; WX 333 ; N semicolon ; B 82 -180 266 472 ; C 60 ; WX 570 ; N less ; B 31 -8 539 514 ; C 61 ; WX 570 ; N equal ; B 33 107 537 399 ; C 62 ; WX 570 ; N greater ; B 31 -8 539 514 ; C 63 ; WX 500 ; N question ; B 57 -13 445 689 ; C 64 ; WX 930 ; N at ; B 108 -19 822 691 ; C 65 ; WX 722 ; N A ; B 9 0 689 690 ; C 66 ; WX 667 ; N B ; B 16 0 619 676 ; C 67 ; WX 722 ; N C ; B 49 -19 687 691 ; C 68 ; WX 722 ; N D ; B 14 0 690 676 ; C 69 ; WX 667 ; N E ; B 16 0 641 676 ; C 70 ; WX 611 ; N F ; B 16 0 583 676 ; C 71 ; WX 778 ; N G ; B 37 -19 755 691 ; C 72 ; WX 778 ; N H ; B 21 0 759 676 ; C 73 ; WX 389 ; N I ; B 20 0 370 676 ; C 74 ; WX 500 ; N J ; B 3 -96 479 676 ; C 75 ; WX 778 ; N K ; B 30 0 769 676 ; C 76 ; WX 667 ; N L ; B 19 0 638 676 ; C 77 ; WX 944 ; N M ; B 14 0 921 676 ; C 78 ; WX 722 ; N N ; B 16 -18 701 676 ; C 79 ; WX 778 ; N O ; B 35 -19 743 691 ; C 80 ; WX 611 ; N P ; B 16 0 600 676 ; C 81 ; WX 778 ; N Q ; B 35 -176 743 691 ; C 82 ; WX 722 ; N R ; B 26 0 715 676 ; C 83 ; WX 556 ; N S ; B 35 -19 513 692 ; C 84 ; WX 667 ; N T ; B 31 0 636 676 ; C 85 ; WX 722 ; N U ; B 16 -19 701 676 ; C 86 ; WX 722 ; N V ; B 16 -18 701 676 ; C 87 ; WX 1000 ; N W ; B 19 -15 981 676 ; C 88 ; WX 722 ; N X ; B 16 0 699 676 ; C 89 ; WX 722 ; N Y ; B 15 0 699 676 ; C 90 ; WX 667 ; N Z ; B 28 0 634 676 ; C 91 ; WX 333 ; N bracketleft ; B 67 -149 301 678 ; C 92 ; WX 278 ; N backslash ; B -25 -19 303 691 ; C 93 ; WX 333 ; N bracketright ; B 32 -149 266 678 ; C 94 ; WX 581 ; N asciicircum ; B 73 311 509 676 ; C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; C 96 ; WX 333 ; N quoteleft ; B 70 356 254 691 ; C 97 ; WX 500 ; N a ; B 25 -14 488 473 ; C 98 ; WX 556 ; N b ; B 17 -14 521 676 ; C 99 ; WX 444 ; N c ; B 25 -14 430 473 ; C 100 ; WX 556 ; N d ; B 25 -14 534 676 ; C 101 ; WX 444 ; N e ; B 25 -14 426 473 ; C 102 ; WX 333 ; N f ; B 14 0 389 691 ; L i fi ; L l fl ; C 103 ; WX 500 ; N g ; B 28 -206 483 473 ; C 104 ; WX 556 ; N h ; B 16 0 534 676 ; C 105 ; WX 278 ; N i ; B 16 0 255 691 ; C 106 ; WX 333 ; N j ; B -57 -203 263 691 ; C 107 ; WX 556 ; N k ; B 22 0 543 676 ; C 108 ; WX 278 ; N l ; B 16 0 255 676 ; C 109 ; WX 833 ; N m ; B 16 0 814 473 ; C 110 ; WX 556 ; N n ; B 21 0 539 473 ; C 111 ; WX 500 ; N o ; B 25 -14 476 473 ; C 112 ; WX 556 ; N p ; B 19 -205 524 473 ; C 113 ; WX 556 ; N q ; B 34 -205 536 473 ; C 114 ; WX 444 ; N r ; B 29 0 434 473 ; C 115 ; WX 389 ; N s ; B 25 -14 361 473 ; C 116 ; WX 333 ; N t ; B 20 -12 332 630 ; C 117 ; WX 556 ; N u ; B 16 -14 537 461 ; C 118 ; WX 500 ; N v ; B 21 -14 485 461 ; C 119 ; WX 722 ; N w ; B 23 -14 707 461 ; C 120 ; WX 500 ; N x ; B 12 0 484 461 ; C 121 ; WX 500 ; N y ; B 16 -205 480 461 ; C 122 ; WX 444 ; N z ; B 21 0 420 461 ; C 123 ; WX 394 ; N braceleft ; B 22 -175 340 698 ; C 124 ; WX 220 ; N bar ; B 66 -218 154 782 ; C 125 ; WX 394 ; N braceright ; B 54 -175 372 698 ; C 126 ; WX 520 ; N asciitilde ; B 29 173 491 333 ; C 161 ; WX 333 ; N exclamdown ; B 82 -203 252 501 ; C 162 ; WX 500 ; N cent ; B 53 -140 458 588 ; C 163 ; WX 500 ; N sterling ; B 21 -14 477 684 ; C 164 ; WX 167 ; N fraction ; B -168 -12 329 688 ; C 165 ; WX 500 ; N yen ; B -64 0 547 676 ; C 166 ; WX 500 ; N florin ; B 0 -155 498 706 ; C 167 ; WX 500 ; N section ; B 57 -132 443 691 ; C 168 ; WX 500 ; N currency ; B -26 61 526 613 ; C 169 ; WX 278 ; N quotesingle ; B 75 404 204 691 ; C 170 ; WX 500 ; N quotedblleft ; B 32 356 486 691 ; C 171 ; WX 500 ; N guillemotleft ; B 23 36 473 415 ; C 172 ; WX 333 ; N guilsinglleft ; B 51 36 305 415 ; C 173 ; WX 333 ; N guilsinglright ; B 28 36 282 415 ; C 174 ; WX 556 ; N fi ; B 14 0 536 691 ; C 175 ; WX 556 ; N fl ; B 14 0 536 691 ; C 177 ; WX 500 ; N endash ; B 0 181 500 271 ; C 178 ; WX 500 ; N dagger ; B 47 -134 453 691 ; C 179 ; WX 500 ; N daggerdbl ; B 45 -132 456 691 ; C 180 ; WX 250 ; N periodcentered ; B 41 248 210 417 ; C 182 ; WX 540 ; N paragraph ; B 0 -186 519 676 ; C 183 ; WX 350 ; N bullet ; B 35 198 315 478 ; C 184 ; WX 333 ; N quotesinglbase ; B 79 -180 263 155 ; C 185 ; WX 500 ; N quotedblbase ; B 14 -180 468 155 ; C 186 ; WX 500 ; N quotedblright ; B 14 356 468 691 ; C 187 ; WX 500 ; N guillemotright ; B 27 36 477 415 ; C 188 ; WX 1000 ; N ellipsis ; B 82 -13 917 156 ; C 189 ; WX 1000 ; N perthousand ; B 7 -29 995 706 ; C 191 ; WX 500 ; N questiondown ; B 55 -201 443 501 ; C 193 ; WX 333 ; N grave ; B 8 528 246 713 ; C 194 ; WX 333 ; N acute ; B 86 528 324 713 ; C 195 ; WX 333 ; N circumflex ; B -2 528 335 704 ; C 196 ; WX 333 ; N tilde ; B -16 547 349 674 ; C 197 ; WX 333 ; N macron ; B 1 565 331 637 ; C 198 ; WX 333 ; N breve ; B 15 528 318 691 ; C 199 ; WX 333 ; N dotaccent ; B 103 536 258 691 ; C 200 ; WX 333 ; N dieresis ; B -2 537 335 667 ; C 202 ; WX 333 ; N ring ; B 60 527 273 740 ; C 203 ; WX 333 ; N cedilla ; B 68 -218 294 0 ; C 205 ; WX 333 ; N hungarumlaut ; B -13 528 425 713 ; C 206 ; WX 333 ; N ogonek ; B 90 -193 319 24 ; C 207 ; WX 333 ; N caron ; B -2 528 335 704 ; C 208 ; WX 1000 ; N emdash ; B 0 181 1000 271 ; C 225 ; WX 1000 ; N AE ; B 4 0 951 676 ; C 227 ; WX 300 ; N ordfeminine ; B -1 397 301 688 ; C 232 ; WX 667 ; N Lslash ; B 19 0 638 676 ; C 233 ; WX 778 ; N Oslash ; B 35 -74 743 737 ; C 234 ; WX 1000 ; N OE ; B 22 -5 981 684 ; C 235 ; WX 330 ; N ordmasculine ; B 18 397 312 688 ; C 241 ; WX 722 ; N ae ; B 33 -14 693 473 ; C 245 ; WX 278 ; N dotlessi ; B 16 0 255 461 ; C 248 ; WX 278 ; N lslash ; B -22 0 303 676 ; C 249 ; WX 500 ; N oslash ; B 25 -92 476 549 ; C 250 ; WX 722 ; N oe ; B 22 -14 696 473 ; C 251 ; WX 556 ; N germandbls ; B 19 -12 517 691 ; C -1 ; WX 389 ; N Idieresis ; B 20 0 370 877 ; C -1 ; WX 444 ; N eacute ; B 25 -14 426 713 ; C -1 ; WX 500 ; N abreve ; B 25 -14 488 691 ; C -1 ; WX 556 ; N uhungarumlaut ; B 16 -14 557 713 ; C -1 ; WX 444 ; N ecaron ; B 25 -14 426 704 ; C -1 ; WX 722 ; N Ydieresis ; B 15 0 699 877 ; C -1 ; WX 570 ; N divide ; B 33 -31 537 537 ; C -1 ; WX 722 ; N Yacute ; B 15 0 699 923 ; C -1 ; WX 722 ; N Acircumflex ; B 9 0 689 914 ; C -1 ; WX 500 ; N aacute ; B 25 -14 488 713 ; C -1 ; WX 722 ; N Ucircumflex ; B 16 -19 701 914 ; C -1 ; WX 500 ; N yacute ; B 16 -205 480 713 ; C -1 ; WX 389 ; N scommaaccent ; B 25 -218 361 473 ; C -1 ; WX 444 ; N ecircumflex ; B 25 -14 426 704 ; C -1 ; WX 722 ; N Uring ; B 16 -19 701 935 ; C -1 ; WX 722 ; N Udieresis ; B 16 -19 701 877 ; C -1 ; WX 500 ; N aogonek ; B 25 -193 504 473 ; C -1 ; WX 722 ; N Uacute ; B 16 -19 701 923 ; C -1 ; WX 556 ; N uogonek ; B 16 -193 539 461 ; C -1 ; WX 667 ; N Edieresis ; B 16 0 641 877 ; C -1 ; WX 722 ; N Dcroat ; B 6 0 690 676 ; C -1 ; WX 250 ; N commaaccent ; B 47 -218 203 -50 ; C -1 ; WX 747 ; N copyright ; B 26 -19 721 691 ; C -1 ; WX 667 ; N Emacron ; B 16 0 641 847 ; C -1 ; WX 444 ; N ccaron ; B 25 -14 430 704 ; C -1 ; WX 500 ; N aring ; B 25 -14 488 740 ; C -1 ; WX 722 ; N Ncommaaccent ; B 16 -188 701 676 ; C -1 ; WX 278 ; N lacute ; B 16 0 297 923 ; C -1 ; WX 500 ; N agrave ; B 25 -14 488 713 ; C -1 ; WX 667 ; N Tcommaaccent ; B 31 -218 636 676 ; C -1 ; WX 722 ; N Cacute ; B 49 -19 687 923 ; C -1 ; WX 500 ; N atilde ; B 25 -14 488 674 ; C -1 ; WX 667 ; N Edotaccent ; B 16 0 641 901 ; C -1 ; WX 389 ; N scaron ; B 25 -14 363 704 ; C -1 ; WX 389 ; N scedilla ; B 25 -218 361 473 ; C -1 ; WX 278 ; N iacute ; B 16 0 289 713 ; C -1 ; WX 494 ; N lozenge ; B 10 0 484 745 ; C -1 ; WX 722 ; N Rcaron ; B 26 0 715 914 ; C -1 ; WX 778 ; N Gcommaaccent ; B 37 -218 755 691 ; C -1 ; WX 556 ; N ucircumflex ; B 16 -14 537 704 ; C -1 ; WX 500 ; N acircumflex ; B 25 -14 488 704 ; C -1 ; WX 722 ; N Amacron ; B 9 0 689 847 ; C -1 ; WX 444 ; N rcaron ; B 29 0 434 704 ; C -1 ; WX 444 ; N ccedilla ; B 25 -218 430 473 ; C -1 ; WX 667 ; N Zdotaccent ; B 28 0 634 901 ; C -1 ; WX 611 ; N Thorn ; B 16 0 600 676 ; C -1 ; WX 778 ; N Omacron ; B 35 -19 743 847 ; C -1 ; WX 722 ; N Racute ; B 26 0 715 923 ; C -1 ; WX 556 ; N Sacute ; B 35 -19 513 923 ; C -1 ; WX 672 ; N dcaron ; B 25 -14 681 682 ; C -1 ; WX 722 ; N Umacron ; B 16 -19 701 847 ; C -1 ; WX 556 ; N uring ; B 16 -14 537 740 ; C -1 ; WX 300 ; N threesuperior ; B 3 268 297 688 ; C -1 ; WX 778 ; N Ograve ; B 35 -19 743 923 ; C -1 ; WX 722 ; N Agrave ; B 9 0 689 923 ; C -1 ; WX 722 ; N Abreve ; B 9 0 689 901 ; C -1 ; WX 570 ; N multiply ; B 48 16 522 490 ; C -1 ; WX 556 ; N uacute ; B 16 -14 537 713 ; C -1 ; WX 667 ; N Tcaron ; B 31 0 636 914 ; C -1 ; WX 494 ; N partialdiff ; B 11 -21 494 750 ; C -1 ; WX 500 ; N ydieresis ; B 16 -205 480 667 ; C -1 ; WX 722 ; N Nacute ; B 16 -18 701 923 ; C -1 ; WX 278 ; N icircumflex ; B -37 0 300 704 ; C -1 ; WX 667 ; N Ecircumflex ; B 16 0 641 914 ; C -1 ; WX 500 ; N adieresis ; B 25 -14 488 667 ; C -1 ; WX 444 ; N edieresis ; B 25 -14 426 667 ; C -1 ; WX 444 ; N cacute ; B 25 -14 430 713 ; C -1 ; WX 556 ; N nacute ; B 21 0 539 713 ; C -1 ; WX 556 ; N umacron ; B 16 -14 537 637 ; C -1 ; WX 722 ; N Ncaron ; B 16 -18 701 914 ; C -1 ; WX 389 ; N Iacute ; B 20 0 370 923 ; C -1 ; WX 570 ; N plusminus ; B 33 0 537 506 ; C -1 ; WX 220 ; N brokenbar ; B 66 -143 154 707 ; C -1 ; WX 747 ; N registered ; B 26 -19 721 691 ; C -1 ; WX 778 ; N Gbreve ; B 37 -19 755 901 ; C -1 ; WX 389 ; N Idotaccent ; B 20 0 370 901 ; C -1 ; WX 600 ; N summation ; B 14 -10 585 706 ; C -1 ; WX 667 ; N Egrave ; B 16 0 641 923 ; C -1 ; WX 444 ; N racute ; B 29 0 434 713 ; C -1 ; WX 500 ; N omacron ; B 25 -14 476 637 ; C -1 ; WX 667 ; N Zacute ; B 28 0 634 923 ; C -1 ; WX 667 ; N Zcaron ; B 28 0 634 914 ; C -1 ; WX 549 ; N greaterequal ; B 26 0 523 704 ; C -1 ; WX 722 ; N Eth ; B 6 0 690 676 ; C -1 ; WX 722 ; N Ccedilla ; B 49 -218 687 691 ; C -1 ; WX 278 ; N lcommaaccent ; B 16 -218 255 676 ; C -1 ; WX 416 ; N tcaron ; B 20 -12 425 815 ; C -1 ; WX 444 ; N eogonek ; B 25 -193 426 473 ; C -1 ; WX 722 ; N Uogonek ; B 16 -193 701 676 ; C -1 ; WX 722 ; N Aacute ; B 9 0 689 923 ; C -1 ; WX 722 ; N Adieresis ; B 9 0 689 877 ; C -1 ; WX 444 ; N egrave ; B 25 -14 426 713 ; C -1 ; WX 444 ; N zacute ; B 21 0 420 713 ; C -1 ; WX 278 ; N iogonek ; B 16 -193 274 691 ; C -1 ; WX 778 ; N Oacute ; B 35 -19 743 923 ; C -1 ; WX 500 ; N oacute ; B 25 -14 476 713 ; C -1 ; WX 500 ; N amacron ; B 25 -14 488 637 ; C -1 ; WX 389 ; N sacute ; B 25 -14 361 713 ; C -1 ; WX 278 ; N idieresis ; B -37 0 300 667 ; C -1 ; WX 778 ; N Ocircumflex ; B 35 -19 743 914 ; C -1 ; WX 722 ; N Ugrave ; B 16 -19 701 923 ; C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ; C -1 ; WX 556 ; N thorn ; B 19 -205 524 676 ; C -1 ; WX 300 ; N twosuperior ; B 0 275 300 688 ; C -1 ; WX 778 ; N Odieresis ; B 35 -19 743 877 ; C -1 ; WX 556 ; N mu ; B 33 -206 536 461 ; C -1 ; WX 278 ; N igrave ; B -27 0 255 713 ; C -1 ; WX 500 ; N ohungarumlaut ; B 25 -14 529 713 ; C -1 ; WX 667 ; N Eogonek ; B 16 -193 644 676 ; C -1 ; WX 556 ; N dcroat ; B 25 -14 534 676 ; C -1 ; WX 750 ; N threequarters ; B 23 -12 733 688 ; C -1 ; WX 556 ; N Scedilla ; B 35 -218 513 692 ; C -1 ; WX 394 ; N lcaron ; B 16 0 412 682 ; C -1 ; WX 778 ; N Kcommaaccent ; B 30 -218 769 676 ; C -1 ; WX 667 ; N Lacute ; B 19 0 638 923 ; C -1 ; WX 1000 ; N trademark ; B 24 271 977 676 ; C -1 ; WX 444 ; N edotaccent ; B 25 -14 426 691 ; C -1 ; WX 389 ; N Igrave ; B 20 0 370 923 ; C -1 ; WX 389 ; N Imacron ; B 20 0 370 847 ; C -1 ; WX 667 ; N Lcaron ; B 19 0 652 682 ; C -1 ; WX 750 ; N onehalf ; B -7 -12 775 688 ; C -1 ; WX 549 ; N lessequal ; B 29 0 526 704 ; C -1 ; WX 500 ; N ocircumflex ; B 25 -14 476 704 ; C -1 ; WX 556 ; N ntilde ; B 21 0 539 674 ; C -1 ; WX 722 ; N Uhungarumlaut ; B 16 -19 701 923 ; C -1 ; WX 667 ; N Eacute ; B 16 0 641 923 ; C -1 ; WX 444 ; N emacron ; B 25 -14 426 637 ; C -1 ; WX 500 ; N gbreve ; B 28 -206 483 691 ; C -1 ; WX 750 ; N onequarter ; B 28 -12 743 688 ; C -1 ; WX 556 ; N Scaron ; B 35 -19 513 914 ; C -1 ; WX 556 ; N Scommaaccent ; B 35 -218 513 692 ; C -1 ; WX 778 ; N Ohungarumlaut ; B 35 -19 743 923 ; C -1 ; WX 400 ; N degree ; B 57 402 343 688 ; C -1 ; WX 500 ; N ograve ; B 25 -14 476 713 ; C -1 ; WX 722 ; N Ccaron ; B 49 -19 687 914 ; C -1 ; WX 556 ; N ugrave ; B 16 -14 537 713 ; C -1 ; WX 549 ; N radical ; B 10 -46 512 850 ; C -1 ; WX 722 ; N Dcaron ; B 14 0 690 914 ; C -1 ; WX 444 ; N rcommaaccent ; B 29 -218 434 473 ; C -1 ; WX 722 ; N Ntilde ; B 16 -18 701 884 ; C -1 ; WX 500 ; N otilde ; B 25 -14 476 674 ; C -1 ; WX 722 ; N Rcommaaccent ; B 26 -218 715 676 ; C -1 ; WX 667 ; N Lcommaaccent ; B 19 -218 638 676 ; C -1 ; WX 722 ; N Atilde ; B 9 0 689 884 ; C -1 ; WX 722 ; N Aogonek ; B 9 -193 699 690 ; C -1 ; WX 722 ; N Aring ; B 9 0 689 935 ; C -1 ; WX 778 ; N Otilde ; B 35 -19 743 884 ; C -1 ; WX 444 ; N zdotaccent ; B 21 0 420 691 ; C -1 ; WX 667 ; N Ecaron ; B 16 0 641 914 ; C -1 ; WX 389 ; N Iogonek ; B 20 -193 370 676 ; C -1 ; WX 556 ; N kcommaaccent ; B 22 -218 543 676 ; C -1 ; WX 570 ; N minus ; B 33 209 537 297 ; C -1 ; WX 389 ; N Icircumflex ; B 20 0 370 914 ; C -1 ; WX 556 ; N ncaron ; B 21 0 539 704 ; C -1 ; WX 333 ; N tcommaaccent ; B 20 -218 332 630 ; C -1 ; WX 570 ; N logicalnot ; B 33 108 537 399 ; C -1 ; WX 500 ; N odieresis ; B 25 -14 476 667 ; C -1 ; WX 556 ; N udieresis ; B 16 -14 537 667 ; C -1 ; WX 549 ; N notequal ; B 15 -49 540 570 ; C -1 ; WX 500 ; N gcommaaccent ; B 28 -206 483 829 ; C -1 ; WX 500 ; N eth ; B 25 -14 476 691 ; C -1 ; WX 444 ; N zcaron ; B 21 0 420 704 ; C -1 ; WX 556 ; N ncommaaccent ; B 21 -218 539 473 ; C -1 ; WX 300 ; N onesuperior ; B 28 275 273 688 ; C -1 ; WX 278 ; N imacron ; B -8 0 272 637 ; EndCharMetrics StartKernData StartKernPairs 2242 KPX A C -55 KPX A Cacute -55 KPX A Ccaron -55 KPX A Ccedilla -55 KPX A G -55 KPX A Gbreve -55 KPX A Gcommaaccent -55 KPX A O -45 KPX A Oacute -45 KPX A Ocircumflex -45 KPX A Odieresis -45 KPX A Ograve -45 KPX A Ohungarumlaut -45 KPX A Omacron -45 KPX A Oslash -45 KPX A Otilde -45 KPX A Q -45 KPX A T -95 KPX A Tcaron -95 KPX A Tcommaaccent -95 KPX A U -50 KPX A Uacute -50 KPX A Ucircumflex -50 KPX A Udieresis -50 KPX A Ugrave -50 KPX A Uhungarumlaut -50 KPX A Umacron -50 KPX A Uogonek -50 KPX A Uring -50 KPX A V -145 KPX A W -130 KPX A Y -100 KPX A Yacute -100 KPX A Ydieresis -100 KPX A p -25 KPX A quoteright -74 KPX A u -50 KPX A uacute -50 KPX A ucircumflex -50 KPX A udieresis -50 KPX A ugrave -50 KPX A uhungarumlaut -50 KPX A umacron -50 KPX A uogonek -50 KPX A uring -50 KPX A v -100 KPX A w -90 KPX A y -74 KPX A yacute -74 KPX A ydieresis -74 KPX Aacute C -55 KPX Aacute Cacute -55 KPX Aacute Ccaron -55 KPX Aacute Ccedilla -55 KPX Aacute G -55 KPX Aacute Gbreve -55 KPX Aacute Gcommaaccent -55 KPX Aacute O -45 KPX Aacute Oacute -45 KPX Aacute Ocircumflex -45 KPX Aacute Odieresis -45 KPX Aacute Ograve -45 KPX Aacute Ohungarumlaut -45 KPX Aacute Omacron -45 KPX Aacute Oslash -45 KPX Aacute Otilde -45 KPX Aacute Q -45 KPX Aacute T -95 KPX Aacute Tcaron -95 KPX Aacute Tcommaaccent -95 KPX Aacute U -50 KPX Aacute Uacute -50 KPX Aacute Ucircumflex -50 KPX Aacute Udieresis -50 KPX Aacute Ugrave -50 KPX Aacute Uhungarumlaut -50 KPX Aacute Umacron -50 KPX Aacute Uogonek -50 KPX Aacute Uring -50 KPX Aacute V -145 KPX Aacute W -130 KPX Aacute Y -100 KPX Aacute Yacute -100 KPX Aacute Ydieresis -100 KPX Aacute p -25 KPX Aacute quoteright -74 KPX Aacute u -50 KPX Aacute uacute -50 KPX Aacute ucircumflex -50 KPX Aacute udieresis -50 KPX Aacute ugrave -50 KPX Aacute uhungarumlaut -50 KPX Aacute umacron -50 KPX Aacute uogonek -50 KPX Aacute uring -50 KPX Aacute v -100 KPX Aacute w -90 KPX Aacute y -74 KPX Aacute yacute -74 KPX Aacute ydieresis -74 KPX Abreve C -55 KPX Abreve Cacute -55 KPX Abreve Ccaron -55 KPX Abreve Ccedilla -55 KPX Abreve G -55 KPX Abreve Gbreve -55 KPX Abreve Gcommaaccent -55 KPX Abreve O -45 KPX Abreve Oacute -45 KPX Abreve Ocircumflex -45 KPX Abreve Odieresis -45 KPX Abreve Ograve -45 KPX Abreve Ohungarumlaut -45 KPX Abreve Omacron -45 KPX Abreve Oslash -45 KPX Abreve Otilde -45 KPX Abreve Q -45 KPX Abreve T -95 KPX Abreve Tcaron -95 KPX Abreve Tcommaaccent -95 KPX Abreve U -50 KPX Abreve Uacute -50 KPX Abreve Ucircumflex -50 KPX Abreve Udieresis -50 KPX Abreve Ugrave -50 KPX Abreve Uhungarumlaut -50 KPX Abreve Umacron -50 KPX Abreve Uogonek -50 KPX Abreve Uring -50 KPX Abreve V -145 KPX Abreve W -130 KPX Abreve Y -100 KPX Abreve Yacute -100 KPX Abreve Ydieresis -100 KPX Abreve p -25 KPX Abreve quoteright -74 KPX Abreve u -50 KPX Abreve uacute -50 KPX Abreve ucircumflex -50 KPX Abreve udieresis -50 KPX Abreve ugrave -50 KPX Abreve uhungarumlaut -50 KPX Abreve umacron -50 KPX Abreve uogonek -50 KPX Abreve uring -50 KPX Abreve v -100 KPX Abreve w -90 KPX Abreve y -74 KPX Abreve yacute -74 KPX Abreve ydieresis -74 KPX Acircumflex C -55 KPX Acircumflex Cacute -55 KPX Acircumflex Ccaron -55 KPX Acircumflex Ccedilla -55 KPX Acircumflex G -55 KPX Acircumflex Gbreve -55 KPX Acircumflex Gcommaaccent -55 KPX Acircumflex O -45 KPX Acircumflex Oacute -45 KPX Acircumflex Ocircumflex -45 KPX Acircumflex Odieresis -45 KPX Acircumflex Ograve -45 KPX Acircumflex Ohungarumlaut -45 KPX Acircumflex Omacron -45 KPX Acircumflex Oslash -45 KPX Acircumflex Otilde -45 KPX Acircumflex Q -45 KPX Acircumflex T -95 KPX Acircumflex Tcaron -95 KPX Acircumflex Tcommaaccent -95 KPX Acircumflex U -50 KPX Acircumflex Uacute -50 KPX Acircumflex Ucircumflex -50 KPX Acircumflex Udieresis -50 KPX Acircumflex Ugrave -50 KPX Acircumflex Uhungarumlaut -50 KPX Acircumflex Umacron -50 KPX Acircumflex Uogonek -50 KPX Acircumflex Uring -50 KPX Acircumflex V -145 KPX Acircumflex W -130 KPX Acircumflex Y -100 KPX Acircumflex Yacute -100 KPX Acircumflex Ydieresis -100 KPX Acircumflex p -25 KPX Acircumflex quoteright -74 KPX Acircumflex u -50 KPX Acircumflex uacute -50 KPX Acircumflex ucircumflex -50 KPX Acircumflex udieresis -50 KPX Acircumflex ugrave -50 KPX Acircumflex uhungarumlaut -50 KPX Acircumflex umacron -50 KPX Acircumflex uogonek -50 KPX Acircumflex uring -50 KPX Acircumflex v -100 KPX Acircumflex w -90 KPX Acircumflex y -74 KPX Acircumflex yacute -74 KPX Acircumflex ydieresis -74 KPX Adieresis C -55 KPX Adieresis Cacute -55 KPX Adieresis Ccaron -55 KPX Adieresis Ccedilla -55 KPX Adieresis G -55 KPX Adieresis Gbreve -55 KPX Adieresis Gcommaaccent -55 KPX Adieresis O -45 KPX Adieresis Oacute -45 KPX Adieresis Ocircumflex -45 KPX Adieresis Odieresis -45 KPX Adieresis Ograve -45 KPX Adieresis Ohungarumlaut -45 KPX Adieresis Omacron -45 KPX Adieresis Oslash -45 KPX Adieresis Otilde -45 KPX Adieresis Q -45 KPX Adieresis T -95 KPX Adieresis Tcaron -95 KPX Adieresis Tcommaaccent -95 KPX Adieresis U -50 KPX Adieresis Uacute -50 KPX Adieresis Ucircumflex -50 KPX Adieresis Udieresis -50 KPX Adieresis Ugrave -50 KPX Adieresis Uhungarumlaut -50 KPX Adieresis Umacron -50 KPX Adieresis Uogonek -50 KPX Adieresis Uring -50 KPX Adieresis V -145 KPX Adieresis W -130 KPX Adieresis Y -100 KPX Adieresis Yacute -100 KPX Adieresis Ydieresis -100 KPX Adieresis p -25 KPX Adieresis quoteright -74 KPX Adieresis u -50 KPX Adieresis uacute -50 KPX Adieresis ucircumflex -50 KPX Adieresis udieresis -50 KPX Adieresis ugrave -50 KPX Adieresis uhungarumlaut -50 KPX Adieresis umacron -50 KPX Adieresis uogonek -50 KPX Adieresis uring -50 KPX Adieresis v -100 KPX Adieresis w -90 KPX Adieresis y -74 KPX Adieresis yacute -74 KPX Adieresis ydieresis -74 KPX Agrave C -55 KPX Agrave Cacute -55 KPX Agrave Ccaron -55 KPX Agrave Ccedilla -55 KPX Agrave G -55 KPX Agrave Gbreve -55 KPX Agrave Gcommaaccent -55 KPX Agrave O -45 KPX Agrave Oacute -45 KPX Agrave Ocircumflex -45 KPX Agrave Odieresis -45 KPX Agrave Ograve -45 KPX Agrave Ohungarumlaut -45 KPX Agrave Omacron -45 KPX Agrave Oslash -45 KPX Agrave Otilde -45 KPX Agrave Q -45 KPX Agrave T -95 KPX Agrave Tcaron -95 KPX Agrave Tcommaaccent -95 KPX Agrave U -50 KPX Agrave Uacute -50 KPX Agrave Ucircumflex -50 KPX Agrave Udieresis -50 KPX Agrave Ugrave -50 KPX Agrave Uhungarumlaut -50 KPX Agrave Umacron -50 KPX Agrave Uogonek -50 KPX Agrave Uring -50 KPX Agrave V -145 KPX Agrave W -130 KPX Agrave Y -100 KPX Agrave Yacute -100 KPX Agrave Ydieresis -100 KPX Agrave p -25 KPX Agrave quoteright -74 KPX Agrave u -50 KPX Agrave uacute -50 KPX Agrave ucircumflex -50 KPX Agrave udieresis -50 KPX Agrave ugrave -50 KPX Agrave uhungarumlaut -50 KPX Agrave umacron -50 KPX Agrave uogonek -50 KPX Agrave uring -50 KPX Agrave v -100 KPX Agrave w -90 KPX Agrave y -74 KPX Agrave yacute -74 KPX Agrave ydieresis -74 KPX Amacron C -55 KPX Amacron Cacute -55 KPX Amacron Ccaron -55 KPX Amacron Ccedilla -55 KPX Amacron G -55 KPX Amacron Gbreve -55 KPX Amacron Gcommaaccent -55 KPX Amacron O -45 KPX Amacron Oacute -45 KPX Amacron Ocircumflex -45 KPX Amacron Odieresis -45 KPX Amacron Ograve -45 KPX Amacron Ohungarumlaut -45 KPX Amacron Omacron -45 KPX Amacron Oslash -45 KPX Amacron Otilde -45 KPX Amacron Q -45 KPX Amacron T -95 KPX Amacron Tcaron -95 KPX Amacron Tcommaaccent -95 KPX Amacron U -50 KPX Amacron Uacute -50 KPX Amacron Ucircumflex -50 KPX Amacron Udieresis -50 KPX Amacron Ugrave -50 KPX Amacron Uhungarumlaut -50 KPX Amacron Umacron -50 KPX Amacron Uogonek -50 KPX Amacron Uring -50 KPX Amacron V -145 KPX Amacron W -130 KPX Amacron Y -100 KPX Amacron Yacute -100 KPX Amacron Ydieresis -100 KPX Amacron p -25 KPX Amacron quoteright -74 KPX Amacron u -50 KPX Amacron uacute -50 KPX Amacron ucircumflex -50 KPX Amacron udieresis -50 KPX Amacron ugrave -50 KPX Amacron uhungarumlaut -50 KPX Amacron umacron -50 KPX Amacron uogonek -50 KPX Amacron uring -50 KPX Amacron v -100 KPX Amacron w -90 KPX Amacron y -74 KPX Amacron yacute -74 KPX Amacron ydieresis -74 KPX Aogonek C -55 KPX Aogonek Cacute -55 KPX Aogonek Ccaron -55 KPX Aogonek Ccedilla -55 KPX Aogonek G -55 KPX Aogonek Gbreve -55 KPX Aogonek Gcommaaccent -55 KPX Aogonek O -45 KPX Aogonek Oacute -45 KPX Aogonek Ocircumflex -45 KPX Aogonek Odieresis -45 KPX Aogonek Ograve -45 KPX Aogonek Ohungarumlaut -45 KPX Aogonek Omacron -45 KPX Aogonek Oslash -45 KPX Aogonek Otilde -45 KPX Aogonek Q -45 KPX Aogonek T -95 KPX Aogonek Tcaron -95 KPX Aogonek Tcommaaccent -95 KPX Aogonek U -50 KPX Aogonek Uacute -50 KPX Aogonek Ucircumflex -50 KPX Aogonek Udieresis -50 KPX Aogonek Ugrave -50 KPX Aogonek Uhungarumlaut -50 KPX Aogonek Umacron -50 KPX Aogonek Uogonek -50 KPX Aogonek Uring -50 KPX Aogonek V -145 KPX Aogonek W -130 KPX Aogonek Y -100 KPX Aogonek Yacute -100 KPX Aogonek Ydieresis -100 KPX Aogonek p -25 KPX Aogonek quoteright -74 KPX Aogonek u -50 KPX Aogonek uacute -50 KPX Aogonek ucircumflex -50 KPX Aogonek udieresis -50 KPX Aogonek ugrave -50 KPX Aogonek uhungarumlaut -50 KPX Aogonek umacron -50 KPX Aogonek uogonek -50 KPX Aogonek uring -50 KPX Aogonek v -100 KPX Aogonek w -90 KPX Aogonek y -34 KPX Aogonek yacute -34 KPX Aogonek ydieresis -34 KPX Aring C -55 KPX Aring Cacute -55 KPX Aring Ccaron -55 KPX Aring Ccedilla -55 KPX Aring G -55 KPX Aring Gbreve -55 KPX Aring Gcommaaccent -55 KPX Aring O -45 KPX Aring Oacute -45 KPX Aring Ocircumflex -45 KPX Aring Odieresis -45 KPX Aring Ograve -45 KPX Aring Ohungarumlaut -45 KPX Aring Omacron -45 KPX Aring Oslash -45 KPX Aring Otilde -45 KPX Aring Q -45 KPX Aring T -95 KPX Aring Tcaron -95 KPX Aring Tcommaaccent -95 KPX Aring U -50 KPX Aring Uacute -50 KPX Aring Ucircumflex -50 KPX Aring Udieresis -50 KPX Aring Ugrave -50 KPX Aring Uhungarumlaut -50 KPX Aring Umacron -50 KPX Aring Uogonek -50 KPX Aring Uring -50 KPX Aring V -145 KPX Aring W -130 KPX Aring Y -100 KPX Aring Yacute -100 KPX Aring Ydieresis -100 KPX Aring p -25 KPX Aring quoteright -74 KPX Aring u -50 KPX Aring uacute -50 KPX Aring ucircumflex -50 KPX Aring udieresis -50 KPX Aring ugrave -50 KPX Aring uhungarumlaut -50 KPX Aring umacron -50 KPX Aring uogonek -50 KPX Aring uring -50 KPX Aring v -100 KPX Aring w -90 KPX Aring y -74 KPX Aring yacute -74 KPX Aring ydieresis -74 KPX Atilde C -55 KPX Atilde Cacute -55 KPX Atilde Ccaron -55 KPX Atilde Ccedilla -55 KPX Atilde G -55 KPX Atilde Gbreve -55 KPX Atilde Gcommaaccent -55 KPX Atilde O -45 KPX Atilde Oacute -45 KPX Atilde Ocircumflex -45 KPX Atilde Odieresis -45 KPX Atilde Ograve -45 KPX Atilde Ohungarumlaut -45 KPX Atilde Omacron -45 KPX Atilde Oslash -45 KPX Atilde Otilde -45 KPX Atilde Q -45 KPX Atilde T -95 KPX Atilde Tcaron -95 KPX Atilde Tcommaaccent -95 KPX Atilde U -50 KPX Atilde Uacute -50 KPX Atilde Ucircumflex -50 KPX Atilde Udieresis -50 KPX Atilde Ugrave -50 KPX Atilde Uhungarumlaut -50 KPX Atilde Umacron -50 KPX Atilde Uogonek -50 KPX Atilde Uring -50 KPX Atilde V -145 KPX Atilde W -130 KPX Atilde Y -100 KPX Atilde Yacute -100 KPX Atilde Ydieresis -100 KPX Atilde p -25 KPX Atilde quoteright -74 KPX Atilde u -50 KPX Atilde uacute -50 KPX Atilde ucircumflex -50 KPX Atilde udieresis -50 KPX Atilde ugrave -50 KPX Atilde uhungarumlaut -50 KPX Atilde umacron -50 KPX Atilde uogonek -50 KPX Atilde uring -50 KPX Atilde v -100 KPX Atilde w -90 KPX Atilde y -74 KPX Atilde yacute -74 KPX Atilde ydieresis -74 KPX B A -30 KPX B Aacute -30 KPX B Abreve -30 KPX B Acircumflex -30 KPX B Adieresis -30 KPX B Agrave -30 KPX B Amacron -30 KPX B Aogonek -30 KPX B Aring -30 KPX B Atilde -30 KPX B U -10 KPX B Uacute -10 KPX B Ucircumflex -10 KPX B Udieresis -10 KPX B Ugrave -10 KPX B Uhungarumlaut -10 KPX B Umacron -10 KPX B Uogonek -10 KPX B Uring -10 KPX D A -35 KPX D Aacute -35 KPX D Abreve -35 KPX D Acircumflex -35 KPX D Adieresis -35 KPX D Agrave -35 KPX D Amacron -35 KPX D Aogonek -35 KPX D Aring -35 KPX D Atilde -35 KPX D V -40 KPX D W -40 KPX D Y -40 KPX D Yacute -40 KPX D Ydieresis -40 KPX D period -20 KPX Dcaron A -35 KPX Dcaron Aacute -35 KPX Dcaron Abreve -35 KPX Dcaron Acircumflex -35 KPX Dcaron Adieresis -35 KPX Dcaron Agrave -35 KPX Dcaron Amacron -35 KPX Dcaron Aogonek -35 KPX Dcaron Aring -35 KPX Dcaron Atilde -35 KPX Dcaron V -40 KPX Dcaron W -40 KPX Dcaron Y -40 KPX Dcaron Yacute -40 KPX Dcaron Ydieresis -40 KPX Dcaron period -20 KPX Dcroat A -35 KPX Dcroat Aacute -35 KPX Dcroat Abreve -35 KPX Dcroat Acircumflex -35 KPX Dcroat Adieresis -35 KPX Dcroat Agrave -35 KPX Dcroat Amacron -35 KPX Dcroat Aogonek -35 KPX Dcroat Aring -35 KPX Dcroat Atilde -35 KPX Dcroat V -40 KPX Dcroat W -40 KPX Dcroat Y -40 KPX Dcroat Yacute -40 KPX Dcroat Ydieresis -40 KPX Dcroat period -20 KPX F A -90 KPX F Aacute -90 KPX F Abreve -90 KPX F Acircumflex -90 KPX F Adieresis -90 KPX F Agrave -90 KPX F Amacron -90 KPX F Aogonek -90 KPX F Aring -90 KPX F Atilde -90 KPX F a -25 KPX F aacute -25 KPX F abreve -25 KPX F acircumflex -25 KPX F adieresis -25 KPX F agrave -25 KPX F amacron -25 KPX F aogonek -25 KPX F aring -25 KPX F atilde -25 KPX F comma -92 KPX F e -25 KPX F eacute -25 KPX F ecaron -25 KPX F ecircumflex -25 KPX F edieresis -25 KPX F edotaccent -25 KPX F egrave -25 KPX F emacron -25 KPX F eogonek -25 KPX F o -25 KPX F oacute -25 KPX F ocircumflex -25 KPX F odieresis -25 KPX F ograve -25 KPX F ohungarumlaut -25 KPX F omacron -25 KPX F oslash -25 KPX F otilde -25 KPX F period -110 KPX J A -30 KPX J Aacute -30 KPX J Abreve -30 KPX J Acircumflex -30 KPX J Adieresis -30 KPX J Agrave -30 KPX J Amacron -30 KPX J Aogonek -30 KPX J Aring -30 KPX J Atilde -30 KPX J a -15 KPX J aacute -15 KPX J abreve -15 KPX J acircumflex -15 KPX J adieresis -15 KPX J agrave -15 KPX J amacron -15 KPX J aogonek -15 KPX J aring -15 KPX J atilde -15 KPX J e -15 KPX J eacute -15 KPX J ecaron -15 KPX J ecircumflex -15 KPX J edieresis -15 KPX J edotaccent -15 KPX J egrave -15 KPX J emacron -15 KPX J eogonek -15 KPX J o -15 KPX J oacute -15 KPX J ocircumflex -15 KPX J odieresis -15 KPX J ograve -15 KPX J ohungarumlaut -15 KPX J omacron -15 KPX J oslash -15 KPX J otilde -15 KPX J period -20 KPX J u -15 KPX J uacute -15 KPX J ucircumflex -15 KPX J udieresis -15 KPX J ugrave -15 KPX J uhungarumlaut -15 KPX J umacron -15 KPX J uogonek -15 KPX J uring -15 KPX K O -30 KPX K Oacute -30 KPX K Ocircumflex -30 KPX K Odieresis -30 KPX K Ograve -30 KPX K Ohungarumlaut -30 KPX K Omacron -30 KPX K Oslash -30 KPX K Otilde -30 KPX K e -25 KPX K eacute -25 KPX K ecaron -25 KPX K ecircumflex -25 KPX K edieresis -25 KPX K edotaccent -25 KPX K egrave -25 KPX K emacron -25 KPX K eogonek -25 KPX K o -25 KPX K oacute -25 KPX K ocircumflex -25 KPX K odieresis -25 KPX K ograve -25 KPX K ohungarumlaut -25 KPX K omacron -25 KPX K oslash -25 KPX K otilde -25 KPX K u -15 KPX K uacute -15 KPX K ucircumflex -15 KPX K udieresis -15 KPX K ugrave -15 KPX K uhungarumlaut -15 KPX K umacron -15 KPX K uogonek -15 KPX K uring -15 KPX K y -45 KPX K yacute -45 KPX K ydieresis -45 KPX Kcommaaccent O -30 KPX Kcommaaccent Oacute -30 KPX Kcommaaccent Ocircumflex -30 KPX Kcommaaccent Odieresis -30 KPX Kcommaaccent Ograve -30 KPX Kcommaaccent Ohungarumlaut -30 KPX Kcommaaccent Omacron -30 KPX Kcommaaccent Oslash -30 KPX Kcommaaccent Otilde -30 KPX Kcommaaccent e -25 KPX Kcommaaccent eacute -25 KPX Kcommaaccent ecaron -25 KPX Kcommaaccent ecircumflex -25 KPX Kcommaaccent edieresis -25 KPX Kcommaaccent edotaccent -25 KPX Kcommaaccent egrave -25 KPX Kcommaaccent emacron -25 KPX Kcommaaccent eogonek -25 KPX Kcommaaccent o -25 KPX Kcommaaccent oacute -25 KPX Kcommaaccent ocircumflex -25 KPX Kcommaaccent odieresis -25 KPX Kcommaaccent ograve -25 KPX Kcommaaccent ohungarumlaut -25 KPX Kcommaaccent omacron -25 KPX Kcommaaccent oslash -25 KPX Kcommaaccent otilde -25 KPX Kcommaaccent u -15 KPX Kcommaaccent uacute -15 KPX Kcommaaccent ucircumflex -15 KPX Kcommaaccent udieresis -15 KPX Kcommaaccent ugrave -15 KPX Kcommaaccent uhungarumlaut -15 KPX Kcommaaccent umacron -15 KPX Kcommaaccent uogonek -15 KPX Kcommaaccent uring -15 KPX Kcommaaccent y -45 KPX Kcommaaccent yacute -45 KPX Kcommaaccent ydieresis -45 KPX L T -92 KPX L Tcaron -92 KPX L Tcommaaccent -92 KPX L V -92 KPX L W -92 KPX L Y -92 KPX L Yacute -92 KPX L Ydieresis -92 KPX L quotedblright -20 KPX L quoteright -110 KPX L y -55 KPX L yacute -55 KPX L ydieresis -55 KPX Lacute T -92 KPX Lacute Tcaron -92 KPX Lacute Tcommaaccent -92 KPX Lacute V -92 KPX Lacute W -92 KPX Lacute Y -92 KPX Lacute Yacute -92 KPX Lacute Ydieresis -92 KPX Lacute quotedblright -20 KPX Lacute quoteright -110 KPX Lacute y -55 KPX Lacute yacute -55 KPX Lacute ydieresis -55 KPX Lcommaaccent T -92 KPX Lcommaaccent Tcaron -92 KPX Lcommaaccent Tcommaaccent -92 KPX Lcommaaccent V -92 KPX Lcommaaccent W -92 KPX Lcommaaccent Y -92 KPX Lcommaaccent Yacute -92 KPX Lcommaaccent Ydieresis -92 KPX Lcommaaccent quotedblright -20 KPX Lcommaaccent quoteright -110 KPX Lcommaaccent y -55 KPX Lcommaaccent yacute -55 KPX Lcommaaccent ydieresis -55 KPX Lslash T -92 KPX Lslash Tcaron -92 KPX Lslash Tcommaaccent -92 KPX Lslash V -92 KPX Lslash W -92 KPX Lslash Y -92 KPX Lslash Yacute -92 KPX Lslash Ydieresis -92 KPX Lslash quotedblright -20 KPX Lslash quoteright -110 KPX Lslash y -55 KPX Lslash yacute -55 KPX Lslash ydieresis -55 KPX N A -20 KPX N Aacute -20 KPX N Abreve -20 KPX N Acircumflex -20 KPX N Adieresis -20 KPX N Agrave -20 KPX N Amacron -20 KPX N Aogonek -20 KPX N Aring -20 KPX N Atilde -20 KPX Nacute A -20 KPX Nacute Aacute -20 KPX Nacute Abreve -20 KPX Nacute Acircumflex -20 KPX Nacute Adieresis -20 KPX Nacute Agrave -20 KPX Nacute Amacron -20 KPX Nacute Aogonek -20 KPX Nacute Aring -20 KPX Nacute Atilde -20 KPX Ncaron A -20 KPX Ncaron Aacute -20 KPX Ncaron Abreve -20 KPX Ncaron Acircumflex -20 KPX Ncaron Adieresis -20 KPX Ncaron Agrave -20 KPX Ncaron Amacron -20 KPX Ncaron Aogonek -20 KPX Ncaron Aring -20 KPX Ncaron Atilde -20 KPX Ncommaaccent A -20 KPX Ncommaaccent Aacute -20 KPX Ncommaaccent Abreve -20 KPX Ncommaaccent Acircumflex -20 KPX Ncommaaccent Adieresis -20 KPX Ncommaaccent Agrave -20 KPX Ncommaaccent Amacron -20 KPX Ncommaaccent Aogonek -20 KPX Ncommaaccent Aring -20 KPX Ncommaaccent Atilde -20 KPX Ntilde A -20 KPX Ntilde Aacute -20 KPX Ntilde Abreve -20 KPX Ntilde Acircumflex -20 KPX Ntilde Adieresis -20 KPX Ntilde Agrave -20 KPX Ntilde Amacron -20 KPX Ntilde Aogonek -20 KPX Ntilde Aring -20 KPX Ntilde Atilde -20 KPX O A -40 KPX O Aacute -40 KPX O Abreve -40 KPX O Acircumflex -40 KPX O Adieresis -40 KPX O Agrave -40 KPX O Amacron -40 KPX O Aogonek -40 KPX O Aring -40 KPX O Atilde -40 KPX O T -40 KPX O Tcaron -40 KPX O Tcommaaccent -40 KPX O V -50 KPX O W -50 KPX O X -40 KPX O Y -50 KPX O Yacute -50 KPX O Ydieresis -50 KPX Oacute A -40 KPX Oacute Aacute -40 KPX Oacute Abreve -40 KPX Oacute Acircumflex -40 KPX Oacute Adieresis -40 KPX Oacute Agrave -40 KPX Oacute Amacron -40 KPX Oacute Aogonek -40 KPX Oacute Aring -40 KPX Oacute Atilde -40 KPX Oacute T -40 KPX Oacute Tcaron -40 KPX Oacute Tcommaaccent -40 KPX Oacute V -50 KPX Oacute W -50 KPX Oacute X -40 KPX Oacute Y -50 KPX Oacute Yacute -50 KPX Oacute Ydieresis -50 KPX Ocircumflex A -40 KPX Ocircumflex Aacute -40 KPX Ocircumflex Abreve -40 KPX Ocircumflex Acircumflex -40 KPX Ocircumflex Adieresis -40 KPX Ocircumflex Agrave -40 KPX Ocircumflex Amacron -40 KPX Ocircumflex Aogonek -40 KPX Ocircumflex Aring -40 KPX Ocircumflex Atilde -40 KPX Ocircumflex T -40 KPX Ocircumflex Tcaron -40 KPX Ocircumflex Tcommaaccent -40 KPX Ocircumflex V -50 KPX Ocircumflex W -50 KPX Ocircumflex X -40 KPX Ocircumflex Y -50 KPX Ocircumflex Yacute -50 KPX Ocircumflex Ydieresis -50 KPX Odieresis A -40 KPX Odieresis Aacute -40 KPX Odieresis Abreve -40 KPX Odieresis Acircumflex -40 KPX Odieresis Adieresis -40 KPX Odieresis Agrave -40 KPX Odieresis Amacron -40 KPX Odieresis Aogonek -40 KPX Odieresis Aring -40 KPX Odieresis Atilde -40 KPX Odieresis T -40 KPX Odieresis Tcaron -40 KPX Odieresis Tcommaaccent -40 KPX Odieresis V -50 KPX Odieresis W -50 KPX Odieresis X -40 KPX Odieresis Y -50 KPX Odieresis Yacute -50 KPX Odieresis Ydieresis -50 KPX Ograve A -40 KPX Ograve Aacute -40 KPX Ograve Abreve -40 KPX Ograve Acircumflex -40 KPX Ograve Adieresis -40 KPX Ograve Agrave -40 KPX Ograve Amacron -40 KPX Ograve Aogonek -40 KPX Ograve Aring -40 KPX Ograve Atilde -40 KPX Ograve T -40 KPX Ograve Tcaron -40 KPX Ograve Tcommaaccent -40 KPX Ograve V -50 KPX Ograve W -50 KPX Ograve X -40 KPX Ograve Y -50 KPX Ograve Yacute -50 KPX Ograve Ydieresis -50 KPX Ohungarumlaut A -40 KPX Ohungarumlaut Aacute -40 KPX Ohungarumlaut Abreve -40 KPX Ohungarumlaut Acircumflex -40 KPX Ohungarumlaut Adieresis -40 KPX Ohungarumlaut Agrave -40 KPX Ohungarumlaut Amacron -40 KPX Ohungarumlaut Aogonek -40 KPX Ohungarumlaut Aring -40 KPX Ohungarumlaut Atilde -40 KPX Ohungarumlaut T -40 KPX Ohungarumlaut Tcaron -40 KPX Ohungarumlaut Tcommaaccent -40 KPX Ohungarumlaut V -50 KPX Ohungarumlaut W -50 KPX Ohungarumlaut X -40 KPX Ohungarumlaut Y -50 KPX Ohungarumlaut Yacute -50 KPX Ohungarumlaut Ydieresis -50 KPX Omacron A -40 KPX Omacron Aacute -40 KPX Omacron Abreve -40 KPX Omacron Acircumflex -40 KPX Omacron Adieresis -40 KPX Omacron Agrave -40 KPX Omacron Amacron -40 KPX Omacron Aogonek -40 KPX Omacron Aring -40 KPX Omacron Atilde -40 KPX Omacron T -40 KPX Omacron Tcaron -40 KPX Omacron Tcommaaccent -40 KPX Omacron V -50 KPX Omacron W -50 KPX Omacron X -40 KPX Omacron Y -50 KPX Omacron Yacute -50 KPX Omacron Ydieresis -50 KPX Oslash A -40 KPX Oslash Aacute -40 KPX Oslash Abreve -40 KPX Oslash Acircumflex -40 KPX Oslash Adieresis -40 KPX Oslash Agrave -40 KPX Oslash Amacron -40 KPX Oslash Aogonek -40 KPX Oslash Aring -40 KPX Oslash Atilde -40 KPX Oslash T -40 KPX Oslash Tcaron -40 KPX Oslash Tcommaaccent -40 KPX Oslash V -50 KPX Oslash W -50 KPX Oslash X -40 KPX Oslash Y -50 KPX Oslash Yacute -50 KPX Oslash Ydieresis -50 KPX Otilde A -40 KPX Otilde Aacute -40 KPX Otilde Abreve -40 KPX Otilde Acircumflex -40 KPX Otilde Adieresis -40 KPX Otilde Agrave -40 KPX Otilde Amacron -40 KPX Otilde Aogonek -40 KPX Otilde Aring -40 KPX Otilde Atilde -40 KPX Otilde T -40 KPX Otilde Tcaron -40 KPX Otilde Tcommaaccent -40 KPX Otilde V -50 KPX Otilde W -50 KPX Otilde X -40 KPX Otilde Y -50 KPX Otilde Yacute -50 KPX Otilde Ydieresis -50 KPX P A -74 KPX P Aacute -74 KPX P Abreve -74 KPX P Acircumflex -74 KPX P Adieresis -74 KPX P Agrave -74 KPX P Amacron -74 KPX P Aogonek -74 KPX P Aring -74 KPX P Atilde -74 KPX P a -10 KPX P aacute -10 KPX P abreve -10 KPX P acircumflex -10 KPX P adieresis -10 KPX P agrave -10 KPX P amacron -10 KPX P aogonek -10 KPX P aring -10 KPX P atilde -10 KPX P comma -92 KPX P e -20 KPX P eacute -20 KPX P ecaron -20 KPX P ecircumflex -20 KPX P edieresis -20 KPX P edotaccent -20 KPX P egrave -20 KPX P emacron -20 KPX P eogonek -20 KPX P o -20 KPX P oacute -20 KPX P ocircumflex -20 KPX P odieresis -20 KPX P ograve -20 KPX P ohungarumlaut -20 KPX P omacron -20 KPX P oslash -20 KPX P otilde -20 KPX P period -110 KPX Q U -10 KPX Q Uacute -10 KPX Q Ucircumflex -10 KPX Q Udieresis -10 KPX Q Ugrave -10 KPX Q Uhungarumlaut -10 KPX Q Umacron -10 KPX Q Uogonek -10 KPX Q Uring -10 KPX Q period -20 KPX R O -30 KPX R Oacute -30 KPX R Ocircumflex -30 KPX R Odieresis -30 KPX R Ograve -30 KPX R Ohungarumlaut -30 KPX R Omacron -30 KPX R Oslash -30 KPX R Otilde -30 KPX R T -40 KPX R Tcaron -40 KPX R Tcommaaccent -40 KPX R U -30 KPX R Uacute -30 KPX R Ucircumflex -30 KPX R Udieresis -30 KPX R Ugrave -30 KPX R Uhungarumlaut -30 KPX R Umacron -30 KPX R Uogonek -30 KPX R Uring -30 KPX R V -55 KPX R W -35 KPX R Y -35 KPX R Yacute -35 KPX R Ydieresis -35 KPX Racute O -30 KPX Racute Oacute -30 KPX Racute Ocircumflex -30 KPX Racute Odieresis -30 KPX Racute Ograve -30 KPX Racute Ohungarumlaut -30 KPX Racute Omacron -30 KPX Racute Oslash -30 KPX Racute Otilde -30 KPX Racute T -40 KPX Racute Tcaron -40 KPX Racute Tcommaaccent -40 KPX Racute U -30 KPX Racute Uacute -30 KPX Racute Ucircumflex -30 KPX Racute Udieresis -30 KPX Racute Ugrave -30 KPX Racute Uhungarumlaut -30 KPX Racute Umacron -30 KPX Racute Uogonek -30 KPX Racute Uring -30 KPX Racute V -55 KPX Racute W -35 KPX Racute Y -35 KPX Racute Yacute -35 KPX Racute Ydieresis -35 KPX Rcaron O -30 KPX Rcaron Oacute -30 KPX Rcaron Ocircumflex -30 KPX Rcaron Odieresis -30 KPX Rcaron Ograve -30 KPX Rcaron Ohungarumlaut -30 KPX Rcaron Omacron -30 KPX Rcaron Oslash -30 KPX Rcaron Otilde -30 KPX Rcaron T -40 KPX Rcaron Tcaron -40 KPX Rcaron Tcommaaccent -40 KPX Rcaron U -30 KPX Rcaron Uacute -30 KPX Rcaron Ucircumflex -30 KPX Rcaron Udieresis -30 KPX Rcaron Ugrave -30 KPX Rcaron Uhungarumlaut -30 KPX Rcaron Umacron -30 KPX Rcaron Uogonek -30 KPX Rcaron Uring -30 KPX Rcaron V -55 KPX Rcaron W -35 KPX Rcaron Y -35 KPX Rcaron Yacute -35 KPX Rcaron Ydieresis -35 KPX Rcommaaccent O -30 KPX Rcommaaccent Oacute -30 KPX Rcommaaccent Ocircumflex -30 KPX Rcommaaccent Odieresis -30 KPX Rcommaaccent Ograve -30 KPX Rcommaaccent Ohungarumlaut -30 KPX Rcommaaccent Omacron -30 KPX Rcommaaccent Oslash -30 KPX Rcommaaccent Otilde -30 KPX Rcommaaccent T -40 KPX Rcommaaccent Tcaron -40 KPX Rcommaaccent Tcommaaccent -40 KPX Rcommaaccent U -30 KPX Rcommaaccent Uacute -30 KPX Rcommaaccent Ucircumflex -30 KPX Rcommaaccent Udieresis -30 KPX Rcommaaccent Ugrave -30 KPX Rcommaaccent Uhungarumlaut -30 KPX Rcommaaccent Umacron -30 KPX Rcommaaccent Uogonek -30 KPX Rcommaaccent Uring -30 KPX Rcommaaccent V -55 KPX Rcommaaccent W -35 KPX Rcommaaccent Y -35 KPX Rcommaaccent Yacute -35 KPX Rcommaaccent Ydieresis -35 KPX T A -90 KPX T Aacute -90 KPX T Abreve -90 KPX T Acircumflex -90 KPX T Adieresis -90 KPX T Agrave -90 KPX T Amacron -90 KPX T Aogonek -90 KPX T Aring -90 KPX T Atilde -90 KPX T O -18 KPX T Oacute -18 KPX T Ocircumflex -18 KPX T Odieresis -18 KPX T Ograve -18 KPX T Ohungarumlaut -18 KPX T Omacron -18 KPX T Oslash -18 KPX T Otilde -18 KPX T a -92 KPX T aacute -92 KPX T abreve -52 KPX T acircumflex -52 KPX T adieresis -52 KPX T agrave -52 KPX T amacron -52 KPX T aogonek -92 KPX T aring -92 KPX T atilde -52 KPX T colon -74 KPX T comma -74 KPX T e -92 KPX T eacute -92 KPX T ecaron -92 KPX T ecircumflex -92 KPX T edieresis -52 KPX T edotaccent -92 KPX T egrave -52 KPX T emacron -52 KPX T eogonek -92 KPX T hyphen -92 KPX T i -18 KPX T iacute -18 KPX T iogonek -18 KPX T o -92 KPX T oacute -92 KPX T ocircumflex -92 KPX T odieresis -92 KPX T ograve -92 KPX T ohungarumlaut -92 KPX T omacron -92 KPX T oslash -92 KPX T otilde -92 KPX T period -90 KPX T r -74 KPX T racute -74 KPX T rcaron -74 KPX T rcommaaccent -74 KPX T semicolon -74 KPX T u -92 KPX T uacute -92 KPX T ucircumflex -92 KPX T udieresis -92 KPX T ugrave -92 KPX T uhungarumlaut -92 KPX T umacron -92 KPX T uogonek -92 KPX T uring -92 KPX T w -74 KPX T y -34 KPX T yacute -34 KPX T ydieresis -34 KPX Tcaron A -90 KPX Tcaron Aacute -90 KPX Tcaron Abreve -90 KPX Tcaron Acircumflex -90 KPX Tcaron Adieresis -90 KPX Tcaron Agrave -90 KPX Tcaron Amacron -90 KPX Tcaron Aogonek -90 KPX Tcaron Aring -90 KPX Tcaron Atilde -90 KPX Tcaron O -18 KPX Tcaron Oacute -18 KPX Tcaron Ocircumflex -18 KPX Tcaron Odieresis -18 KPX Tcaron Ograve -18 KPX Tcaron Ohungarumlaut -18 KPX Tcaron Omacron -18 KPX Tcaron Oslash -18 KPX Tcaron Otilde -18 KPX Tcaron a -92 KPX Tcaron aacute -92 KPX Tcaron abreve -52 KPX Tcaron acircumflex -52 KPX Tcaron adieresis -52 KPX Tcaron agrave -52 KPX Tcaron amacron -52 KPX Tcaron aogonek -92 KPX Tcaron aring -92 KPX Tcaron atilde -52 KPX Tcaron colon -74 KPX Tcaron comma -74 KPX Tcaron e -92 KPX Tcaron eacute -92 KPX Tcaron ecaron -92 KPX Tcaron ecircumflex -92 KPX Tcaron edieresis -52 KPX Tcaron edotaccent -92 KPX Tcaron egrave -52 KPX Tcaron emacron -52 KPX Tcaron eogonek -92 KPX Tcaron hyphen -92 KPX Tcaron i -18 KPX Tcaron iacute -18 KPX Tcaron iogonek -18 KPX Tcaron o -92 KPX Tcaron oacute -92 KPX Tcaron ocircumflex -92 KPX Tcaron odieresis -92 KPX Tcaron ograve -92 KPX Tcaron ohungarumlaut -92 KPX Tcaron omacron -92 KPX Tcaron oslash -92 KPX Tcaron otilde -92 KPX Tcaron period -90 KPX Tcaron r -74 KPX Tcaron racute -74 KPX Tcaron rcaron -74 KPX Tcaron rcommaaccent -74 KPX Tcaron semicolon -74 KPX Tcaron u -92 KPX Tcaron uacute -92 KPX Tcaron ucircumflex -92 KPX Tcaron udieresis -92 KPX Tcaron ugrave -92 KPX Tcaron uhungarumlaut -92 KPX Tcaron umacron -92 KPX Tcaron uogonek -92 KPX Tcaron uring -92 KPX Tcaron w -74 KPX Tcaron y -34 KPX Tcaron yacute -34 KPX Tcaron ydieresis -34 KPX Tcommaaccent A -90 KPX Tcommaaccent Aacute -90 KPX Tcommaaccent Abreve -90 KPX Tcommaaccent Acircumflex -90 KPX Tcommaaccent Adieresis -90 KPX Tcommaaccent Agrave -90 KPX Tcommaaccent Amacron -90 KPX Tcommaaccent Aogonek -90 KPX Tcommaaccent Aring -90 KPX Tcommaaccent Atilde -90 KPX Tcommaaccent O -18 KPX Tcommaaccent Oacute -18 KPX Tcommaaccent Ocircumflex -18 KPX Tcommaaccent Odieresis -18 KPX Tcommaaccent Ograve -18 KPX Tcommaaccent Ohungarumlaut -18 KPX Tcommaaccent Omacron -18 KPX Tcommaaccent Oslash -18 KPX Tcommaaccent Otilde -18 KPX Tcommaaccent a -92 KPX Tcommaaccent aacute -92 KPX Tcommaaccent abreve -52 KPX Tcommaaccent acircumflex -52 KPX Tcommaaccent adieresis -52 KPX Tcommaaccent agrave -52 KPX Tcommaaccent amacron -52 KPX Tcommaaccent aogonek -92 KPX Tcommaaccent aring -92 KPX Tcommaaccent atilde -52 KPX Tcommaaccent colon -74 KPX Tcommaaccent comma -74 KPX Tcommaaccent e -92 KPX Tcommaaccent eacute -92 KPX Tcommaaccent ecaron -92 KPX Tcommaaccent ecircumflex -92 KPX Tcommaaccent edieresis -52 KPX Tcommaaccent edotaccent -92 KPX Tcommaaccent egrave -52 KPX Tcommaaccent emacron -52 KPX Tcommaaccent eogonek -92 KPX Tcommaaccent hyphen -92 KPX Tcommaaccent i -18 KPX Tcommaaccent iacute -18 KPX Tcommaaccent iogonek -18 KPX Tcommaaccent o -92 KPX Tcommaaccent oacute -92 KPX Tcommaaccent ocircumflex -92 KPX Tcommaaccent odieresis -92 KPX Tcommaaccent ograve -92 KPX Tcommaaccent ohungarumlaut -92 KPX Tcommaaccent omacron -92 KPX Tcommaaccent oslash -92 KPX Tcommaaccent otilde -92 KPX Tcommaaccent period -90 KPX Tcommaaccent r -74 KPX Tcommaaccent racute -74 KPX Tcommaaccent rcaron -74 KPX Tcommaaccent rcommaaccent -74 KPX Tcommaaccent semicolon -74 KPX Tcommaaccent u -92 KPX Tcommaaccent uacute -92 KPX Tcommaaccent ucircumflex -92 KPX Tcommaaccent udieresis -92 KPX Tcommaaccent ugrave -92 KPX Tcommaaccent uhungarumlaut -92 KPX Tcommaaccent umacron -92 KPX Tcommaaccent uogonek -92 KPX Tcommaaccent uring -92 KPX Tcommaaccent w -74 KPX Tcommaaccent y -34 KPX Tcommaaccent yacute -34 KPX Tcommaaccent ydieresis -34 KPX U A -60 KPX U Aacute -60 KPX U Abreve -60 KPX U Acircumflex -60 KPX U Adieresis -60 KPX U Agrave -60 KPX U Amacron -60 KPX U Aogonek -60 KPX U Aring -60 KPX U Atilde -60 KPX U comma -50 KPX U period -50 KPX Uacute A -60 KPX Uacute Aacute -60 KPX Uacute Abreve -60 KPX Uacute Acircumflex -60 KPX Uacute Adieresis -60 KPX Uacute Agrave -60 KPX Uacute Amacron -60 KPX Uacute Aogonek -60 KPX Uacute Aring -60 KPX Uacute Atilde -60 KPX Uacute comma -50 KPX Uacute period -50 KPX Ucircumflex A -60 KPX Ucircumflex Aacute -60 KPX Ucircumflex Abreve -60 KPX Ucircumflex Acircumflex -60 KPX Ucircumflex Adieresis -60 KPX Ucircumflex Agrave -60 KPX Ucircumflex Amacron -60 KPX Ucircumflex Aogonek -60 KPX Ucircumflex Aring -60 KPX Ucircumflex Atilde -60 KPX Ucircumflex comma -50 KPX Ucircumflex period -50 KPX Udieresis A -60 KPX Udieresis Aacute -60 KPX Udieresis Abreve -60 KPX Udieresis Acircumflex -60 KPX Udieresis Adieresis -60 KPX Udieresis Agrave -60 KPX Udieresis Amacron -60 KPX Udieresis Aogonek -60 KPX Udieresis Aring -60 KPX Udieresis Atilde -60 KPX Udieresis comma -50 KPX Udieresis period -50 KPX Ugrave A -60 KPX Ugrave Aacute -60 KPX Ugrave Abreve -60 KPX Ugrave Acircumflex -60 KPX Ugrave Adieresis -60 KPX Ugrave Agrave -60 KPX Ugrave Amacron -60 KPX Ugrave Aogonek -60 KPX Ugrave Aring -60 KPX Ugrave Atilde -60 KPX Ugrave comma -50 KPX Ugrave period -50 KPX Uhungarumlaut A -60 KPX Uhungarumlaut Aacute -60 KPX Uhungarumlaut Abreve -60 KPX Uhungarumlaut Acircumflex -60 KPX Uhungarumlaut Adieresis -60 KPX Uhungarumlaut Agrave -60 KPX Uhungarumlaut Amacron -60 KPX Uhungarumlaut Aogonek -60 KPX Uhungarumlaut Aring -60 KPX Uhungarumlaut Atilde -60 KPX Uhungarumlaut comma -50 KPX Uhungarumlaut period -50 KPX Umacron A -60 KPX Umacron Aacute -60 KPX Umacron Abreve -60 KPX Umacron Acircumflex -60 KPX Umacron Adieresis -60 KPX Umacron Agrave -60 KPX Umacron Amacron -60 KPX Umacron Aogonek -60 KPX Umacron Aring -60 KPX Umacron Atilde -60 KPX Umacron comma -50 KPX Umacron period -50 KPX Uogonek A -60 KPX Uogonek Aacute -60 KPX Uogonek Abreve -60 KPX Uogonek Acircumflex -60 KPX Uogonek Adieresis -60 KPX Uogonek Agrave -60 KPX Uogonek Amacron -60 KPX Uogonek Aogonek -60 KPX Uogonek Aring -60 KPX Uogonek Atilde -60 KPX Uogonek comma -50 KPX Uogonek period -50 KPX Uring A -60 KPX Uring Aacute -60 KPX Uring Abreve -60 KPX Uring Acircumflex -60 KPX Uring Adieresis -60 KPX Uring Agrave -60 KPX Uring Amacron -60 KPX Uring Aogonek -60 KPX Uring Aring -60 KPX Uring Atilde -60 KPX Uring comma -50 KPX Uring period -50 KPX V A -135 KPX V Aacute -135 KPX V Abreve -135 KPX V Acircumflex -135 KPX V Adieresis -135 KPX V Agrave -135 KPX V Amacron -135 KPX V Aogonek -135 KPX V Aring -135 KPX V Atilde -135 KPX V G -30 KPX V Gbreve -30 KPX V Gcommaaccent -30 KPX V O -45 KPX V Oacute -45 KPX V Ocircumflex -45 KPX V Odieresis -45 KPX V Ograve -45 KPX V Ohungarumlaut -45 KPX V Omacron -45 KPX V Oslash -45 KPX V Otilde -45 KPX V a -92 KPX V aacute -92 KPX V abreve -92 KPX V acircumflex -92 KPX V adieresis -92 KPX V agrave -92 KPX V amacron -92 KPX V aogonek -92 KPX V aring -92 KPX V atilde -92 KPX V colon -92 KPX V comma -129 KPX V e -100 KPX V eacute -100 KPX V ecaron -100 KPX V ecircumflex -100 KPX V edieresis -100 KPX V edotaccent -100 KPX V egrave -100 KPX V emacron -100 KPX V eogonek -100 KPX V hyphen -74 KPX V i -37 KPX V iacute -37 KPX V icircumflex -37 KPX V idieresis -37 KPX V igrave -37 KPX V imacron -37 KPX V iogonek -37 KPX V o -100 KPX V oacute -100 KPX V ocircumflex -100 KPX V odieresis -100 KPX V ograve -100 KPX V ohungarumlaut -100 KPX V omacron -100 KPX V oslash -100 KPX V otilde -100 KPX V period -145 KPX V semicolon -92 KPX V u -92 KPX V uacute -92 KPX V ucircumflex -92 KPX V udieresis -92 KPX V ugrave -92 KPX V uhungarumlaut -92 KPX V umacron -92 KPX V uogonek -92 KPX V uring -92 KPX W A -120 KPX W Aacute -120 KPX W Abreve -120 KPX W Acircumflex -120 KPX W Adieresis -120 KPX W Agrave -120 KPX W Amacron -120 KPX W Aogonek -120 KPX W Aring -120 KPX W Atilde -120 KPX W O -10 KPX W Oacute -10 KPX W Ocircumflex -10 KPX W Odieresis -10 KPX W Ograve -10 KPX W Ohungarumlaut -10 KPX W Omacron -10 KPX W Oslash -10 KPX W Otilde -10 KPX W a -65 KPX W aacute -65 KPX W abreve -65 KPX W acircumflex -65 KPX W adieresis -65 KPX W agrave -65 KPX W amacron -65 KPX W aogonek -65 KPX W aring -65 KPX W atilde -65 KPX W colon -55 KPX W comma -92 KPX W e -65 KPX W eacute -65 KPX W ecaron -65 KPX W ecircumflex -65 KPX W edieresis -65 KPX W edotaccent -65 KPX W egrave -65 KPX W emacron -65 KPX W eogonek -65 KPX W hyphen -37 KPX W i -18 KPX W iacute -18 KPX W iogonek -18 KPX W o -75 KPX W oacute -75 KPX W ocircumflex -75 KPX W odieresis -75 KPX W ograve -75 KPX W ohungarumlaut -75 KPX W omacron -75 KPX W oslash -75 KPX W otilde -75 KPX W period -92 KPX W semicolon -55 KPX W u -50 KPX W uacute -50 KPX W ucircumflex -50 KPX W udieresis -50 KPX W ugrave -50 KPX W uhungarumlaut -50 KPX W umacron -50 KPX W uogonek -50 KPX W uring -50 KPX W y -60 KPX W yacute -60 KPX W ydieresis -60 KPX Y A -110 KPX Y Aacute -110 KPX Y Abreve -110 KPX Y Acircumflex -110 KPX Y Adieresis -110 KPX Y Agrave -110 KPX Y Amacron -110 KPX Y Aogonek -110 KPX Y Aring -110 KPX Y Atilde -110 KPX Y O -35 KPX Y Oacute -35 KPX Y Ocircumflex -35 KPX Y Odieresis -35 KPX Y Ograve -35 KPX Y Ohungarumlaut -35 KPX Y Omacron -35 KPX Y Oslash -35 KPX Y Otilde -35 KPX Y a -85 KPX Y aacute -85 KPX Y abreve -85 KPX Y acircumflex -85 KPX Y adieresis -85 KPX Y agrave -85 KPX Y amacron -85 KPX Y aogonek -85 KPX Y aring -85 KPX Y atilde -85 KPX Y colon -92 KPX Y comma -92 KPX Y e -111 KPX Y eacute -111 KPX Y ecaron -111 KPX Y ecircumflex -111 KPX Y edieresis -71 KPX Y edotaccent -111 KPX Y egrave -71 KPX Y emacron -71 KPX Y eogonek -111 KPX Y hyphen -92 KPX Y i -37 KPX Y iacute -37 KPX Y iogonek -37 KPX Y o -111 KPX Y oacute -111 KPX Y ocircumflex -111 KPX Y odieresis -111 KPX Y ograve -111 KPX Y ohungarumlaut -111 KPX Y omacron -111 KPX Y oslash -111 KPX Y otilde -111 KPX Y period -92 KPX Y semicolon -92 KPX Y u -92 KPX Y uacute -92 KPX Y ucircumflex -92 KPX Y udieresis -92 KPX Y ugrave -92 KPX Y uhungarumlaut -92 KPX Y umacron -92 KPX Y uogonek -92 KPX Y uring -92 KPX Yacute A -110 KPX Yacute Aacute -110 KPX Yacute Abreve -110 KPX Yacute Acircumflex -110 KPX Yacute Adieresis -110 KPX Yacute Agrave -110 KPX Yacute Amacron -110 KPX Yacute Aogonek -110 KPX Yacute Aring -110 KPX Yacute Atilde -110 KPX Yacute O -35 KPX Yacute Oacute -35 KPX Yacute Ocircumflex -35 KPX Yacute Odieresis -35 KPX Yacute Ograve -35 KPX Yacute Ohungarumlaut -35 KPX Yacute Omacron -35 KPX Yacute Oslash -35 KPX Yacute Otilde -35 KPX Yacute a -85 KPX Yacute aacute -85 KPX Yacute abreve -85 KPX Yacute acircumflex -85 KPX Yacute adieresis -85 KPX Yacute agrave -85 KPX Yacute amacron -85 KPX Yacute aogonek -85 KPX Yacute aring -85 KPX Yacute atilde -85 KPX Yacute colon -92 KPX Yacute comma -92 KPX Yacute e -111 KPX Yacute eacute -111 KPX Yacute ecaron -111 KPX Yacute ecircumflex -111 KPX Yacute edieresis -71 KPX Yacute edotaccent -111 KPX Yacute egrave -71 KPX Yacute emacron -71 KPX Yacute eogonek -111 KPX Yacute hyphen -92 KPX Yacute i -37 KPX Yacute iacute -37 KPX Yacute iogonek -37 KPX Yacute o -111 KPX Yacute oacute -111 KPX Yacute ocircumflex -111 KPX Yacute odieresis -111 KPX Yacute ograve -111 KPX Yacute ohungarumlaut -111 KPX Yacute omacron -111 KPX Yacute oslash -111 KPX Yacute otilde -111 KPX Yacute period -92 KPX Yacute semicolon -92 KPX Yacute u -92 KPX Yacute uacute -92 KPX Yacute ucircumflex -92 KPX Yacute udieresis -92 KPX Yacute ugrave -92 KPX Yacute uhungarumlaut -92 KPX Yacute umacron -92 KPX Yacute uogonek -92 KPX Yacute uring -92 KPX Ydieresis A -110 KPX Ydieresis Aacute -110 KPX Ydieresis Abreve -110 KPX Ydieresis Acircumflex -110 KPX Ydieresis Adieresis -110 KPX Ydieresis Agrave -110 KPX Ydieresis Amacron -110 KPX Ydieresis Aogonek -110 KPX Ydieresis Aring -110 KPX Ydieresis Atilde -110 KPX Ydieresis O -35 KPX Ydieresis Oacute -35 KPX Ydieresis Ocircumflex -35 KPX Ydieresis Odieresis -35 KPX Ydieresis Ograve -35 KPX Ydieresis Ohungarumlaut -35 KPX Ydieresis Omacron -35 KPX Ydieresis Oslash -35 KPX Ydieresis Otilde -35 KPX Ydieresis a -85 KPX Ydieresis aacute -85 KPX Ydieresis abreve -85 KPX Ydieresis acircumflex -85 KPX Ydieresis adieresis -85 KPX Ydieresis agrave -85 KPX Ydieresis amacron -85 KPX Ydieresis aogonek -85 KPX Ydieresis aring -85 KPX Ydieresis atilde -85 KPX Ydieresis colon -92 KPX Ydieresis comma -92 KPX Ydieresis e -111 KPX Ydieresis eacute -111 KPX Ydieresis ecaron -111 KPX Ydieresis ecircumflex -111 KPX Ydieresis edieresis -71 KPX Ydieresis edotaccent -111 KPX Ydieresis egrave -71 KPX Ydieresis emacron -71 KPX Ydieresis eogonek -111 KPX Ydieresis hyphen -92 KPX Ydieresis i -37 KPX Ydieresis iacute -37 KPX Ydieresis iogonek -37 KPX Ydieresis o -111 KPX Ydieresis oacute -111 KPX Ydieresis ocircumflex -111 KPX Ydieresis odieresis -111 KPX Ydieresis ograve -111 KPX Ydieresis ohungarumlaut -111 KPX Ydieresis omacron -111 KPX Ydieresis oslash -111 KPX Ydieresis otilde -111 KPX Ydieresis period -92 KPX Ydieresis semicolon -92 KPX Ydieresis u -92 KPX Ydieresis uacute -92 KPX Ydieresis ucircumflex -92 KPX Ydieresis udieresis -92 KPX Ydieresis ugrave -92 KPX Ydieresis uhungarumlaut -92 KPX Ydieresis umacron -92 KPX Ydieresis uogonek -92 KPX Ydieresis uring -92 KPX a v -25 KPX aacute v -25 KPX abreve v -25 KPX acircumflex v -25 KPX adieresis v -25 KPX agrave v -25 KPX amacron v -25 KPX aogonek v -25 KPX aring v -25 KPX atilde v -25 KPX b b -10 KPX b period -40 KPX b u -20 KPX b uacute -20 KPX b ucircumflex -20 KPX b udieresis -20 KPX b ugrave -20 KPX b uhungarumlaut -20 KPX b umacron -20 KPX b uogonek -20 KPX b uring -20 KPX b v -15 KPX comma quotedblright -45 KPX comma quoteright -55 KPX d w -15 KPX dcroat w -15 KPX e v -15 KPX eacute v -15 KPX ecaron v -15 KPX ecircumflex v -15 KPX edieresis v -15 KPX edotaccent v -15 KPX egrave v -15 KPX emacron v -15 KPX eogonek v -15 KPX f comma -15 KPX f dotlessi -35 KPX f i -25 KPX f o -25 KPX f oacute -25 KPX f ocircumflex -25 KPX f odieresis -25 KPX f ograve -25 KPX f ohungarumlaut -25 KPX f omacron -25 KPX f oslash -25 KPX f otilde -25 KPX f period -15 KPX f quotedblright 50 KPX f quoteright 55 KPX g period -15 KPX gbreve period -15 KPX gcommaaccent period -15 KPX h y -15 KPX h yacute -15 KPX h ydieresis -15 KPX i v -10 KPX iacute v -10 KPX icircumflex v -10 KPX idieresis v -10 KPX igrave v -10 KPX imacron v -10 KPX iogonek v -10 KPX k e -10 KPX k eacute -10 KPX k ecaron -10 KPX k ecircumflex -10 KPX k edieresis -10 KPX k edotaccent -10 KPX k egrave -10 KPX k emacron -10 KPX k eogonek -10 KPX k o -15 KPX k oacute -15 KPX k ocircumflex -15 KPX k odieresis -15 KPX k ograve -15 KPX k ohungarumlaut -15 KPX k omacron -15 KPX k oslash -15 KPX k otilde -15 KPX k y -15 KPX k yacute -15 KPX k ydieresis -15 KPX kcommaaccent e -10 KPX kcommaaccent eacute -10 KPX kcommaaccent ecaron -10 KPX kcommaaccent ecircumflex -10 KPX kcommaaccent edieresis -10 KPX kcommaaccent edotaccent -10 KPX kcommaaccent egrave -10 KPX kcommaaccent emacron -10 KPX kcommaaccent eogonek -10 KPX kcommaaccent o -15 KPX kcommaaccent oacute -15 KPX kcommaaccent ocircumflex -15 KPX kcommaaccent odieresis -15 KPX kcommaaccent ograve -15 KPX kcommaaccent ohungarumlaut -15 KPX kcommaaccent omacron -15 KPX kcommaaccent oslash -15 KPX kcommaaccent otilde -15 KPX kcommaaccent y -15 KPX kcommaaccent yacute -15 KPX kcommaaccent ydieresis -15 KPX n v -40 KPX nacute v -40 KPX ncaron v -40 KPX ncommaaccent v -40 KPX ntilde v -40 KPX o v -10 KPX o w -10 KPX oacute v -10 KPX oacute w -10 KPX ocircumflex v -10 KPX ocircumflex w -10 KPX odieresis v -10 KPX odieresis w -10 KPX ograve v -10 KPX ograve w -10 KPX ohungarumlaut v -10 KPX ohungarumlaut w -10 KPX omacron v -10 KPX omacron w -10 KPX oslash v -10 KPX oslash w -10 KPX otilde v -10 KPX otilde w -10 KPX period quotedblright -55 KPX period quoteright -55 KPX quotedblleft A -10 KPX quotedblleft Aacute -10 KPX quotedblleft Abreve -10 KPX quotedblleft Acircumflex -10 KPX quotedblleft Adieresis -10 KPX quotedblleft Agrave -10 KPX quotedblleft Amacron -10 KPX quotedblleft Aogonek -10 KPX quotedblleft Aring -10 KPX quotedblleft Atilde -10 KPX quoteleft A -10 KPX quoteleft Aacute -10 KPX quoteleft Abreve -10 KPX quoteleft Acircumflex -10 KPX quoteleft Adieresis -10 KPX quoteleft Agrave -10 KPX quoteleft Amacron -10 KPX quoteleft Aogonek -10 KPX quoteleft Aring -10 KPX quoteleft Atilde -10 KPX quoteleft quoteleft -63 KPX quoteright d -20 KPX quoteright dcroat -20 KPX quoteright quoteright -63 KPX quoteright r -20 KPX quoteright racute -20 KPX quoteright rcaron -20 KPX quoteright rcommaaccent -20 KPX quoteright s -37 KPX quoteright sacute -37 KPX quoteright scaron -37 KPX quoteright scedilla -37 KPX quoteright scommaaccent -37 KPX quoteright space -74 KPX quoteright v -20 KPX r c -18 KPX r cacute -18 KPX r ccaron -18 KPX r ccedilla -18 KPX r comma -92 KPX r e -18 KPX r eacute -18 KPX r ecaron -18 KPX r ecircumflex -18 KPX r edieresis -18 KPX r edotaccent -18 KPX r egrave -18 KPX r emacron -18 KPX r eogonek -18 KPX r g -10 KPX r gbreve -10 KPX r gcommaaccent -10 KPX r hyphen -37 KPX r n -15 KPX r nacute -15 KPX r ncaron -15 KPX r ncommaaccent -15 KPX r ntilde -15 KPX r o -18 KPX r oacute -18 KPX r ocircumflex -18 KPX r odieresis -18 KPX r ograve -18 KPX r ohungarumlaut -18 KPX r omacron -18 KPX r oslash -18 KPX r otilde -18 KPX r p -10 KPX r period -100 KPX r q -18 KPX r v -10 KPX racute c -18 KPX racute cacute -18 KPX racute ccaron -18 KPX racute ccedilla -18 KPX racute comma -92 KPX racute e -18 KPX racute eacute -18 KPX racute ecaron -18 KPX racute ecircumflex -18 KPX racute edieresis -18 KPX racute edotaccent -18 KPX racute egrave -18 KPX racute emacron -18 KPX racute eogonek -18 KPX racute g -10 KPX racute gbreve -10 KPX racute gcommaaccent -10 KPX racute hyphen -37 KPX racute n -15 KPX racute nacute -15 KPX racute ncaron -15 KPX racute ncommaaccent -15 KPX racute ntilde -15 KPX racute o -18 KPX racute oacute -18 KPX racute ocircumflex -18 KPX racute odieresis -18 KPX racute ograve -18 KPX racute ohungarumlaut -18 KPX racute omacron -18 KPX racute oslash -18 KPX racute otilde -18 KPX racute p -10 KPX racute period -100 KPX racute q -18 KPX racute v -10 KPX rcaron c -18 KPX rcaron cacute -18 KPX rcaron ccaron -18 KPX rcaron ccedilla -18 KPX rcaron comma -92 KPX rcaron e -18 KPX rcaron eacute -18 KPX rcaron ecaron -18 KPX rcaron ecircumflex -18 KPX rcaron edieresis -18 KPX rcaron edotaccent -18 KPX rcaron egrave -18 KPX rcaron emacron -18 KPX rcaron eogonek -18 KPX rcaron g -10 KPX rcaron gbreve -10 KPX rcaron gcommaaccent -10 KPX rcaron hyphen -37 KPX rcaron n -15 KPX rcaron nacute -15 KPX rcaron ncaron -15 KPX rcaron ncommaaccent -15 KPX rcaron ntilde -15 KPX rcaron o -18 KPX rcaron oacute -18 KPX rcaron ocircumflex -18 KPX rcaron odieresis -18 KPX rcaron ograve -18 KPX rcaron ohungarumlaut -18 KPX rcaron omacron -18 KPX rcaron oslash -18 KPX rcaron otilde -18 KPX rcaron p -10 KPX rcaron period -100 KPX rcaron q -18 KPX rcaron v -10 KPX rcommaaccent c -18 KPX rcommaaccent cacute -18 KPX rcommaaccent ccaron -18 KPX rcommaaccent ccedilla -18 KPX rcommaaccent comma -92 KPX rcommaaccent e -18 KPX rcommaaccent eacute -18 KPX rcommaaccent ecaron -18 KPX rcommaaccent ecircumflex -18 KPX rcommaaccent edieresis -18 KPX rcommaaccent edotaccent -18 KPX rcommaaccent egrave -18 KPX rcommaaccent emacron -18 KPX rcommaaccent eogonek -18 KPX rcommaaccent g -10 KPX rcommaaccent gbreve -10 KPX rcommaaccent gcommaaccent -10 KPX rcommaaccent hyphen -37 KPX rcommaaccent n -15 KPX rcommaaccent nacute -15 KPX rcommaaccent ncaron -15 KPX rcommaaccent ncommaaccent -15 KPX rcommaaccent ntilde -15 KPX rcommaaccent o -18 KPX rcommaaccent oacute -18 KPX rcommaaccent ocircumflex -18 KPX rcommaaccent odieresis -18 KPX rcommaaccent ograve -18 KPX rcommaaccent ohungarumlaut -18 KPX rcommaaccent omacron -18 KPX rcommaaccent oslash -18 KPX rcommaaccent otilde -18 KPX rcommaaccent p -10 KPX rcommaaccent period -100 KPX rcommaaccent q -18 KPX rcommaaccent v -10 KPX space A -55 KPX space Aacute -55 KPX space Abreve -55 KPX space Acircumflex -55 KPX space Adieresis -55 KPX space Agrave -55 KPX space Amacron -55 KPX space Aogonek -55 KPX space Aring -55 KPX space Atilde -55 KPX space T -30 KPX space Tcaron -30 KPX space Tcommaaccent -30 KPX space V -45 KPX space W -30 KPX space Y -55 KPX space Yacute -55 KPX space Ydieresis -55 KPX v a -10 KPX v aacute -10 KPX v abreve -10 KPX v acircumflex -10 KPX v adieresis -10 KPX v agrave -10 KPX v amacron -10 KPX v aogonek -10 KPX v aring -10 KPX v atilde -10 KPX v comma -55 KPX v e -10 KPX v eacute -10 KPX v ecaron -10 KPX v ecircumflex -10 KPX v edieresis -10 KPX v edotaccent -10 KPX v egrave -10 KPX v emacron -10 KPX v eogonek -10 KPX v o -10 KPX v oacute -10 KPX v ocircumflex -10 KPX v odieresis -10 KPX v ograve -10 KPX v ohungarumlaut -10 KPX v omacron -10 KPX v oslash -10 KPX v otilde -10 KPX v period -70 KPX w comma -55 KPX w o -10 KPX w oacute -10 KPX w ocircumflex -10 KPX w odieresis -10 KPX w ograve -10 KPX w ohungarumlaut -10 KPX w omacron -10 KPX w oslash -10 KPX w otilde -10 KPX w period -70 KPX y comma -55 KPX y e -10 KPX y eacute -10 KPX y ecaron -10 KPX y ecircumflex -10 KPX y edieresis -10 KPX y edotaccent -10 KPX y egrave -10 KPX y emacron -10 KPX y eogonek -10 KPX y o -25 KPX y oacute -25 KPX y ocircumflex -25 KPX y odieresis -25 KPX y ograve -25 KPX y ohungarumlaut -25 KPX y omacron -25 KPX y oslash -25 KPX y otilde -25 KPX y period -70 KPX yacute comma -55 KPX yacute e -10 KPX yacute eacute -10 KPX yacute ecaron -10 KPX yacute ecircumflex -10 KPX yacute edieresis -10 KPX yacute edotaccent -10 KPX yacute egrave -10 KPX yacute emacron -10 KPX yacute eogonek -10 KPX yacute o -25 KPX yacute oacute -25 KPX yacute ocircumflex -25 KPX yacute odieresis -25 KPX yacute ograve -25 KPX yacute ohungarumlaut -25 KPX yacute omacron -25 KPX yacute oslash -25 KPX yacute otilde -25 KPX yacute period -70 KPX ydieresis comma -55 KPX ydieresis e -10 KPX ydieresis eacute -10 KPX ydieresis ecaron -10 KPX ydieresis ecircumflex -10 KPX ydieresis edieresis -10 KPX ydieresis edotaccent -10 KPX ydieresis egrave -10 KPX ydieresis emacron -10 KPX ydieresis eogonek -10 KPX ydieresis o -25 KPX ydieresis oacute -25 KPX ydieresis ocircumflex -25 KPX ydieresis odieresis -25 KPX ydieresis ograve -25 KPX ydieresis ohungarumlaut -25 KPX ydieresis omacron -25 KPX ydieresis oslash -25 KPX ydieresis otilde -25 KPX ydieresis period -70 EndKernPairs EndKernData EndFontMetrics a2ps-4.14/afm/ptmi.afm0000644000175000017500000020133010674334154014034 0ustar mhattamhattaStartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Thu May 1 12:56:55 1997 Comment UniqueID 43067 Comment VMusage 47727 58752 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 002.000 Notice Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype-Hell AG and/or its subsidiaries. EncodingScheme AdobeStandardEncoding CapHeight 653 XHeight 441 Ascender 683 Descender -217 StdHW 32 StdVW 76 StartCharMetrics 314 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 -217 171 783 ; 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 548 305 646 ; C 200 ; WX 333 ; N dieresis ; B 107 548 405 646 ; 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 203 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 41 -11 312 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 333 ; N Idieresis ; B -8 0 435 818 ; C -1 ; WX 444 ; N eacute ; B 31 -11 459 664 ; C -1 ; WX 500 ; N abreve ; B 17 -11 502 650 ; C -1 ; WX 500 ; N uhungarumlaut ; B 42 -11 580 664 ; C -1 ; WX 444 ; N ecaron ; B 31 -11 482 661 ; C -1 ; WX 556 ; N Ydieresis ; B 78 0 633 818 ; C -1 ; WX 675 ; N divide ; B 86 -11 590 517 ; C -1 ; WX 556 ; N Yacute ; B 78 0 633 876 ; C -1 ; WX 611 ; N Acircumflex ; B -51 0 564 873 ; C -1 ; WX 500 ; N aacute ; B 17 -11 487 664 ; C -1 ; WX 722 ; N Ucircumflex ; B 102 -18 765 873 ; C -1 ; WX 444 ; N yacute ; B -24 -206 459 664 ; C -1 ; WX 389 ; N scommaaccent ; B 16 -217 366 442 ; C -1 ; WX 444 ; N ecircumflex ; B 31 -11 441 661 ; C -1 ; WX 722 ; N Uring ; B 102 -18 765 883 ; C -1 ; WX 722 ; N Udieresis ; B 102 -18 765 818 ; C -1 ; WX 500 ; N aogonek ; B 17 -169 476 441 ; C -1 ; WX 722 ; N Uacute ; B 102 -18 765 876 ; C -1 ; WX 500 ; N uogonek ; B 42 -169 477 441 ; C -1 ; WX 611 ; N Edieresis ; B -1 0 634 818 ; C -1 ; WX 722 ; N Dcroat ; B -8 0 700 653 ; C -1 ; WX 250 ; N commaaccent ; B 8 -217 133 -50 ; C -1 ; WX 760 ; N copyright ; B 41 -18 719 666 ; C -1 ; WX 611 ; N Emacron ; B -1 0 634 795 ; C -1 ; WX 444 ; N ccaron ; B 30 -11 482 661 ; C -1 ; WX 500 ; N aring ; B 17 -11 476 691 ; C -1 ; WX 667 ; N Ncommaaccent ; B -20 -187 727 653 ; C -1 ; WX 278 ; N lacute ; B 41 -11 395 876 ; C -1 ; WX 500 ; N agrave ; B 17 -11 476 664 ; C -1 ; WX 556 ; N Tcommaaccent ; B 59 -217 633 653 ; C -1 ; WX 667 ; N Cacute ; B 66 -18 690 876 ; C -1 ; WX 500 ; N atilde ; B 17 -11 511 624 ; C -1 ; WX 611 ; N Edotaccent ; B -1 0 634 818 ; C -1 ; WX 389 ; N scaron ; B 16 -13 454 661 ; C -1 ; WX 389 ; N scedilla ; B 16 -217 366 442 ; C -1 ; WX 278 ; N iacute ; B 49 -11 355 664 ; C -1 ; WX 471 ; N lozenge ; B 13 0 459 724 ; C -1 ; WX 611 ; N Rcaron ; B -13 0 588 873 ; C -1 ; WX 722 ; N Gcommaaccent ; B 52 -217 722 666 ; C -1 ; WX 500 ; N ucircumflex ; B 42 -11 475 661 ; C -1 ; WX 500 ; N acircumflex ; B 17 -11 476 661 ; C -1 ; WX 611 ; N Amacron ; B -51 0 564 795 ; C -1 ; WX 389 ; N rcaron ; B 45 0 434 661 ; C -1 ; WX 444 ; N ccedilla ; B 30 -217 425 441 ; C -1 ; WX 556 ; N Zdotaccent ; B -6 0 606 818 ; C -1 ; WX 611 ; N Thorn ; B 0 0 569 653 ; C -1 ; WX 722 ; N Omacron ; B 60 -18 699 795 ; C -1 ; WX 611 ; N Racute ; B -13 0 588 876 ; C -1 ; WX 500 ; N Sacute ; B 17 -18 508 876 ; C -1 ; WX 544 ; N dcaron ; B 15 -13 658 683 ; C -1 ; WX 722 ; N Umacron ; B 102 -18 765 795 ; C -1 ; WX 500 ; N uring ; B 42 -11 475 691 ; C -1 ; WX 300 ; N threesuperior ; B 43 268 339 676 ; C -1 ; WX 722 ; N Ograve ; B 60 -18 699 876 ; C -1 ; WX 611 ; N Agrave ; B -51 0 564 876 ; C -1 ; WX 611 ; N Abreve ; B -51 0 564 862 ; C -1 ; WX 675 ; N multiply ; B 93 8 582 497 ; C -1 ; WX 500 ; N uacute ; B 42 -11 477 664 ; C -1 ; WX 556 ; N Tcaron ; B 59 0 633 873 ; C -1 ; WX 476 ; N partialdiff ; B 17 -38 459 710 ; C -1 ; WX 444 ; N ydieresis ; B -24 -206 441 606 ; C -1 ; WX 667 ; N Nacute ; B -20 -15 727 876 ; C -1 ; WX 278 ; N icircumflex ; B 33 -11 327 661 ; C -1 ; WX 611 ; N Ecircumflex ; B -1 0 634 873 ; C -1 ; WX 500 ; N adieresis ; B 17 -11 489 606 ; C -1 ; WX 444 ; N edieresis ; B 31 -11 451 606 ; C -1 ; WX 444 ; N cacute ; B 30 -11 459 664 ; C -1 ; WX 500 ; N nacute ; B 14 -9 477 664 ; C -1 ; WX 500 ; N umacron ; B 42 -11 485 583 ; C -1 ; WX 667 ; N Ncaron ; B -20 -15 727 873 ; C -1 ; WX 333 ; N Iacute ; B -8 0 433 876 ; C -1 ; WX 675 ; N plusminus ; B 86 0 590 506 ; C -1 ; WX 275 ; N brokenbar ; B 105 -142 171 708 ; C -1 ; WX 760 ; N registered ; B 41 -18 719 666 ; 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 600 ; N summation ; B 15 -10 585 706 ; C -1 ; WX 611 ; N Egrave ; B -1 0 634 876 ; C -1 ; WX 389 ; N racute ; B 45 0 431 664 ; C -1 ; WX 500 ; N omacron ; B 27 -11 495 583 ; C -1 ; WX 556 ; N Zacute ; B -6 0 606 876 ; C -1 ; WX 556 ; N Zcaron ; B -6 0 606 873 ; C -1 ; WX 549 ; N greaterequal ; B 26 0 523 658 ; C -1 ; WX 722 ; N Eth ; B -8 0 700 653 ; C -1 ; WX 667 ; N Ccedilla ; B 66 -217 689 666 ; C -1 ; WX 278 ; N lcommaaccent ; B 22 -217 279 683 ; C -1 ; WX 300 ; N tcaron ; B 37 -11 407 681 ; C -1 ; WX 444 ; N eogonek ; B 31 -169 412 441 ; C -1 ; WX 722 ; N Uogonek ; B 102 -184 765 653 ; C -1 ; WX 611 ; N Aacute ; B -51 0 564 876 ; C -1 ; WX 611 ; N Adieresis ; B -51 0 564 818 ; C -1 ; WX 444 ; N egrave ; B 31 -11 412 664 ; C -1 ; WX 389 ; N zacute ; B -2 -81 431 664 ; C -1 ; WX 278 ; N iogonek ; B 49 -169 264 654 ; C -1 ; WX 722 ; N Oacute ; B 60 -18 699 876 ; C -1 ; WX 500 ; N oacute ; B 27 -11 487 664 ; C -1 ; WX 500 ; N amacron ; B 17 -11 495 583 ; C -1 ; WX 389 ; N sacute ; B 16 -13 431 664 ; C -1 ; WX 278 ; N idieresis ; B 49 -11 352 606 ; C -1 ; WX 722 ; N Ocircumflex ; B 60 -18 699 873 ; C -1 ; WX 722 ; N Ugrave ; B 102 -18 765 876 ; C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ; C -1 ; WX 500 ; N thorn ; B -75 -205 469 683 ; C -1 ; WX 300 ; N twosuperior ; B 33 271 324 676 ; C -1 ; WX 722 ; N Odieresis ; B 60 -18 699 818 ; C -1 ; WX 500 ; N mu ; B -30 -209 497 428 ; C -1 ; WX 278 ; N igrave ; B 49 -11 284 664 ; C -1 ; WX 500 ; N ohungarumlaut ; B 27 -11 590 664 ; C -1 ; WX 611 ; N Eogonek ; B -1 -169 634 653 ; C -1 ; WX 500 ; N dcroat ; B 15 -13 572 683 ; C -1 ; WX 750 ; N threequarters ; B 23 -10 736 676 ; C -1 ; WX 500 ; N Scedilla ; B 17 -217 508 667 ; C -1 ; WX 300 ; N lcaron ; B 41 -11 407 683 ; C -1 ; WX 667 ; N Kcommaaccent ; B 7 -217 722 653 ; C -1 ; WX 556 ; N Lacute ; B -8 0 559 876 ; C -1 ; WX 980 ; N trademark ; B 30 247 957 653 ; C -1 ; WX 444 ; N edotaccent ; B 31 -11 412 606 ; C -1 ; WX 333 ; N Igrave ; B -8 0 384 876 ; C -1 ; WX 333 ; N Imacron ; B -8 0 441 795 ; C -1 ; WX 611 ; N Lcaron ; B -8 0 586 653 ; C -1 ; WX 750 ; N onehalf ; B 34 -10 749 676 ; C -1 ; WX 549 ; N lessequal ; B 26 0 523 658 ; C -1 ; WX 500 ; N ocircumflex ; B 27 -11 468 661 ; C -1 ; WX 500 ; N ntilde ; B 14 -9 476 624 ; C -1 ; WX 722 ; N Uhungarumlaut ; B 102 -18 765 876 ; C -1 ; WX 611 ; N Eacute ; B -1 0 634 876 ; C -1 ; WX 444 ; N emacron ; B 31 -11 457 583 ; C -1 ; WX 500 ; N gbreve ; B 8 -206 487 650 ; C -1 ; WX 750 ; N onequarter ; B 33 -10 736 676 ; C -1 ; WX 500 ; N Scaron ; B 17 -18 520 873 ; C -1 ; WX 500 ; N Scommaaccent ; B 17 -217 508 667 ; C -1 ; WX 722 ; N Ohungarumlaut ; B 60 -18 699 876 ; C -1 ; WX 400 ; N degree ; B 101 390 387 676 ; C -1 ; WX 500 ; N ograve ; B 27 -11 468 664 ; C -1 ; WX 667 ; N Ccaron ; B 66 -18 689 873 ; C -1 ; WX 500 ; N ugrave ; B 42 -11 475 664 ; C -1 ; WX 453 ; N radical ; B 2 -60 452 768 ; C -1 ; WX 722 ; N Dcaron ; B -8 0 700 873 ; C -1 ; WX 389 ; N rcommaaccent ; B -3 -217 412 441 ; C -1 ; WX 667 ; N Ntilde ; B -20 -15 727 836 ; C -1 ; WX 500 ; N otilde ; B 27 -11 496 624 ; C -1 ; WX 611 ; N Rcommaaccent ; B -13 -187 588 653 ; C -1 ; WX 556 ; N Lcommaaccent ; B -8 -217 559 653 ; C -1 ; WX 611 ; N Atilde ; B -51 0 566 836 ; C -1 ; WX 611 ; N Aogonek ; B -51 -169 566 668 ; C -1 ; WX 611 ; N Aring ; B -51 0 564 883 ; C -1 ; WX 722 ; N Otilde ; B 60 -18 699 836 ; C -1 ; WX 389 ; N zdotaccent ; B -2 -81 380 606 ; C -1 ; WX 611 ; N Ecaron ; B -1 0 634 873 ; C -1 ; WX 333 ; N Iogonek ; B -8 -169 384 653 ; C -1 ; WX 444 ; N kcommaaccent ; B 14 -187 461 683 ; C -1 ; WX 675 ; N minus ; B 86 220 590 286 ; C -1 ; WX 333 ; N Icircumflex ; B -8 0 425 873 ; C -1 ; WX 500 ; N ncaron ; B 14 -9 510 661 ; C -1 ; WX 278 ; N tcommaaccent ; B 2 -217 296 546 ; C -1 ; WX 675 ; N logicalnot ; B 86 108 590 386 ; C -1 ; WX 500 ; N odieresis ; B 27 -11 489 606 ; C -1 ; WX 500 ; N udieresis ; B 42 -11 479 606 ; C -1 ; WX 549 ; N notequal ; B 12 -29 537 541 ; C -1 ; WX 500 ; N gcommaaccent ; B 8 -206 472 706 ; C -1 ; WX 500 ; N eth ; B 27 -11 482 683 ; C -1 ; WX 389 ; N zcaron ; B -2 -81 434 661 ; C -1 ; WX 500 ; N ncommaaccent ; B 14 -187 474 441 ; C -1 ; WX 300 ; N onesuperior ; B 43 271 284 676 ; C -1 ; WX 278 ; N imacron ; B 46 -11 311 583 ; EndCharMetrics StartKernData StartKernPairs 2321 KPX A C -30 KPX A Cacute -30 KPX A Ccaron -30 KPX A Ccedilla -30 KPX A G -35 KPX A Gbreve -35 KPX A Gcommaaccent -35 KPX A O -40 KPX A Oacute -40 KPX A Ocircumflex -40 KPX A Odieresis -40 KPX A Ograve -40 KPX A Ohungarumlaut -40 KPX A Omacron -40 KPX A Oslash -40 KPX A Otilde -40 KPX A Q -40 KPX A T -37 KPX A Tcaron -37 KPX A Tcommaaccent -37 KPX A U -50 KPX A Uacute -50 KPX A Ucircumflex -50 KPX A Udieresis -50 KPX A Ugrave -50 KPX A Uhungarumlaut -50 KPX A Umacron -50 KPX A Uogonek -50 KPX A Uring -50 KPX A V -105 KPX A W -95 KPX A Y -55 KPX A Yacute -55 KPX A Ydieresis -55 KPX A quoteright -37 KPX A u -20 KPX A uacute -20 KPX A ucircumflex -20 KPX A udieresis -20 KPX A ugrave -20 KPX A uhungarumlaut -20 KPX A umacron -20 KPX A uogonek -20 KPX A uring -20 KPX A v -55 KPX A w -55 KPX A y -55 KPX A yacute -55 KPX A ydieresis -55 KPX Aacute C -30 KPX Aacute Cacute -30 KPX Aacute Ccaron -30 KPX Aacute Ccedilla -30 KPX Aacute G -35 KPX Aacute Gbreve -35 KPX Aacute Gcommaaccent -35 KPX Aacute O -40 KPX Aacute Oacute -40 KPX Aacute Ocircumflex -40 KPX Aacute Odieresis -40 KPX Aacute Ograve -40 KPX Aacute Ohungarumlaut -40 KPX Aacute Omacron -40 KPX Aacute Oslash -40 KPX Aacute Otilde -40 KPX Aacute Q -40 KPX Aacute T -37 KPX Aacute Tcaron -37 KPX Aacute Tcommaaccent -37 KPX Aacute U -50 KPX Aacute Uacute -50 KPX Aacute Ucircumflex -50 KPX Aacute Udieresis -50 KPX Aacute Ugrave -50 KPX Aacute Uhungarumlaut -50 KPX Aacute Umacron -50 KPX Aacute Uogonek -50 KPX Aacute Uring -50 KPX Aacute V -105 KPX Aacute W -95 KPX Aacute Y -55 KPX Aacute Yacute -55 KPX Aacute Ydieresis -55 KPX Aacute quoteright -37 KPX Aacute u -20 KPX Aacute uacute -20 KPX Aacute ucircumflex -20 KPX Aacute udieresis -20 KPX Aacute ugrave -20 KPX Aacute uhungarumlaut -20 KPX Aacute umacron -20 KPX Aacute uogonek -20 KPX Aacute uring -20 KPX Aacute v -55 KPX Aacute w -55 KPX Aacute y -55 KPX Aacute yacute -55 KPX Aacute ydieresis -55 KPX Abreve C -30 KPX Abreve Cacute -30 KPX Abreve Ccaron -30 KPX Abreve Ccedilla -30 KPX Abreve G -35 KPX Abreve Gbreve -35 KPX Abreve Gcommaaccent -35 KPX Abreve O -40 KPX Abreve Oacute -40 KPX Abreve Ocircumflex -40 KPX Abreve Odieresis -40 KPX Abreve Ograve -40 KPX Abreve Ohungarumlaut -40 KPX Abreve Omacron -40 KPX Abreve Oslash -40 KPX Abreve Otilde -40 KPX Abreve Q -40 KPX Abreve T -37 KPX Abreve Tcaron -37 KPX Abreve Tcommaaccent -37 KPX Abreve U -50 KPX Abreve Uacute -50 KPX Abreve Ucircumflex -50 KPX Abreve Udieresis -50 KPX Abreve Ugrave -50 KPX Abreve Uhungarumlaut -50 KPX Abreve Umacron -50 KPX Abreve Uogonek -50 KPX Abreve Uring -50 KPX Abreve V -105 KPX Abreve W -95 KPX Abreve Y -55 KPX Abreve Yacute -55 KPX Abreve Ydieresis -55 KPX Abreve quoteright -37 KPX Abreve u -20 KPX Abreve uacute -20 KPX Abreve ucircumflex -20 KPX Abreve udieresis -20 KPX Abreve ugrave -20 KPX Abreve uhungarumlaut -20 KPX Abreve umacron -20 KPX Abreve uogonek -20 KPX Abreve uring -20 KPX Abreve v -55 KPX Abreve w -55 KPX Abreve y -55 KPX Abreve yacute -55 KPX Abreve ydieresis -55 KPX Acircumflex C -30 KPX Acircumflex Cacute -30 KPX Acircumflex Ccaron -30 KPX Acircumflex Ccedilla -30 KPX Acircumflex G -35 KPX Acircumflex Gbreve -35 KPX Acircumflex Gcommaaccent -35 KPX Acircumflex O -40 KPX Acircumflex Oacute -40 KPX Acircumflex Ocircumflex -40 KPX Acircumflex Odieresis -40 KPX Acircumflex Ograve -40 KPX Acircumflex Ohungarumlaut -40 KPX Acircumflex Omacron -40 KPX Acircumflex Oslash -40 KPX Acircumflex Otilde -40 KPX Acircumflex Q -40 KPX Acircumflex T -37 KPX Acircumflex Tcaron -37 KPX Acircumflex Tcommaaccent -37 KPX Acircumflex U -50 KPX Acircumflex Uacute -50 KPX Acircumflex Ucircumflex -50 KPX Acircumflex Udieresis -50 KPX Acircumflex Ugrave -50 KPX Acircumflex Uhungarumlaut -50 KPX Acircumflex Umacron -50 KPX Acircumflex Uogonek -50 KPX Acircumflex Uring -50 KPX Acircumflex V -105 KPX Acircumflex W -95 KPX Acircumflex Y -55 KPX Acircumflex Yacute -55 KPX Acircumflex Ydieresis -55 KPX Acircumflex quoteright -37 KPX Acircumflex u -20 KPX Acircumflex uacute -20 KPX Acircumflex ucircumflex -20 KPX Acircumflex udieresis -20 KPX Acircumflex ugrave -20 KPX Acircumflex uhungarumlaut -20 KPX Acircumflex umacron -20 KPX Acircumflex uogonek -20 KPX Acircumflex uring -20 KPX Acircumflex v -55 KPX Acircumflex w -55 KPX Acircumflex y -55 KPX Acircumflex yacute -55 KPX Acircumflex ydieresis -55 KPX Adieresis C -30 KPX Adieresis Cacute -30 KPX Adieresis Ccaron -30 KPX Adieresis Ccedilla -30 KPX Adieresis G -35 KPX Adieresis Gbreve -35 KPX Adieresis Gcommaaccent -35 KPX Adieresis O -40 KPX Adieresis Oacute -40 KPX Adieresis Ocircumflex -40 KPX Adieresis Odieresis -40 KPX Adieresis Ograve -40 KPX Adieresis Ohungarumlaut -40 KPX Adieresis Omacron -40 KPX Adieresis Oslash -40 KPX Adieresis Otilde -40 KPX Adieresis Q -40 KPX Adieresis T -37 KPX Adieresis Tcaron -37 KPX Adieresis Tcommaaccent -37 KPX Adieresis U -50 KPX Adieresis Uacute -50 KPX Adieresis Ucircumflex -50 KPX Adieresis Udieresis -50 KPX Adieresis Ugrave -50 KPX Adieresis Uhungarumlaut -50 KPX Adieresis Umacron -50 KPX Adieresis Uogonek -50 KPX Adieresis Uring -50 KPX Adieresis V -105 KPX Adieresis W -95 KPX Adieresis Y -55 KPX Adieresis Yacute -55 KPX Adieresis Ydieresis -55 KPX Adieresis quoteright -37 KPX Adieresis u -20 KPX Adieresis uacute -20 KPX Adieresis ucircumflex -20 KPX Adieresis udieresis -20 KPX Adieresis ugrave -20 KPX Adieresis uhungarumlaut -20 KPX Adieresis umacron -20 KPX Adieresis uogonek -20 KPX Adieresis uring -20 KPX Adieresis v -55 KPX Adieresis w -55 KPX Adieresis y -55 KPX Adieresis yacute -55 KPX Adieresis ydieresis -55 KPX Agrave C -30 KPX Agrave Cacute -30 KPX Agrave Ccaron -30 KPX Agrave Ccedilla -30 KPX Agrave G -35 KPX Agrave Gbreve -35 KPX Agrave Gcommaaccent -35 KPX Agrave O -40 KPX Agrave Oacute -40 KPX Agrave Ocircumflex -40 KPX Agrave Odieresis -40 KPX Agrave Ograve -40 KPX Agrave Ohungarumlaut -40 KPX Agrave Omacron -40 KPX Agrave Oslash -40 KPX Agrave Otilde -40 KPX Agrave Q -40 KPX Agrave T -37 KPX Agrave Tcaron -37 KPX Agrave Tcommaaccent -37 KPX Agrave U -50 KPX Agrave Uacute -50 KPX Agrave Ucircumflex -50 KPX Agrave Udieresis -50 KPX Agrave Ugrave -50 KPX Agrave Uhungarumlaut -50 KPX Agrave Umacron -50 KPX Agrave Uogonek -50 KPX Agrave Uring -50 KPX Agrave V -105 KPX Agrave W -95 KPX Agrave Y -55 KPX Agrave Yacute -55 KPX Agrave Ydieresis -55 KPX Agrave quoteright -37 KPX Agrave u -20 KPX Agrave uacute -20 KPX Agrave ucircumflex -20 KPX Agrave udieresis -20 KPX Agrave ugrave -20 KPX Agrave uhungarumlaut -20 KPX Agrave umacron -20 KPX Agrave uogonek -20 KPX Agrave uring -20 KPX Agrave v -55 KPX Agrave w -55 KPX Agrave y -55 KPX Agrave yacute -55 KPX Agrave ydieresis -55 KPX Amacron C -30 KPX Amacron Cacute -30 KPX Amacron Ccaron -30 KPX Amacron Ccedilla -30 KPX Amacron G -35 KPX Amacron Gbreve -35 KPX Amacron Gcommaaccent -35 KPX Amacron O -40 KPX Amacron Oacute -40 KPX Amacron Ocircumflex -40 KPX Amacron Odieresis -40 KPX Amacron Ograve -40 KPX Amacron Ohungarumlaut -40 KPX Amacron Omacron -40 KPX Amacron Oslash -40 KPX Amacron Otilde -40 KPX Amacron Q -40 KPX Amacron T -37 KPX Amacron Tcaron -37 KPX Amacron Tcommaaccent -37 KPX Amacron U -50 KPX Amacron Uacute -50 KPX Amacron Ucircumflex -50 KPX Amacron Udieresis -50 KPX Amacron Ugrave -50 KPX Amacron Uhungarumlaut -50 KPX Amacron Umacron -50 KPX Amacron Uogonek -50 KPX Amacron Uring -50 KPX Amacron V -105 KPX Amacron W -95 KPX Amacron Y -55 KPX Amacron Yacute -55 KPX Amacron Ydieresis -55 KPX Amacron quoteright -37 KPX Amacron u -20 KPX Amacron uacute -20 KPX Amacron ucircumflex -20 KPX Amacron udieresis -20 KPX Amacron ugrave -20 KPX Amacron uhungarumlaut -20 KPX Amacron umacron -20 KPX Amacron uogonek -20 KPX Amacron uring -20 KPX Amacron v -55 KPX Amacron w -55 KPX Amacron y -55 KPX Amacron yacute -55 KPX Amacron ydieresis -55 KPX Aogonek C -30 KPX Aogonek Cacute -30 KPX Aogonek Ccaron -30 KPX Aogonek Ccedilla -30 KPX Aogonek G -35 KPX Aogonek Gbreve -35 KPX Aogonek Gcommaaccent -35 KPX Aogonek O -40 KPX Aogonek Oacute -40 KPX Aogonek Ocircumflex -40 KPX Aogonek Odieresis -40 KPX Aogonek Ograve -40 KPX Aogonek Ohungarumlaut -40 KPX Aogonek Omacron -40 KPX Aogonek Oslash -40 KPX Aogonek Otilde -40 KPX Aogonek Q -40 KPX Aogonek T -37 KPX Aogonek Tcaron -37 KPX Aogonek Tcommaaccent -37 KPX Aogonek U -50 KPX Aogonek Uacute -50 KPX Aogonek Ucircumflex -50 KPX Aogonek Udieresis -50 KPX Aogonek Ugrave -50 KPX Aogonek Uhungarumlaut -50 KPX Aogonek Umacron -50 KPX Aogonek Uogonek -50 KPX Aogonek Uring -50 KPX Aogonek V -105 KPX Aogonek W -95 KPX Aogonek Y -55 KPX Aogonek Yacute -55 KPX Aogonek Ydieresis -55 KPX Aogonek quoteright -37 KPX Aogonek u -20 KPX Aogonek uacute -20 KPX Aogonek ucircumflex -20 KPX Aogonek udieresis -20 KPX Aogonek ugrave -20 KPX Aogonek uhungarumlaut -20 KPX Aogonek umacron -20 KPX Aogonek uogonek -20 KPX Aogonek uring -20 KPX Aogonek v -55 KPX Aogonek w -55 KPX Aogonek y -55 KPX Aogonek yacute -55 KPX Aogonek ydieresis -55 KPX Aring C -30 KPX Aring Cacute -30 KPX Aring Ccaron -30 KPX Aring Ccedilla -30 KPX Aring G -35 KPX Aring Gbreve -35 KPX Aring Gcommaaccent -35 KPX Aring O -40 KPX Aring Oacute -40 KPX Aring Ocircumflex -40 KPX Aring Odieresis -40 KPX Aring Ograve -40 KPX Aring Ohungarumlaut -40 KPX Aring Omacron -40 KPX Aring Oslash -40 KPX Aring Otilde -40 KPX Aring Q -40 KPX Aring T -37 KPX Aring Tcaron -37 KPX Aring Tcommaaccent -37 KPX Aring U -50 KPX Aring Uacute -50 KPX Aring Ucircumflex -50 KPX Aring Udieresis -50 KPX Aring Ugrave -50 KPX Aring Uhungarumlaut -50 KPX Aring Umacron -50 KPX Aring Uogonek -50 KPX Aring Uring -50 KPX Aring V -105 KPX Aring W -95 KPX Aring Y -55 KPX Aring Yacute -55 KPX Aring Ydieresis -55 KPX Aring quoteright -37 KPX Aring u -20 KPX Aring uacute -20 KPX Aring ucircumflex -20 KPX Aring udieresis -20 KPX Aring ugrave -20 KPX Aring uhungarumlaut -20 KPX Aring umacron -20 KPX Aring uogonek -20 KPX Aring uring -20 KPX Aring v -55 KPX Aring w -55 KPX Aring y -55 KPX Aring yacute -55 KPX Aring ydieresis -55 KPX Atilde C -30 KPX Atilde Cacute -30 KPX Atilde Ccaron -30 KPX Atilde Ccedilla -30 KPX Atilde G -35 KPX Atilde Gbreve -35 KPX Atilde Gcommaaccent -35 KPX Atilde O -40 KPX Atilde Oacute -40 KPX Atilde Ocircumflex -40 KPX Atilde Odieresis -40 KPX Atilde Ograve -40 KPX Atilde Ohungarumlaut -40 KPX Atilde Omacron -40 KPX Atilde Oslash -40 KPX Atilde Otilde -40 KPX Atilde Q -40 KPX Atilde T -37 KPX Atilde Tcaron -37 KPX Atilde Tcommaaccent -37 KPX Atilde U -50 KPX Atilde Uacute -50 KPX Atilde Ucircumflex -50 KPX Atilde Udieresis -50 KPX Atilde Ugrave -50 KPX Atilde Uhungarumlaut -50 KPX Atilde Umacron -50 KPX Atilde Uogonek -50 KPX Atilde Uring -50 KPX Atilde V -105 KPX Atilde W -95 KPX Atilde Y -55 KPX Atilde Yacute -55 KPX Atilde Ydieresis -55 KPX Atilde quoteright -37 KPX Atilde u -20 KPX Atilde uacute -20 KPX Atilde ucircumflex -20 KPX Atilde udieresis -20 KPX Atilde ugrave -20 KPX Atilde uhungarumlaut -20 KPX Atilde umacron -20 KPX Atilde uogonek -20 KPX Atilde uring -20 KPX Atilde v -55 KPX Atilde w -55 KPX Atilde y -55 KPX Atilde yacute -55 KPX Atilde ydieresis -55 KPX B A -25 KPX B Aacute -25 KPX B Abreve -25 KPX B Acircumflex -25 KPX B Adieresis -25 KPX B Agrave -25 KPX B Amacron -25 KPX B Aogonek -25 KPX B Aring -25 KPX B Atilde -25 KPX B U -10 KPX B Uacute -10 KPX B Ucircumflex -10 KPX B Udieresis -10 KPX B Ugrave -10 KPX B Uhungarumlaut -10 KPX B Umacron -10 KPX B Uogonek -10 KPX B Uring -10 KPX D A -35 KPX D Aacute -35 KPX D Abreve -35 KPX D Acircumflex -35 KPX D Adieresis -35 KPX D Agrave -35 KPX D Amacron -35 KPX D Aogonek -35 KPX D Aring -35 KPX D Atilde -35 KPX D V -40 KPX D W -40 KPX D Y -40 KPX D Yacute -40 KPX D Ydieresis -40 KPX Dcaron A -35 KPX Dcaron Aacute -35 KPX Dcaron Abreve -35 KPX Dcaron Acircumflex -35 KPX Dcaron Adieresis -35 KPX Dcaron Agrave -35 KPX Dcaron Amacron -35 KPX Dcaron Aogonek -35 KPX Dcaron Aring -35 KPX Dcaron Atilde -35 KPX Dcaron V -40 KPX Dcaron W -40 KPX Dcaron Y -40 KPX Dcaron Yacute -40 KPX Dcaron Ydieresis -40 KPX Dcroat A -35 KPX Dcroat Aacute -35 KPX Dcroat Abreve -35 KPX Dcroat Acircumflex -35 KPX Dcroat Adieresis -35 KPX Dcroat Agrave -35 KPX Dcroat Amacron -35 KPX Dcroat Aogonek -35 KPX Dcroat Aring -35 KPX Dcroat Atilde -35 KPX Dcroat V -40 KPX Dcroat W -40 KPX Dcroat Y -40 KPX Dcroat Yacute -40 KPX Dcroat Ydieresis -40 KPX F A -115 KPX F Aacute -115 KPX F Abreve -115 KPX F Acircumflex -115 KPX F Adieresis -115 KPX F Agrave -115 KPX F Amacron -115 KPX F Aogonek -115 KPX F Aring -115 KPX F Atilde -115 KPX F a -75 KPX F aacute -75 KPX F abreve -75 KPX F acircumflex -75 KPX F adieresis -75 KPX F agrave -75 KPX F amacron -75 KPX F aogonek -75 KPX F aring -75 KPX F atilde -75 KPX F comma -135 KPX F e -75 KPX F eacute -75 KPX F ecaron -75 KPX F ecircumflex -75 KPX F edieresis -75 KPX F edotaccent -75 KPX F egrave -75 KPX F emacron -75 KPX F eogonek -75 KPX F i -45 KPX F iacute -45 KPX F icircumflex -45 KPX F idieresis -45 KPX F igrave -45 KPX F imacron -45 KPX F iogonek -45 KPX F o -105 KPX F oacute -105 KPX F ocircumflex -105 KPX F odieresis -105 KPX F ograve -105 KPX F ohungarumlaut -105 KPX F omacron -105 KPX F oslash -105 KPX F otilde -105 KPX F period -135 KPX F r -55 KPX F racute -55 KPX F rcaron -55 KPX F rcommaaccent -55 KPX J A -40 KPX J Aacute -40 KPX J Abreve -40 KPX J Acircumflex -40 KPX J Adieresis -40 KPX J Agrave -40 KPX J Amacron -40 KPX J Aogonek -40 KPX J Aring -40 KPX J Atilde -40 KPX J a -35 KPX J aacute -35 KPX J abreve -35 KPX J acircumflex -35 KPX J adieresis -35 KPX J agrave -35 KPX J amacron -35 KPX J aogonek -35 KPX J aring -35 KPX J atilde -35 KPX J comma -25 KPX J e -25 KPX J eacute -25 KPX J ecaron -25 KPX J ecircumflex -25 KPX J edieresis -25 KPX J edotaccent -25 KPX J egrave -25 KPX J emacron -25 KPX J eogonek -25 KPX J o -25 KPX J oacute -25 KPX J ocircumflex -25 KPX J odieresis -25 KPX J ograve -25 KPX J ohungarumlaut -25 KPX J omacron -25 KPX J oslash -25 KPX J otilde -25 KPX J period -25 KPX J u -35 KPX J uacute -35 KPX J ucircumflex -35 KPX J udieresis -35 KPX J ugrave -35 KPX J uhungarumlaut -35 KPX J umacron -35 KPX J uogonek -35 KPX J uring -35 KPX K O -50 KPX K Oacute -50 KPX K Ocircumflex -50 KPX K Odieresis -50 KPX K Ograve -50 KPX K Ohungarumlaut -50 KPX K Omacron -50 KPX K Oslash -50 KPX K Otilde -50 KPX K e -35 KPX K eacute -35 KPX K ecaron -35 KPX K ecircumflex -35 KPX K edieresis -35 KPX K edotaccent -35 KPX K egrave -35 KPX K emacron -35 KPX K eogonek -35 KPX K o -40 KPX K oacute -40 KPX K ocircumflex -40 KPX K odieresis -40 KPX K ograve -40 KPX K ohungarumlaut -40 KPX K omacron -40 KPX K oslash -40 KPX K otilde -40 KPX K u -40 KPX K uacute -40 KPX K ucircumflex -40 KPX K udieresis -40 KPX K ugrave -40 KPX K uhungarumlaut -40 KPX K umacron -40 KPX K uogonek -40 KPX K uring -40 KPX K y -40 KPX K yacute -40 KPX K ydieresis -40 KPX Kcommaaccent O -50 KPX Kcommaaccent Oacute -50 KPX Kcommaaccent Ocircumflex -50 KPX Kcommaaccent Odieresis -50 KPX Kcommaaccent Ograve -50 KPX Kcommaaccent Ohungarumlaut -50 KPX Kcommaaccent Omacron -50 KPX Kcommaaccent Oslash -50 KPX Kcommaaccent Otilde -50 KPX Kcommaaccent e -35 KPX Kcommaaccent eacute -35 KPX Kcommaaccent ecaron -35 KPX Kcommaaccent ecircumflex -35 KPX Kcommaaccent edieresis -35 KPX Kcommaaccent edotaccent -35 KPX Kcommaaccent egrave -35 KPX Kcommaaccent emacron -35 KPX Kcommaaccent eogonek -35 KPX Kcommaaccent o -40 KPX Kcommaaccent oacute -40 KPX Kcommaaccent ocircumflex -40 KPX Kcommaaccent odieresis -40 KPX Kcommaaccent ograve -40 KPX Kcommaaccent ohungarumlaut -40 KPX Kcommaaccent omacron -40 KPX Kcommaaccent oslash -40 KPX Kcommaaccent otilde -40 KPX Kcommaaccent u -40 KPX Kcommaaccent uacute -40 KPX Kcommaaccent ucircumflex -40 KPX Kcommaaccent udieresis -40 KPX Kcommaaccent ugrave -40 KPX Kcommaaccent uhungarumlaut -40 KPX Kcommaaccent umacron -40 KPX Kcommaaccent uogonek -40 KPX Kcommaaccent uring -40 KPX Kcommaaccent y -40 KPX Kcommaaccent yacute -40 KPX Kcommaaccent ydieresis -40 KPX L T -20 KPX L Tcaron -20 KPX L Tcommaaccent -20 KPX L V -55 KPX L W -55 KPX L Y -20 KPX L Yacute -20 KPX L Ydieresis -20 KPX L quoteright -37 KPX L y -30 KPX L yacute -30 KPX L ydieresis -30 KPX Lacute T -20 KPX Lacute Tcaron -20 KPX Lacute Tcommaaccent -20 KPX Lacute V -55 KPX Lacute W -55 KPX Lacute Y -20 KPX Lacute Yacute -20 KPX Lacute Ydieresis -20 KPX Lacute quoteright -37 KPX Lacute y -30 KPX Lacute yacute -30 KPX Lacute ydieresis -30 KPX Lcommaaccent T -20 KPX Lcommaaccent Tcaron -20 KPX Lcommaaccent Tcommaaccent -20 KPX Lcommaaccent V -55 KPX Lcommaaccent W -55 KPX Lcommaaccent Y -20 KPX Lcommaaccent Yacute -20 KPX Lcommaaccent Ydieresis -20 KPX Lcommaaccent quoteright -37 KPX Lcommaaccent y -30 KPX Lcommaaccent yacute -30 KPX Lcommaaccent ydieresis -30 KPX Lslash T -20 KPX Lslash Tcaron -20 KPX Lslash Tcommaaccent -20 KPX Lslash V -55 KPX Lslash W -55 KPX Lslash Y -20 KPX Lslash Yacute -20 KPX Lslash Ydieresis -20 KPX Lslash quoteright -37 KPX Lslash y -30 KPX Lslash yacute -30 KPX Lslash ydieresis -30 KPX N A -27 KPX N Aacute -27 KPX N Abreve -27 KPX N Acircumflex -27 KPX N Adieresis -27 KPX N Agrave -27 KPX N Amacron -27 KPX N Aogonek -27 KPX N Aring -27 KPX N Atilde -27 KPX Nacute A -27 KPX Nacute Aacute -27 KPX Nacute Abreve -27 KPX Nacute Acircumflex -27 KPX Nacute Adieresis -27 KPX Nacute Agrave -27 KPX Nacute Amacron -27 KPX Nacute Aogonek -27 KPX Nacute Aring -27 KPX Nacute Atilde -27 KPX Ncaron A -27 KPX Ncaron Aacute -27 KPX Ncaron Abreve -27 KPX Ncaron Acircumflex -27 KPX Ncaron Adieresis -27 KPX Ncaron Agrave -27 KPX Ncaron Amacron -27 KPX Ncaron Aogonek -27 KPX Ncaron Aring -27 KPX Ncaron Atilde -27 KPX Ncommaaccent A -27 KPX Ncommaaccent Aacute -27 KPX Ncommaaccent Abreve -27 KPX Ncommaaccent Acircumflex -27 KPX Ncommaaccent Adieresis -27 KPX Ncommaaccent Agrave -27 KPX Ncommaaccent Amacron -27 KPX Ncommaaccent Aogonek -27 KPX Ncommaaccent Aring -27 KPX Ncommaaccent Atilde -27 KPX Ntilde A -27 KPX Ntilde Aacute -27 KPX Ntilde Abreve -27 KPX Ntilde Acircumflex -27 KPX Ntilde Adieresis -27 KPX Ntilde Agrave -27 KPX Ntilde Amacron -27 KPX Ntilde Aogonek -27 KPX Ntilde Aring -27 KPX Ntilde Atilde -27 KPX O A -55 KPX O Aacute -55 KPX O Abreve -55 KPX O Acircumflex -55 KPX O Adieresis -55 KPX O Agrave -55 KPX O Amacron -55 KPX O Aogonek -55 KPX O Aring -55 KPX O Atilde -55 KPX O T -40 KPX O Tcaron -40 KPX O Tcommaaccent -40 KPX O V -50 KPX O W -50 KPX O X -40 KPX O Y -50 KPX O Yacute -50 KPX O Ydieresis -50 KPX Oacute A -55 KPX Oacute Aacute -55 KPX Oacute Abreve -55 KPX Oacute Acircumflex -55 KPX Oacute Adieresis -55 KPX Oacute Agrave -55 KPX Oacute Amacron -55 KPX Oacute Aogonek -55 KPX Oacute Aring -55 KPX Oacute Atilde -55 KPX Oacute T -40 KPX Oacute Tcaron -40 KPX Oacute Tcommaaccent -40 KPX Oacute V -50 KPX Oacute W -50 KPX Oacute X -40 KPX Oacute Y -50 KPX Oacute Yacute -50 KPX Oacute Ydieresis -50 KPX Ocircumflex A -55 KPX Ocircumflex Aacute -55 KPX Ocircumflex Abreve -55 KPX Ocircumflex Acircumflex -55 KPX Ocircumflex Adieresis -55 KPX Ocircumflex Agrave -55 KPX Ocircumflex Amacron -55 KPX Ocircumflex Aogonek -55 KPX Ocircumflex Aring -55 KPX Ocircumflex Atilde -55 KPX Ocircumflex T -40 KPX Ocircumflex Tcaron -40 KPX Ocircumflex Tcommaaccent -40 KPX Ocircumflex V -50 KPX Ocircumflex W -50 KPX Ocircumflex X -40 KPX Ocircumflex Y -50 KPX Ocircumflex Yacute -50 KPX Ocircumflex Ydieresis -50 KPX Odieresis A -55 KPX Odieresis Aacute -55 KPX Odieresis Abreve -55 KPX Odieresis Acircumflex -55 KPX Odieresis Adieresis -55 KPX Odieresis Agrave -55 KPX Odieresis Amacron -55 KPX Odieresis Aogonek -55 KPX Odieresis Aring -55 KPX Odieresis Atilde -55 KPX Odieresis T -40 KPX Odieresis Tcaron -40 KPX Odieresis Tcommaaccent -40 KPX Odieresis V -50 KPX Odieresis W -50 KPX Odieresis X -40 KPX Odieresis Y -50 KPX Odieresis Yacute -50 KPX Odieresis Ydieresis -50 KPX Ograve A -55 KPX Ograve Aacute -55 KPX Ograve Abreve -55 KPX Ograve Acircumflex -55 KPX Ograve Adieresis -55 KPX Ograve Agrave -55 KPX Ograve Amacron -55 KPX Ograve Aogonek -55 KPX Ograve Aring -55 KPX Ograve Atilde -55 KPX Ograve T -40 KPX Ograve Tcaron -40 KPX Ograve Tcommaaccent -40 KPX Ograve V -50 KPX Ograve W -50 KPX Ograve X -40 KPX Ograve Y -50 KPX Ograve Yacute -50 KPX Ograve Ydieresis -50 KPX Ohungarumlaut A -55 KPX Ohungarumlaut Aacute -55 KPX Ohungarumlaut Abreve -55 KPX Ohungarumlaut Acircumflex -55 KPX Ohungarumlaut Adieresis -55 KPX Ohungarumlaut Agrave -55 KPX Ohungarumlaut Amacron -55 KPX Ohungarumlaut Aogonek -55 KPX Ohungarumlaut Aring -55 KPX Ohungarumlaut Atilde -55 KPX Ohungarumlaut T -40 KPX Ohungarumlaut Tcaron -40 KPX Ohungarumlaut Tcommaaccent -40 KPX Ohungarumlaut V -50 KPX Ohungarumlaut W -50 KPX Ohungarumlaut X -40 KPX Ohungarumlaut Y -50 KPX Ohungarumlaut Yacute -50 KPX Ohungarumlaut Ydieresis -50 KPX Omacron A -55 KPX Omacron Aacute -55 KPX Omacron Abreve -55 KPX Omacron Acircumflex -55 KPX Omacron Adieresis -55 KPX Omacron Agrave -55 KPX Omacron Amacron -55 KPX Omacron Aogonek -55 KPX Omacron Aring -55 KPX Omacron Atilde -55 KPX Omacron T -40 KPX Omacron Tcaron -40 KPX Omacron Tcommaaccent -40 KPX Omacron V -50 KPX Omacron W -50 KPX Omacron X -40 KPX Omacron Y -50 KPX Omacron Yacute -50 KPX Omacron Ydieresis -50 KPX Oslash A -55 KPX Oslash Aacute -55 KPX Oslash Abreve -55 KPX Oslash Acircumflex -55 KPX Oslash Adieresis -55 KPX Oslash Agrave -55 KPX Oslash Amacron -55 KPX Oslash Aogonek -55 KPX Oslash Aring -55 KPX Oslash Atilde -55 KPX Oslash T -40 KPX Oslash Tcaron -40 KPX Oslash Tcommaaccent -40 KPX Oslash V -50 KPX Oslash W -50 KPX Oslash X -40 KPX Oslash Y -50 KPX Oslash Yacute -50 KPX Oslash Ydieresis -50 KPX Otilde A -55 KPX Otilde Aacute -55 KPX Otilde Abreve -55 KPX Otilde Acircumflex -55 KPX Otilde Adieresis -55 KPX Otilde Agrave -55 KPX Otilde Amacron -55 KPX Otilde Aogonek -55 KPX Otilde Aring -55 KPX Otilde Atilde -55 KPX Otilde T -40 KPX Otilde Tcaron -40 KPX Otilde Tcommaaccent -40 KPX Otilde V -50 KPX Otilde W -50 KPX Otilde X -40 KPX Otilde Y -50 KPX Otilde Yacute -50 KPX Otilde Ydieresis -50 KPX P A -90 KPX P Aacute -90 KPX P Abreve -90 KPX P Acircumflex -90 KPX P Adieresis -90 KPX P Agrave -90 KPX P Amacron -90 KPX P Aogonek -90 KPX P Aring -90 KPX P Atilde -90 KPX P a -80 KPX P aacute -80 KPX P abreve -80 KPX P acircumflex -80 KPX P adieresis -80 KPX P agrave -80 KPX P amacron -80 KPX P aogonek -80 KPX P aring -80 KPX P atilde -80 KPX P comma -135 KPX P e -80 KPX P eacute -80 KPX P ecaron -80 KPX P ecircumflex -80 KPX P edieresis -80 KPX P edotaccent -80 KPX P egrave -80 KPX P emacron -80 KPX P eogonek -80 KPX P o -80 KPX P oacute -80 KPX P ocircumflex -80 KPX P odieresis -80 KPX P ograve -80 KPX P ohungarumlaut -80 KPX P omacron -80 KPX P oslash -80 KPX P otilde -80 KPX P period -135 KPX Q U -10 KPX Q Uacute -10 KPX Q Ucircumflex -10 KPX Q Udieresis -10 KPX Q Ugrave -10 KPX Q Uhungarumlaut -10 KPX Q Umacron -10 KPX Q Uogonek -10 KPX Q Uring -10 KPX R O -40 KPX R Oacute -40 KPX R Ocircumflex -40 KPX R Odieresis -40 KPX R Ograve -40 KPX R Ohungarumlaut -40 KPX R Omacron -40 KPX R Oslash -40 KPX R Otilde -40 KPX R U -40 KPX R Uacute -40 KPX R Ucircumflex -40 KPX R Udieresis -40 KPX R Ugrave -40 KPX R Uhungarumlaut -40 KPX R Umacron -40 KPX R Uogonek -40 KPX R Uring -40 KPX R V -18 KPX R W -18 KPX R Y -18 KPX R Yacute -18 KPX R Ydieresis -18 KPX Racute O -40 KPX Racute Oacute -40 KPX Racute Ocircumflex -40 KPX Racute Odieresis -40 KPX Racute Ograve -40 KPX Racute Ohungarumlaut -40 KPX Racute Omacron -40 KPX Racute Oslash -40 KPX Racute Otilde -40 KPX Racute U -40 KPX Racute Uacute -40 KPX Racute Ucircumflex -40 KPX Racute Udieresis -40 KPX Racute Ugrave -40 KPX Racute Uhungarumlaut -40 KPX Racute Umacron -40 KPX Racute Uogonek -40 KPX Racute Uring -40 KPX Racute V -18 KPX Racute W -18 KPX Racute Y -18 KPX Racute Yacute -18 KPX Racute Ydieresis -18 KPX Rcaron O -40 KPX Rcaron Oacute -40 KPX Rcaron Ocircumflex -40 KPX Rcaron Odieresis -40 KPX Rcaron Ograve -40 KPX Rcaron Ohungarumlaut -40 KPX Rcaron Omacron -40 KPX Rcaron Oslash -40 KPX Rcaron Otilde -40 KPX Rcaron U -40 KPX Rcaron Uacute -40 KPX Rcaron Ucircumflex -40 KPX Rcaron Udieresis -40 KPX Rcaron Ugrave -40 KPX Rcaron Uhungarumlaut -40 KPX Rcaron Umacron -40 KPX Rcaron Uogonek -40 KPX Rcaron Uring -40 KPX Rcaron V -18 KPX Rcaron W -18 KPX Rcaron Y -18 KPX Rcaron Yacute -18 KPX Rcaron Ydieresis -18 KPX Rcommaaccent O -40 KPX Rcommaaccent Oacute -40 KPX Rcommaaccent Ocircumflex -40 KPX Rcommaaccent Odieresis -40 KPX Rcommaaccent Ograve -40 KPX Rcommaaccent Ohungarumlaut -40 KPX Rcommaaccent Omacron -40 KPX Rcommaaccent Oslash -40 KPX Rcommaaccent Otilde -40 KPX Rcommaaccent U -40 KPX Rcommaaccent Uacute -40 KPX Rcommaaccent Ucircumflex -40 KPX Rcommaaccent Udieresis -40 KPX Rcommaaccent Ugrave -40 KPX Rcommaaccent Uhungarumlaut -40 KPX Rcommaaccent Umacron -40 KPX Rcommaaccent Uogonek -40 KPX Rcommaaccent Uring -40 KPX Rcommaaccent V -18 KPX Rcommaaccent W -18 KPX Rcommaaccent Y -18 KPX Rcommaaccent Yacute -18 KPX Rcommaaccent Ydieresis -18 KPX T A -50 KPX T Aacute -50 KPX T Abreve -50 KPX T Acircumflex -50 KPX T Adieresis -50 KPX T Agrave -50 KPX T Amacron -50 KPX T Aogonek -50 KPX T Aring -50 KPX T Atilde -50 KPX T O -18 KPX T Oacute -18 KPX T Ocircumflex -18 KPX T Odieresis -18 KPX T Ograve -18 KPX T Ohungarumlaut -18 KPX T Omacron -18 KPX T Oslash -18 KPX T Otilde -18 KPX T a -92 KPX T aacute -92 KPX T abreve -92 KPX T acircumflex -92 KPX T adieresis -92 KPX T agrave -92 KPX T amacron -92 KPX T aogonek -92 KPX T aring -92 KPX T atilde -92 KPX T colon -55 KPX T comma -74 KPX T e -92 KPX T eacute -92 KPX T ecaron -92 KPX T ecircumflex -52 KPX T edieresis -52 KPX T edotaccent -92 KPX T egrave -52 KPX T emacron -52 KPX T eogonek -92 KPX T hyphen -74 KPX T i -55 KPX T iacute -55 KPX T iogonek -55 KPX T o -92 KPX T oacute -92 KPX T ocircumflex -92 KPX T odieresis -92 KPX T ograve -92 KPX T ohungarumlaut -92 KPX T omacron -92 KPX T oslash -92 KPX T otilde -92 KPX T period -74 KPX T r -55 KPX T racute -55 KPX T rcaron -55 KPX T rcommaaccent -55 KPX T semicolon -65 KPX T u -55 KPX T uacute -55 KPX T ucircumflex -55 KPX T udieresis -55 KPX T ugrave -55 KPX T uhungarumlaut -55 KPX T umacron -55 KPX T uogonek -55 KPX T uring -55 KPX T w -74 KPX T y -74 KPX T yacute -74 KPX T ydieresis -34 KPX Tcaron A -50 KPX Tcaron Aacute -50 KPX Tcaron Abreve -50 KPX Tcaron Acircumflex -50 KPX Tcaron Adieresis -50 KPX Tcaron Agrave -50 KPX Tcaron Amacron -50 KPX Tcaron Aogonek -50 KPX Tcaron Aring -50 KPX Tcaron Atilde -50 KPX Tcaron O -18 KPX Tcaron Oacute -18 KPX Tcaron Ocircumflex -18 KPX Tcaron Odieresis -18 KPX Tcaron Ograve -18 KPX Tcaron Ohungarumlaut -18 KPX Tcaron Omacron -18 KPX Tcaron Oslash -18 KPX Tcaron Otilde -18 KPX Tcaron a -92 KPX Tcaron aacute -92 KPX Tcaron abreve -92 KPX Tcaron acircumflex -92 KPX Tcaron adieresis -92 KPX Tcaron agrave -92 KPX Tcaron amacron -92 KPX Tcaron aogonek -92 KPX Tcaron aring -92 KPX Tcaron atilde -92 KPX Tcaron colon -55 KPX Tcaron comma -74 KPX Tcaron e -92 KPX Tcaron eacute -92 KPX Tcaron ecaron -92 KPX Tcaron ecircumflex -52 KPX Tcaron edieresis -52 KPX Tcaron edotaccent -92 KPX Tcaron egrave -52 KPX Tcaron emacron -52 KPX Tcaron eogonek -92 KPX Tcaron hyphen -74 KPX Tcaron i -55 KPX Tcaron iacute -55 KPX Tcaron iogonek -55 KPX Tcaron o -92 KPX Tcaron oacute -92 KPX Tcaron ocircumflex -92 KPX Tcaron odieresis -92 KPX Tcaron ograve -92 KPX Tcaron ohungarumlaut -92 KPX Tcaron omacron -92 KPX Tcaron oslash -92 KPX Tcaron otilde -92 KPX Tcaron period -74 KPX Tcaron r -55 KPX Tcaron racute -55 KPX Tcaron rcaron -55 KPX Tcaron rcommaaccent -55 KPX Tcaron semicolon -65 KPX Tcaron u -55 KPX Tcaron uacute -55 KPX Tcaron ucircumflex -55 KPX Tcaron udieresis -55 KPX Tcaron ugrave -55 KPX Tcaron uhungarumlaut -55 KPX Tcaron umacron -55 KPX Tcaron uogonek -55 KPX Tcaron uring -55 KPX Tcaron w -74 KPX Tcaron y -74 KPX Tcaron yacute -74 KPX Tcaron ydieresis -34 KPX Tcommaaccent A -50 KPX Tcommaaccent Aacute -50 KPX Tcommaaccent Abreve -50 KPX Tcommaaccent Acircumflex -50 KPX Tcommaaccent Adieresis -50 KPX Tcommaaccent Agrave -50 KPX Tcommaaccent Amacron -50 KPX Tcommaaccent Aogonek -50 KPX Tcommaaccent Aring -50 KPX Tcommaaccent Atilde -50 KPX Tcommaaccent O -18 KPX Tcommaaccent Oacute -18 KPX Tcommaaccent Ocircumflex -18 KPX Tcommaaccent Odieresis -18 KPX Tcommaaccent Ograve -18 KPX Tcommaaccent Ohungarumlaut -18 KPX Tcommaaccent Omacron -18 KPX Tcommaaccent Oslash -18 KPX Tcommaaccent Otilde -18 KPX Tcommaaccent a -92 KPX Tcommaaccent aacute -92 KPX Tcommaaccent abreve -92 KPX Tcommaaccent acircumflex -92 KPX Tcommaaccent adieresis -92 KPX Tcommaaccent agrave -92 KPX Tcommaaccent amacron -92 KPX Tcommaaccent aogonek -92 KPX Tcommaaccent aring -92 KPX Tcommaaccent atilde -92 KPX Tcommaaccent colon -55 KPX Tcommaaccent comma -74 KPX Tcommaaccent e -92 KPX Tcommaaccent eacute -92 KPX Tcommaaccent ecaron -92 KPX Tcommaaccent ecircumflex -52 KPX Tcommaaccent edieresis -52 KPX Tcommaaccent edotaccent -92 KPX Tcommaaccent egrave -52 KPX Tcommaaccent emacron -52 KPX Tcommaaccent eogonek -92 KPX Tcommaaccent hyphen -74 KPX Tcommaaccent i -55 KPX Tcommaaccent iacute -55 KPX Tcommaaccent iogonek -55 KPX Tcommaaccent o -92 KPX Tcommaaccent oacute -92 KPX Tcommaaccent ocircumflex -92 KPX Tcommaaccent odieresis -92 KPX Tcommaaccent ograve -92 KPX Tcommaaccent ohungarumlaut -92 KPX Tcommaaccent omacron -92 KPX Tcommaaccent oslash -92 KPX Tcommaaccent otilde -92 KPX Tcommaaccent period -74 KPX Tcommaaccent r -55 KPX Tcommaaccent racute -55 KPX Tcommaaccent rcaron -55 KPX Tcommaaccent rcommaaccent -55 KPX Tcommaaccent semicolon -65 KPX Tcommaaccent u -55 KPX Tcommaaccent uacute -55 KPX Tcommaaccent ucircumflex -55 KPX Tcommaaccent udieresis -55 KPX Tcommaaccent ugrave -55 KPX Tcommaaccent uhungarumlaut -55 KPX Tcommaaccent umacron -55 KPX Tcommaaccent uogonek -55 KPX Tcommaaccent uring -55 KPX Tcommaaccent w -74 KPX Tcommaaccent y -74 KPX Tcommaaccent yacute -74 KPX Tcommaaccent ydieresis -34 KPX U A -40 KPX U Aacute -40 KPX U Abreve -40 KPX U Acircumflex -40 KPX U Adieresis -40 KPX U Agrave -40 KPX U Amacron -40 KPX U Aogonek -40 KPX U Aring -40 KPX U Atilde -40 KPX U comma -25 KPX U period -25 KPX Uacute A -40 KPX Uacute Aacute -40 KPX Uacute Abreve -40 KPX Uacute Acircumflex -40 KPX Uacute Adieresis -40 KPX Uacute Agrave -40 KPX Uacute Amacron -40 KPX Uacute Aogonek -40 KPX Uacute Aring -40 KPX Uacute Atilde -40 KPX Uacute comma -25 KPX Uacute period -25 KPX Ucircumflex A -40 KPX Ucircumflex Aacute -40 KPX Ucircumflex Abreve -40 KPX Ucircumflex Acircumflex -40 KPX Ucircumflex Adieresis -40 KPX Ucircumflex Agrave -40 KPX Ucircumflex Amacron -40 KPX Ucircumflex Aogonek -40 KPX Ucircumflex Aring -40 KPX Ucircumflex Atilde -40 KPX Ucircumflex comma -25 KPX Ucircumflex period -25 KPX Udieresis A -40 KPX Udieresis Aacute -40 KPX Udieresis Abreve -40 KPX Udieresis Acircumflex -40 KPX Udieresis Adieresis -40 KPX Udieresis Agrave -40 KPX Udieresis Amacron -40 KPX Udieresis Aogonek -40 KPX Udieresis Aring -40 KPX Udieresis Atilde -40 KPX Udieresis comma -25 KPX Udieresis period -25 KPX Ugrave A -40 KPX Ugrave Aacute -40 KPX Ugrave Abreve -40 KPX Ugrave Acircumflex -40 KPX Ugrave Adieresis -40 KPX Ugrave Agrave -40 KPX Ugrave Amacron -40 KPX Ugrave Aogonek -40 KPX Ugrave Aring -40 KPX Ugrave Atilde -40 KPX Ugrave comma -25 KPX Ugrave period -25 KPX Uhungarumlaut A -40 KPX Uhungarumlaut Aacute -40 KPX Uhungarumlaut Abreve -40 KPX Uhungarumlaut Acircumflex -40 KPX Uhungarumlaut Adieresis -40 KPX Uhungarumlaut Agrave -40 KPX Uhungarumlaut Amacron -40 KPX Uhungarumlaut Aogonek -40 KPX Uhungarumlaut Aring -40 KPX Uhungarumlaut Atilde -40 KPX Uhungarumlaut comma -25 KPX Uhungarumlaut period -25 KPX Umacron A -40 KPX Umacron Aacute -40 KPX Umacron Abreve -40 KPX Umacron Acircumflex -40 KPX Umacron Adieresis -40 KPX Umacron Agrave -40 KPX Umacron Amacron -40 KPX Umacron Aogonek -40 KPX Umacron Aring -40 KPX Umacron Atilde -40 KPX Umacron comma -25 KPX Umacron period -25 KPX Uogonek A -40 KPX Uogonek Aacute -40 KPX Uogonek Abreve -40 KPX Uogonek Acircumflex -40 KPX Uogonek Adieresis -40 KPX Uogonek Agrave -40 KPX Uogonek Amacron -40 KPX Uogonek Aogonek -40 KPX Uogonek Aring -40 KPX Uogonek Atilde -40 KPX Uogonek comma -25 KPX Uogonek period -25 KPX Uring A -40 KPX Uring Aacute -40 KPX Uring Abreve -40 KPX Uring Acircumflex -40 KPX Uring Adieresis -40 KPX Uring Agrave -40 KPX Uring Amacron -40 KPX Uring Aogonek -40 KPX Uring Aring -40 KPX Uring Atilde -40 KPX Uring comma -25 KPX Uring period -25 KPX V A -60 KPX V Aacute -60 KPX V Abreve -60 KPX V Acircumflex -60 KPX V Adieresis -60 KPX V Agrave -60 KPX V Amacron -60 KPX V Aogonek -60 KPX V Aring -60 KPX V Atilde -60 KPX V O -30 KPX V Oacute -30 KPX V Ocircumflex -30 KPX V Odieresis -30 KPX V Ograve -30 KPX V Ohungarumlaut -30 KPX V Omacron -30 KPX V Oslash -30 KPX V Otilde -30 KPX V a -111 KPX V aacute -111 KPX V abreve -111 KPX V acircumflex -111 KPX V adieresis -111 KPX V agrave -111 KPX V amacron -111 KPX V aogonek -111 KPX V aring -111 KPX V atilde -111 KPX V colon -65 KPX V comma -129 KPX V e -111 KPX V eacute -111 KPX V ecaron -111 KPX V ecircumflex -111 KPX V edieresis -71 KPX V edotaccent -111 KPX V egrave -71 KPX V emacron -71 KPX V eogonek -111 KPX V hyphen -55 KPX V i -74 KPX V iacute -74 KPX V icircumflex -34 KPX V idieresis -34 KPX V igrave -34 KPX V imacron -34 KPX V iogonek -74 KPX V o -111 KPX V oacute -111 KPX V ocircumflex -111 KPX V odieresis -111 KPX V ograve -111 KPX V ohungarumlaut -111 KPX V omacron -111 KPX V oslash -111 KPX V otilde -111 KPX V period -129 KPX V semicolon -74 KPX V u -74 KPX V uacute -74 KPX V ucircumflex -74 KPX V udieresis -74 KPX V ugrave -74 KPX V uhungarumlaut -74 KPX V umacron -74 KPX V uogonek -74 KPX V uring -74 KPX W A -60 KPX W Aacute -60 KPX W Abreve -60 KPX W Acircumflex -60 KPX W Adieresis -60 KPX W Agrave -60 KPX W Amacron -60 KPX W Aogonek -60 KPX W Aring -60 KPX W Atilde -60 KPX W O -25 KPX W Oacute -25 KPX W Ocircumflex -25 KPX W Odieresis -25 KPX W Ograve -25 KPX W Ohungarumlaut -25 KPX W Omacron -25 KPX W Oslash -25 KPX W Otilde -25 KPX W a -92 KPX W aacute -92 KPX W abreve -92 KPX W acircumflex -92 KPX W adieresis -92 KPX W agrave -92 KPX W amacron -92 KPX W aogonek -92 KPX W aring -92 KPX W atilde -92 KPX W colon -65 KPX W comma -92 KPX W e -92 KPX W eacute -92 KPX W ecaron -92 KPX W ecircumflex -92 KPX W edieresis -52 KPX W edotaccent -92 KPX W egrave -52 KPX W emacron -52 KPX W eogonek -92 KPX W hyphen -37 KPX W i -55 KPX W iacute -55 KPX W iogonek -55 KPX W o -92 KPX W oacute -92 KPX W ocircumflex -92 KPX W odieresis -92 KPX W ograve -92 KPX W ohungarumlaut -92 KPX W omacron -92 KPX W oslash -92 KPX W otilde -92 KPX W period -92 KPX W semicolon -65 KPX W u -55 KPX W uacute -55 KPX W ucircumflex -55 KPX W udieresis -55 KPX W ugrave -55 KPX W uhungarumlaut -55 KPX W umacron -55 KPX W uogonek -55 KPX W uring -55 KPX W y -70 KPX W yacute -70 KPX W ydieresis -70 KPX Y A -50 KPX Y Aacute -50 KPX Y Abreve -50 KPX Y Acircumflex -50 KPX Y Adieresis -50 KPX Y Agrave -50 KPX Y Amacron -50 KPX Y Aogonek -50 KPX Y Aring -50 KPX Y Atilde -50 KPX Y O -15 KPX Y Oacute -15 KPX Y Ocircumflex -15 KPX Y Odieresis -15 KPX Y Ograve -15 KPX Y Ohungarumlaut -15 KPX Y Omacron -15 KPX Y Oslash -15 KPX Y Otilde -15 KPX Y a -92 KPX Y aacute -92 KPX Y abreve -92 KPX Y acircumflex -92 KPX Y adieresis -92 KPX Y agrave -92 KPX Y amacron -92 KPX Y aogonek -92 KPX Y aring -92 KPX Y atilde -92 KPX Y colon -65 KPX Y comma -92 KPX Y e -92 KPX Y eacute -92 KPX Y ecaron -92 KPX Y ecircumflex -92 KPX Y edieresis -52 KPX Y edotaccent -92 KPX Y egrave -52 KPX Y emacron -52 KPX Y eogonek -92 KPX Y hyphen -74 KPX Y i -74 KPX Y iacute -74 KPX Y icircumflex -34 KPX Y idieresis -34 KPX Y igrave -34 KPX Y imacron -34 KPX Y iogonek -74 KPX Y o -92 KPX Y oacute -92 KPX Y ocircumflex -92 KPX Y odieresis -92 KPX Y ograve -92 KPX Y ohungarumlaut -92 KPX Y omacron -92 KPX Y oslash -92 KPX Y otilde -92 KPX Y period -92 KPX Y semicolon -65 KPX Y u -92 KPX Y uacute -92 KPX Y ucircumflex -92 KPX Y udieresis -92 KPX Y ugrave -92 KPX Y uhungarumlaut -92 KPX Y umacron -92 KPX Y uogonek -92 KPX Y uring -92 KPX Yacute A -50 KPX Yacute Aacute -50 KPX Yacute Abreve -50 KPX Yacute Acircumflex -50 KPX Yacute Adieresis -50 KPX Yacute Agrave -50 KPX Yacute Amacron -50 KPX Yacute Aogonek -50 KPX Yacute Aring -50 KPX Yacute Atilde -50 KPX Yacute O -15 KPX Yacute Oacute -15 KPX Yacute Ocircumflex -15 KPX Yacute Odieresis -15 KPX Yacute Ograve -15 KPX Yacute Ohungarumlaut -15 KPX Yacute Omacron -15 KPX Yacute Oslash -15 KPX Yacute Otilde -15 KPX Yacute a -92 KPX Yacute aacute -92 KPX Yacute abreve -92 KPX Yacute acircumflex -92 KPX Yacute adieresis -92 KPX Yacute agrave -92 KPX Yacute amacron -92 KPX Yacute aogonek -92 KPX Yacute aring -92 KPX Yacute atilde -92 KPX Yacute colon -65 KPX Yacute comma -92 KPX Yacute e -92 KPX Yacute eacute -92 KPX Yacute ecaron -92 KPX Yacute ecircumflex -92 KPX Yacute edieresis -52 KPX Yacute edotaccent -92 KPX Yacute egrave -52 KPX Yacute emacron -52 KPX Yacute eogonek -92 KPX Yacute hyphen -74 KPX Yacute i -74 KPX Yacute iacute -74 KPX Yacute icircumflex -34 KPX Yacute idieresis -34 KPX Yacute igrave -34 KPX Yacute imacron -34 KPX Yacute iogonek -74 KPX Yacute o -92 KPX Yacute oacute -92 KPX Yacute ocircumflex -92 KPX Yacute odieresis -92 KPX Yacute ograve -92 KPX Yacute ohungarumlaut -92 KPX Yacute omacron -92 KPX Yacute oslash -92 KPX Yacute otilde -92 KPX Yacute period -92 KPX Yacute semicolon -65 KPX Yacute u -92 KPX Yacute uacute -92 KPX Yacute ucircumflex -92 KPX Yacute udieresis -92 KPX Yacute ugrave -92 KPX Yacute uhungarumlaut -92 KPX Yacute umacron -92 KPX Yacute uogonek -92 KPX Yacute uring -92 KPX Ydieresis A -50 KPX Ydieresis Aacute -50 KPX Ydieresis Abreve -50 KPX Ydieresis Acircumflex -50 KPX Ydieresis Adieresis -50 KPX Ydieresis Agrave -50 KPX Ydieresis Amacron -50 KPX Ydieresis Aogonek -50 KPX Ydieresis Aring -50 KPX Ydieresis Atilde -50 KPX Ydieresis O -15 KPX Ydieresis Oacute -15 KPX Ydieresis Ocircumflex -15 KPX Ydieresis Odieresis -15 KPX Ydieresis Ograve -15 KPX Ydieresis Ohungarumlaut -15 KPX Ydieresis Omacron -15 KPX Ydieresis Oslash -15 KPX Ydieresis Otilde -15 KPX Ydieresis a -92 KPX Ydieresis aacute -92 KPX Ydieresis abreve -92 KPX Ydieresis acircumflex -92 KPX Ydieresis adieresis -92 KPX Ydieresis agrave -92 KPX Ydieresis amacron -92 KPX Ydieresis aogonek -92 KPX Ydieresis aring -92 KPX Ydieresis atilde -92 KPX Ydieresis colon -65 KPX Ydieresis comma -92 KPX Ydieresis e -92 KPX Ydieresis eacute -92 KPX Ydieresis ecaron -92 KPX Ydieresis ecircumflex -92 KPX Ydieresis edieresis -52 KPX Ydieresis edotaccent -92 KPX Ydieresis egrave -52 KPX Ydieresis emacron -52 KPX Ydieresis eogonek -92 KPX Ydieresis hyphen -74 KPX Ydieresis i -74 KPX Ydieresis iacute -74 KPX Ydieresis icircumflex -34 KPX Ydieresis idieresis -34 KPX Ydieresis igrave -34 KPX Ydieresis imacron -34 KPX Ydieresis iogonek -74 KPX Ydieresis o -92 KPX Ydieresis oacute -92 KPX Ydieresis ocircumflex -92 KPX Ydieresis odieresis -92 KPX Ydieresis ograve -92 KPX Ydieresis ohungarumlaut -92 KPX Ydieresis omacron -92 KPX Ydieresis oslash -92 KPX Ydieresis otilde -92 KPX Ydieresis period -92 KPX Ydieresis semicolon -65 KPX Ydieresis u -92 KPX Ydieresis uacute -92 KPX Ydieresis ucircumflex -92 KPX Ydieresis udieresis -92 KPX Ydieresis ugrave -92 KPX Ydieresis uhungarumlaut -92 KPX Ydieresis umacron -92 KPX Ydieresis uogonek -92 KPX Ydieresis uring -92 KPX a g -10 KPX a gbreve -10 KPX a gcommaaccent -10 KPX aacute g -10 KPX aacute gbreve -10 KPX aacute gcommaaccent -10 KPX abreve g -10 KPX abreve gbreve -10 KPX abreve gcommaaccent -10 KPX acircumflex g -10 KPX acircumflex gbreve -10 KPX acircumflex gcommaaccent -10 KPX adieresis g -10 KPX adieresis gbreve -10 KPX adieresis gcommaaccent -10 KPX agrave g -10 KPX agrave gbreve -10 KPX agrave gcommaaccent -10 KPX amacron g -10 KPX amacron gbreve -10 KPX amacron gcommaaccent -10 KPX aogonek g -10 KPX aogonek gbreve -10 KPX aogonek gcommaaccent -10 KPX aring g -10 KPX aring gbreve -10 KPX aring gcommaaccent -10 KPX atilde g -10 KPX atilde gbreve -10 KPX atilde gcommaaccent -10 KPX b period -40 KPX b u -20 KPX b uacute -20 KPX b ucircumflex -20 KPX b udieresis -20 KPX b ugrave -20 KPX b uhungarumlaut -20 KPX b umacron -20 KPX b uogonek -20 KPX b uring -20 KPX c h -15 KPX c k -20 KPX c kcommaaccent -20 KPX cacute h -15 KPX cacute k -20 KPX cacute kcommaaccent -20 KPX ccaron h -15 KPX ccaron k -20 KPX ccaron kcommaaccent -20 KPX ccedilla h -15 KPX ccedilla k -20 KPX ccedilla kcommaaccent -20 KPX comma quotedblright -140 KPX comma quoteright -140 KPX e comma -10 KPX e g -40 KPX e gbreve -40 KPX e gcommaaccent -40 KPX e period -15 KPX e v -15 KPX e w -15 KPX e x -20 KPX e y -30 KPX e yacute -30 KPX e ydieresis -30 KPX eacute comma -10 KPX eacute g -40 KPX eacute gbreve -40 KPX eacute gcommaaccent -40 KPX eacute period -15 KPX eacute v -15 KPX eacute w -15 KPX eacute x -20 KPX eacute y -30 KPX eacute yacute -30 KPX eacute ydieresis -30 KPX ecaron comma -10 KPX ecaron g -40 KPX ecaron gbreve -40 KPX ecaron gcommaaccent -40 KPX ecaron period -15 KPX ecaron v -15 KPX ecaron w -15 KPX ecaron x -20 KPX ecaron y -30 KPX ecaron yacute -30 KPX ecaron ydieresis -30 KPX ecircumflex comma -10 KPX ecircumflex g -40 KPX ecircumflex gbreve -40 KPX ecircumflex gcommaaccent -40 KPX ecircumflex period -15 KPX ecircumflex v -15 KPX ecircumflex w -15 KPX ecircumflex x -20 KPX ecircumflex y -30 KPX ecircumflex yacute -30 KPX ecircumflex ydieresis -30 KPX edieresis comma -10 KPX edieresis g -40 KPX edieresis gbreve -40 KPX edieresis gcommaaccent -40 KPX edieresis period -15 KPX edieresis v -15 KPX edieresis w -15 KPX edieresis x -20 KPX edieresis y -30 KPX edieresis yacute -30 KPX edieresis ydieresis -30 KPX edotaccent comma -10 KPX edotaccent g -40 KPX edotaccent gbreve -40 KPX edotaccent gcommaaccent -40 KPX edotaccent period -15 KPX edotaccent v -15 KPX edotaccent w -15 KPX edotaccent x -20 KPX edotaccent y -30 KPX edotaccent yacute -30 KPX edotaccent ydieresis -30 KPX egrave comma -10 KPX egrave g -40 KPX egrave gbreve -40 KPX egrave gcommaaccent -40 KPX egrave period -15 KPX egrave v -15 KPX egrave w -15 KPX egrave x -20 KPX egrave y -30 KPX egrave yacute -30 KPX egrave ydieresis -30 KPX emacron comma -10 KPX emacron g -40 KPX emacron gbreve -40 KPX emacron gcommaaccent -40 KPX emacron period -15 KPX emacron v -15 KPX emacron w -15 KPX emacron x -20 KPX emacron y -30 KPX emacron yacute -30 KPX emacron ydieresis -30 KPX eogonek comma -10 KPX eogonek g -40 KPX eogonek gbreve -40 KPX eogonek gcommaaccent -40 KPX eogonek period -15 KPX eogonek v -15 KPX eogonek w -15 KPX eogonek x -20 KPX eogonek y -30 KPX eogonek yacute -30 KPX eogonek ydieresis -30 KPX f comma -10 KPX f dotlessi -60 KPX f f -18 KPX f i -20 KPX f iogonek -20 KPX f period -15 KPX f quoteright 92 KPX g comma -10 KPX g e -10 KPX g eacute -10 KPX g ecaron -10 KPX g ecircumflex -10 KPX g edieresis -10 KPX g edotaccent -10 KPX g egrave -10 KPX g emacron -10 KPX g eogonek -10 KPX g g -10 KPX g gbreve -10 KPX g gcommaaccent -10 KPX g period -15 KPX gbreve comma -10 KPX gbreve e -10 KPX gbreve eacute -10 KPX gbreve ecaron -10 KPX gbreve ecircumflex -10 KPX gbreve edieresis -10 KPX gbreve edotaccent -10 KPX gbreve egrave -10 KPX gbreve emacron -10 KPX gbreve eogonek -10 KPX gbreve g -10 KPX gbreve gbreve -10 KPX gbreve gcommaaccent -10 KPX gbreve period -15 KPX gcommaaccent comma -10 KPX gcommaaccent e -10 KPX gcommaaccent eacute -10 KPX gcommaaccent ecaron -10 KPX gcommaaccent ecircumflex -10 KPX gcommaaccent edieresis -10 KPX gcommaaccent edotaccent -10 KPX gcommaaccent egrave -10 KPX gcommaaccent emacron -10 KPX gcommaaccent eogonek -10 KPX gcommaaccent g -10 KPX gcommaaccent gbreve -10 KPX gcommaaccent gcommaaccent -10 KPX gcommaaccent period -15 KPX k e -10 KPX k eacute -10 KPX k ecaron -10 KPX k ecircumflex -10 KPX k edieresis -10 KPX k edotaccent -10 KPX k egrave -10 KPX k emacron -10 KPX k eogonek -10 KPX k o -10 KPX k oacute -10 KPX k ocircumflex -10 KPX k odieresis -10 KPX k ograve -10 KPX k ohungarumlaut -10 KPX k omacron -10 KPX k oslash -10 KPX k otilde -10 KPX k y -10 KPX k yacute -10 KPX k ydieresis -10 KPX kcommaaccent e -10 KPX kcommaaccent eacute -10 KPX kcommaaccent ecaron -10 KPX kcommaaccent ecircumflex -10 KPX kcommaaccent edieresis -10 KPX kcommaaccent edotaccent -10 KPX kcommaaccent egrave -10 KPX kcommaaccent emacron -10 KPX kcommaaccent eogonek -10 KPX kcommaaccent o -10 KPX kcommaaccent oacute -10 KPX kcommaaccent ocircumflex -10 KPX kcommaaccent odieresis -10 KPX kcommaaccent ograve -10 KPX kcommaaccent ohungarumlaut -10 KPX kcommaaccent omacron -10 KPX kcommaaccent oslash -10 KPX kcommaaccent otilde -10 KPX kcommaaccent y -10 KPX kcommaaccent yacute -10 KPX kcommaaccent ydieresis -10 KPX n v -40 KPX nacute v -40 KPX ncaron v -40 KPX ncommaaccent v -40 KPX ntilde v -40 KPX o g -10 KPX o gbreve -10 KPX o gcommaaccent -10 KPX o v -10 KPX oacute g -10 KPX oacute gbreve -10 KPX oacute gcommaaccent -10 KPX oacute v -10 KPX ocircumflex g -10 KPX ocircumflex gbreve -10 KPX ocircumflex gcommaaccent -10 KPX ocircumflex v -10 KPX odieresis g -10 KPX odieresis gbreve -10 KPX odieresis gcommaaccent -10 KPX odieresis v -10 KPX ograve g -10 KPX ograve gbreve -10 KPX ograve gcommaaccent -10 KPX ograve v -10 KPX ohungarumlaut g -10 KPX ohungarumlaut gbreve -10 KPX ohungarumlaut gcommaaccent -10 KPX ohungarumlaut v -10 KPX omacron g -10 KPX omacron gbreve -10 KPX omacron gcommaaccent -10 KPX omacron v -10 KPX oslash g -10 KPX oslash gbreve -10 KPX oslash gcommaaccent -10 KPX oslash v -10 KPX otilde g -10 KPX otilde gbreve -10 KPX otilde gcommaaccent -10 KPX otilde v -10 KPX period quotedblright -140 KPX period quoteright -140 KPX quoteleft quoteleft -111 KPX quoteright d -25 KPX quoteright dcroat -25 KPX quoteright quoteright -111 KPX quoteright r -25 KPX quoteright racute -25 KPX quoteright rcaron -25 KPX quoteright rcommaaccent -25 KPX quoteright s -40 KPX quoteright sacute -40 KPX quoteright scaron -40 KPX quoteright scedilla -40 KPX quoteright scommaaccent -40 KPX quoteright space -111 KPX quoteright t -30 KPX quoteright tcommaaccent -30 KPX quoteright v -10 KPX r a -15 KPX r aacute -15 KPX r abreve -15 KPX r acircumflex -15 KPX r adieresis -15 KPX r agrave -15 KPX r amacron -15 KPX r aogonek -15 KPX r aring -15 KPX r atilde -15 KPX r c -37 KPX r cacute -37 KPX r ccaron -37 KPX r ccedilla -37 KPX r comma -111 KPX r d -37 KPX r dcroat -37 KPX r e -37 KPX r eacute -37 KPX r ecaron -37 KPX r ecircumflex -37 KPX r edieresis -37 KPX r edotaccent -37 KPX r egrave -37 KPX r emacron -37 KPX r eogonek -37 KPX r g -37 KPX r gbreve -37 KPX r gcommaaccent -37 KPX r hyphen -20 KPX r o -45 KPX r oacute -45 KPX r ocircumflex -45 KPX r odieresis -45 KPX r ograve -45 KPX r ohungarumlaut -45 KPX r omacron -45 KPX r oslash -45 KPX r otilde -45 KPX r period -111 KPX r q -37 KPX r s -10 KPX r sacute -10 KPX r scaron -10 KPX r scedilla -10 KPX r scommaaccent -10 KPX racute a -15 KPX racute aacute -15 KPX racute abreve -15 KPX racute acircumflex -15 KPX racute adieresis -15 KPX racute agrave -15 KPX racute amacron -15 KPX racute aogonek -15 KPX racute aring -15 KPX racute atilde -15 KPX racute c -37 KPX racute cacute -37 KPX racute ccaron -37 KPX racute ccedilla -37 KPX racute comma -111 KPX racute d -37 KPX racute dcroat -37 KPX racute e -37 KPX racute eacute -37 KPX racute ecaron -37 KPX racute ecircumflex -37 KPX racute edieresis -37 KPX racute edotaccent -37 KPX racute egrave -37 KPX racute emacron -37 KPX racute eogonek -37 KPX racute g -37 KPX racute gbreve -37 KPX racute gcommaaccent -37 KPX racute hyphen -20 KPX racute o -45 KPX racute oacute -45 KPX racute ocircumflex -45 KPX racute odieresis -45 KPX racute ograve -45 KPX racute ohungarumlaut -45 KPX racute omacron -45 KPX racute oslash -45 KPX racute otilde -45 KPX racute period -111 KPX racute q -37 KPX racute s -10 KPX racute sacute -10 KPX racute scaron -10 KPX racute scedilla -10 KPX racute scommaaccent -10 KPX rcaron a -15 KPX rcaron aacute -15 KPX rcaron abreve -15 KPX rcaron acircumflex -15 KPX rcaron adieresis -15 KPX rcaron agrave -15 KPX rcaron amacron -15 KPX rcaron aogonek -15 KPX rcaron aring -15 KPX rcaron atilde -15 KPX rcaron c -37 KPX rcaron cacute -37 KPX rcaron ccaron -37 KPX rcaron ccedilla -37 KPX rcaron comma -111 KPX rcaron d -37 KPX rcaron dcroat -37 KPX rcaron e -37 KPX rcaron eacute -37 KPX rcaron ecaron -37 KPX rcaron ecircumflex -37 KPX rcaron edieresis -37 KPX rcaron edotaccent -37 KPX rcaron egrave -37 KPX rcaron emacron -37 KPX rcaron eogonek -37 KPX rcaron g -37 KPX rcaron gbreve -37 KPX rcaron gcommaaccent -37 KPX rcaron hyphen -20 KPX rcaron o -45 KPX rcaron oacute -45 KPX rcaron ocircumflex -45 KPX rcaron odieresis -45 KPX rcaron ograve -45 KPX rcaron ohungarumlaut -45 KPX rcaron omacron -45 KPX rcaron oslash -45 KPX rcaron otilde -45 KPX rcaron period -111 KPX rcaron q -37 KPX rcaron s -10 KPX rcaron sacute -10 KPX rcaron scaron -10 KPX rcaron scedilla -10 KPX rcaron scommaaccent -10 KPX rcommaaccent a -15 KPX rcommaaccent aacute -15 KPX rcommaaccent abreve -15 KPX rcommaaccent acircumflex -15 KPX rcommaaccent adieresis -15 KPX rcommaaccent agrave -15 KPX rcommaaccent amacron -15 KPX rcommaaccent aogonek -15 KPX rcommaaccent aring -15 KPX rcommaaccent atilde -15 KPX rcommaaccent c -37 KPX rcommaaccent cacute -37 KPX rcommaaccent ccaron -37 KPX rcommaaccent ccedilla -37 KPX rcommaaccent comma -111 KPX rcommaaccent d -37 KPX rcommaaccent dcroat -37 KPX rcommaaccent e -37 KPX rcommaaccent eacute -37 KPX rcommaaccent ecaron -37 KPX rcommaaccent ecircumflex -37 KPX rcommaaccent edieresis -37 KPX rcommaaccent edotaccent -37 KPX rcommaaccent egrave -37 KPX rcommaaccent emacron -37 KPX rcommaaccent eogonek -37 KPX rcommaaccent g -37 KPX rcommaaccent gbreve -37 KPX rcommaaccent gcommaaccent -37 KPX rcommaaccent hyphen -20 KPX rcommaaccent o -45 KPX rcommaaccent oacute -45 KPX rcommaaccent ocircumflex -45 KPX rcommaaccent odieresis -45 KPX rcommaaccent ograve -45 KPX rcommaaccent ohungarumlaut -45 KPX rcommaaccent omacron -45 KPX rcommaaccent oslash -45 KPX rcommaaccent otilde -45 KPX rcommaaccent period -111 KPX rcommaaccent q -37 KPX rcommaaccent s -10 KPX rcommaaccent sacute -10 KPX rcommaaccent scaron -10 KPX rcommaaccent scedilla -10 KPX rcommaaccent scommaaccent -10 KPX space A -18 KPX space Aacute -18 KPX space Abreve -18 KPX space Acircumflex -18 KPX space Adieresis -18 KPX space Agrave -18 KPX space Amacron -18 KPX space Aogonek -18 KPX space Aring -18 KPX space Atilde -18 KPX space T -18 KPX space Tcaron -18 KPX space Tcommaaccent -18 KPX space V -35 KPX space W -40 KPX space Y -75 KPX space Yacute -75 KPX space Ydieresis -75 KPX v comma -74 KPX v period -74 KPX w comma -74 KPX w period -74 KPX y comma -55 KPX y period -55 KPX yacute comma -55 KPX yacute period -55 KPX ydieresis comma -55 KPX ydieresis period -55 EndKernPairs EndKernData EndFontMetrics a2ps-4.14/afm/Makefile.am0000644000175000017500000000454710735324662014446 0ustar mhattamhatta# -*- Makefile -*- # Makefile for a2ps' AFM library directory. # # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # # $Id: Makefile.am,v 1.1.1.1.2.2 2007/12/29 01:58:10 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. # 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."; \ cp $(srcdir)/fontsmap fonts.map; \ fi a2ps-4.14/afm/phvbo.afm0000644000175000017500000020726510674334152014214 0ustar mhattamhattaStartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Thu May 1 12:45:12 1997 Comment UniqueID 43053 Comment VMusage 14482 68586 FontName Helvetica-BoldOblique FullName Helvetica Bold Oblique FamilyName Helvetica Weight Bold ItalicAngle -12 IsFixedPitch false FontBBox -174 -228 1114 962 UnderlinePosition -100 UnderlineThickness 50 Version 002.000 Notice Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries. EncodingScheme AdobeStandardEncoding CapHeight 718 XHeight 532 Ascender 718 Descender -207 StdHW 118 StdVW 140 StartCharMetrics 314 C 32 ; WX 278 ; N space ; B 0 0 0 0 ; C 33 ; WX 333 ; N exclam ; B 94 0 397 718 ; C 34 ; WX 474 ; N quotedbl ; B 193 447 529 718 ; C 35 ; WX 556 ; N numbersign ; B 60 0 644 698 ; C 36 ; WX 556 ; N dollar ; B 67 -115 622 775 ; C 37 ; WX 889 ; N percent ; B 136 -19 901 710 ; C 38 ; WX 722 ; N ampersand ; B 89 -19 732 718 ; C 39 ; WX 278 ; N quoteright ; B 167 445 362 718 ; C 40 ; WX 333 ; N parenleft ; B 76 -208 470 734 ; C 41 ; WX 333 ; N parenright ; B -25 -208 369 734 ; C 42 ; WX 389 ; N asterisk ; B 146 387 481 718 ; C 43 ; WX 584 ; N plus ; B 82 0 610 506 ; C 44 ; WX 278 ; N comma ; B 28 -168 245 146 ; C 45 ; WX 333 ; N hyphen ; B 73 215 379 345 ; C 46 ; WX 278 ; N period ; B 64 0 245 146 ; C 47 ; WX 278 ; N slash ; B -37 -19 468 737 ; C 48 ; WX 556 ; N zero ; B 86 -19 617 710 ; C 49 ; WX 556 ; N one ; B 173 0 529 710 ; C 50 ; WX 556 ; N two ; B 26 0 619 710 ; C 51 ; WX 556 ; N three ; B 65 -19 608 710 ; C 52 ; WX 556 ; N four ; B 60 0 598 710 ; C 53 ; WX 556 ; N five ; B 64 -19 636 698 ; C 54 ; WX 556 ; N six ; B 85 -19 619 710 ; C 55 ; WX 556 ; N seven ; B 125 0 676 698 ; C 56 ; WX 556 ; N eight ; B 69 -19 616 710 ; C 57 ; WX 556 ; N nine ; B 78 -19 615 710 ; C 58 ; WX 333 ; N colon ; B 92 0 351 512 ; C 59 ; WX 333 ; N semicolon ; B 56 -168 351 512 ; C 60 ; WX 584 ; N less ; B 82 -8 655 514 ; C 61 ; WX 584 ; N equal ; B 58 87 633 419 ; C 62 ; WX 584 ; N greater ; B 36 -8 609 514 ; C 63 ; WX 611 ; N question ; B 165 0 671 727 ; C 64 ; WX 975 ; N at ; B 186 -19 954 737 ; C 65 ; WX 722 ; N A ; B 20 0 702 718 ; C 66 ; WX 722 ; N B ; B 76 0 764 718 ; C 67 ; WX 722 ; N C ; B 107 -19 789 737 ; C 68 ; WX 722 ; N D ; B 76 0 777 718 ; C 69 ; WX 667 ; N E ; B 76 0 757 718 ; C 70 ; WX 611 ; N F ; B 76 0 740 718 ; C 71 ; WX 778 ; N G ; B 108 -19 817 737 ; C 72 ; WX 722 ; N H ; B 71 0 804 718 ; C 73 ; WX 278 ; N I ; B 64 0 367 718 ; C 74 ; WX 556 ; N J ; B 60 -18 637 718 ; C 75 ; WX 722 ; N K ; B 87 0 858 718 ; C 76 ; WX 611 ; N L ; B 76 0 611 718 ; C 77 ; WX 833 ; N M ; B 69 0 918 718 ; C 78 ; WX 722 ; N N ; B 69 0 807 718 ; C 79 ; WX 778 ; N O ; B 107 -19 823 737 ; C 80 ; WX 667 ; N P ; B 76 0 738 718 ; C 81 ; WX 778 ; N Q ; B 107 -52 823 737 ; C 82 ; WX 722 ; N R ; B 76 0 778 718 ; C 83 ; WX 667 ; N S ; B 81 -19 718 737 ; C 84 ; WX 611 ; N T ; B 140 0 751 718 ; C 85 ; WX 722 ; N U ; B 116 -19 804 718 ; C 86 ; WX 667 ; N V ; B 172 0 801 718 ; C 87 ; WX 944 ; N W ; B 169 0 1082 718 ; C 88 ; WX 667 ; N X ; B 14 0 791 718 ; C 89 ; WX 667 ; N Y ; B 168 0 806 718 ; C 90 ; WX 611 ; N Z ; B 25 0 737 718 ; C 91 ; WX 333 ; N bracketleft ; B 21 -196 462 722 ; C 92 ; WX 278 ; N backslash ; B 124 -19 307 737 ; C 93 ; WX 333 ; N bracketright ; B -18 -196 423 722 ; C 94 ; WX 584 ; N asciicircum ; B 131 323 591 698 ; C 95 ; WX 556 ; N underscore ; B -27 -125 540 -75 ; C 96 ; WX 278 ; N quoteleft ; B 165 454 361 727 ; C 97 ; WX 556 ; N a ; B 55 -14 583 546 ; C 98 ; WX 611 ; N b ; B 61 -14 645 718 ; C 99 ; WX 556 ; N c ; B 79 -14 599 546 ; C 100 ; WX 611 ; N d ; B 82 -14 704 718 ; C 101 ; WX 556 ; N e ; B 70 -14 593 546 ; C 102 ; WX 333 ; N f ; B 87 0 469 727 ; L i fi ; L l fl ; C 103 ; WX 611 ; N g ; B 38 -217 666 546 ; C 104 ; WX 611 ; N h ; B 65 0 629 718 ; C 105 ; WX 278 ; N i ; B 69 0 363 725 ; C 106 ; WX 278 ; N j ; B -42 -214 363 725 ; C 107 ; WX 556 ; N k ; B 69 0 670 718 ; C 108 ; WX 278 ; N l ; B 69 0 362 718 ; C 109 ; WX 889 ; N m ; B 64 0 909 546 ; C 110 ; WX 611 ; N n ; B 65 0 629 546 ; C 111 ; WX 611 ; N o ; B 82 -14 643 546 ; C 112 ; WX 611 ; N p ; B 18 -207 645 546 ; C 113 ; WX 611 ; N q ; B 80 -207 665 546 ; C 114 ; WX 389 ; N r ; B 64 0 489 546 ; C 115 ; WX 556 ; N s ; B 63 -14 584 546 ; C 116 ; WX 333 ; N t ; B 100 -6 422 676 ; C 117 ; WX 611 ; N u ; B 98 -14 658 532 ; C 118 ; WX 556 ; N v ; B 126 0 656 532 ; C 119 ; WX 778 ; N w ; B 123 0 882 532 ; C 120 ; WX 556 ; N x ; B 15 0 648 532 ; C 121 ; WX 556 ; N y ; B 42 -214 652 532 ; C 122 ; WX 500 ; N z ; B 20 0 583 532 ; C 123 ; WX 389 ; N braceleft ; B 94 -196 518 722 ; C 124 ; WX 280 ; N bar ; B 36 -225 361 775 ; C 125 ; WX 389 ; N braceright ; B -18 -196 407 722 ; C 126 ; WX 584 ; N asciitilde ; B 115 163 577 343 ; C 161 ; WX 333 ; N exclamdown ; B 50 -186 353 532 ; C 162 ; WX 556 ; N cent ; B 79 -118 599 628 ; C 163 ; WX 556 ; N sterling ; B 50 -16 635 718 ; C 164 ; WX 167 ; N fraction ; B -174 -19 487 710 ; C 165 ; WX 556 ; N yen ; B 60 0 713 698 ; C 166 ; WX 556 ; N florin ; B -50 -210 669 737 ; C 167 ; WX 556 ; N section ; B 61 -184 598 727 ; C 168 ; WX 556 ; N currency ; B 27 76 680 636 ; C 169 ; WX 238 ; N quotesingle ; B 165 447 321 718 ; C 170 ; WX 500 ; N quotedblleft ; B 160 454 588 727 ; C 171 ; WX 556 ; N guillemotleft ; B 135 76 571 484 ; C 172 ; WX 333 ; N guilsinglleft ; B 130 76 353 484 ; C 173 ; WX 333 ; N guilsinglright ; B 99 76 322 484 ; C 174 ; WX 611 ; N fi ; B 87 0 696 727 ; C 175 ; WX 611 ; N fl ; B 87 0 695 727 ; C 177 ; WX 556 ; N endash ; B 48 227 627 333 ; C 178 ; WX 556 ; N dagger ; B 118 -171 626 718 ; C 179 ; WX 556 ; N daggerdbl ; B 46 -171 628 718 ; C 180 ; WX 278 ; N periodcentered ; B 110 172 276 334 ; C 182 ; WX 556 ; N paragraph ; B 98 -191 688 700 ; C 183 ; WX 350 ; N bullet ; B 83 194 420 524 ; C 184 ; WX 278 ; N quotesinglbase ; B 41 -146 236 127 ; C 185 ; WX 500 ; N quotedblbase ; B 36 -146 463 127 ; C 186 ; WX 500 ; N quotedblright ; B 162 445 589 718 ; C 187 ; WX 556 ; N guillemotright ; B 104 76 540 484 ; C 188 ; WX 1000 ; N ellipsis ; B 92 0 939 146 ; C 189 ; WX 1000 ; N perthousand ; B 76 -19 1038 710 ; C 191 ; WX 611 ; N questiondown ; B 53 -195 559 532 ; C 193 ; WX 333 ; N grave ; B 136 604 353 750 ; C 194 ; WX 333 ; N acute ; B 236 604 515 750 ; C 195 ; WX 333 ; N circumflex ; B 118 604 471 750 ; C 196 ; WX 333 ; N tilde ; B 113 610 507 737 ; C 197 ; WX 333 ; N macron ; B 122 604 483 678 ; C 198 ; WX 333 ; N breve ; B 156 604 494 750 ; C 199 ; WX 333 ; N dotaccent ; B 235 614 385 729 ; C 200 ; WX 333 ; N dieresis ; B 137 614 482 729 ; C 202 ; WX 333 ; N ring ; B 200 568 420 776 ; C 203 ; WX 333 ; N cedilla ; B -37 -228 220 0 ; C 205 ; WX 333 ; N hungarumlaut ; B 137 604 645 750 ; C 206 ; WX 333 ; N ogonek ; B 41 -228 264 0 ; C 207 ; WX 333 ; N caron ; B 149 604 502 750 ; C 208 ; WX 1000 ; N emdash ; B 48 227 1071 333 ; C 225 ; WX 1000 ; N AE ; B 5 0 1100 718 ; C 227 ; WX 370 ; N ordfeminine ; B 125 401 465 737 ; C 232 ; WX 611 ; N Lslash ; B 34 0 611 718 ; C 233 ; WX 778 ; N Oslash ; B 35 -27 894 745 ; C 234 ; WX 1000 ; N OE ; B 99 -19 1114 737 ; C 235 ; WX 365 ; N ordmasculine ; B 123 401 485 737 ; C 241 ; WX 889 ; N ae ; B 56 -14 923 546 ; C 245 ; WX 278 ; N dotlessi ; B 69 0 322 532 ; C 248 ; WX 278 ; N lslash ; B 40 0 407 718 ; C 249 ; WX 611 ; N oslash ; B 22 -29 701 560 ; C 250 ; WX 944 ; N oe ; B 82 -14 977 546 ; C 251 ; WX 611 ; N germandbls ; B 69 -14 657 731 ; C -1 ; WX 278 ; N Idieresis ; B 64 0 494 915 ; C -1 ; WX 556 ; N eacute ; B 70 -14 627 750 ; C -1 ; WX 556 ; N abreve ; B 55 -14 606 750 ; C -1 ; WX 611 ; N uhungarumlaut ; B 98 -14 784 750 ; C -1 ; WX 556 ; N ecaron ; B 70 -14 614 750 ; C -1 ; WX 667 ; N Ydieresis ; B 168 0 806 915 ; C -1 ; WX 584 ; N divide ; B 82 -42 610 548 ; C -1 ; WX 667 ; N Yacute ; B 168 0 806 936 ; C -1 ; WX 722 ; N Acircumflex ; B 20 0 706 936 ; C -1 ; WX 556 ; N aacute ; B 55 -14 627 750 ; C -1 ; WX 722 ; N Ucircumflex ; B 116 -19 804 936 ; C -1 ; WX 556 ; N yacute ; B 42 -214 652 750 ; C -1 ; WX 556 ; N scommaaccent ; B 63 -228 584 546 ; C -1 ; WX 556 ; N ecircumflex ; B 70 -14 593 750 ; C -1 ; WX 722 ; N Uring ; B 116 -19 804 962 ; C -1 ; WX 722 ; N Udieresis ; B 116 -19 804 915 ; C -1 ; WX 556 ; N aogonek ; B 55 -224 583 546 ; C -1 ; WX 722 ; N Uacute ; B 116 -19 804 936 ; C -1 ; WX 611 ; N uogonek ; B 98 -228 658 532 ; C -1 ; WX 667 ; N Edieresis ; B 76 0 757 915 ; C -1 ; WX 722 ; N Dcroat ; B 62 0 777 718 ; C -1 ; WX 250 ; N commaaccent ; B 16 -228 188 -50 ; C -1 ; WX 737 ; N copyright ; B 56 -19 835 737 ; C -1 ; WX 667 ; N Emacron ; B 76 0 757 864 ; C -1 ; WX 556 ; N ccaron ; B 79 -14 614 750 ; C -1 ; WX 556 ; N aring ; B 55 -14 583 776 ; C -1 ; WX 722 ; N Ncommaaccent ; B 69 -228 807 718 ; C -1 ; WX 278 ; N lacute ; B 69 0 528 936 ; C -1 ; WX 556 ; N agrave ; B 55 -14 583 750 ; C -1 ; WX 611 ; N Tcommaaccent ; B 140 -228 751 718 ; C -1 ; WX 722 ; N Cacute ; B 107 -19 789 936 ; C -1 ; WX 556 ; N atilde ; B 55 -14 619 737 ; C -1 ; WX 667 ; N Edotaccent ; B 76 0 757 915 ; C -1 ; WX 556 ; N scaron ; B 63 -14 614 750 ; C -1 ; WX 556 ; N scedilla ; B 63 -228 584 546 ; C -1 ; WX 278 ; N iacute ; B 69 0 488 750 ; C -1 ; WX 494 ; N lozenge ; B 90 0 564 745 ; C -1 ; WX 722 ; N Rcaron ; B 76 0 778 936 ; C -1 ; WX 778 ; N Gcommaaccent ; B 108 -228 817 737 ; C -1 ; WX 611 ; N ucircumflex ; B 98 -14 658 750 ; C -1 ; WX 556 ; N acircumflex ; B 55 -14 583 750 ; C -1 ; WX 722 ; N Amacron ; B 20 0 718 864 ; C -1 ; WX 389 ; N rcaron ; B 64 0 530 750 ; C -1 ; WX 556 ; N ccedilla ; B 79 -228 599 546 ; C -1 ; WX 611 ; N Zdotaccent ; B 25 0 737 915 ; C -1 ; WX 667 ; N Thorn ; B 76 0 716 718 ; C -1 ; WX 778 ; N Omacron ; B 107 -19 823 864 ; C -1 ; WX 722 ; N Racute ; B 76 0 778 936 ; C -1 ; WX 667 ; N Sacute ; B 81 -19 722 936 ; C -1 ; WX 743 ; N dcaron ; B 82 -14 903 718 ; C -1 ; WX 722 ; N Umacron ; B 116 -19 804 864 ; C -1 ; WX 611 ; N uring ; B 98 -14 658 776 ; C -1 ; WX 333 ; N threesuperior ; B 91 271 441 710 ; C -1 ; WX 778 ; N Ograve ; B 107 -19 823 936 ; C -1 ; WX 722 ; N Agrave ; B 20 0 702 936 ; C -1 ; WX 722 ; N Abreve ; B 20 0 729 936 ; C -1 ; WX 584 ; N multiply ; B 57 1 635 505 ; C -1 ; WX 611 ; N uacute ; B 98 -14 658 750 ; C -1 ; WX 611 ; N Tcaron ; B 140 0 751 936 ; C -1 ; WX 494 ; N partialdiff ; B 43 -21 585 750 ; C -1 ; WX 556 ; N ydieresis ; B 42 -214 652 729 ; C -1 ; WX 722 ; N Nacute ; B 69 0 807 936 ; C -1 ; WX 278 ; N icircumflex ; B 69 0 444 750 ; C -1 ; WX 667 ; N Ecircumflex ; B 76 0 757 936 ; C -1 ; WX 556 ; N adieresis ; B 55 -14 594 729 ; C -1 ; WX 556 ; N edieresis ; B 70 -14 594 729 ; C -1 ; WX 556 ; N cacute ; B 79 -14 627 750 ; C -1 ; WX 611 ; N nacute ; B 65 0 654 750 ; C -1 ; WX 611 ; N umacron ; B 98 -14 658 678 ; C -1 ; WX 722 ; N Ncaron ; B 69 0 807 936 ; C -1 ; WX 278 ; N Iacute ; B 64 0 528 936 ; C -1 ; WX 584 ; N plusminus ; B 40 0 625 506 ; C -1 ; WX 280 ; N brokenbar ; B 52 -150 345 700 ; C -1 ; WX 737 ; N registered ; B 55 -19 834 737 ; C -1 ; WX 778 ; N Gbreve ; B 108 -19 817 936 ; C -1 ; WX 278 ; N Idotaccent ; B 64 0 397 915 ; C -1 ; WX 600 ; N summation ; B 14 -10 670 706 ; C -1 ; WX 667 ; N Egrave ; B 76 0 757 936 ; C -1 ; WX 389 ; N racute ; B 64 0 543 750 ; C -1 ; WX 611 ; N omacron ; B 82 -14 643 678 ; C -1 ; WX 611 ; N Zacute ; B 25 0 737 936 ; C -1 ; WX 611 ; N Zcaron ; B 25 0 737 936 ; C -1 ; WX 549 ; N greaterequal ; B 26 0 629 704 ; C -1 ; WX 722 ; N Eth ; B 62 0 777 718 ; C -1 ; WX 722 ; N Ccedilla ; B 107 -228 789 737 ; C -1 ; WX 278 ; N lcommaaccent ; B 30 -228 362 718 ; C -1 ; WX 389 ; N tcaron ; B 100 -6 608 878 ; C -1 ; WX 556 ; N eogonek ; B 70 -228 593 546 ; C -1 ; WX 722 ; N Uogonek ; B 116 -228 804 718 ; C -1 ; WX 722 ; N Aacute ; B 20 0 750 936 ; C -1 ; WX 722 ; N Adieresis ; B 20 0 716 915 ; C -1 ; WX 556 ; N egrave ; B 70 -14 593 750 ; C -1 ; WX 500 ; N zacute ; B 20 0 599 750 ; C -1 ; WX 278 ; N iogonek ; B -14 -224 363 725 ; C -1 ; WX 778 ; N Oacute ; B 107 -19 823 936 ; C -1 ; WX 611 ; N oacute ; B 82 -14 654 750 ; C -1 ; WX 556 ; N amacron ; B 55 -14 595 678 ; C -1 ; WX 556 ; N sacute ; B 63 -14 627 750 ; C -1 ; WX 278 ; N idieresis ; B 69 0 455 729 ; C -1 ; WX 778 ; N Ocircumflex ; B 107 -19 823 936 ; C -1 ; WX 722 ; N Ugrave ; B 116 -19 804 936 ; C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ; C -1 ; WX 611 ; N thorn ; B 18 -208 645 718 ; C -1 ; WX 333 ; N twosuperior ; B 69 283 449 710 ; C -1 ; WX 778 ; N Odieresis ; B 107 -19 823 915 ; C -1 ; WX 611 ; N mu ; B 22 -207 658 532 ; C -1 ; WX 278 ; N igrave ; B 69 0 326 750 ; C -1 ; WX 611 ; N ohungarumlaut ; B 82 -14 784 750 ; C -1 ; WX 667 ; N Eogonek ; B 76 -224 757 718 ; C -1 ; WX 611 ; N dcroat ; B 82 -14 789 718 ; C -1 ; WX 834 ; N threequarters ; B 99 -19 839 710 ; C -1 ; WX 667 ; N Scedilla ; B 81 -228 718 737 ; C -1 ; WX 400 ; N lcaron ; B 69 0 561 718 ; C -1 ; WX 722 ; N Kcommaaccent ; B 87 -228 858 718 ; C -1 ; WX 611 ; N Lacute ; B 76 0 611 936 ; C -1 ; WX 1000 ; N trademark ; B 179 306 1109 718 ; C -1 ; WX 556 ; N edotaccent ; B 70 -14 593 729 ; C -1 ; WX 278 ; N Igrave ; B 64 0 367 936 ; C -1 ; WX 278 ; N Imacron ; B 64 0 496 864 ; C -1 ; WX 611 ; N Lcaron ; B 76 0 643 718 ; C -1 ; WX 834 ; N onehalf ; B 132 -19 858 710 ; C -1 ; WX 549 ; N lessequal ; B 29 0 676 704 ; C -1 ; WX 611 ; N ocircumflex ; B 82 -14 643 750 ; C -1 ; WX 611 ; N ntilde ; B 65 0 646 737 ; C -1 ; WX 722 ; N Uhungarumlaut ; B 116 -19 880 936 ; C -1 ; WX 667 ; N Eacute ; B 76 0 757 936 ; C -1 ; WX 556 ; N emacron ; B 70 -14 595 678 ; C -1 ; WX 611 ; N gbreve ; B 38 -217 666 750 ; C -1 ; WX 834 ; N onequarter ; B 132 -19 806 710 ; C -1 ; WX 667 ; N Scaron ; B 81 -19 718 936 ; C -1 ; WX 667 ; N Scommaaccent ; B 81 -228 718 737 ; C -1 ; WX 778 ; N Ohungarumlaut ; B 107 -19 908 936 ; C -1 ; WX 400 ; N degree ; B 175 426 467 712 ; C -1 ; WX 611 ; N ograve ; B 82 -14 643 750 ; C -1 ; WX 722 ; N Ccaron ; B 107 -19 789 936 ; C -1 ; WX 611 ; N ugrave ; B 98 -14 658 750 ; C -1 ; WX 549 ; N radical ; B 112 -46 689 850 ; C -1 ; WX 722 ; N Dcaron ; B 76 0 777 936 ; C -1 ; WX 389 ; N rcommaaccent ; B 26 -228 489 546 ; C -1 ; WX 722 ; N Ntilde ; B 69 0 807 923 ; C -1 ; WX 611 ; N otilde ; B 82 -14 646 737 ; C -1 ; WX 722 ; N Rcommaaccent ; B 76 -228 778 718 ; C -1 ; WX 611 ; N Lcommaaccent ; B 76 -228 611 718 ; C -1 ; WX 722 ; N Atilde ; B 20 0 741 923 ; C -1 ; WX 722 ; N Aogonek ; B 20 -224 702 718 ; C -1 ; WX 722 ; N Aring ; B 20 0 702 962 ; C -1 ; WX 778 ; N Otilde ; B 107 -19 823 923 ; C -1 ; WX 500 ; N zdotaccent ; B 20 0 583 729 ; C -1 ; WX 667 ; N Ecaron ; B 76 0 757 936 ; C -1 ; WX 278 ; N Iogonek ; B -41 -228 367 718 ; C -1 ; WX 556 ; N kcommaaccent ; B 69 -228 670 718 ; C -1 ; WX 584 ; N minus ; B 82 197 610 309 ; C -1 ; WX 278 ; N Icircumflex ; B 64 0 484 936 ; C -1 ; WX 611 ; N ncaron ; B 65 0 641 750 ; C -1 ; WX 333 ; N tcommaaccent ; B 58 -228 422 676 ; C -1 ; WX 584 ; N logicalnot ; B 105 108 633 419 ; C -1 ; WX 611 ; N odieresis ; B 82 -14 643 729 ; C -1 ; WX 611 ; N udieresis ; B 98 -14 658 729 ; C -1 ; WX 549 ; N notequal ; B 32 -49 630 570 ; C -1 ; WX 611 ; N gcommaaccent ; B 38 -217 666 850 ; C -1 ; WX 611 ; N eth ; B 82 -14 670 737 ; C -1 ; WX 500 ; N zcaron ; B 20 0 586 750 ; C -1 ; WX 611 ; N ncommaaccent ; B 65 -228 629 546 ; C -1 ; WX 333 ; N onesuperior ; B 148 283 388 710 ; C -1 ; WX 278 ; N imacron ; B 69 0 429 678 ; EndCharMetrics StartKernData StartKernPairs 2481 KPX A C -40 KPX A Cacute -40 KPX A Ccaron -40 KPX A Ccedilla -40 KPX A G -50 KPX A Gbreve -50 KPX A Gcommaaccent -50 KPX A O -40 KPX A Oacute -40 KPX A Ocircumflex -40 KPX A Odieresis -40 KPX A Ograve -40 KPX A Ohungarumlaut -40 KPX A Omacron -40 KPX A Oslash -40 KPX A Otilde -40 KPX A Q -40 KPX A T -90 KPX A Tcaron -90 KPX A Tcommaaccent -90 KPX A U -50 KPX A Uacute -50 KPX A Ucircumflex -50 KPX A Udieresis -50 KPX A Ugrave -50 KPX A Uhungarumlaut -50 KPX A Umacron -50 KPX A Uogonek -50 KPX A Uring -50 KPX A V -80 KPX A W -60 KPX A Y -110 KPX A Yacute -110 KPX A Ydieresis -110 KPX A u -30 KPX A uacute -30 KPX A ucircumflex -30 KPX A udieresis -30 KPX A ugrave -30 KPX A uhungarumlaut -30 KPX A umacron -30 KPX A uogonek -30 KPX A uring -30 KPX A v -40 KPX A w -30 KPX A y -30 KPX A yacute -30 KPX A ydieresis -30 KPX Aacute C -40 KPX Aacute Cacute -40 KPX Aacute Ccaron -40 KPX Aacute Ccedilla -40 KPX Aacute G -50 KPX Aacute Gbreve -50 KPX Aacute Gcommaaccent -50 KPX Aacute O -40 KPX Aacute Oacute -40 KPX Aacute Ocircumflex -40 KPX Aacute Odieresis -40 KPX Aacute Ograve -40 KPX Aacute Ohungarumlaut -40 KPX Aacute Omacron -40 KPX Aacute Oslash -40 KPX Aacute Otilde -40 KPX Aacute Q -40 KPX Aacute T -90 KPX Aacute Tcaron -90 KPX Aacute Tcommaaccent -90 KPX Aacute U -50 KPX Aacute Uacute -50 KPX Aacute Ucircumflex -50 KPX Aacute Udieresis -50 KPX Aacute Ugrave -50 KPX Aacute Uhungarumlaut -50 KPX Aacute Umacron -50 KPX Aacute Uogonek -50 KPX Aacute Uring -50 KPX Aacute V -80 KPX Aacute W -60 KPX Aacute Y -110 KPX Aacute Yacute -110 KPX Aacute Ydieresis -110 KPX Aacute u -30 KPX Aacute uacute -30 KPX Aacute ucircumflex -30 KPX Aacute udieresis -30 KPX Aacute ugrave -30 KPX Aacute uhungarumlaut -30 KPX Aacute umacron -30 KPX Aacute uogonek -30 KPX Aacute uring -30 KPX Aacute v -40 KPX Aacute w -30 KPX Aacute y -30 KPX Aacute yacute -30 KPX Aacute ydieresis -30 KPX Abreve C -40 KPX Abreve Cacute -40 KPX Abreve Ccaron -40 KPX Abreve Ccedilla -40 KPX Abreve G -50 KPX Abreve Gbreve -50 KPX Abreve Gcommaaccent -50 KPX Abreve O -40 KPX Abreve Oacute -40 KPX Abreve Ocircumflex -40 KPX Abreve Odieresis -40 KPX Abreve Ograve -40 KPX Abreve Ohungarumlaut -40 KPX Abreve Omacron -40 KPX Abreve Oslash -40 KPX Abreve Otilde -40 KPX Abreve Q -40 KPX Abreve T -90 KPX Abreve Tcaron -90 KPX Abreve Tcommaaccent -90 KPX Abreve U -50 KPX Abreve Uacute -50 KPX Abreve Ucircumflex -50 KPX Abreve Udieresis -50 KPX Abreve Ugrave -50 KPX Abreve Uhungarumlaut -50 KPX Abreve Umacron -50 KPX Abreve Uogonek -50 KPX Abreve Uring -50 KPX Abreve V -80 KPX Abreve W -60 KPX Abreve Y -110 KPX Abreve Yacute -110 KPX Abreve Ydieresis -110 KPX Abreve u -30 KPX Abreve uacute -30 KPX Abreve ucircumflex -30 KPX Abreve udieresis -30 KPX Abreve ugrave -30 KPX Abreve uhungarumlaut -30 KPX Abreve umacron -30 KPX Abreve uogonek -30 KPX Abreve uring -30 KPX Abreve v -40 KPX Abreve w -30 KPX Abreve y -30 KPX Abreve yacute -30 KPX Abreve ydieresis -30 KPX Acircumflex C -40 KPX Acircumflex Cacute -40 KPX Acircumflex Ccaron -40 KPX Acircumflex Ccedilla -40 KPX Acircumflex G -50 KPX Acircumflex Gbreve -50 KPX Acircumflex Gcommaaccent -50 KPX Acircumflex O -40 KPX Acircumflex Oacute -40 KPX Acircumflex Ocircumflex -40 KPX Acircumflex Odieresis -40 KPX Acircumflex Ograve -40 KPX Acircumflex Ohungarumlaut -40 KPX Acircumflex Omacron -40 KPX Acircumflex Oslash -40 KPX Acircumflex Otilde -40 KPX Acircumflex Q -40 KPX Acircumflex T -90 KPX Acircumflex Tcaron -90 KPX Acircumflex Tcommaaccent -90 KPX Acircumflex U -50 KPX Acircumflex Uacute -50 KPX Acircumflex Ucircumflex -50 KPX Acircumflex Udieresis -50 KPX Acircumflex Ugrave -50 KPX Acircumflex Uhungarumlaut -50 KPX Acircumflex Umacron -50 KPX Acircumflex Uogonek -50 KPX Acircumflex Uring -50 KPX Acircumflex V -80 KPX Acircumflex W -60 KPX Acircumflex Y -110 KPX Acircumflex Yacute -110 KPX Acircumflex Ydieresis -110 KPX Acircumflex u -30 KPX Acircumflex uacute -30 KPX Acircumflex ucircumflex -30 KPX Acircumflex udieresis -30 KPX Acircumflex ugrave -30 KPX Acircumflex uhungarumlaut -30 KPX Acircumflex umacron -30 KPX Acircumflex uogonek -30 KPX Acircumflex uring -30 KPX Acircumflex v -40 KPX Acircumflex w -30 KPX Acircumflex y -30 KPX Acircumflex yacute -30 KPX Acircumflex ydieresis -30 KPX Adieresis C -40 KPX Adieresis Cacute -40 KPX Adieresis Ccaron -40 KPX Adieresis Ccedilla -40 KPX Adieresis G -50 KPX Adieresis Gbreve -50 KPX Adieresis Gcommaaccent -50 KPX Adieresis O -40 KPX Adieresis Oacute -40 KPX Adieresis Ocircumflex -40 KPX Adieresis Odieresis -40 KPX Adieresis Ograve -40 KPX Adieresis Ohungarumlaut -40 KPX Adieresis Omacron -40 KPX Adieresis Oslash -40 KPX Adieresis Otilde -40 KPX Adieresis Q -40 KPX Adieresis T -90 KPX Adieresis Tcaron -90 KPX Adieresis Tcommaaccent -90 KPX Adieresis U -50 KPX Adieresis Uacute -50 KPX Adieresis Ucircumflex -50 KPX Adieresis Udieresis -50 KPX Adieresis Ugrave -50 KPX Adieresis Uhungarumlaut -50 KPX Adieresis Umacron -50 KPX Adieresis Uogonek -50 KPX Adieresis Uring -50 KPX Adieresis V -80 KPX Adieresis W -60 KPX Adieresis Y -110 KPX Adieresis Yacute -110 KPX Adieresis Ydieresis -110 KPX Adieresis u -30 KPX Adieresis uacute -30 KPX Adieresis ucircumflex -30 KPX Adieresis udieresis -30 KPX Adieresis ugrave -30 KPX Adieresis uhungarumlaut -30 KPX Adieresis umacron -30 KPX Adieresis uogonek -30 KPX Adieresis uring -30 KPX Adieresis v -40 KPX Adieresis w -30 KPX Adieresis y -30 KPX Adieresis yacute -30 KPX Adieresis ydieresis -30 KPX Agrave C -40 KPX Agrave Cacute -40 KPX Agrave Ccaron -40 KPX Agrave Ccedilla -40 KPX Agrave G -50 KPX Agrave Gbreve -50 KPX Agrave Gcommaaccent -50 KPX Agrave O -40 KPX Agrave Oacute -40 KPX Agrave Ocircumflex -40 KPX Agrave Odieresis -40 KPX Agrave Ograve -40 KPX Agrave Ohungarumlaut -40 KPX Agrave Omacron -40 KPX Agrave Oslash -40 KPX Agrave Otilde -40 KPX Agrave Q -40 KPX Agrave T -90 KPX Agrave Tcaron -90 KPX Agrave Tcommaaccent -90 KPX Agrave U -50 KPX Agrave Uacute -50 KPX Agrave Ucircumflex -50 KPX Agrave Udieresis -50 KPX Agrave Ugrave -50 KPX Agrave Uhungarumlaut -50 KPX Agrave Umacron -50 KPX Agrave Uogonek -50 KPX Agrave Uring -50 KPX Agrave V -80 KPX Agrave W -60 KPX Agrave Y -110 KPX Agrave Yacute -110 KPX Agrave Ydieresis -110 KPX Agrave u -30 KPX Agrave uacute -30 KPX Agrave ucircumflex -30 KPX Agrave udieresis -30 KPX Agrave ugrave -30 KPX Agrave uhungarumlaut -30 KPX Agrave umacron -30 KPX Agrave uogonek -30 KPX Agrave uring -30 KPX Agrave v -40 KPX Agrave w -30 KPX Agrave y -30 KPX Agrave yacute -30 KPX Agrave ydieresis -30 KPX Amacron C -40 KPX Amacron Cacute -40 KPX Amacron Ccaron -40 KPX Amacron Ccedilla -40 KPX Amacron G -50 KPX Amacron Gbreve -50 KPX Amacron Gcommaaccent -50 KPX Amacron O -40 KPX Amacron Oacute -40 KPX Amacron Ocircumflex -40 KPX Amacron Odieresis -40 KPX Amacron Ograve -40 KPX Amacron Ohungarumlaut -40 KPX Amacron Omacron -40 KPX Amacron Oslash -40 KPX Amacron Otilde -40 KPX Amacron Q -40 KPX Amacron T -90 KPX Amacron Tcaron -90 KPX Amacron Tcommaaccent -90 KPX Amacron U -50 KPX Amacron Uacute -50 KPX Amacron Ucircumflex -50 KPX Amacron Udieresis -50 KPX Amacron Ugrave -50 KPX Amacron Uhungarumlaut -50 KPX Amacron Umacron -50 KPX Amacron Uogonek -50 KPX Amacron Uring -50 KPX Amacron V -80 KPX Amacron W -60 KPX Amacron Y -110 KPX Amacron Yacute -110 KPX Amacron Ydieresis -110 KPX Amacron u -30 KPX Amacron uacute -30 KPX Amacron ucircumflex -30 KPX Amacron udieresis -30 KPX Amacron ugrave -30 KPX Amacron uhungarumlaut -30 KPX Amacron umacron -30 KPX Amacron uogonek -30 KPX Amacron uring -30 KPX Amacron v -40 KPX Amacron w -30 KPX Amacron y -30 KPX Amacron yacute -30 KPX Amacron ydieresis -30 KPX Aogonek C -40 KPX Aogonek Cacute -40 KPX Aogonek Ccaron -40 KPX Aogonek Ccedilla -40 KPX Aogonek G -50 KPX Aogonek Gbreve -50 KPX Aogonek Gcommaaccent -50 KPX Aogonek O -40 KPX Aogonek Oacute -40 KPX Aogonek Ocircumflex -40 KPX Aogonek Odieresis -40 KPX Aogonek Ograve -40 KPX Aogonek Ohungarumlaut -40 KPX Aogonek Omacron -40 KPX Aogonek Oslash -40 KPX Aogonek Otilde -40 KPX Aogonek Q -40 KPX Aogonek T -90 KPX Aogonek Tcaron -90 KPX Aogonek Tcommaaccent -90 KPX Aogonek U -50 KPX Aogonek Uacute -50 KPX Aogonek Ucircumflex -50 KPX Aogonek Udieresis -50 KPX Aogonek Ugrave -50 KPX Aogonek Uhungarumlaut -50 KPX Aogonek Umacron -50 KPX Aogonek Uogonek -50 KPX Aogonek Uring -50 KPX Aogonek V -80 KPX Aogonek W -60 KPX Aogonek Y -110 KPX Aogonek Yacute -110 KPX Aogonek Ydieresis -110 KPX Aogonek u -30 KPX Aogonek uacute -30 KPX Aogonek ucircumflex -30 KPX Aogonek udieresis -30 KPX Aogonek ugrave -30 KPX Aogonek uhungarumlaut -30 KPX Aogonek umacron -30 KPX Aogonek uogonek -30 KPX Aogonek uring -30 KPX Aogonek v -40 KPX Aogonek w -30 KPX Aogonek y -30 KPX Aogonek yacute -30 KPX Aogonek ydieresis -30 KPX Aring C -40 KPX Aring Cacute -40 KPX Aring Ccaron -40 KPX Aring Ccedilla -40 KPX Aring G -50 KPX Aring Gbreve -50 KPX Aring Gcommaaccent -50 KPX Aring O -40 KPX Aring Oacute -40 KPX Aring Ocircumflex -40 KPX Aring Odieresis -40 KPX Aring Ograve -40 KPX Aring Ohungarumlaut -40 KPX Aring Omacron -40 KPX Aring Oslash -40 KPX Aring Otilde -40 KPX Aring Q -40 KPX Aring T -90 KPX Aring Tcaron -90 KPX Aring Tcommaaccent -90 KPX Aring U -50 KPX Aring Uacute -50 KPX Aring Ucircumflex -50 KPX Aring Udieresis -50 KPX Aring Ugrave -50 KPX Aring Uhungarumlaut -50 KPX Aring Umacron -50 KPX Aring Uogonek -50 KPX Aring Uring -50 KPX Aring V -80 KPX Aring W -60 KPX Aring Y -110 KPX Aring Yacute -110 KPX Aring Ydieresis -110 KPX Aring u -30 KPX Aring uacute -30 KPX Aring ucircumflex -30 KPX Aring udieresis -30 KPX Aring ugrave -30 KPX Aring uhungarumlaut -30 KPX Aring umacron -30 KPX Aring uogonek -30 KPX Aring uring -30 KPX Aring v -40 KPX Aring w -30 KPX Aring y -30 KPX Aring yacute -30 KPX Aring ydieresis -30 KPX Atilde C -40 KPX Atilde Cacute -40 KPX Atilde Ccaron -40 KPX Atilde Ccedilla -40 KPX Atilde G -50 KPX Atilde Gbreve -50 KPX Atilde Gcommaaccent -50 KPX Atilde O -40 KPX Atilde Oacute -40 KPX Atilde Ocircumflex -40 KPX Atilde Odieresis -40 KPX Atilde Ograve -40 KPX Atilde Ohungarumlaut -40 KPX Atilde Omacron -40 KPX Atilde Oslash -40 KPX Atilde Otilde -40 KPX Atilde Q -40 KPX Atilde T -90 KPX Atilde Tcaron -90 KPX Atilde Tcommaaccent -90 KPX Atilde U -50 KPX Atilde Uacute -50 KPX Atilde Ucircumflex -50 KPX Atilde Udieresis -50 KPX Atilde Ugrave -50 KPX Atilde Uhungarumlaut -50 KPX Atilde Umacron -50 KPX Atilde Uogonek -50 KPX Atilde Uring -50 KPX Atilde V -80 KPX Atilde W -60 KPX Atilde Y -110 KPX Atilde Yacute -110 KPX Atilde Ydieresis -110 KPX Atilde u -30 KPX Atilde uacute -30 KPX Atilde ucircumflex -30 KPX Atilde udieresis -30 KPX Atilde ugrave -30 KPX Atilde uhungarumlaut -30 KPX Atilde umacron -30 KPX Atilde uogonek -30 KPX Atilde uring -30 KPX Atilde v -40 KPX Atilde w -30 KPX Atilde y -30 KPX Atilde yacute -30 KPX Atilde ydieresis -30 KPX B A -30 KPX B Aacute -30 KPX B Abreve -30 KPX B Acircumflex -30 KPX B Adieresis -30 KPX B Agrave -30 KPX B Amacron -30 KPX B Aogonek -30 KPX B Aring -30 KPX B Atilde -30 KPX B U -10 KPX B Uacute -10 KPX B Ucircumflex -10 KPX B Udieresis -10 KPX B Ugrave -10 KPX B Uhungarumlaut -10 KPX B Umacron -10 KPX B Uogonek -10 KPX B Uring -10 KPX D A -40 KPX D Aacute -40 KPX D Abreve -40 KPX D Acircumflex -40 KPX D Adieresis -40 KPX D Agrave -40 KPX D Amacron -40 KPX D Aogonek -40 KPX D Aring -40 KPX D Atilde -40 KPX D V -40 KPX D W -40 KPX D Y -70 KPX D Yacute -70 KPX D Ydieresis -70 KPX D comma -30 KPX D period -30 KPX Dcaron A -40 KPX Dcaron Aacute -40 KPX Dcaron Abreve -40 KPX Dcaron Acircumflex -40 KPX Dcaron Adieresis -40 KPX Dcaron Agrave -40 KPX Dcaron Amacron -40 KPX Dcaron Aogonek -40 KPX Dcaron Aring -40 KPX Dcaron Atilde -40 KPX Dcaron V -40 KPX Dcaron W -40 KPX Dcaron Y -70 KPX Dcaron Yacute -70 KPX Dcaron Ydieresis -70 KPX Dcaron comma -30 KPX Dcaron period -30 KPX Dcroat A -40 KPX Dcroat Aacute -40 KPX Dcroat Abreve -40 KPX Dcroat Acircumflex -40 KPX Dcroat Adieresis -40 KPX Dcroat Agrave -40 KPX Dcroat Amacron -40 KPX Dcroat Aogonek -40 KPX Dcroat Aring -40 KPX Dcroat Atilde -40 KPX Dcroat V -40 KPX Dcroat W -40 KPX Dcroat Y -70 KPX Dcroat Yacute -70 KPX Dcroat Ydieresis -70 KPX Dcroat comma -30 KPX Dcroat period -30 KPX F A -80 KPX F Aacute -80 KPX F Abreve -80 KPX F Acircumflex -80 KPX F Adieresis -80 KPX F Agrave -80 KPX F Amacron -80 KPX F Aogonek -80 KPX F Aring -80 KPX F Atilde -80 KPX F a -20 KPX F aacute -20 KPX F abreve -20 KPX F acircumflex -20 KPX F adieresis -20 KPX F agrave -20 KPX F amacron -20 KPX F aogonek -20 KPX F aring -20 KPX F atilde -20 KPX F comma -100 KPX F period -100 KPX J A -20 KPX J Aacute -20 KPX J Abreve -20 KPX J Acircumflex -20 KPX J Adieresis -20 KPX J Agrave -20 KPX J Amacron -20 KPX J Aogonek -20 KPX J Aring -20 KPX J Atilde -20 KPX J comma -20 KPX J period -20 KPX J u -20 KPX J uacute -20 KPX J ucircumflex -20 KPX J udieresis -20 KPX J ugrave -20 KPX J uhungarumlaut -20 KPX J umacron -20 KPX J uogonek -20 KPX J uring -20 KPX K O -30 KPX K Oacute -30 KPX K Ocircumflex -30 KPX K Odieresis -30 KPX K Ograve -30 KPX K Ohungarumlaut -30 KPX K Omacron -30 KPX K Oslash -30 KPX K Otilde -30 KPX K e -15 KPX K eacute -15 KPX K ecaron -15 KPX K ecircumflex -15 KPX K edieresis -15 KPX K edotaccent -15 KPX K egrave -15 KPX K emacron -15 KPX K eogonek -15 KPX K o -35 KPX K oacute -35 KPX K ocircumflex -35 KPX K odieresis -35 KPX K ograve -35 KPX K ohungarumlaut -35 KPX K omacron -35 KPX K oslash -35 KPX K otilde -35 KPX K u -30 KPX K uacute -30 KPX K ucircumflex -30 KPX K udieresis -30 KPX K ugrave -30 KPX K uhungarumlaut -30 KPX K umacron -30 KPX K uogonek -30 KPX K uring -30 KPX K y -40 KPX K yacute -40 KPX K ydieresis -40 KPX Kcommaaccent O -30 KPX Kcommaaccent Oacute -30 KPX Kcommaaccent Ocircumflex -30 KPX Kcommaaccent Odieresis -30 KPX Kcommaaccent Ograve -30 KPX Kcommaaccent Ohungarumlaut -30 KPX Kcommaaccent Omacron -30 KPX Kcommaaccent Oslash -30 KPX Kcommaaccent Otilde -30 KPX Kcommaaccent e -15 KPX Kcommaaccent eacute -15 KPX Kcommaaccent ecaron -15 KPX Kcommaaccent ecircumflex -15 KPX Kcommaaccent edieresis -15 KPX Kcommaaccent edotaccent -15 KPX Kcommaaccent egrave -15 KPX Kcommaaccent emacron -15 KPX Kcommaaccent eogonek -15 KPX Kcommaaccent o -35 KPX Kcommaaccent oacute -35 KPX Kcommaaccent ocircumflex -35 KPX Kcommaaccent odieresis -35 KPX Kcommaaccent ograve -35 KPX Kcommaaccent ohungarumlaut -35 KPX Kcommaaccent omacron -35 KPX Kcommaaccent oslash -35 KPX Kcommaaccent otilde -35 KPX Kcommaaccent u -30 KPX Kcommaaccent uacute -30 KPX Kcommaaccent ucircumflex -30 KPX Kcommaaccent udieresis -30 KPX Kcommaaccent ugrave -30 KPX Kcommaaccent uhungarumlaut -30 KPX Kcommaaccent umacron -30 KPX Kcommaaccent uogonek -30 KPX Kcommaaccent uring -30 KPX Kcommaaccent y -40 KPX Kcommaaccent yacute -40 KPX Kcommaaccent ydieresis -40 KPX L T -90 KPX L Tcaron -90 KPX L Tcommaaccent -90 KPX L V -110 KPX L W -80 KPX L Y -120 KPX L Yacute -120 KPX L Ydieresis -120 KPX L quotedblright -140 KPX L quoteright -140 KPX L y -30 KPX L yacute -30 KPX L ydieresis -30 KPX Lacute T -90 KPX Lacute Tcaron -90 KPX Lacute Tcommaaccent -90 KPX Lacute V -110 KPX Lacute W -80 KPX Lacute Y -120 KPX Lacute Yacute -120 KPX Lacute Ydieresis -120 KPX Lacute quotedblright -140 KPX Lacute quoteright -140 KPX Lacute y -30 KPX Lacute yacute -30 KPX Lacute ydieresis -30 KPX Lcommaaccent T -90 KPX Lcommaaccent Tcaron -90 KPX Lcommaaccent Tcommaaccent -90 KPX Lcommaaccent V -110 KPX Lcommaaccent W -80 KPX Lcommaaccent Y -120 KPX Lcommaaccent Yacute -120 KPX Lcommaaccent Ydieresis -120 KPX Lcommaaccent quotedblright -140 KPX Lcommaaccent quoteright -140 KPX Lcommaaccent y -30 KPX Lcommaaccent yacute -30 KPX Lcommaaccent ydieresis -30 KPX Lslash T -90 KPX Lslash Tcaron -90 KPX Lslash Tcommaaccent -90 KPX Lslash V -110 KPX Lslash W -80 KPX Lslash Y -120 KPX Lslash Yacute -120 KPX Lslash Ydieresis -120 KPX Lslash quotedblright -140 KPX Lslash quoteright -140 KPX Lslash y -30 KPX Lslash yacute -30 KPX Lslash ydieresis -30 KPX O A -50 KPX O Aacute -50 KPX O Abreve -50 KPX O Acircumflex -50 KPX O Adieresis -50 KPX O Agrave -50 KPX O Amacron -50 KPX O Aogonek -50 KPX O Aring -50 KPX O Atilde -50 KPX O T -40 KPX O Tcaron -40 KPX O Tcommaaccent -40 KPX O V -50 KPX O W -50 KPX O X -50 KPX O Y -70 KPX O Yacute -70 KPX O Ydieresis -70 KPX O comma -40 KPX O period -40 KPX Oacute A -50 KPX Oacute Aacute -50 KPX Oacute Abreve -50 KPX Oacute Acircumflex -50 KPX Oacute Adieresis -50 KPX Oacute Agrave -50 KPX Oacute Amacron -50 KPX Oacute Aogonek -50 KPX Oacute Aring -50 KPX Oacute Atilde -50 KPX Oacute T -40 KPX Oacute Tcaron -40 KPX Oacute Tcommaaccent -40 KPX Oacute V -50 KPX Oacute W -50 KPX Oacute X -50 KPX Oacute Y -70 KPX Oacute Yacute -70 KPX Oacute Ydieresis -70 KPX Oacute comma -40 KPX Oacute period -40 KPX Ocircumflex A -50 KPX Ocircumflex Aacute -50 KPX Ocircumflex Abreve -50 KPX Ocircumflex Acircumflex -50 KPX Ocircumflex Adieresis -50 KPX Ocircumflex Agrave -50 KPX Ocircumflex Amacron -50 KPX Ocircumflex Aogonek -50 KPX Ocircumflex Aring -50 KPX Ocircumflex Atilde -50 KPX Ocircumflex T -40 KPX Ocircumflex Tcaron -40 KPX Ocircumflex Tcommaaccent -40 KPX Ocircumflex V -50 KPX Ocircumflex W -50 KPX Ocircumflex X -50 KPX Ocircumflex Y -70 KPX Ocircumflex Yacute -70 KPX Ocircumflex Ydieresis -70 KPX Ocircumflex comma -40 KPX Ocircumflex period -40 KPX Odieresis A -50 KPX Odieresis Aacute -50 KPX Odieresis Abreve -50 KPX Odieresis Acircumflex -50 KPX Odieresis Adieresis -50 KPX Odieresis Agrave -50 KPX Odieresis Amacron -50 KPX Odieresis Aogonek -50 KPX Odieresis Aring -50 KPX Odieresis Atilde -50 KPX Odieresis T -40 KPX Odieresis Tcaron -40 KPX Odieresis Tcommaaccent -40 KPX Odieresis V -50 KPX Odieresis W -50 KPX Odieresis X -50 KPX Odieresis Y -70 KPX Odieresis Yacute -70 KPX Odieresis Ydieresis -70 KPX Odieresis comma -40 KPX Odieresis period -40 KPX Ograve A -50 KPX Ograve Aacute -50 KPX Ograve Abreve -50 KPX Ograve Acircumflex -50 KPX Ograve Adieresis -50 KPX Ograve Agrave -50 KPX Ograve Amacron -50 KPX Ograve Aogonek -50 KPX Ograve Aring -50 KPX Ograve Atilde -50 KPX Ograve T -40 KPX Ograve Tcaron -40 KPX Ograve Tcommaaccent -40 KPX Ograve V -50 KPX Ograve W -50 KPX Ograve X -50 KPX Ograve Y -70 KPX Ograve Yacute -70 KPX Ograve Ydieresis -70 KPX Ograve comma -40 KPX Ograve period -40 KPX Ohungarumlaut A -50 KPX Ohungarumlaut Aacute -50 KPX Ohungarumlaut Abreve -50 KPX Ohungarumlaut Acircumflex -50 KPX Ohungarumlaut Adieresis -50 KPX Ohungarumlaut Agrave -50 KPX Ohungarumlaut Amacron -50 KPX Ohungarumlaut Aogonek -50 KPX Ohungarumlaut Aring -50 KPX Ohungarumlaut Atilde -50 KPX Ohungarumlaut T -40 KPX Ohungarumlaut Tcaron -40 KPX Ohungarumlaut Tcommaaccent -40 KPX Ohungarumlaut V -50 KPX Ohungarumlaut W -50 KPX Ohungarumlaut X -50 KPX Ohungarumlaut Y -70 KPX Ohungarumlaut Yacute -70 KPX Ohungarumlaut Ydieresis -70 KPX Ohungarumlaut comma -40 KPX Ohungarumlaut period -40 KPX Omacron A -50 KPX Omacron Aacute -50 KPX Omacron Abreve -50 KPX Omacron Acircumflex -50 KPX Omacron Adieresis -50 KPX Omacron Agrave -50 KPX Omacron Amacron -50 KPX Omacron Aogonek -50 KPX Omacron Aring -50 KPX Omacron Atilde -50 KPX Omacron T -40 KPX Omacron Tcaron -40 KPX Omacron Tcommaaccent -40 KPX Omacron V -50 KPX Omacron W -50 KPX Omacron X -50 KPX Omacron Y -70 KPX Omacron Yacute -70 KPX Omacron Ydieresis -70 KPX Omacron comma -40 KPX Omacron period -40 KPX Oslash A -50 KPX Oslash Aacute -50 KPX Oslash Abreve -50 KPX Oslash Acircumflex -50 KPX Oslash Adieresis -50 KPX Oslash Agrave -50 KPX Oslash Amacron -50 KPX Oslash Aogonek -50 KPX Oslash Aring -50 KPX Oslash Atilde -50 KPX Oslash T -40 KPX Oslash Tcaron -40 KPX Oslash Tcommaaccent -40 KPX Oslash V -50 KPX Oslash W -50 KPX Oslash X -50 KPX Oslash Y -70 KPX Oslash Yacute -70 KPX Oslash Ydieresis -70 KPX Oslash comma -40 KPX Oslash period -40 KPX Otilde A -50 KPX Otilde Aacute -50 KPX Otilde Abreve -50 KPX Otilde Acircumflex -50 KPX Otilde Adieresis -50 KPX Otilde Agrave -50 KPX Otilde Amacron -50 KPX Otilde Aogonek -50 KPX Otilde Aring -50 KPX Otilde Atilde -50 KPX Otilde T -40 KPX Otilde Tcaron -40 KPX Otilde Tcommaaccent -40 KPX Otilde V -50 KPX Otilde W -50 KPX Otilde X -50 KPX Otilde Y -70 KPX Otilde Yacute -70 KPX Otilde Ydieresis -70 KPX Otilde comma -40 KPX Otilde period -40 KPX P A -100 KPX P Aacute -100 KPX P Abreve -100 KPX P Acircumflex -100 KPX P Adieresis -100 KPX P Agrave -100 KPX P Amacron -100 KPX P Aogonek -100 KPX P Aring -100 KPX P Atilde -100 KPX P a -30 KPX P aacute -30 KPX P abreve -30 KPX P acircumflex -30 KPX P adieresis -30 KPX P agrave -30 KPX P amacron -30 KPX P aogonek -30 KPX P aring -30 KPX P atilde -30 KPX P comma -120 KPX P e -30 KPX P eacute -30 KPX P ecaron -30 KPX P ecircumflex -30 KPX P edieresis -30 KPX P edotaccent -30 KPX P egrave -30 KPX P emacron -30 KPX P eogonek -30 KPX P o -40 KPX P oacute -40 KPX P ocircumflex -40 KPX P odieresis -40 KPX P ograve -40 KPX P ohungarumlaut -40 KPX P omacron -40 KPX P oslash -40 KPX P otilde -40 KPX P period -120 KPX Q U -10 KPX Q Uacute -10 KPX Q Ucircumflex -10 KPX Q Udieresis -10 KPX Q Ugrave -10 KPX Q Uhungarumlaut -10 KPX Q Umacron -10 KPX Q Uogonek -10 KPX Q Uring -10 KPX Q comma 20 KPX Q period 20 KPX R O -20 KPX R Oacute -20 KPX R Ocircumflex -20 KPX R Odieresis -20 KPX R Ograve -20 KPX R Ohungarumlaut -20 KPX R Omacron -20 KPX R Oslash -20 KPX R Otilde -20 KPX R T -20 KPX R Tcaron -20 KPX R Tcommaaccent -20 KPX R U -20 KPX R Uacute -20 KPX R Ucircumflex -20 KPX R Udieresis -20 KPX R Ugrave -20 KPX R Uhungarumlaut -20 KPX R Umacron -20 KPX R Uogonek -20 KPX R Uring -20 KPX R V -50 KPX R W -40 KPX R Y -50 KPX R Yacute -50 KPX R Ydieresis -50 KPX Racute O -20 KPX Racute Oacute -20 KPX Racute Ocircumflex -20 KPX Racute Odieresis -20 KPX Racute Ograve -20 KPX Racute Ohungarumlaut -20 KPX Racute Omacron -20 KPX Racute Oslash -20 KPX Racute Otilde -20 KPX Racute T -20 KPX Racute Tcaron -20 KPX Racute Tcommaaccent -20 KPX Racute U -20 KPX Racute Uacute -20 KPX Racute Ucircumflex -20 KPX Racute Udieresis -20 KPX Racute Ugrave -20 KPX Racute Uhungarumlaut -20 KPX Racute Umacron -20 KPX Racute Uogonek -20 KPX Racute Uring -20 KPX Racute V -50 KPX Racute W -40 KPX Racute Y -50 KPX Racute Yacute -50 KPX Racute Ydieresis -50 KPX Rcaron O -20 KPX Rcaron Oacute -20 KPX Rcaron Ocircumflex -20 KPX Rcaron Odieresis -20 KPX Rcaron Ograve -20 KPX Rcaron Ohungarumlaut -20 KPX Rcaron Omacron -20 KPX Rcaron Oslash -20 KPX Rcaron Otilde -20 KPX Rcaron T -20 KPX Rcaron Tcaron -20 KPX Rcaron Tcommaaccent -20 KPX Rcaron U -20 KPX Rcaron Uacute -20 KPX Rcaron Ucircumflex -20 KPX Rcaron Udieresis -20 KPX Rcaron Ugrave -20 KPX Rcaron Uhungarumlaut -20 KPX Rcaron Umacron -20 KPX Rcaron Uogonek -20 KPX Rcaron Uring -20 KPX Rcaron V -50 KPX Rcaron W -40 KPX Rcaron Y -50 KPX Rcaron Yacute -50 KPX Rcaron Ydieresis -50 KPX Rcommaaccent O -20 KPX Rcommaaccent Oacute -20 KPX Rcommaaccent Ocircumflex -20 KPX Rcommaaccent Odieresis -20 KPX Rcommaaccent Ograve -20 KPX Rcommaaccent Ohungarumlaut -20 KPX Rcommaaccent Omacron -20 KPX Rcommaaccent Oslash -20 KPX Rcommaaccent Otilde -20 KPX Rcommaaccent T -20 KPX Rcommaaccent Tcaron -20 KPX Rcommaaccent Tcommaaccent -20 KPX Rcommaaccent U -20 KPX Rcommaaccent Uacute -20 KPX Rcommaaccent Ucircumflex -20 KPX Rcommaaccent Udieresis -20 KPX Rcommaaccent Ugrave -20 KPX Rcommaaccent Uhungarumlaut -20 KPX Rcommaaccent Umacron -20 KPX Rcommaaccent Uogonek -20 KPX Rcommaaccent Uring -20 KPX Rcommaaccent V -50 KPX Rcommaaccent W -40 KPX Rcommaaccent Y -50 KPX Rcommaaccent Yacute -50 KPX Rcommaaccent Ydieresis -50 KPX T A -90 KPX T Aacute -90 KPX T Abreve -90 KPX T Acircumflex -90 KPX T Adieresis -90 KPX T Agrave -90 KPX T Amacron -90 KPX T Aogonek -90 KPX T Aring -90 KPX T Atilde -90 KPX T O -40 KPX T Oacute -40 KPX T Ocircumflex -40 KPX T Odieresis -40 KPX T Ograve -40 KPX T Ohungarumlaut -40 KPX T Omacron -40 KPX T Oslash -40 KPX T Otilde -40 KPX T a -80 KPX T aacute -80 KPX T abreve -80 KPX T acircumflex -80 KPX T adieresis -80 KPX T agrave -80 KPX T amacron -80 KPX T aogonek -80 KPX T aring -80 KPX T atilde -80 KPX T colon -40 KPX T comma -80 KPX T e -60 KPX T eacute -60 KPX T ecaron -60 KPX T ecircumflex -60 KPX T edieresis -60 KPX T edotaccent -60 KPX T egrave -60 KPX T emacron -60 KPX T eogonek -60 KPX T hyphen -120 KPX T o -80 KPX T oacute -80 KPX T ocircumflex -80 KPX T odieresis -80 KPX T ograve -80 KPX T ohungarumlaut -80 KPX T omacron -80 KPX T oslash -80 KPX T otilde -80 KPX T period -80 KPX T r -80 KPX T racute -80 KPX T rcommaaccent -80 KPX T semicolon -40 KPX T u -90 KPX T uacute -90 KPX T ucircumflex -90 KPX T udieresis -90 KPX T ugrave -90 KPX T uhungarumlaut -90 KPX T umacron -90 KPX T uogonek -90 KPX T uring -90 KPX T w -60 KPX T y -60 KPX T yacute -60 KPX T ydieresis -60 KPX Tcaron A -90 KPX Tcaron Aacute -90 KPX Tcaron Abreve -90 KPX Tcaron Acircumflex -90 KPX Tcaron Adieresis -90 KPX Tcaron Agrave -90 KPX Tcaron Amacron -90 KPX Tcaron Aogonek -90 KPX Tcaron Aring -90 KPX Tcaron Atilde -90 KPX Tcaron O -40 KPX Tcaron Oacute -40 KPX Tcaron Ocircumflex -40 KPX Tcaron Odieresis -40 KPX Tcaron Ograve -40 KPX Tcaron Ohungarumlaut -40 KPX Tcaron Omacron -40 KPX Tcaron Oslash -40 KPX Tcaron Otilde -40 KPX Tcaron a -80 KPX Tcaron aacute -80 KPX Tcaron abreve -80 KPX Tcaron acircumflex -80 KPX Tcaron adieresis -80 KPX Tcaron agrave -80 KPX Tcaron amacron -80 KPX Tcaron aogonek -80 KPX Tcaron aring -80 KPX Tcaron atilde -80 KPX Tcaron colon -40 KPX Tcaron comma -80 KPX Tcaron e -60 KPX Tcaron eacute -60 KPX Tcaron ecaron -60 KPX Tcaron ecircumflex -60 KPX Tcaron edieresis -60 KPX Tcaron edotaccent -60 KPX Tcaron egrave -60 KPX Tcaron emacron -60 KPX Tcaron eogonek -60 KPX Tcaron hyphen -120 KPX Tcaron o -80 KPX Tcaron oacute -80 KPX Tcaron ocircumflex -80 KPX Tcaron odieresis -80 KPX Tcaron ograve -80 KPX Tcaron ohungarumlaut -80 KPX Tcaron omacron -80 KPX Tcaron oslash -80 KPX Tcaron otilde -80 KPX Tcaron period -80 KPX Tcaron r -80 KPX Tcaron racute -80 KPX Tcaron rcommaaccent -80 KPX Tcaron semicolon -40 KPX Tcaron u -90 KPX Tcaron uacute -90 KPX Tcaron ucircumflex -90 KPX Tcaron udieresis -90 KPX Tcaron ugrave -90 KPX Tcaron uhungarumlaut -90 KPX Tcaron umacron -90 KPX Tcaron uogonek -90 KPX Tcaron uring -90 KPX Tcaron w -60 KPX Tcaron y -60 KPX Tcaron yacute -60 KPX Tcaron ydieresis -60 KPX Tcommaaccent A -90 KPX Tcommaaccent Aacute -90 KPX Tcommaaccent Abreve -90 KPX Tcommaaccent Acircumflex -90 KPX Tcommaaccent Adieresis -90 KPX Tcommaaccent Agrave -90 KPX Tcommaaccent Amacron -90 KPX Tcommaaccent Aogonek -90 KPX Tcommaaccent Aring -90 KPX Tcommaaccent Atilde -90 KPX Tcommaaccent O -40 KPX Tcommaaccent Oacute -40 KPX Tcommaaccent Ocircumflex -40 KPX Tcommaaccent Odieresis -40 KPX Tcommaaccent Ograve -40 KPX Tcommaaccent Ohungarumlaut -40 KPX Tcommaaccent Omacron -40 KPX Tcommaaccent Oslash -40 KPX Tcommaaccent Otilde -40 KPX Tcommaaccent a -80 KPX Tcommaaccent aacute -80 KPX Tcommaaccent abreve -80 KPX Tcommaaccent acircumflex -80 KPX Tcommaaccent adieresis -80 KPX Tcommaaccent agrave -80 KPX Tcommaaccent amacron -80 KPX Tcommaaccent aogonek -80 KPX Tcommaaccent aring -80 KPX Tcommaaccent atilde -80 KPX Tcommaaccent colon -40 KPX Tcommaaccent comma -80 KPX Tcommaaccent e -60 KPX Tcommaaccent eacute -60 KPX Tcommaaccent ecaron -60 KPX Tcommaaccent ecircumflex -60 KPX Tcommaaccent edieresis -60 KPX Tcommaaccent edotaccent -60 KPX Tcommaaccent egrave -60 KPX Tcommaaccent emacron -60 KPX Tcommaaccent eogonek -60 KPX Tcommaaccent hyphen -120 KPX Tcommaaccent o -80 KPX Tcommaaccent oacute -80 KPX Tcommaaccent ocircumflex -80 KPX Tcommaaccent odieresis -80 KPX Tcommaaccent ograve -80 KPX Tcommaaccent ohungarumlaut -80 KPX Tcommaaccent omacron -80 KPX Tcommaaccent oslash -80 KPX Tcommaaccent otilde -80 KPX Tcommaaccent period -80 KPX Tcommaaccent r -80 KPX Tcommaaccent racute -80 KPX Tcommaaccent rcommaaccent -80 KPX Tcommaaccent semicolon -40 KPX Tcommaaccent u -90 KPX Tcommaaccent uacute -90 KPX Tcommaaccent ucircumflex -90 KPX Tcommaaccent udieresis -90 KPX Tcommaaccent ugrave -90 KPX Tcommaaccent uhungarumlaut -90 KPX Tcommaaccent umacron -90 KPX Tcommaaccent uogonek -90 KPX Tcommaaccent uring -90 KPX Tcommaaccent w -60 KPX Tcommaaccent y -60 KPX Tcommaaccent yacute -60 KPX Tcommaaccent ydieresis -60 KPX U A -50 KPX U Aacute -50 KPX U Abreve -50 KPX U Acircumflex -50 KPX U Adieresis -50 KPX U Agrave -50 KPX U Amacron -50 KPX U Aogonek -50 KPX U Aring -50 KPX U Atilde -50 KPX U comma -30 KPX U period -30 KPX Uacute A -50 KPX Uacute Aacute -50 KPX Uacute Abreve -50 KPX Uacute Acircumflex -50 KPX Uacute Adieresis -50 KPX Uacute Agrave -50 KPX Uacute Amacron -50 KPX Uacute Aogonek -50 KPX Uacute Aring -50 KPX Uacute Atilde -50 KPX Uacute comma -30 KPX Uacute period -30 KPX Ucircumflex A -50 KPX Ucircumflex Aacute -50 KPX Ucircumflex Abreve -50 KPX Ucircumflex Acircumflex -50 KPX Ucircumflex Adieresis -50 KPX Ucircumflex Agrave -50 KPX Ucircumflex Amacron -50 KPX Ucircumflex Aogonek -50 KPX Ucircumflex Aring -50 KPX Ucircumflex Atilde -50 KPX Ucircumflex comma -30 KPX Ucircumflex period -30 KPX Udieresis A -50 KPX Udieresis Aacute -50 KPX Udieresis Abreve -50 KPX Udieresis Acircumflex -50 KPX Udieresis Adieresis -50 KPX Udieresis Agrave -50 KPX Udieresis Amacron -50 KPX Udieresis Aogonek -50 KPX Udieresis Aring -50 KPX Udieresis Atilde -50 KPX Udieresis comma -30 KPX Udieresis period -30 KPX Ugrave A -50 KPX Ugrave Aacute -50 KPX Ugrave Abreve -50 KPX Ugrave Acircumflex -50 KPX Ugrave Adieresis -50 KPX Ugrave Agrave -50 KPX Ugrave Amacron -50 KPX Ugrave Aogonek -50 KPX Ugrave Aring -50 KPX Ugrave Atilde -50 KPX Ugrave comma -30 KPX Ugrave period -30 KPX Uhungarumlaut A -50 KPX Uhungarumlaut Aacute -50 KPX Uhungarumlaut Abreve -50 KPX Uhungarumlaut Acircumflex -50 KPX Uhungarumlaut Adieresis -50 KPX Uhungarumlaut Agrave -50 KPX Uhungarumlaut Amacron -50 KPX Uhungarumlaut Aogonek -50 KPX Uhungarumlaut Aring -50 KPX Uhungarumlaut Atilde -50 KPX Uhungarumlaut comma -30 KPX Uhungarumlaut period -30 KPX Umacron A -50 KPX Umacron Aacute -50 KPX Umacron Abreve -50 KPX Umacron Acircumflex -50 KPX Umacron Adieresis -50 KPX Umacron Agrave -50 KPX Umacron Amacron -50 KPX Umacron Aogonek -50 KPX Umacron Aring -50 KPX Umacron Atilde -50 KPX Umacron comma -30 KPX Umacron period -30 KPX Uogonek A -50 KPX Uogonek Aacute -50 KPX Uogonek Abreve -50 KPX Uogonek Acircumflex -50 KPX Uogonek Adieresis -50 KPX Uogonek Agrave -50 KPX Uogonek Amacron -50 KPX Uogonek Aogonek -50 KPX Uogonek Aring -50 KPX Uogonek Atilde -50 KPX Uogonek comma -30 KPX Uogonek period -30 KPX Uring A -50 KPX Uring Aacute -50 KPX Uring Abreve -50 KPX Uring Acircumflex -50 KPX Uring Adieresis -50 KPX Uring Agrave -50 KPX Uring Amacron -50 KPX Uring Aogonek -50 KPX Uring Aring -50 KPX Uring Atilde -50 KPX Uring comma -30 KPX Uring period -30 KPX V A -80 KPX V Aacute -80 KPX V Abreve -80 KPX V Acircumflex -80 KPX V Adieresis -80 KPX V Agrave -80 KPX V Amacron -80 KPX V Aogonek -80 KPX V Aring -80 KPX V Atilde -80 KPX V G -50 KPX V Gbreve -50 KPX V Gcommaaccent -50 KPX V O -50 KPX V Oacute -50 KPX V Ocircumflex -50 KPX V Odieresis -50 KPX V Ograve -50 KPX V Ohungarumlaut -50 KPX V Omacron -50 KPX V Oslash -50 KPX V Otilde -50 KPX V a -60 KPX V aacute -60 KPX V abreve -60 KPX V acircumflex -60 KPX V adieresis -60 KPX V agrave -60 KPX V amacron -60 KPX V aogonek -60 KPX V aring -60 KPX V atilde -60 KPX V colon -40 KPX V comma -120 KPX V e -50 KPX V eacute -50 KPX V ecaron -50 KPX V ecircumflex -50 KPX V edieresis -50 KPX V edotaccent -50 KPX V egrave -50 KPX V emacron -50 KPX V eogonek -50 KPX V hyphen -80 KPX V o -90 KPX V oacute -90 KPX V ocircumflex -90 KPX V odieresis -90 KPX V ograve -90 KPX V ohungarumlaut -90 KPX V omacron -90 KPX V oslash -90 KPX V otilde -90 KPX V period -120 KPX V semicolon -40 KPX V u -60 KPX V uacute -60 KPX V ucircumflex -60 KPX V udieresis -60 KPX V ugrave -60 KPX V uhungarumlaut -60 KPX V umacron -60 KPX V uogonek -60 KPX V uring -60 KPX W A -60 KPX W Aacute -60 KPX W Abreve -60 KPX W Acircumflex -60 KPX W Adieresis -60 KPX W Agrave -60 KPX W Amacron -60 KPX W Aogonek -60 KPX W Aring -60 KPX W Atilde -60 KPX W O -20 KPX W Oacute -20 KPX W Ocircumflex -20 KPX W Odieresis -20 KPX W Ograve -20 KPX W Ohungarumlaut -20 KPX W Omacron -20 KPX W Oslash -20 KPX W Otilde -20 KPX W a -40 KPX W aacute -40 KPX W abreve -40 KPX W acircumflex -40 KPX W adieresis -40 KPX W agrave -40 KPX W amacron -40 KPX W aogonek -40 KPX W aring -40 KPX W atilde -40 KPX W colon -10 KPX W comma -80 KPX W e -35 KPX W eacute -35 KPX W ecaron -35 KPX W ecircumflex -35 KPX W edieresis -35 KPX W edotaccent -35 KPX W egrave -35 KPX W emacron -35 KPX W eogonek -35 KPX W hyphen -40 KPX W o -60 KPX W oacute -60 KPX W ocircumflex -60 KPX W odieresis -60 KPX W ograve -60 KPX W ohungarumlaut -60 KPX W omacron -60 KPX W oslash -60 KPX W otilde -60 KPX W period -80 KPX W semicolon -10 KPX W u -45 KPX W uacute -45 KPX W ucircumflex -45 KPX W udieresis -45 KPX W ugrave -45 KPX W uhungarumlaut -45 KPX W umacron -45 KPX W uogonek -45 KPX W uring -45 KPX W y -20 KPX W yacute -20 KPX W ydieresis -20 KPX Y A -110 KPX Y Aacute -110 KPX Y Abreve -110 KPX Y Acircumflex -110 KPX Y Adieresis -110 KPX Y Agrave -110 KPX Y Amacron -110 KPX Y Aogonek -110 KPX Y Aring -110 KPX Y Atilde -110 KPX Y O -70 KPX Y Oacute -70 KPX Y Ocircumflex -70 KPX Y Odieresis -70 KPX Y Ograve -70 KPX Y Ohungarumlaut -70 KPX Y Omacron -70 KPX Y Oslash -70 KPX Y Otilde -70 KPX Y a -90 KPX Y aacute -90 KPX Y abreve -90 KPX Y acircumflex -90 KPX Y adieresis -90 KPX Y agrave -90 KPX Y amacron -90 KPX Y aogonek -90 KPX Y aring -90 KPX Y atilde -90 KPX Y colon -50 KPX Y comma -100 KPX Y e -80 KPX Y eacute -80 KPX Y ecaron -80 KPX Y ecircumflex -80 KPX Y edieresis -80 KPX Y edotaccent -80 KPX Y egrave -80 KPX Y emacron -80 KPX Y eogonek -80 KPX Y o -100 KPX Y oacute -100 KPX Y ocircumflex -100 KPX Y odieresis -100 KPX Y ograve -100 KPX Y ohungarumlaut -100 KPX Y omacron -100 KPX Y oslash -100 KPX Y otilde -100 KPX Y period -100 KPX Y semicolon -50 KPX Y u -100 KPX Y uacute -100 KPX Y ucircumflex -100 KPX Y udieresis -100 KPX Y ugrave -100 KPX Y uhungarumlaut -100 KPX Y umacron -100 KPX Y uogonek -100 KPX Y uring -100 KPX Yacute A -110 KPX Yacute Aacute -110 KPX Yacute Abreve -110 KPX Yacute Acircumflex -110 KPX Yacute Adieresis -110 KPX Yacute Agrave -110 KPX Yacute Amacron -110 KPX Yacute Aogonek -110 KPX Yacute Aring -110 KPX Yacute Atilde -110 KPX Yacute O -70 KPX Yacute Oacute -70 KPX Yacute Ocircumflex -70 KPX Yacute Odieresis -70 KPX Yacute Ograve -70 KPX Yacute Ohungarumlaut -70 KPX Yacute Omacron -70 KPX Yacute Oslash -70 KPX Yacute Otilde -70 KPX Yacute a -90 KPX Yacute aacute -90 KPX Yacute abreve -90 KPX Yacute acircumflex -90 KPX Yacute adieresis -90 KPX Yacute agrave -90 KPX Yacute amacron -90 KPX Yacute aogonek -90 KPX Yacute aring -90 KPX Yacute atilde -90 KPX Yacute colon -50 KPX Yacute comma -100 KPX Yacute e -80 KPX Yacute eacute -80 KPX Yacute ecaron -80 KPX Yacute ecircumflex -80 KPX Yacute edieresis -80 KPX Yacute edotaccent -80 KPX Yacute egrave -80 KPX Yacute emacron -80 KPX Yacute eogonek -80 KPX Yacute o -100 KPX Yacute oacute -100 KPX Yacute ocircumflex -100 KPX Yacute odieresis -100 KPX Yacute ograve -100 KPX Yacute ohungarumlaut -100 KPX Yacute omacron -100 KPX Yacute oslash -100 KPX Yacute otilde -100 KPX Yacute period -100 KPX Yacute semicolon -50 KPX Yacute u -100 KPX Yacute uacute -100 KPX Yacute ucircumflex -100 KPX Yacute udieresis -100 KPX Yacute ugrave -100 KPX Yacute uhungarumlaut -100 KPX Yacute umacron -100 KPX Yacute uogonek -100 KPX Yacute uring -100 KPX Ydieresis A -110 KPX Ydieresis Aacute -110 KPX Ydieresis Abreve -110 KPX Ydieresis Acircumflex -110 KPX Ydieresis Adieresis -110 KPX Ydieresis Agrave -110 KPX Ydieresis Amacron -110 KPX Ydieresis Aogonek -110 KPX Ydieresis Aring -110 KPX Ydieresis Atilde -110 KPX Ydieresis O -70 KPX Ydieresis Oacute -70 KPX Ydieresis Ocircumflex -70 KPX Ydieresis Odieresis -70 KPX Ydieresis Ograve -70 KPX Ydieresis Ohungarumlaut -70 KPX Ydieresis Omacron -70 KPX Ydieresis Oslash -70 KPX Ydieresis Otilde -70 KPX Ydieresis a -90 KPX Ydieresis aacute -90 KPX Ydieresis abreve -90 KPX Ydieresis acircumflex -90 KPX Ydieresis adieresis -90 KPX Ydieresis agrave -90 KPX Ydieresis amacron -90 KPX Ydieresis aogonek -90 KPX Ydieresis aring -90 KPX Ydieresis atilde -90 KPX Ydieresis colon -50 KPX Ydieresis comma -100 KPX Ydieresis e -80 KPX Ydieresis eacute -80 KPX Ydieresis ecaron -80 KPX Ydieresis ecircumflex -80 KPX Ydieresis edieresis -80 KPX Ydieresis edotaccent -80 KPX Ydieresis egrave -80 KPX Ydieresis emacron -80 KPX Ydieresis eogonek -80 KPX Ydieresis o -100 KPX Ydieresis oacute -100 KPX Ydieresis ocircumflex -100 KPX Ydieresis odieresis -100 KPX Ydieresis ograve -100 KPX Ydieresis ohungarumlaut -100 KPX Ydieresis omacron -100 KPX Ydieresis oslash -100 KPX Ydieresis otilde -100 KPX Ydieresis period -100 KPX Ydieresis semicolon -50 KPX Ydieresis u -100 KPX Ydieresis uacute -100 KPX Ydieresis ucircumflex -100 KPX Ydieresis udieresis -100 KPX Ydieresis ugrave -100 KPX Ydieresis uhungarumlaut -100 KPX Ydieresis umacron -100 KPX Ydieresis uogonek -100 KPX Ydieresis uring -100 KPX a g -10 KPX a gbreve -10 KPX a gcommaaccent -10 KPX a v -15 KPX a w -15 KPX a y -20 KPX a yacute -20 KPX a ydieresis -20 KPX aacute g -10 KPX aacute gbreve -10 KPX aacute gcommaaccent -10 KPX aacute v -15 KPX aacute w -15 KPX aacute y -20 KPX aacute yacute -20 KPX aacute ydieresis -20 KPX abreve g -10 KPX abreve gbreve -10 KPX abreve gcommaaccent -10 KPX abreve v -15 KPX abreve w -15 KPX abreve y -20 KPX abreve yacute -20 KPX abreve ydieresis -20 KPX acircumflex g -10 KPX acircumflex gbreve -10 KPX acircumflex gcommaaccent -10 KPX acircumflex v -15 KPX acircumflex w -15 KPX acircumflex y -20 KPX acircumflex yacute -20 KPX acircumflex ydieresis -20 KPX adieresis g -10 KPX adieresis gbreve -10 KPX adieresis gcommaaccent -10 KPX adieresis v -15 KPX adieresis w -15 KPX adieresis y -20 KPX adieresis yacute -20 KPX adieresis ydieresis -20 KPX agrave g -10 KPX agrave gbreve -10 KPX agrave gcommaaccent -10 KPX agrave v -15 KPX agrave w -15 KPX agrave y -20 KPX agrave yacute -20 KPX agrave ydieresis -20 KPX amacron g -10 KPX amacron gbreve -10 KPX amacron gcommaaccent -10 KPX amacron v -15 KPX amacron w -15 KPX amacron y -20 KPX amacron yacute -20 KPX amacron ydieresis -20 KPX aogonek g -10 KPX aogonek gbreve -10 KPX aogonek gcommaaccent -10 KPX aogonek v -15 KPX aogonek w -15 KPX aogonek y -20 KPX aogonek yacute -20 KPX aogonek ydieresis -20 KPX aring g -10 KPX aring gbreve -10 KPX aring gcommaaccent -10 KPX aring v -15 KPX aring w -15 KPX aring y -20 KPX aring yacute -20 KPX aring ydieresis -20 KPX atilde g -10 KPX atilde gbreve -10 KPX atilde gcommaaccent -10 KPX atilde v -15 KPX atilde w -15 KPX atilde y -20 KPX atilde yacute -20 KPX atilde ydieresis -20 KPX b l -10 KPX b lacute -10 KPX b lcommaaccent -10 KPX b lslash -10 KPX b u -20 KPX b uacute -20 KPX b ucircumflex -20 KPX b udieresis -20 KPX b ugrave -20 KPX b uhungarumlaut -20 KPX b umacron -20 KPX b uogonek -20 KPX b uring -20 KPX b v -20 KPX b y -20 KPX b yacute -20 KPX b ydieresis -20 KPX c h -10 KPX c k -20 KPX c kcommaaccent -20 KPX c l -20 KPX c lacute -20 KPX c lcommaaccent -20 KPX c lslash -20 KPX c y -10 KPX c yacute -10 KPX c ydieresis -10 KPX cacute h -10 KPX cacute k -20 KPX cacute kcommaaccent -20 KPX cacute l -20 KPX cacute lacute -20 KPX cacute lcommaaccent -20 KPX cacute lslash -20 KPX cacute y -10 KPX cacute yacute -10 KPX cacute ydieresis -10 KPX ccaron h -10 KPX ccaron k -20 KPX ccaron kcommaaccent -20 KPX ccaron l -20 KPX ccaron lacute -20 KPX ccaron lcommaaccent -20 KPX ccaron lslash -20 KPX ccaron y -10 KPX ccaron yacute -10 KPX ccaron ydieresis -10 KPX ccedilla h -10 KPX ccedilla k -20 KPX ccedilla kcommaaccent -20 KPX ccedilla l -20 KPX ccedilla lacute -20 KPX ccedilla lcommaaccent -20 KPX ccedilla lslash -20 KPX ccedilla y -10 KPX ccedilla yacute -10 KPX ccedilla ydieresis -10 KPX colon space -40 KPX comma quotedblright -120 KPX comma quoteright -120 KPX comma space -40 KPX d d -10 KPX d dcroat -10 KPX d v -15 KPX d w -15 KPX d y -15 KPX d yacute -15 KPX d ydieresis -15 KPX dcroat d -10 KPX dcroat dcroat -10 KPX dcroat v -15 KPX dcroat w -15 KPX dcroat y -15 KPX dcroat yacute -15 KPX dcroat ydieresis -15 KPX e comma 10 KPX e period 20 KPX e v -15 KPX e w -15 KPX e x -15 KPX e y -15 KPX e yacute -15 KPX e ydieresis -15 KPX eacute comma 10 KPX eacute period 20 KPX eacute v -15 KPX eacute w -15 KPX eacute x -15 KPX eacute y -15 KPX eacute yacute -15 KPX eacute ydieresis -15 KPX ecaron comma 10 KPX ecaron period 20 KPX ecaron v -15 KPX ecaron w -15 KPX ecaron x -15 KPX ecaron y -15 KPX ecaron yacute -15 KPX ecaron ydieresis -15 KPX ecircumflex comma 10 KPX ecircumflex period 20 KPX ecircumflex v -15 KPX ecircumflex w -15 KPX ecircumflex x -15 KPX ecircumflex y -15 KPX ecircumflex yacute -15 KPX ecircumflex ydieresis -15 KPX edieresis comma 10 KPX edieresis period 20 KPX edieresis v -15 KPX edieresis w -15 KPX edieresis x -15 KPX edieresis y -15 KPX edieresis yacute -15 KPX edieresis ydieresis -15 KPX edotaccent comma 10 KPX edotaccent period 20 KPX edotaccent v -15 KPX edotaccent w -15 KPX edotaccent x -15 KPX edotaccent y -15 KPX edotaccent yacute -15 KPX edotaccent ydieresis -15 KPX egrave comma 10 KPX egrave period 20 KPX egrave v -15 KPX egrave w -15 KPX egrave x -15 KPX egrave y -15 KPX egrave yacute -15 KPX egrave ydieresis -15 KPX emacron comma 10 KPX emacron period 20 KPX emacron v -15 KPX emacron w -15 KPX emacron x -15 KPX emacron y -15 KPX emacron yacute -15 KPX emacron ydieresis -15 KPX eogonek comma 10 KPX eogonek period 20 KPX eogonek v -15 KPX eogonek w -15 KPX eogonek x -15 KPX eogonek y -15 KPX eogonek yacute -15 KPX eogonek ydieresis -15 KPX f comma -10 KPX f e -10 KPX f eacute -10 KPX f ecaron -10 KPX f ecircumflex -10 KPX f edieresis -10 KPX f edotaccent -10 KPX f egrave -10 KPX f emacron -10 KPX f eogonek -10 KPX f o -20 KPX f oacute -20 KPX f ocircumflex -20 KPX f odieresis -20 KPX f ograve -20 KPX f ohungarumlaut -20 KPX f omacron -20 KPX f oslash -20 KPX f otilde -20 KPX f period -10 KPX f quotedblright 30 KPX f quoteright 30 KPX g e 10 KPX g eacute 10 KPX g ecaron 10 KPX g ecircumflex 10 KPX g edieresis 10 KPX g edotaccent 10 KPX g egrave 10 KPX g emacron 10 KPX g eogonek 10 KPX g g -10 KPX g gbreve -10 KPX g gcommaaccent -10 KPX gbreve e 10 KPX gbreve eacute 10 KPX gbreve ecaron 10 KPX gbreve ecircumflex 10 KPX gbreve edieresis 10 KPX gbreve edotaccent 10 KPX gbreve egrave 10 KPX gbreve emacron 10 KPX gbreve eogonek 10 KPX gbreve g -10 KPX gbreve gbreve -10 KPX gbreve gcommaaccent -10 KPX gcommaaccent e 10 KPX gcommaaccent eacute 10 KPX gcommaaccent ecaron 10 KPX gcommaaccent ecircumflex 10 KPX gcommaaccent edieresis 10 KPX gcommaaccent edotaccent 10 KPX gcommaaccent egrave 10 KPX gcommaaccent emacron 10 KPX gcommaaccent eogonek 10 KPX gcommaaccent g -10 KPX gcommaaccent gbreve -10 KPX gcommaaccent gcommaaccent -10 KPX h y -20 KPX h yacute -20 KPX h ydieresis -20 KPX k o -15 KPX k oacute -15 KPX k ocircumflex -15 KPX k odieresis -15 KPX k ograve -15 KPX k ohungarumlaut -15 KPX k omacron -15 KPX k oslash -15 KPX k otilde -15 KPX kcommaaccent o -15 KPX kcommaaccent oacute -15 KPX kcommaaccent ocircumflex -15 KPX kcommaaccent odieresis -15 KPX kcommaaccent ograve -15 KPX kcommaaccent ohungarumlaut -15 KPX kcommaaccent omacron -15 KPX kcommaaccent oslash -15 KPX kcommaaccent otilde -15 KPX l w -15 KPX l y -15 KPX l yacute -15 KPX l ydieresis -15 KPX lacute w -15 KPX lacute y -15 KPX lacute yacute -15 KPX lacute ydieresis -15 KPX lcommaaccent w -15 KPX lcommaaccent y -15 KPX lcommaaccent yacute -15 KPX lcommaaccent ydieresis -15 KPX lslash w -15 KPX lslash y -15 KPX lslash yacute -15 KPX lslash ydieresis -15 KPX m u -20 KPX m uacute -20 KPX m ucircumflex -20 KPX m udieresis -20 KPX m ugrave -20 KPX m uhungarumlaut -20 KPX m umacron -20 KPX m uogonek -20 KPX m uring -20 KPX m y -30 KPX m yacute -30 KPX m ydieresis -30 KPX n u -10 KPX n uacute -10 KPX n ucircumflex -10 KPX n udieresis -10 KPX n ugrave -10 KPX n uhungarumlaut -10 KPX n umacron -10 KPX n uogonek -10 KPX n uring -10 KPX n v -40 KPX n y -20 KPX n yacute -20 KPX n ydieresis -20 KPX nacute u -10 KPX nacute uacute -10 KPX nacute ucircumflex -10 KPX nacute udieresis -10 KPX nacute ugrave -10 KPX nacute uhungarumlaut -10 KPX nacute umacron -10 KPX nacute uogonek -10 KPX nacute uring -10 KPX nacute v -40 KPX nacute y -20 KPX nacute yacute -20 KPX nacute ydieresis -20 KPX ncaron u -10 KPX ncaron uacute -10 KPX ncaron ucircumflex -10 KPX ncaron udieresis -10 KPX ncaron ugrave -10 KPX ncaron uhungarumlaut -10 KPX ncaron umacron -10 KPX ncaron uogonek -10 KPX ncaron uring -10 KPX ncaron v -40 KPX ncaron y -20 KPX ncaron yacute -20 KPX ncaron ydieresis -20 KPX ncommaaccent u -10 KPX ncommaaccent uacute -10 KPX ncommaaccent ucircumflex -10 KPX ncommaaccent udieresis -10 KPX ncommaaccent ugrave -10 KPX ncommaaccent uhungarumlaut -10 KPX ncommaaccent umacron -10 KPX ncommaaccent uogonek -10 KPX ncommaaccent uring -10 KPX ncommaaccent v -40 KPX ncommaaccent y -20 KPX ncommaaccent yacute -20 KPX ncommaaccent ydieresis -20 KPX ntilde u -10 KPX ntilde uacute -10 KPX ntilde ucircumflex -10 KPX ntilde udieresis -10 KPX ntilde ugrave -10 KPX ntilde uhungarumlaut -10 KPX ntilde umacron -10 KPX ntilde uogonek -10 KPX ntilde uring -10 KPX ntilde v -40 KPX ntilde y -20 KPX ntilde yacute -20 KPX ntilde ydieresis -20 KPX o v -20 KPX o w -15 KPX o x -30 KPX o y -20 KPX o yacute -20 KPX o ydieresis -20 KPX oacute v -20 KPX oacute w -15 KPX oacute x -30 KPX oacute y -20 KPX oacute yacute -20 KPX oacute ydieresis -20 KPX ocircumflex v -20 KPX ocircumflex w -15 KPX ocircumflex x -30 KPX ocircumflex y -20 KPX ocircumflex yacute -20 KPX ocircumflex ydieresis -20 KPX odieresis v -20 KPX odieresis w -15 KPX odieresis x -30 KPX odieresis y -20 KPX odieresis yacute -20 KPX odieresis ydieresis -20 KPX ograve v -20 KPX ograve w -15 KPX ograve x -30 KPX ograve y -20 KPX ograve yacute -20 KPX ograve ydieresis -20 KPX ohungarumlaut v -20 KPX ohungarumlaut w -15 KPX ohungarumlaut x -30 KPX ohungarumlaut y -20 KPX ohungarumlaut yacute -20 KPX ohungarumlaut ydieresis -20 KPX omacron v -20 KPX omacron w -15 KPX omacron x -30 KPX omacron y -20 KPX omacron yacute -20 KPX omacron ydieresis -20 KPX oslash v -20 KPX oslash w -15 KPX oslash x -30 KPX oslash y -20 KPX oslash yacute -20 KPX oslash ydieresis -20 KPX otilde v -20 KPX otilde w -15 KPX otilde x -30 KPX otilde y -20 KPX otilde yacute -20 KPX otilde ydieresis -20 KPX p y -15 KPX p yacute -15 KPX p ydieresis -15 KPX period quotedblright -120 KPX period quoteright -120 KPX period space -40 KPX quotedblright space -80 KPX quoteleft quoteleft -46 KPX quoteright d -80 KPX quoteright dcroat -80 KPX quoteright l -20 KPX quoteright lacute -20 KPX quoteright lcommaaccent -20 KPX quoteright lslash -20 KPX quoteright quoteright -46 KPX quoteright r -40 KPX quoteright racute -40 KPX quoteright rcaron -40 KPX quoteright rcommaaccent -40 KPX quoteright s -60 KPX quoteright sacute -60 KPX quoteright scaron -60 KPX quoteright scedilla -60 KPX quoteright scommaaccent -60 KPX quoteright space -80 KPX quoteright v -20 KPX r c -20 KPX r cacute -20 KPX r ccaron -20 KPX r ccedilla -20 KPX r comma -60 KPX r d -20 KPX r dcroat -20 KPX r g -15 KPX r gbreve -15 KPX r gcommaaccent -15 KPX r hyphen -20 KPX r o -20 KPX r oacute -20 KPX r ocircumflex -20 KPX r odieresis -20 KPX r ograve -20 KPX r ohungarumlaut -20 KPX r omacron -20 KPX r oslash -20 KPX r otilde -20 KPX r period -60 KPX r q -20 KPX r s -15 KPX r sacute -15 KPX r scaron -15 KPX r scedilla -15 KPX r scommaaccent -15 KPX r t 20 KPX r tcommaaccent 20 KPX r v 10 KPX r y 10 KPX r yacute 10 KPX r ydieresis 10 KPX racute c -20 KPX racute cacute -20 KPX racute ccaron -20 KPX racute ccedilla -20 KPX racute comma -60 KPX racute d -20 KPX racute dcroat -20 KPX racute g -15 KPX racute gbreve -15 KPX racute gcommaaccent -15 KPX racute hyphen -20 KPX racute o -20 KPX racute oacute -20 KPX racute ocircumflex -20 KPX racute odieresis -20 KPX racute ograve -20 KPX racute ohungarumlaut -20 KPX racute omacron -20 KPX racute oslash -20 KPX racute otilde -20 KPX racute period -60 KPX racute q -20 KPX racute s -15 KPX racute sacute -15 KPX racute scaron -15 KPX racute scedilla -15 KPX racute scommaaccent -15 KPX racute t 20 KPX racute tcommaaccent 20 KPX racute v 10 KPX racute y 10 KPX racute yacute 10 KPX racute ydieresis 10 KPX rcaron c -20 KPX rcaron cacute -20 KPX rcaron ccaron -20 KPX rcaron ccedilla -20 KPX rcaron comma -60 KPX rcaron d -20 KPX rcaron dcroat -20 KPX rcaron g -15 KPX rcaron gbreve -15 KPX rcaron gcommaaccent -15 KPX rcaron hyphen -20 KPX rcaron o -20 KPX rcaron oacute -20 KPX rcaron ocircumflex -20 KPX rcaron odieresis -20 KPX rcaron ograve -20 KPX rcaron ohungarumlaut -20 KPX rcaron omacron -20 KPX rcaron oslash -20 KPX rcaron otilde -20 KPX rcaron period -60 KPX rcaron q -20 KPX rcaron s -15 KPX rcaron sacute -15 KPX rcaron scaron -15 KPX rcaron scedilla -15 KPX rcaron scommaaccent -15 KPX rcaron t 20 KPX rcaron tcommaaccent 20 KPX rcaron v 10 KPX rcaron y 10 KPX rcaron yacute 10 KPX rcaron ydieresis 10 KPX rcommaaccent c -20 KPX rcommaaccent cacute -20 KPX rcommaaccent ccaron -20 KPX rcommaaccent ccedilla -20 KPX rcommaaccent comma -60 KPX rcommaaccent d -20 KPX rcommaaccent dcroat -20 KPX rcommaaccent g -15 KPX rcommaaccent gbreve -15 KPX rcommaaccent gcommaaccent -15 KPX rcommaaccent hyphen -20 KPX rcommaaccent o -20 KPX rcommaaccent oacute -20 KPX rcommaaccent ocircumflex -20 KPX rcommaaccent odieresis -20 KPX rcommaaccent ograve -20 KPX rcommaaccent ohungarumlaut -20 KPX rcommaaccent omacron -20 KPX rcommaaccent oslash -20 KPX rcommaaccent otilde -20 KPX rcommaaccent period -60 KPX rcommaaccent q -20 KPX rcommaaccent s -15 KPX rcommaaccent sacute -15 KPX rcommaaccent scaron -15 KPX rcommaaccent scedilla -15 KPX rcommaaccent scommaaccent -15 KPX rcommaaccent t 20 KPX rcommaaccent tcommaaccent 20 KPX rcommaaccent v 10 KPX rcommaaccent y 10 KPX rcommaaccent yacute 10 KPX rcommaaccent ydieresis 10 KPX s w -15 KPX sacute w -15 KPX scaron w -15 KPX scedilla w -15 KPX scommaaccent w -15 KPX semicolon space -40 KPX space T -100 KPX space Tcaron -100 KPX space Tcommaaccent -100 KPX space V -80 KPX space W -80 KPX space Y -120 KPX space Yacute -120 KPX space Ydieresis -120 KPX space quotedblleft -80 KPX space quoteleft -60 KPX v a -20 KPX v aacute -20 KPX v abreve -20 KPX v acircumflex -20 KPX v adieresis -20 KPX v agrave -20 KPX v amacron -20 KPX v aogonek -20 KPX v aring -20 KPX v atilde -20 KPX v comma -80 KPX v o -30 KPX v oacute -30 KPX v ocircumflex -30 KPX v odieresis -30 KPX v ograve -30 KPX v ohungarumlaut -30 KPX v omacron -30 KPX v oslash -30 KPX v otilde -30 KPX v period -80 KPX w comma -40 KPX w o -20 KPX w oacute -20 KPX w ocircumflex -20 KPX w odieresis -20 KPX w ograve -20 KPX w ohungarumlaut -20 KPX w omacron -20 KPX w oslash -20 KPX w otilde -20 KPX w period -40 KPX x e -10 KPX x eacute -10 KPX x ecaron -10 KPX x ecircumflex -10 KPX x edieresis -10 KPX x edotaccent -10 KPX x egrave -10 KPX x emacron -10 KPX x eogonek -10 KPX y a -30 KPX y aacute -30 KPX y abreve -30 KPX y acircumflex -30 KPX y adieresis -30 KPX y agrave -30 KPX y amacron -30 KPX y aogonek -30 KPX y aring -30 KPX y atilde -30 KPX y comma -80 KPX y e -10 KPX y eacute -10 KPX y ecaron -10 KPX y ecircumflex -10 KPX y edieresis -10 KPX y edotaccent -10 KPX y egrave -10 KPX y emacron -10 KPX y eogonek -10 KPX y o -25 KPX y oacute -25 KPX y ocircumflex -25 KPX y odieresis -25 KPX y ograve -25 KPX y ohungarumlaut -25 KPX y omacron -25 KPX y oslash -25 KPX y otilde -25 KPX y period -80 KPX yacute a -30 KPX yacute aacute -30 KPX yacute abreve -30 KPX yacute acircumflex -30 KPX yacute adieresis -30 KPX yacute agrave -30 KPX yacute amacron -30 KPX yacute aogonek -30 KPX yacute aring -30 KPX yacute atilde -30 KPX yacute comma -80 KPX yacute e -10 KPX yacute eacute -10 KPX yacute ecaron -10 KPX yacute ecircumflex -10 KPX yacute edieresis -10 KPX yacute edotaccent -10 KPX yacute egrave -10 KPX yacute emacron -10 KPX yacute eogonek -10 KPX yacute o -25 KPX yacute oacute -25 KPX yacute ocircumflex -25 KPX yacute odieresis -25 KPX yacute ograve -25 KPX yacute ohungarumlaut -25 KPX yacute omacron -25 KPX yacute oslash -25 KPX yacute otilde -25 KPX yacute period -80 KPX ydieresis a -30 KPX ydieresis aacute -30 KPX ydieresis abreve -30 KPX ydieresis acircumflex -30 KPX ydieresis adieresis -30 KPX ydieresis agrave -30 KPX ydieresis amacron -30 KPX ydieresis aogonek -30 KPX ydieresis aring -30 KPX ydieresis atilde -30 KPX ydieresis comma -80 KPX ydieresis e -10 KPX ydieresis eacute -10 KPX ydieresis ecaron -10 KPX ydieresis ecircumflex -10 KPX ydieresis edieresis -10 KPX ydieresis edotaccent -10 KPX ydieresis egrave -10 KPX ydieresis emacron -10 KPX ydieresis eogonek -10 KPX ydieresis o -25 KPX ydieresis oacute -25 KPX ydieresis ocircumflex -25 KPX ydieresis odieresis -25 KPX ydieresis ograve -25 KPX ydieresis ohungarumlaut -25 KPX ydieresis omacron -25 KPX ydieresis oslash -25 KPX ydieresis otilde -25 KPX ydieresis period -80 KPX z e 10 KPX z eacute 10 KPX z ecaron 10 KPX z ecircumflex 10 KPX z edieresis 10 KPX z edotaccent 10 KPX z egrave 10 KPX z emacron 10 KPX z eogonek 10 KPX zacute e 10 KPX zacute eacute 10 KPX zacute ecaron 10 KPX zacute ecircumflex 10 KPX zacute edieresis 10 KPX zacute edotaccent 10 KPX zacute egrave 10 KPX zacute emacron 10 KPX zacute eogonek 10 KPX zcaron e 10 KPX zcaron eacute 10 KPX zcaron ecaron 10 KPX zcaron ecircumflex 10 KPX zcaron edieresis 10 KPX zcaron edotaccent 10 KPX zcaron egrave 10 KPX zcaron emacron 10 KPX zcaron eogonek 10 KPX zdotaccent e 10 KPX zdotaccent eacute 10 KPX zdotaccent ecaron 10 KPX zdotaccent ecircumflex 10 KPX zdotaccent edieresis 10 KPX zdotaccent edotaccent 10 KPX zdotaccent egrave 10 KPX zdotaccent emacron 10 KPX zdotaccent eogonek 10 EndKernPairs EndKernData EndFontMetrics a2ps-4.14/afm/phvbon.afm0000644000175000017500000020722310674334152014364 0ustar mhattamhattaStartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Fri May 2 16:58:06 1997 Comment UniqueID 43182 Comment VMusage 14482 68586 FontName Helvetica-Narrow-BoldOblique FullName Helvetica Narrow Bold Oblique FamilyName Helvetica Weight Bold ItalicAngle -12 IsFixedPitch false FontBBox -143 -228 913 962 UnderlinePosition -100 UnderlineThickness 50 Version 002.000 Notice Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries. EncodingScheme AdobeStandardEncoding CapHeight 718 XHeight 532 Ascender 718 Descender -207 StdHW 118 StdVW 140 StartCharMetrics 314 C 32 ; WX 228 ; N space ; B 0 0 0 0 ; C 33 ; WX 273 ; N exclam ; B 77 0 325 718 ; C 34 ; WX 389 ; N quotedbl ; B 158 447 433 718 ; C 35 ; WX 456 ; N numbersign ; B 49 0 528 698 ; C 36 ; WX 456 ; N dollar ; B 55 -115 510 775 ; C 37 ; WX 729 ; N percent ; B 112 -19 739 710 ; C 38 ; WX 592 ; N ampersand ; B 73 -19 600 718 ; C 39 ; WX 228 ; N quoteright ; B 137 445 297 718 ; C 40 ; WX 273 ; N parenleft ; B 62 -208 385 734 ; C 41 ; WX 273 ; N parenright ; B -21 -208 302 734 ; C 42 ; WX 319 ; N asterisk ; B 120 387 394 718 ; C 43 ; WX 479 ; N plus ; B 67 0 500 506 ; C 44 ; WX 228 ; N comma ; B 23 -168 201 146 ; C 45 ; WX 273 ; N hyphen ; B 60 215 311 345 ; C 46 ; WX 228 ; N period ; B 52 0 201 146 ; C 47 ; WX 228 ; N slash ; B -30 -19 383 737 ; C 48 ; WX 456 ; N zero ; B 71 -19 506 710 ; C 49 ; WX 456 ; N one ; B 142 0 434 710 ; C 50 ; WX 456 ; N two ; B 21 0 508 710 ; C 51 ; WX 456 ; N three ; B 54 -19 499 710 ; C 52 ; WX 456 ; N four ; B 50 0 490 710 ; C 53 ; WX 456 ; N five ; B 53 -19 522 698 ; C 54 ; WX 456 ; N six ; B 70 -19 507 710 ; C 55 ; WX 456 ; N seven ; B 103 0 555 698 ; C 56 ; WX 456 ; N eight ; B 57 -19 505 710 ; C 57 ; WX 456 ; N nine ; B 64 -19 504 710 ; C 58 ; WX 273 ; N colon ; B 75 0 288 512 ; C 59 ; WX 273 ; N semicolon ; B 46 -168 288 512 ; C 60 ; WX 479 ; N less ; B 67 -8 537 514 ; C 61 ; WX 479 ; N equal ; B 48 87 519 419 ; C 62 ; WX 479 ; N greater ; B 30 -8 500 514 ; C 63 ; WX 501 ; N question ; B 135 0 550 727 ; C 64 ; WX 800 ; N at ; B 152 -19 782 737 ; C 65 ; WX 592 ; N A ; B 16 0 576 718 ; C 66 ; WX 592 ; N B ; B 62 0 626 718 ; C 67 ; WX 592 ; N C ; B 88 -19 647 737 ; C 68 ; WX 592 ; N D ; B 62 0 637 718 ; C 69 ; WX 547 ; N E ; B 62 0 620 718 ; C 70 ; WX 501 ; N F ; B 62 0 606 718 ; C 71 ; WX 638 ; N G ; B 89 -19 670 737 ; C 72 ; WX 592 ; N H ; B 58 0 659 718 ; C 73 ; WX 228 ; N I ; B 52 0 301 718 ; C 74 ; WX 456 ; N J ; B 49 -18 522 718 ; C 75 ; WX 592 ; N K ; B 71 0 703 718 ; C 76 ; WX 501 ; N L ; B 62 0 501 718 ; C 77 ; WX 683 ; N M ; B 57 0 752 718 ; C 78 ; WX 592 ; N N ; B 57 0 661 718 ; C 79 ; WX 638 ; N O ; B 88 -19 675 737 ; C 80 ; WX 547 ; N P ; B 62 0 605 718 ; C 81 ; WX 638 ; N Q ; B 88 -52 675 737 ; C 82 ; WX 592 ; N R ; B 62 0 638 718 ; C 83 ; WX 547 ; N S ; B 66 -19 588 737 ; C 84 ; WX 501 ; N T ; B 114 0 616 718 ; C 85 ; WX 592 ; N U ; B 96 -19 659 718 ; C 86 ; WX 547 ; N V ; B 141 0 657 718 ; C 87 ; WX 774 ; N W ; B 138 0 887 718 ; C 88 ; WX 547 ; N X ; B 11 0 648 718 ; C 89 ; WX 547 ; N Y ; B 137 0 661 718 ; C 90 ; WX 501 ; N Z ; B 21 0 604 718 ; C 91 ; WX 273 ; N bracketleft ; B 17 -196 379 722 ; C 92 ; WX 228 ; N backslash ; B 101 -19 252 737 ; C 93 ; WX 273 ; N bracketright ; B -14 -196 347 722 ; C 94 ; WX 479 ; N asciicircum ; B 107 323 484 698 ; C 95 ; WX 456 ; N underscore ; B -22 -125 443 -75 ; C 96 ; WX 228 ; N quoteleft ; B 136 454 296 727 ; C 97 ; WX 456 ; N a ; B 45 -14 478 546 ; C 98 ; WX 501 ; N b ; B 50 -14 529 718 ; C 99 ; WX 456 ; N c ; B 65 -14 491 546 ; C 100 ; WX 501 ; N d ; B 67 -14 577 718 ; C 101 ; WX 456 ; N e ; B 58 -14 486 546 ; C 102 ; WX 273 ; N f ; B 71 0 385 727 ; L i fi ; L l fl ; C 103 ; WX 501 ; N g ; B 31 -217 546 546 ; C 104 ; WX 501 ; N h ; B 53 0 516 718 ; C 105 ; WX 228 ; N i ; B 57 0 298 725 ; C 106 ; WX 228 ; N j ; B -35 -214 298 725 ; C 107 ; WX 456 ; N k ; B 57 0 549 718 ; C 108 ; WX 228 ; N l ; B 57 0 297 718 ; C 109 ; WX 729 ; N m ; B 52 0 746 546 ; C 110 ; WX 501 ; N n ; B 53 0 516 546 ; C 111 ; WX 501 ; N o ; B 67 -14 527 546 ; C 112 ; WX 501 ; N p ; B 15 -207 529 546 ; C 113 ; WX 501 ; N q ; B 66 -207 545 546 ; C 114 ; WX 319 ; N r ; B 52 0 401 546 ; C 115 ; WX 456 ; N s ; B 52 -14 479 546 ; C 116 ; WX 273 ; N t ; B 82 -6 346 676 ; C 117 ; WX 501 ; N u ; B 80 -14 540 532 ; C 118 ; WX 456 ; N v ; B 103 0 538 532 ; C 119 ; WX 638 ; N w ; B 101 0 723 532 ; C 120 ; WX 456 ; N x ; B 12 0 531 532 ; C 121 ; WX 456 ; N y ; B 34 -214 535 532 ; C 122 ; WX 410 ; N z ; B 16 0 478 532 ; C 123 ; WX 319 ; N braceleft ; B 77 -196 425 722 ; C 124 ; WX 230 ; N bar ; B 30 -225 296 775 ; C 125 ; WX 319 ; N braceright ; B -14 -196 333 722 ; C 126 ; WX 479 ; N asciitilde ; B 94 163 473 343 ; C 161 ; WX 273 ; N exclamdown ; B 41 -186 290 532 ; C 162 ; WX 456 ; N cent ; B 65 -118 491 628 ; C 163 ; WX 456 ; N sterling ; B 41 -16 520 718 ; C 164 ; WX 137 ; N fraction ; B -143 -19 399 710 ; C 165 ; WX 456 ; N yen ; B 49 0 585 698 ; C 166 ; WX 456 ; N florin ; B -41 -210 548 737 ; C 167 ; WX 456 ; N section ; B 50 -184 491 727 ; C 168 ; WX 456 ; N currency ; B 22 76 558 636 ; C 169 ; WX 195 ; N quotesingle ; B 135 447 263 718 ; C 170 ; WX 410 ; N quotedblleft ; B 132 454 482 727 ; C 171 ; WX 456 ; N guillemotleft ; B 111 76 468 484 ; C 172 ; WX 273 ; N guilsinglleft ; B 106 76 289 484 ; C 173 ; WX 273 ; N guilsinglright ; B 81 76 264 484 ; C 174 ; WX 501 ; N fi ; B 71 0 571 727 ; C 175 ; WX 501 ; N fl ; B 71 0 570 727 ; C 177 ; WX 456 ; N endash ; B 40 227 514 333 ; C 178 ; WX 456 ; N dagger ; B 97 -171 513 718 ; C 179 ; WX 456 ; N daggerdbl ; B 38 -171 515 718 ; C 180 ; WX 228 ; N periodcentered ; B 90 172 226 334 ; C 182 ; WX 456 ; N paragraph ; B 80 -191 564 700 ; C 183 ; WX 287 ; N bullet ; B 68 194 345 524 ; C 184 ; WX 228 ; N quotesinglbase ; B 34 -146 194 127 ; C 185 ; WX 410 ; N quotedblbase ; B 29 -146 380 127 ; C 186 ; WX 410 ; N quotedblright ; B 133 445 483 718 ; C 187 ; WX 456 ; N guillemotright ; B 85 76 443 484 ; C 188 ; WX 820 ; N ellipsis ; B 75 0 770 146 ; C 189 ; WX 820 ; N perthousand ; B 62 -19 851 710 ; C 191 ; WX 501 ; N questiondown ; B 44 -195 459 532 ; C 193 ; WX 273 ; N grave ; B 112 604 290 750 ; C 194 ; WX 273 ; N acute ; B 194 604 423 750 ; C 195 ; WX 273 ; N circumflex ; B 97 604 387 750 ; C 196 ; WX 273 ; N tilde ; B 92 610 415 737 ; C 197 ; WX 273 ; N macron ; B 100 604 396 678 ; C 198 ; WX 273 ; N breve ; B 128 604 405 750 ; C 199 ; WX 273 ; N dotaccent ; B 192 614 316 729 ; C 200 ; WX 273 ; N dieresis ; B 112 614 395 729 ; C 202 ; WX 273 ; N ring ; B 164 568 344 776 ; C 203 ; WX 273 ; N cedilla ; B -30 -228 180 0 ; C 205 ; WX 273 ; N hungarumlaut ; B 113 604 529 750 ; C 206 ; WX 273 ; N ogonek ; B 33 -228 216 0 ; C 207 ; WX 273 ; N caron ; B 123 604 412 750 ; C 208 ; WX 820 ; N emdash ; B 40 227 878 333 ; C 225 ; WX 820 ; N AE ; B 4 0 902 718 ; C 227 ; WX 303 ; N ordfeminine ; B 102 401 381 737 ; C 232 ; WX 501 ; N Lslash ; B 28 0 501 718 ; C 233 ; WX 638 ; N Oslash ; B 29 -27 733 745 ; C 234 ; WX 820 ; N OE ; B 81 -19 913 737 ; C 235 ; WX 299 ; N ordmasculine ; B 101 401 398 737 ; C 241 ; WX 729 ; N ae ; B 46 -14 757 546 ; C 245 ; WX 228 ; N dotlessi ; B 57 0 264 532 ; C 248 ; WX 228 ; N lslash ; B 33 0 334 718 ; C 249 ; WX 501 ; N oslash ; B 18 -29 575 560 ; C 250 ; WX 774 ; N oe ; B 67 -14 801 546 ; C 251 ; WX 501 ; N germandbls ; B 57 -14 539 731 ; C -1 ; WX 228 ; N Idieresis ; B 52 0 405 915 ; C -1 ; WX 456 ; N eacute ; B 58 -14 514 750 ; C -1 ; WX 456 ; N abreve ; B 45 -14 497 750 ; C -1 ; WX 501 ; N uhungarumlaut ; B 80 -14 643 750 ; C -1 ; WX 456 ; N ecaron ; B 58 -14 504 750 ; C -1 ; WX 547 ; N Ydieresis ; B 137 0 661 915 ; C -1 ; WX 479 ; N divide ; B 67 -42 500 548 ; C -1 ; WX 547 ; N Yacute ; B 137 0 661 936 ; C -1 ; WX 592 ; N Acircumflex ; B 16 0 579 936 ; C -1 ; WX 456 ; N aacute ; B 45 -14 514 750 ; C -1 ; WX 592 ; N Ucircumflex ; B 96 -19 659 936 ; C -1 ; WX 456 ; N yacute ; B 34 -214 535 750 ; C -1 ; WX 456 ; N scommaaccent ; B 52 -228 479 546 ; C -1 ; WX 456 ; N ecircumflex ; B 58 -14 486 750 ; C -1 ; WX 592 ; N Uring ; B 96 -19 659 962 ; C -1 ; WX 592 ; N Udieresis ; B 96 -19 659 915 ; C -1 ; WX 456 ; N aogonek ; B 45 -224 478 546 ; C -1 ; WX 592 ; N Uacute ; B 96 -19 659 936 ; C -1 ; WX 501 ; N uogonek ; B 80 -228 540 532 ; C -1 ; WX 547 ; N Edieresis ; B 62 0 620 915 ; C -1 ; WX 592 ; N Dcroat ; B 51 0 637 718 ; C -1 ; WX 205 ; N commaaccent ; B 13 -228 154 -50 ; C -1 ; WX 604 ; N copyright ; B 46 -19 685 737 ; C -1 ; WX 547 ; N Emacron ; B 62 0 620 864 ; C -1 ; WX 456 ; N ccaron ; B 65 -14 504 750 ; C -1 ; WX 456 ; N aring ; B 45 -14 478 776 ; C -1 ; WX 592 ; N Ncommaaccent ; B 57 -228 661 718 ; C -1 ; WX 228 ; N lacute ; B 57 0 433 936 ; C -1 ; WX 456 ; N agrave ; B 45 -14 478 750 ; C -1 ; WX 501 ; N Tcommaaccent ; B 114 -228 616 718 ; C -1 ; WX 592 ; N Cacute ; B 88 -19 647 936 ; C -1 ; WX 456 ; N atilde ; B 45 -14 507 737 ; C -1 ; WX 547 ; N Edotaccent ; B 62 0 620 915 ; C -1 ; WX 456 ; N scaron ; B 52 -14 504 750 ; C -1 ; WX 456 ; N scedilla ; B 52 -228 479 546 ; C -1 ; WX 228 ; N iacute ; B 57 0 401 750 ; C -1 ; WX 405 ; N lozenge ; B 74 0 463 745 ; C -1 ; WX 592 ; N Rcaron ; B 62 0 638 936 ; C -1 ; WX 638 ; N Gcommaaccent ; B 89 -228 670 737 ; C -1 ; WX 501 ; N ucircumflex ; B 80 -14 540 750 ; C -1 ; WX 456 ; N acircumflex ; B 45 -14 478 750 ; C -1 ; WX 592 ; N Amacron ; B 16 0 588 864 ; C -1 ; WX 319 ; N rcaron ; B 52 0 435 750 ; C -1 ; WX 456 ; N ccedilla ; B 65 -228 491 546 ; C -1 ; WX 501 ; N Zdotaccent ; B 21 0 604 915 ; C -1 ; WX 547 ; N Thorn ; B 62 0 588 718 ; C -1 ; WX 638 ; N Omacron ; B 88 -19 675 864 ; C -1 ; WX 592 ; N Racute ; B 62 0 638 936 ; C -1 ; WX 547 ; N Sacute ; B 66 -19 592 936 ; C -1 ; WX 609 ; N dcaron ; B 67 -14 740 718 ; C -1 ; WX 592 ; N Umacron ; B 96 -19 659 864 ; C -1 ; WX 501 ; N uring ; B 80 -14 540 776 ; C -1 ; WX 273 ; N threesuperior ; B 75 271 361 710 ; C -1 ; WX 638 ; N Ograve ; B 88 -19 675 936 ; C -1 ; WX 592 ; N Agrave ; B 16 0 576 936 ; C -1 ; WX 592 ; N Abreve ; B 16 0 598 936 ; C -1 ; WX 479 ; N multiply ; B 47 1 520 505 ; C -1 ; WX 501 ; N uacute ; B 80 -14 540 750 ; C -1 ; WX 501 ; N Tcaron ; B 114 0 616 936 ; C -1 ; WX 405 ; N partialdiff ; B 35 -21 480 750 ; C -1 ; WX 456 ; N ydieresis ; B 34 -214 535 729 ; C -1 ; WX 592 ; N Nacute ; B 57 0 661 936 ; C -1 ; WX 228 ; N icircumflex ; B 57 0 364 750 ; C -1 ; WX 547 ; N Ecircumflex ; B 62 0 620 936 ; C -1 ; WX 456 ; N adieresis ; B 45 -14 487 729 ; C -1 ; WX 456 ; N edieresis ; B 58 -14 487 729 ; C -1 ; WX 456 ; N cacute ; B 65 -14 514 750 ; C -1 ; WX 501 ; N nacute ; B 53 0 537 750 ; C -1 ; WX 501 ; N umacron ; B 80 -14 540 678 ; C -1 ; WX 592 ; N Ncaron ; B 57 0 661 936 ; C -1 ; WX 228 ; N Iacute ; B 52 0 433 936 ; C -1 ; WX 479 ; N plusminus ; B 33 0 512 506 ; C -1 ; WX 230 ; N brokenbar ; B 43 -150 283 700 ; C -1 ; WX 604 ; N registered ; B 45 -19 684 737 ; C -1 ; WX 638 ; N Gbreve ; B 89 -19 670 936 ; C -1 ; WX 228 ; N Idotaccent ; B 52 0 326 915 ; C -1 ; WX 492 ; N summation ; B 11 -10 549 706 ; C -1 ; WX 547 ; N Egrave ; B 62 0 620 936 ; C -1 ; WX 319 ; N racute ; B 52 0 446 750 ; C -1 ; WX 501 ; N omacron ; B 67 -14 527 678 ; C -1 ; WX 501 ; N Zacute ; B 21 0 604 936 ; C -1 ; WX 501 ; N Zcaron ; B 21 0 604 936 ; C -1 ; WX 450 ; N greaterequal ; B 21 0 516 704 ; C -1 ; WX 592 ; N Eth ; B 51 0 637 718 ; C -1 ; WX 592 ; N Ccedilla ; B 88 -228 647 737 ; C -1 ; WX 228 ; N lcommaaccent ; B 24 -228 297 718 ; C -1 ; WX 319 ; N tcaron ; B 82 -6 498 878 ; C -1 ; WX 456 ; N eogonek ; B 58 -228 486 546 ; C -1 ; WX 592 ; N Uogonek ; B 96 -228 659 718 ; C -1 ; WX 592 ; N Aacute ; B 16 0 615 936 ; C -1 ; WX 592 ; N Adieresis ; B 16 0 588 915 ; C -1 ; WX 456 ; N egrave ; B 58 -14 486 750 ; C -1 ; WX 410 ; N zacute ; B 16 0 492 750 ; C -1 ; WX 228 ; N iogonek ; B -11 -224 298 725 ; C -1 ; WX 638 ; N Oacute ; B 88 -19 675 936 ; C -1 ; WX 501 ; N oacute ; B 67 -14 537 750 ; C -1 ; WX 456 ; N amacron ; B 45 -14 488 678 ; C -1 ; WX 456 ; N sacute ; B 52 -14 514 750 ; C -1 ; WX 228 ; N idieresis ; B 57 0 373 729 ; C -1 ; WX 638 ; N Ocircumflex ; B 88 -19 675 936 ; C -1 ; WX 592 ; N Ugrave ; B 96 -19 659 936 ; C -1 ; WX 502 ; N Delta ; B 5 0 499 688 ; C -1 ; WX 501 ; N thorn ; B 15 -208 529 718 ; C -1 ; WX 273 ; N twosuperior ; B 57 283 368 710 ; C -1 ; WX 638 ; N Odieresis ; B 88 -19 675 915 ; C -1 ; WX 501 ; N mu ; B 18 -207 540 532 ; C -1 ; WX 228 ; N igrave ; B 57 0 268 750 ; C -1 ; WX 501 ; N ohungarumlaut ; B 67 -14 643 750 ; C -1 ; WX 547 ; N Eogonek ; B 62 -224 620 718 ; C -1 ; WX 501 ; N dcroat ; B 67 -14 647 718 ; C -1 ; WX 684 ; N threequarters ; B 82 -19 688 710 ; C -1 ; WX 547 ; N Scedilla ; B 66 -228 588 737 ; C -1 ; WX 328 ; N lcaron ; B 57 0 460 718 ; C -1 ; WX 592 ; N Kcommaaccent ; B 71 -228 703 718 ; C -1 ; WX 501 ; N Lacute ; B 62 0 501 936 ; C -1 ; WX 820 ; N trademark ; B 146 306 909 718 ; C -1 ; WX 456 ; N edotaccent ; B 58 -14 486 729 ; C -1 ; WX 228 ; N Igrave ; B 52 0 301 936 ; C -1 ; WX 228 ; N Imacron ; B 52 0 406 864 ; C -1 ; WX 501 ; N Lcaron ; B 62 0 527 718 ; C -1 ; WX 684 ; N onehalf ; B 108 -19 704 710 ; C -1 ; WX 450 ; N lessequal ; B 24 0 554 704 ; C -1 ; WX 501 ; N ocircumflex ; B 67 -14 527 750 ; C -1 ; WX 501 ; N ntilde ; B 53 0 529 737 ; C -1 ; WX 592 ; N Uhungarumlaut ; B 96 -19 722 936 ; C -1 ; WX 547 ; N Eacute ; B 62 0 620 936 ; C -1 ; WX 456 ; N emacron ; B 58 -14 488 678 ; C -1 ; WX 501 ; N gbreve ; B 31 -217 546 750 ; C -1 ; WX 684 ; N onequarter ; B 108 -19 661 710 ; C -1 ; WX 547 ; N Scaron ; B 66 -19 588 936 ; C -1 ; WX 547 ; N Scommaaccent ; B 66 -228 588 737 ; C -1 ; WX 638 ; N Ohungarumlaut ; B 88 -19 745 936 ; C -1 ; WX 328 ; N degree ; B 143 426 383 712 ; C -1 ; WX 501 ; N ograve ; B 67 -14 527 750 ; C -1 ; WX 592 ; N Ccaron ; B 88 -19 647 936 ; C -1 ; WX 501 ; N ugrave ; B 80 -14 540 750 ; C -1 ; WX 450 ; N radical ; B 92 -46 565 850 ; C -1 ; WX 592 ; N Dcaron ; B 62 0 637 936 ; C -1 ; WX 319 ; N rcommaaccent ; B 21 -228 401 546 ; C -1 ; WX 592 ; N Ntilde ; B 57 0 661 923 ; C -1 ; WX 501 ; N otilde ; B 67 -14 529 737 ; C -1 ; WX 592 ; N Rcommaaccent ; B 62 -228 638 718 ; C -1 ; WX 501 ; N Lcommaaccent ; B 62 -228 501 718 ; C -1 ; WX 592 ; N Atilde ; B 16 0 608 923 ; C -1 ; WX 592 ; N Aogonek ; B 16 -224 576 718 ; C -1 ; WX 592 ; N Aring ; B 16 0 576 962 ; C -1 ; WX 638 ; N Otilde ; B 88 -19 675 923 ; C -1 ; WX 410 ; N zdotaccent ; B 16 0 478 729 ; C -1 ; WX 547 ; N Ecaron ; B 62 0 620 936 ; C -1 ; WX 228 ; N Iogonek ; B -34 -228 301 718 ; C -1 ; WX 456 ; N kcommaaccent ; B 57 -228 549 718 ; C -1 ; WX 479 ; N minus ; B 67 197 500 309 ; C -1 ; WX 228 ; N Icircumflex ; B 52 0 397 936 ; C -1 ; WX 501 ; N ncaron ; B 53 0 526 750 ; C -1 ; WX 273 ; N tcommaaccent ; B 47 -228 346 676 ; C -1 ; WX 479 ; N logicalnot ; B 86 108 519 419 ; C -1 ; WX 501 ; N odieresis ; B 67 -14 527 729 ; C -1 ; WX 501 ; N udieresis ; B 80 -14 540 729 ; C -1 ; WX 450 ; N notequal ; B 26 -49 517 570 ; C -1 ; WX 501 ; N gcommaaccent ; B 31 -217 546 850 ; C -1 ; WX 501 ; N eth ; B 67 -14 549 737 ; C -1 ; WX 410 ; N zcaron ; B 16 0 481 750 ; C -1 ; WX 501 ; N ncommaaccent ; B 53 -228 516 546 ; C -1 ; WX 273 ; N onesuperior ; B 121 283 318 710 ; C -1 ; WX 228 ; N imacron ; B 57 0 352 678 ; EndCharMetrics StartKernData StartKernPairs 2481 KPX A C -40 KPX A Cacute -40 KPX A Ccaron -40 KPX A Ccedilla -40 KPX A G -50 KPX A Gbreve -50 KPX A Gcommaaccent -50 KPX A O -40 KPX A Oacute -40 KPX A Ocircumflex -40 KPX A Odieresis -40 KPX A Ograve -40 KPX A Ohungarumlaut -40 KPX A Omacron -40 KPX A Oslash -40 KPX A Otilde -40 KPX A Q -40 KPX A T -90 KPX A Tcaron -90 KPX A Tcommaaccent -90 KPX A U -50 KPX A Uacute -50 KPX A Ucircumflex -50 KPX A Udieresis -50 KPX A Ugrave -50 KPX A Uhungarumlaut -50 KPX A Umacron -50 KPX A Uogonek -50 KPX A Uring -50 KPX A V -80 KPX A W -60 KPX A Y -110 KPX A Yacute -110 KPX A Ydieresis -110 KPX A u -30 KPX A uacute -30 KPX A ucircumflex -30 KPX A udieresis -30 KPX A ugrave -30 KPX A uhungarumlaut -30 KPX A umacron -30 KPX A uogonek -30 KPX A uring -30 KPX A v -40 KPX A w -30 KPX A y -30 KPX A yacute -30 KPX A ydieresis -30 KPX Aacute C -40 KPX Aacute Cacute -40 KPX Aacute Ccaron -40 KPX Aacute Ccedilla -40 KPX Aacute G -50 KPX Aacute Gbreve -50 KPX Aacute Gcommaaccent -50 KPX Aacute O -40 KPX Aacute Oacute -40 KPX Aacute Ocircumflex -40 KPX Aacute Odieresis -40 KPX Aacute Ograve -40 KPX Aacute Ohungarumlaut -40 KPX Aacute Omacron -40 KPX Aacute Oslash -40 KPX Aacute Otilde -40 KPX Aacute Q -40 KPX Aacute T -90 KPX Aacute Tcaron -90 KPX Aacute Tcommaaccent -90 KPX Aacute U -50 KPX Aacute Uacute -50 KPX Aacute Ucircumflex -50 KPX Aacute Udieresis -50 KPX Aacute Ugrave -50 KPX Aacute Uhungarumlaut -50 KPX Aacute Umacron -50 KPX Aacute Uogonek -50 KPX Aacute Uring -50 KPX Aacute V -80 KPX Aacute W -60 KPX Aacute Y -110 KPX Aacute Yacute -110 KPX Aacute Ydieresis -110 KPX Aacute u -30 KPX Aacute uacute -30 KPX Aacute ucircumflex -30 KPX Aacute udieresis -30 KPX Aacute ugrave -30 KPX Aacute uhungarumlaut -30 KPX Aacute umacron -30 KPX Aacute uogonek -30 KPX Aacute uring -30 KPX Aacute v -40 KPX Aacute w -30 KPX Aacute y -30 KPX Aacute yacute -30 KPX Aacute ydieresis -30 KPX Abreve C -40 KPX Abreve Cacute -40 KPX Abreve Ccaron -40 KPX Abreve Ccedilla -40 KPX Abreve G -50 KPX Abreve Gbreve -50 KPX Abreve Gcommaaccent -50 KPX Abreve O -40 KPX Abreve Oacute -40 KPX Abreve Ocircumflex -40 KPX Abreve Odieresis -40 KPX Abreve Ograve -40 KPX Abreve Ohungarumlaut -40 KPX Abreve Omacron -40 KPX Abreve Oslash -40 KPX Abreve Otilde -40 KPX Abreve Q -40 KPX Abreve T -90 KPX Abreve Tcaron -90 KPX Abreve Tcommaaccent -90 KPX Abreve U -50 KPX Abreve Uacute -50 KPX Abreve Ucircumflex -50 KPX Abreve Udieresis -50 KPX Abreve Ugrave -50 KPX Abreve Uhungarumlaut -50 KPX Abreve Umacron -50 KPX Abreve Uogonek -50 KPX Abreve Uring -50 KPX Abreve V -80 KPX Abreve W -60 KPX Abreve Y -110 KPX Abreve Yacute -110 KPX Abreve Ydieresis -110 KPX Abreve u -30 KPX Abreve uacute -30 KPX Abreve ucircumflex -30 KPX Abreve udieresis -30 KPX Abreve ugrave -30 KPX Abreve uhungarumlaut -30 KPX Abreve umacron -30 KPX Abreve uogonek -30 KPX Abreve uring -30 KPX Abreve v -40 KPX Abreve w -30 KPX Abreve y -30 KPX Abreve yacute -30 KPX Abreve ydieresis -30 KPX Acircumflex C -40 KPX Acircumflex Cacute -40 KPX Acircumflex Ccaron -40 KPX Acircumflex Ccedilla -40 KPX Acircumflex G -50 KPX Acircumflex Gbreve -50 KPX Acircumflex Gcommaaccent -50 KPX Acircumflex O -40 KPX Acircumflex Oacute -40 KPX Acircumflex Ocircumflex -40 KPX Acircumflex Odieresis -40 KPX Acircumflex Ograve -40 KPX Acircumflex Ohungarumlaut -40 KPX Acircumflex Omacron -40 KPX Acircumflex Oslash -40 KPX Acircumflex Otilde -40 KPX Acircumflex Q -40 KPX Acircumflex T -90 KPX Acircumflex Tcaron -90 KPX Acircumflex Tcommaaccent -90 KPX Acircumflex U -50 KPX Acircumflex Uacute -50 KPX Acircumflex Ucircumflex -50 KPX Acircumflex Udieresis -50 KPX Acircumflex Ugrave -50 KPX Acircumflex Uhungarumlaut -50 KPX Acircumflex Umacron -50 KPX Acircumflex Uogonek -50 KPX Acircumflex Uring -50 KPX Acircumflex V -80 KPX Acircumflex W -60 KPX Acircumflex Y -110 KPX Acircumflex Yacute -110 KPX Acircumflex Ydieresis -110 KPX Acircumflex u -30 KPX Acircumflex uacute -30 KPX Acircumflex ucircumflex -30 KPX Acircumflex udieresis -30 KPX Acircumflex ugrave -30 KPX Acircumflex uhungarumlaut -30 KPX Acircumflex umacron -30 KPX Acircumflex uogonek -30 KPX Acircumflex uring -30 KPX Acircumflex v -40 KPX Acircumflex w -30 KPX Acircumflex y -30 KPX Acircumflex yacute -30 KPX Acircumflex ydieresis -30 KPX Adieresis C -40 KPX Adieresis Cacute -40 KPX Adieresis Ccaron -40 KPX Adieresis Ccedilla -40 KPX Adieresis G -50 KPX Adieresis Gbreve -50 KPX Adieresis Gcommaaccent -50 KPX Adieresis O -40 KPX Adieresis Oacute -40 KPX Adieresis Ocircumflex -40 KPX Adieresis Odieresis -40 KPX Adieresis Ograve -40 KPX Adieresis Ohungarumlaut -40 KPX Adieresis Omacron -40 KPX Adieresis Oslash -40 KPX Adieresis Otilde -40 KPX Adieresis Q -40 KPX Adieresis T -90 KPX Adieresis Tcaron -90 KPX Adieresis Tcommaaccent -90 KPX Adieresis U -50 KPX Adieresis Uacute -50 KPX Adieresis Ucircumflex -50 KPX Adieresis Udieresis -50 KPX Adieresis Ugrave -50 KPX Adieresis Uhungarumlaut -50 KPX Adieresis Umacron -50 KPX Adieresis Uogonek -50 KPX Adieresis Uring -50 KPX Adieresis V -80 KPX Adieresis W -60 KPX Adieresis Y -110 KPX Adieresis Yacute -110 KPX Adieresis Ydieresis -110 KPX Adieresis u -30 KPX Adieresis uacute -30 KPX Adieresis ucircumflex -30 KPX Adieresis udieresis -30 KPX Adieresis ugrave -30 KPX Adieresis uhungarumlaut -30 KPX Adieresis umacron -30 KPX Adieresis uogonek -30 KPX Adieresis uring -30 KPX Adieresis v -40 KPX Adieresis w -30 KPX Adieresis y -30 KPX Adieresis yacute -30 KPX Adieresis ydieresis -30 KPX Agrave C -40 KPX Agrave Cacute -40 KPX Agrave Ccaron -40 KPX Agrave Ccedilla -40 KPX Agrave G -50 KPX Agrave Gbreve -50 KPX Agrave Gcommaaccent -50 KPX Agrave O -40 KPX Agrave Oacute -40 KPX Agrave Ocircumflex -40 KPX Agrave Odieresis -40 KPX Agrave Ograve -40 KPX Agrave Ohungarumlaut -40 KPX Agrave Omacron -40 KPX Agrave Oslash -40 KPX Agrave Otilde -40 KPX Agrave Q -40 KPX Agrave T -90 KPX Agrave Tcaron -90 KPX Agrave Tcommaaccent -90 KPX Agrave U -50 KPX Agrave Uacute -50 KPX Agrave Ucircumflex -50 KPX Agrave Udieresis -50 KPX Agrave Ugrave -50 KPX Agrave Uhungarumlaut -50 KPX Agrave Umacron -50 KPX Agrave Uogonek -50 KPX Agrave Uring -50 KPX Agrave V -80 KPX Agrave W -60 KPX Agrave Y -110 KPX Agrave Yacute -110 KPX Agrave Ydieresis -110 KPX Agrave u -30 KPX Agrave uacute -30 KPX Agrave ucircumflex -30 KPX Agrave udieresis -30 KPX Agrave ugrave -30 KPX Agrave uhungarumlaut -30 KPX Agrave umacron -30 KPX Agrave uogonek -30 KPX Agrave uring -30 KPX Agrave v -40 KPX Agrave w -30 KPX Agrave y -30 KPX Agrave yacute -30 KPX Agrave ydieresis -30 KPX Amacron C -40 KPX Amacron Cacute -40 KPX Amacron Ccaron -40 KPX Amacron Ccedilla -40 KPX Amacron G -50 KPX Amacron Gbreve -50 KPX Amacron Gcommaaccent -50 KPX Amacron O -40 KPX Amacron Oacute -40 KPX Amacron Ocircumflex -40 KPX Amacron Odieresis -40 KPX Amacron Ograve -40 KPX Amacron Ohungarumlaut -40 KPX Amacron Omacron -40 KPX Amacron Oslash -40 KPX Amacron Otilde -40 KPX Amacron Q -40 KPX Amacron T -90 KPX Amacron Tcaron -90 KPX Amacron Tcommaaccent -90 KPX Amacron U -50 KPX Amacron Uacute -50 KPX Amacron Ucircumflex -50 KPX Amacron Udieresis -50 KPX Amacron Ugrave -50 KPX Amacron Uhungarumlaut -50 KPX Amacron Umacron -50 KPX Amacron Uogonek -50 KPX Amacron Uring -50 KPX Amacron V -80 KPX Amacron W -60 KPX Amacron Y -110 KPX Amacron Yacute -110 KPX Amacron Ydieresis -110 KPX Amacron u -30 KPX Amacron uacute -30 KPX Amacron ucircumflex -30 KPX Amacron udieresis -30 KPX Amacron ugrave -30 KPX Amacron uhungarumlaut -30 KPX Amacron umacron -30 KPX Amacron uogonek -30 KPX Amacron uring -30 KPX Amacron v -40 KPX Amacron w -30 KPX Amacron y -30 KPX Amacron yacute -30 KPX Amacron ydieresis -30 KPX Aogonek C -40 KPX Aogonek Cacute -40 KPX Aogonek Ccaron -40 KPX Aogonek Ccedilla -40 KPX Aogonek G -50 KPX Aogonek Gbreve -50 KPX Aogonek Gcommaaccent -50 KPX Aogonek O -40 KPX Aogonek Oacute -40 KPX Aogonek Ocircumflex -40 KPX Aogonek Odieresis -40 KPX Aogonek Ograve -40 KPX Aogonek Ohungarumlaut -40 KPX Aogonek Omacron -40 KPX Aogonek Oslash -40 KPX Aogonek Otilde -40 KPX Aogonek Q -40 KPX Aogonek T -90 KPX Aogonek Tcaron -90 KPX Aogonek Tcommaaccent -90 KPX Aogonek U -50 KPX Aogonek Uacute -50 KPX Aogonek Ucircumflex -50 KPX Aogonek Udieresis -50 KPX Aogonek Ugrave -50 KPX Aogonek Uhungarumlaut -50 KPX Aogonek Umacron -50 KPX Aogonek Uogonek -50 KPX Aogonek Uring -50 KPX Aogonek V -80 KPX Aogonek W -60 KPX Aogonek Y -110 KPX Aogonek Yacute -110 KPX Aogonek Ydieresis -110 KPX Aogonek u -30 KPX Aogonek uacute -30 KPX Aogonek ucircumflex -30 KPX Aogonek udieresis -30 KPX Aogonek ugrave -30 KPX Aogonek uhungarumlaut -30 KPX Aogonek umacron -30 KPX Aogonek uogonek -30 KPX Aogonek uring -30 KPX Aogonek v -40 KPX Aogonek w -30 KPX Aogonek y -30 KPX Aogonek yacute -30 KPX Aogonek ydieresis -30 KPX Aring C -40 KPX Aring Cacute -40 KPX Aring Ccaron -40 KPX Aring Ccedilla -40 KPX Aring G -50 KPX Aring Gbreve -50 KPX Aring Gcommaaccent -50 KPX Aring O -40 KPX Aring Oacute -40 KPX Aring Ocircumflex -40 KPX Aring Odieresis -40 KPX Aring Ograve -40 KPX Aring Ohungarumlaut -40 KPX Aring Omacron -40 KPX Aring Oslash -40 KPX Aring Otilde -40 KPX Aring Q -40 KPX Aring T -90 KPX Aring Tcaron -90 KPX Aring Tcommaaccent -90 KPX Aring U -50 KPX Aring Uacute -50 KPX Aring Ucircumflex -50 KPX Aring Udieresis -50 KPX Aring Ugrave -50 KPX Aring Uhungarumlaut -50 KPX Aring Umacron -50 KPX Aring Uogonek -50 KPX Aring Uring -50 KPX Aring V -80 KPX Aring W -60 KPX Aring Y -110 KPX Aring Yacute -110 KPX Aring Ydieresis -110 KPX Aring u -30 KPX Aring uacute -30 KPX Aring ucircumflex -30 KPX Aring udieresis -30 KPX Aring ugrave -30 KPX Aring uhungarumlaut -30 KPX Aring umacron -30 KPX Aring uogonek -30 KPX Aring uring -30 KPX Aring v -40 KPX Aring w -30 KPX Aring y -30 KPX Aring yacute -30 KPX Aring ydieresis -30 KPX Atilde C -40 KPX Atilde Cacute -40 KPX Atilde Ccaron -40 KPX Atilde Ccedilla -40 KPX Atilde G -50 KPX Atilde Gbreve -50 KPX Atilde Gcommaaccent -50 KPX Atilde O -40 KPX Atilde Oacute -40 KPX Atilde Ocircumflex -40 KPX Atilde Odieresis -40 KPX Atilde Ograve -40 KPX Atilde Ohungarumlaut -40 KPX Atilde Omacron -40 KPX Atilde Oslash -40 KPX Atilde Otilde -40 KPX Atilde Q -40 KPX Atilde T -90 KPX Atilde Tcaron -90 KPX Atilde Tcommaaccent -90 KPX Atilde U -50 KPX Atilde Uacute -50 KPX Atilde Ucircumflex -50 KPX Atilde Udieresis -50 KPX Atilde Ugrave -50 KPX Atilde Uhungarumlaut -50 KPX Atilde Umacron -50 KPX Atilde Uogonek -50 KPX Atilde Uring -50 KPX Atilde V -80 KPX Atilde W -60 KPX Atilde Y -110 KPX Atilde Yacute -110 KPX Atilde Ydieresis -110 KPX Atilde u -30 KPX Atilde uacute -30 KPX Atilde ucircumflex -30 KPX Atilde udieresis -30 KPX Atilde ugrave -30 KPX Atilde uhungarumlaut -30 KPX Atilde umacron -30 KPX Atilde uogonek -30 KPX Atilde uring -30 KPX Atilde v -40 KPX Atilde w -30 KPX Atilde y -30 KPX Atilde yacute -30 KPX Atilde ydieresis -30 KPX B A -30 KPX B Aacute -30 KPX B Abreve -30 KPX B Acircumflex -30 KPX B Adieresis -30 KPX B Agrave -30 KPX B Amacron -30 KPX B Aogonek -30 KPX B Aring -30 KPX B Atilde -30 KPX B U -10 KPX B Uacute -10 KPX B Ucircumflex -10 KPX B Udieresis -10 KPX B Ugrave -10 KPX B Uhungarumlaut -10 KPX B Umacron -10 KPX B Uogonek -10 KPX B Uring -10 KPX D A -40 KPX D Aacute -40 KPX D Abreve -40 KPX D Acircumflex -40 KPX D Adieresis -40 KPX D Agrave -40 KPX D Amacron -40 KPX D Aogonek -40 KPX D Aring -40 KPX D Atilde -40 KPX D V -40 KPX D W -40 KPX D Y -70 KPX D Yacute -70 KPX D Ydieresis -70 KPX D comma -30 KPX D period -30 KPX Dcaron A -40 KPX Dcaron Aacute -40 KPX Dcaron Abreve -40 KPX Dcaron Acircumflex -40 KPX Dcaron Adieresis -40 KPX Dcaron Agrave -40 KPX Dcaron Amacron -40 KPX Dcaron Aogonek -40 KPX Dcaron Aring -40 KPX Dcaron Atilde -40 KPX Dcaron V -40 KPX Dcaron W -40 KPX Dcaron Y -70 KPX Dcaron Yacute -70 KPX Dcaron Ydieresis -70 KPX Dcaron comma -30 KPX Dcaron period -30 KPX Dcroat A -40 KPX Dcroat Aacute -40 KPX Dcroat Abreve -40 KPX Dcroat Acircumflex -40 KPX Dcroat Adieresis -40 KPX Dcroat Agrave -40 KPX Dcroat Amacron -40 KPX Dcroat Aogonek -40 KPX Dcroat Aring -40 KPX Dcroat Atilde -40 KPX Dcroat V -40 KPX Dcroat W -40 KPX Dcroat Y -70 KPX Dcroat Yacute -70 KPX Dcroat Ydieresis -70 KPX Dcroat comma -30 KPX Dcroat period -30 KPX F A -80 KPX F Aacute -80 KPX F Abreve -80 KPX F Acircumflex -80 KPX F Adieresis -80 KPX F Agrave -80 KPX F Amacron -80 KPX F Aogonek -80 KPX F Aring -80 KPX F Atilde -80 KPX F a -20 KPX F aacute -20 KPX F abreve -20 KPX F acircumflex -20 KPX F adieresis -20 KPX F agrave -20 KPX F amacron -20 KPX F aogonek -20 KPX F aring -20 KPX F atilde -20 KPX F comma -100 KPX F period -100 KPX J A -20 KPX J Aacute -20 KPX J Abreve -20 KPX J Acircumflex -20 KPX J Adieresis -20 KPX J Agrave -20 KPX J Amacron -20 KPX J Aogonek -20 KPX J Aring -20 KPX J Atilde -20 KPX J comma -20 KPX J period -20 KPX J u -20 KPX J uacute -20 KPX J ucircumflex -20 KPX J udieresis -20 KPX J ugrave -20 KPX J uhungarumlaut -20 KPX J umacron -20 KPX J uogonek -20 KPX J uring -20 KPX K O -30 KPX K Oacute -30 KPX K Ocircumflex -30 KPX K Odieresis -30 KPX K Ograve -30 KPX K Ohungarumlaut -30 KPX K Omacron -30 KPX K Oslash -30 KPX K Otilde -30 KPX K e -15 KPX K eacute -15 KPX K ecaron -15 KPX K ecircumflex -15 KPX K edieresis -15 KPX K edotaccent -15 KPX K egrave -15 KPX K emacron -15 KPX K eogonek -15 KPX K o -35 KPX K oacute -35 KPX K ocircumflex -35 KPX K odieresis -35 KPX K ograve -35 KPX K ohungarumlaut -35 KPX K omacron -35 KPX K oslash -35 KPX K otilde -35 KPX K u -30 KPX K uacute -30 KPX K ucircumflex -30 KPX K udieresis -30 KPX K ugrave -30 KPX K uhungarumlaut -30 KPX K umacron -30 KPX K uogonek -30 KPX K uring -30 KPX K y -40 KPX K yacute -40 KPX K ydieresis -40 KPX Kcommaaccent O -30 KPX Kcommaaccent Oacute -30 KPX Kcommaaccent Ocircumflex -30 KPX Kcommaaccent Odieresis -30 KPX Kcommaaccent Ograve -30 KPX Kcommaaccent Ohungarumlaut -30 KPX Kcommaaccent Omacron -30 KPX Kcommaaccent Oslash -30 KPX Kcommaaccent Otilde -30 KPX Kcommaaccent e -15 KPX Kcommaaccent eacute -15 KPX Kcommaaccent ecaron -15 KPX Kcommaaccent ecircumflex -15 KPX Kcommaaccent edieresis -15 KPX Kcommaaccent edotaccent -15 KPX Kcommaaccent egrave -15 KPX Kcommaaccent emacron -15 KPX Kcommaaccent eogonek -15 KPX Kcommaaccent o -35 KPX Kcommaaccent oacute -35 KPX Kcommaaccent ocircumflex -35 KPX Kcommaaccent odieresis -35 KPX Kcommaaccent ograve -35 KPX Kcommaaccent ohungarumlaut -35 KPX Kcommaaccent omacron -35 KPX Kcommaaccent oslash -35 KPX Kcommaaccent otilde -35 KPX Kcommaaccent u -30 KPX Kcommaaccent uacute -30 KPX Kcommaaccent ucircumflex -30 KPX Kcommaaccent udieresis -30 KPX Kcommaaccent ugrave -30 KPX Kcommaaccent uhungarumlaut -30 KPX Kcommaaccent umacron -30 KPX Kcommaaccent uogonek -30 KPX Kcommaaccent uring -30 KPX Kcommaaccent y -40 KPX Kcommaaccent yacute -40 KPX Kcommaaccent ydieresis -40 KPX L T -90 KPX L Tcaron -90 KPX L Tcommaaccent -90 KPX L V -110 KPX L W -80 KPX L Y -120 KPX L Yacute -120 KPX L Ydieresis -120 KPX L quotedblright -140 KPX L quoteright -140 KPX L y -30 KPX L yacute -30 KPX L ydieresis -30 KPX Lacute T -90 KPX Lacute Tcaron -90 KPX Lacute Tcommaaccent -90 KPX Lacute V -110 KPX Lacute W -80 KPX Lacute Y -120 KPX Lacute Yacute -120 KPX Lacute Ydieresis -120 KPX Lacute quotedblright -140 KPX Lacute quoteright -140 KPX Lacute y -30 KPX Lacute yacute -30 KPX Lacute ydieresis -30 KPX Lcommaaccent T -90 KPX Lcommaaccent Tcaron -90 KPX Lcommaaccent Tcommaaccent -90 KPX Lcommaaccent V -110 KPX Lcommaaccent W -80 KPX Lcommaaccent Y -120 KPX Lcommaaccent Yacute -120 KPX Lcommaaccent Ydieresis -120 KPX Lcommaaccent quotedblright -140 KPX Lcommaaccent quoteright -140 KPX Lcommaaccent y -30 KPX Lcommaaccent yacute -30 KPX Lcommaaccent ydieresis -30 KPX Lslash T -90 KPX Lslash Tcaron -90 KPX Lslash Tcommaaccent -90 KPX Lslash V -110 KPX Lslash W -80 KPX Lslash Y -120 KPX Lslash Yacute -120 KPX Lslash Ydieresis -120 KPX Lslash quotedblright -140 KPX Lslash quoteright -140 KPX Lslash y -30 KPX Lslash yacute -30 KPX Lslash ydieresis -30 KPX O A -50 KPX O Aacute -50 KPX O Abreve -50 KPX O Acircumflex -50 KPX O Adieresis -50 KPX O Agrave -50 KPX O Amacron -50 KPX O Aogonek -50 KPX O Aring -50 KPX O Atilde -50 KPX O T -40 KPX O Tcaron -40 KPX O Tcommaaccent -40 KPX O V -50 KPX O W -50 KPX O X -50 KPX O Y -70 KPX O Yacute -70 KPX O Ydieresis -70 KPX O comma -40 KPX O period -40 KPX Oacute A -50 KPX Oacute Aacute -50 KPX Oacute Abreve -50 KPX Oacute Acircumflex -50 KPX Oacute Adieresis -50 KPX Oacute Agrave -50 KPX Oacute Amacron -50 KPX Oacute Aogonek -50 KPX Oacute Aring -50 KPX Oacute Atilde -50 KPX Oacute T -40 KPX Oacute Tcaron -40 KPX Oacute Tcommaaccent -40 KPX Oacute V -50 KPX Oacute W -50 KPX Oacute X -50 KPX Oacute Y -70 KPX Oacute Yacute -70 KPX Oacute Ydieresis -70 KPX Oacute comma -40 KPX Oacute period -40 KPX Ocircumflex A -50 KPX Ocircumflex Aacute -50 KPX Ocircumflex Abreve -50 KPX Ocircumflex Acircumflex -50 KPX Ocircumflex Adieresis -50 KPX Ocircumflex Agrave -50 KPX Ocircumflex Amacron -50 KPX Ocircumflex Aogonek -50 KPX Ocircumflex Aring -50 KPX Ocircumflex Atilde -50 KPX Ocircumflex T -40 KPX Ocircumflex Tcaron -40 KPX Ocircumflex Tcommaaccent -40 KPX Ocircumflex V -50 KPX Ocircumflex W -50 KPX Ocircumflex X -50 KPX Ocircumflex Y -70 KPX Ocircumflex Yacute -70 KPX Ocircumflex Ydieresis -70 KPX Ocircumflex comma -40 KPX Ocircumflex period -40 KPX Odieresis A -50 KPX Odieresis Aacute -50 KPX Odieresis Abreve -50 KPX Odieresis Acircumflex -50 KPX Odieresis Adieresis -50 KPX Odieresis Agrave -50 KPX Odieresis Amacron -50 KPX Odieresis Aogonek -50 KPX Odieresis Aring -50 KPX Odieresis Atilde -50 KPX Odieresis T -40 KPX Odieresis Tcaron -40 KPX Odieresis Tcommaaccent -40 KPX Odieresis V -50 KPX Odieresis W -50 KPX Odieresis X -50 KPX Odieresis Y -70 KPX Odieresis Yacute -70 KPX Odieresis Ydieresis -70 KPX Odieresis comma -40 KPX Odieresis period -40 KPX Ograve A -50 KPX Ograve Aacute -50 KPX Ograve Abreve -50 KPX Ograve Acircumflex -50 KPX Ograve Adieresis -50 KPX Ograve Agrave -50 KPX Ograve Amacron -50 KPX Ograve Aogonek -50 KPX Ograve Aring -50 KPX Ograve Atilde -50 KPX Ograve T -40 KPX Ograve Tcaron -40 KPX Ograve Tcommaaccent -40 KPX Ograve V -50 KPX Ograve W -50 KPX Ograve X -50 KPX Ograve Y -70 KPX Ograve Yacute -70 KPX Ograve Ydieresis -70 KPX Ograve comma -40 KPX Ograve period -40 KPX Ohungarumlaut A -50 KPX Ohungarumlaut Aacute -50 KPX Ohungarumlaut Abreve -50 KPX Ohungarumlaut Acircumflex -50 KPX Ohungarumlaut Adieresis -50 KPX Ohungarumlaut Agrave -50 KPX Ohungarumlaut Amacron -50 KPX Ohungarumlaut Aogonek -50 KPX Ohungarumlaut Aring -50 KPX Ohungarumlaut Atilde -50 KPX Ohungarumlaut T -40 KPX Ohungarumlaut Tcaron -40 KPX Ohungarumlaut Tcommaaccent -40 KPX Ohungarumlaut V -50 KPX Ohungarumlaut W -50 KPX Ohungarumlaut X -50 KPX Ohungarumlaut Y -70 KPX Ohungarumlaut Yacute -70 KPX Ohungarumlaut Ydieresis -70 KPX Ohungarumlaut comma -40 KPX Ohungarumlaut period -40 KPX Omacron A -50 KPX Omacron Aacute -50 KPX Omacron Abreve -50 KPX Omacron Acircumflex -50 KPX Omacron Adieresis -50 KPX Omacron Agrave -50 KPX Omacron Amacron -50 KPX Omacron Aogonek -50 KPX Omacron Aring -50 KPX Omacron Atilde -50 KPX Omacron T -40 KPX Omacron Tcaron -40 KPX Omacron Tcommaaccent -40 KPX Omacron V -50 KPX Omacron W -50 KPX Omacron X -50 KPX Omacron Y -70 KPX Omacron Yacute -70 KPX Omacron Ydieresis -70 KPX Omacron comma -40 KPX Omacron period -40 KPX Oslash A -50 KPX Oslash Aacute -50 KPX Oslash Abreve -50 KPX Oslash Acircumflex -50 KPX Oslash Adieresis -50 KPX Oslash Agrave -50 KPX Oslash Amacron -50 KPX Oslash Aogonek -50 KPX Oslash Aring -50 KPX Oslash Atilde -50 KPX Oslash T -40 KPX Oslash Tcaron -40 KPX Oslash Tcommaaccent -40 KPX Oslash V -50 KPX Oslash W -50 KPX Oslash X -50 KPX Oslash Y -70 KPX Oslash Yacute -70 KPX Oslash Ydieresis -70 KPX Oslash comma -40 KPX Oslash period -40 KPX Otilde A -50 KPX Otilde Aacute -50 KPX Otilde Abreve -50 KPX Otilde Acircumflex -50 KPX Otilde Adieresis -50 KPX Otilde Agrave -50 KPX Otilde Amacron -50 KPX Otilde Aogonek -50 KPX Otilde Aring -50 KPX Otilde Atilde -50 KPX Otilde T -40 KPX Otilde Tcaron -40 KPX Otilde Tcommaaccent -40 KPX Otilde V -50 KPX Otilde W -50 KPX Otilde X -50 KPX Otilde Y -70 KPX Otilde Yacute -70 KPX Otilde Ydieresis -70 KPX Otilde comma -40 KPX Otilde period -40 KPX P A -100 KPX P Aacute -100 KPX P Abreve -100 KPX P Acircumflex -100 KPX P Adieresis -100 KPX P Agrave -100 KPX P Amacron -100 KPX P Aogonek -100 KPX P Aring -100 KPX P Atilde -100 KPX P a -30 KPX P aacute -30 KPX P abreve -30 KPX P acircumflex -30 KPX P adieresis -30 KPX P agrave -30 KPX P amacron -30 KPX P aogonek -30 KPX P aring -30 KPX P atilde -30 KPX P comma -120 KPX P e -30 KPX P eacute -30 KPX P ecaron -30 KPX P ecircumflex -30 KPX P edieresis -30 KPX P edotaccent -30 KPX P egrave -30 KPX P emacron -30 KPX P eogonek -30 KPX P o -40 KPX P oacute -40 KPX P ocircumflex -40 KPX P odieresis -40 KPX P ograve -40 KPX P ohungarumlaut -40 KPX P omacron -40 KPX P oslash -40 KPX P otilde -40 KPX P period -120 KPX Q U -10 KPX Q Uacute -10 KPX Q Ucircumflex -10 KPX Q Udieresis -10 KPX Q Ugrave -10 KPX Q Uhungarumlaut -10 KPX Q Umacron -10 KPX Q Uogonek -10 KPX Q Uring -10 KPX Q comma 20 KPX Q period 20 KPX R O -20 KPX R Oacute -20 KPX R Ocircumflex -20 KPX R Odieresis -20 KPX R Ograve -20 KPX R Ohungarumlaut -20 KPX R Omacron -20 KPX R Oslash -20 KPX R Otilde -20 KPX R T -20 KPX R Tcaron -20 KPX R Tcommaaccent -20 KPX R U -20 KPX R Uacute -20 KPX R Ucircumflex -20 KPX R Udieresis -20 KPX R Ugrave -20 KPX R Uhungarumlaut -20 KPX R Umacron -20 KPX R Uogonek -20 KPX R Uring -20 KPX R V -50 KPX R W -40 KPX R Y -50 KPX R Yacute -50 KPX R Ydieresis -50 KPX Racute O -20 KPX Racute Oacute -20 KPX Racute Ocircumflex -20 KPX Racute Odieresis -20 KPX Racute Ograve -20 KPX Racute Ohungarumlaut -20 KPX Racute Omacron -20 KPX Racute Oslash -20 KPX Racute Otilde -20 KPX Racute T -20 KPX Racute Tcaron -20 KPX Racute Tcommaaccent -20 KPX Racute U -20 KPX Racute Uacute -20 KPX Racute Ucircumflex -20 KPX Racute Udieresis -20 KPX Racute Ugrave -20 KPX Racute Uhungarumlaut -20 KPX Racute Umacron -20 KPX Racute Uogonek -20 KPX Racute Uring -20 KPX Racute V -50 KPX Racute W -40 KPX Racute Y -50 KPX Racute Yacute -50 KPX Racute Ydieresis -50 KPX Rcaron O -20 KPX Rcaron Oacute -20 KPX Rcaron Ocircumflex -20 KPX Rcaron Odieresis -20 KPX Rcaron Ograve -20 KPX Rcaron Ohungarumlaut -20 KPX Rcaron Omacron -20 KPX Rcaron Oslash -20 KPX Rcaron Otilde -20 KPX Rcaron T -20 KPX Rcaron Tcaron -20 KPX Rcaron Tcommaaccent -20 KPX Rcaron U -20 KPX Rcaron Uacute -20 KPX Rcaron Ucircumflex -20 KPX Rcaron Udieresis -20 KPX Rcaron Ugrave -20 KPX Rcaron Uhungarumlaut -20 KPX Rcaron Umacron -20 KPX Rcaron Uogonek -20 KPX Rcaron Uring -20 KPX Rcaron V -50 KPX Rcaron W -40 KPX Rcaron Y -50 KPX Rcaron Yacute -50 KPX Rcaron Ydieresis -50 KPX Rcommaaccent O -20 KPX Rcommaaccent Oacute -20 KPX Rcommaaccent Ocircumflex -20 KPX Rcommaaccent Odieresis -20 KPX Rcommaaccent Ograve -20 KPX Rcommaaccent Ohungarumlaut -20 KPX Rcommaaccent Omacron -20 KPX Rcommaaccent Oslash -20 KPX Rcommaaccent Otilde -20 KPX Rcommaaccent T -20 KPX Rcommaaccent Tcaron -20 KPX Rcommaaccent Tcommaaccent -20 KPX Rcommaaccent U -20 KPX Rcommaaccent Uacute -20 KPX Rcommaaccent Ucircumflex -20 KPX Rcommaaccent Udieresis -20 KPX Rcommaaccent Ugrave -20 KPX Rcommaaccent Uhungarumlaut -20 KPX Rcommaaccent Umacron -20 KPX Rcommaaccent Uogonek -20 KPX Rcommaaccent Uring -20 KPX Rcommaaccent V -50 KPX Rcommaaccent W -40 KPX Rcommaaccent Y -50 KPX Rcommaaccent Yacute -50 KPX Rcommaaccent Ydieresis -50 KPX T A -90 KPX T Aacute -90 KPX T Abreve -90 KPX T Acircumflex -90 KPX T Adieresis -90 KPX T Agrave -90 KPX T Amacron -90 KPX T Aogonek -90 KPX T Aring -90 KPX T Atilde -90 KPX T O -40 KPX T Oacute -40 KPX T Ocircumflex -40 KPX T Odieresis -40 KPX T Ograve -40 KPX T Ohungarumlaut -40 KPX T Omacron -40 KPX T Oslash -40 KPX T Otilde -40 KPX T a -80 KPX T aacute -80 KPX T abreve -80 KPX T acircumflex -80 KPX T adieresis -80 KPX T agrave -80 KPX T amacron -80 KPX T aogonek -80 KPX T aring -80 KPX T atilde -80 KPX T colon -40 KPX T comma -80 KPX T e -60 KPX T eacute -60 KPX T ecaron -60 KPX T ecircumflex -60 KPX T edieresis -60 KPX T edotaccent -60 KPX T egrave -60 KPX T emacron -60 KPX T eogonek -60 KPX T hyphen -120 KPX T o -80 KPX T oacute -80 KPX T ocircumflex -80 KPX T odieresis -80 KPX T ograve -80 KPX T ohungarumlaut -80 KPX T omacron -80 KPX T oslash -80 KPX T otilde -80 KPX T period -80 KPX T r -80 KPX T racute -80 KPX T rcommaaccent -80 KPX T semicolon -40 KPX T u -90 KPX T uacute -90 KPX T ucircumflex -90 KPX T udieresis -90 KPX T ugrave -90 KPX T uhungarumlaut -90 KPX T umacron -90 KPX T uogonek -90 KPX T uring -90 KPX T w -60 KPX T y -60 KPX T yacute -60 KPX T ydieresis -60 KPX Tcaron A -90 KPX Tcaron Aacute -90 KPX Tcaron Abreve -90 KPX Tcaron Acircumflex -90 KPX Tcaron Adieresis -90 KPX Tcaron Agrave -90 KPX Tcaron Amacron -90 KPX Tcaron Aogonek -90 KPX Tcaron Aring -90 KPX Tcaron Atilde -90 KPX Tcaron O -40 KPX Tcaron Oacute -40 KPX Tcaron Ocircumflex -40 KPX Tcaron Odieresis -40 KPX Tcaron Ograve -40 KPX Tcaron Ohungarumlaut -40 KPX Tcaron Omacron -40 KPX Tcaron Oslash -40 KPX Tcaron Otilde -40 KPX Tcaron a -80 KPX Tcaron aacute -80 KPX Tcaron abreve -80 KPX Tcaron acircumflex -80 KPX Tcaron adieresis -80 KPX Tcaron agrave -80 KPX Tcaron amacron -80 KPX Tcaron aogonek -80 KPX Tcaron aring -80 KPX Tcaron atilde -80 KPX Tcaron colon -40 KPX Tcaron comma -80 KPX Tcaron e -60 KPX Tcaron eacute -60 KPX Tcaron ecaron -60 KPX Tcaron ecircumflex -60 KPX Tcaron edieresis -60 KPX Tcaron edotaccent -60 KPX Tcaron egrave -60 KPX Tcaron emacron -60 KPX Tcaron eogonek -60 KPX Tcaron hyphen -120 KPX Tcaron o -80 KPX Tcaron oacute -80 KPX Tcaron ocircumflex -80 KPX Tcaron odieresis -80 KPX Tcaron ograve -80 KPX Tcaron ohungarumlaut -80 KPX Tcaron omacron -80 KPX Tcaron oslash -80 KPX Tcaron otilde -80 KPX Tcaron period -80 KPX Tcaron r -80 KPX Tcaron racute -80 KPX Tcaron rcommaaccent -80 KPX Tcaron semicolon -40 KPX Tcaron u -90 KPX Tcaron uacute -90 KPX Tcaron ucircumflex -90 KPX Tcaron udieresis -90 KPX Tcaron ugrave -90 KPX Tcaron uhungarumlaut -90 KPX Tcaron umacron -90 KPX Tcaron uogonek -90 KPX Tcaron uring -90 KPX Tcaron w -60 KPX Tcaron y -60 KPX Tcaron yacute -60 KPX Tcaron ydieresis -60 KPX Tcommaaccent A -90 KPX Tcommaaccent Aacute -90 KPX Tcommaaccent Abreve -90 KPX Tcommaaccent Acircumflex -90 KPX Tcommaaccent Adieresis -90 KPX Tcommaaccent Agrave -90 KPX Tcommaaccent Amacron -90 KPX Tcommaaccent Aogonek -90 KPX Tcommaaccent Aring -90 KPX Tcommaaccent Atilde -90 KPX Tcommaaccent O -40 KPX Tcommaaccent Oacute -40 KPX Tcommaaccent Ocircumflex -40 KPX Tcommaaccent Odieresis -40 KPX Tcommaaccent Ograve -40 KPX Tcommaaccent Ohungarumlaut -40 KPX Tcommaaccent Omacron -40 KPX Tcommaaccent Oslash -40 KPX Tcommaaccent Otilde -40 KPX Tcommaaccent a -80 KPX Tcommaaccent aacute -80 KPX Tcommaaccent abreve -80 KPX Tcommaaccent acircumflex -80 KPX Tcommaaccent adieresis -80 KPX Tcommaaccent agrave -80 KPX Tcommaaccent amacron -80 KPX Tcommaaccent aogonek -80 KPX Tcommaaccent aring -80 KPX Tcommaaccent atilde -80 KPX Tcommaaccent colon -40 KPX Tcommaaccent comma -80 KPX Tcommaaccent e -60 KPX Tcommaaccent eacute -60 KPX Tcommaaccent ecaron -60 KPX Tcommaaccent ecircumflex -60 KPX Tcommaaccent edieresis -60 KPX Tcommaaccent edotaccent -60 KPX Tcommaaccent egrave -60 KPX Tcommaaccent emacron -60 KPX Tcommaaccent eogonek -60 KPX Tcommaaccent hyphen -120 KPX Tcommaaccent o -80 KPX Tcommaaccent oacute -80 KPX Tcommaaccent ocircumflex -80 KPX Tcommaaccent odieresis -80 KPX Tcommaaccent ograve -80 KPX Tcommaaccent ohungarumlaut -80 KPX Tcommaaccent omacron -80 KPX Tcommaaccent oslash -80 KPX Tcommaaccent otilde -80 KPX Tcommaaccent period -80 KPX Tcommaaccent r -80 KPX Tcommaaccent racute -80 KPX Tcommaaccent rcommaaccent -80 KPX Tcommaaccent semicolon -40 KPX Tcommaaccent u -90 KPX Tcommaaccent uacute -90 KPX Tcommaaccent ucircumflex -90 KPX Tcommaaccent udieresis -90 KPX Tcommaaccent ugrave -90 KPX Tcommaaccent uhungarumlaut -90 KPX Tcommaaccent umacron -90 KPX Tcommaaccent uogonek -90 KPX Tcommaaccent uring -90 KPX Tcommaaccent w -60 KPX Tcommaaccent y -60 KPX Tcommaaccent yacute -60 KPX Tcommaaccent ydieresis -60 KPX U A -50 KPX U Aacute -50 KPX U Abreve -50 KPX U Acircumflex -50 KPX U Adieresis -50 KPX U Agrave -50 KPX U Amacron -50 KPX U Aogonek -50 KPX U Aring -50 KPX U Atilde -50 KPX U comma -30 KPX U period -30 KPX Uacute A -50 KPX Uacute Aacute -50 KPX Uacute Abreve -50 KPX Uacute Acircumflex -50 KPX Uacute Adieresis -50 KPX Uacute Agrave -50 KPX Uacute Amacron -50 KPX Uacute Aogonek -50 KPX Uacute Aring -50 KPX Uacute Atilde -50 KPX Uacute comma -30 KPX Uacute period -30 KPX Ucircumflex A -50 KPX Ucircumflex Aacute -50 KPX Ucircumflex Abreve -50 KPX Ucircumflex Acircumflex -50 KPX Ucircumflex Adieresis -50 KPX Ucircumflex Agrave -50 KPX Ucircumflex Amacron -50 KPX Ucircumflex Aogonek -50 KPX Ucircumflex Aring -50 KPX Ucircumflex Atilde -50 KPX Ucircumflex comma -30 KPX Ucircumflex period -30 KPX Udieresis A -50 KPX Udieresis Aacute -50 KPX Udieresis Abreve -50 KPX Udieresis Acircumflex -50 KPX Udieresis Adieresis -50 KPX Udieresis Agrave -50 KPX Udieresis Amacron -50 KPX Udieresis Aogonek -50 KPX Udieresis Aring -50 KPX Udieresis Atilde -50 KPX Udieresis comma -30 KPX Udieresis period -30 KPX Ugrave A -50 KPX Ugrave Aacute -50 KPX Ugrave Abreve -50 KPX Ugrave Acircumflex -50 KPX Ugrave Adieresis -50 KPX Ugrave Agrave -50 KPX Ugrave Amacron -50 KPX Ugrave Aogonek -50 KPX Ugrave Aring -50 KPX Ugrave Atilde -50 KPX Ugrave comma -30 KPX Ugrave period -30 KPX Uhungarumlaut A -50 KPX Uhungarumlaut Aacute -50 KPX Uhungarumlaut Abreve -50 KPX Uhungarumlaut Acircumflex -50 KPX Uhungarumlaut Adieresis -50 KPX Uhungarumlaut Agrave -50 KPX Uhungarumlaut Amacron -50 KPX Uhungarumlaut Aogonek -50 KPX Uhungarumlaut Aring -50 KPX Uhungarumlaut Atilde -50 KPX Uhungarumlaut comma -30 KPX Uhungarumlaut period -30 KPX Umacron A -50 KPX Umacron Aacute -50 KPX Umacron Abreve -50 KPX Umacron Acircumflex -50 KPX Umacron Adieresis -50 KPX Umacron Agrave -50 KPX Umacron Amacron -50 KPX Umacron Aogonek -50 KPX Umacron Aring -50 KPX Umacron Atilde -50 KPX Umacron comma -30 KPX Umacron period -30 KPX Uogonek A -50 KPX Uogonek Aacute -50 KPX Uogonek Abreve -50 KPX Uogonek Acircumflex -50 KPX Uogonek Adieresis -50 KPX Uogonek Agrave -50 KPX Uogonek Amacron -50 KPX Uogonek Aogonek -50 KPX Uogonek Aring -50 KPX Uogonek Atilde -50 KPX Uogonek comma -30 KPX Uogonek period -30 KPX Uring A -50 KPX Uring Aacute -50 KPX Uring Abreve -50 KPX Uring Acircumflex -50 KPX Uring Adieresis -50 KPX Uring Agrave -50 KPX Uring Amacron -50 KPX Uring Aogonek -50 KPX Uring Aring -50 KPX Uring Atilde -50 KPX Uring comma -30 KPX Uring period -30 KPX V A -80 KPX V Aacute -80 KPX V Abreve -80 KPX V Acircumflex -80 KPX V Adieresis -80 KPX V Agrave -80 KPX V Amacron -80 KPX V Aogonek -80 KPX V Aring -80 KPX V Atilde -80 KPX V G -50 KPX V Gbreve -50 KPX V Gcommaaccent -50 KPX V O -50 KPX V Oacute -50 KPX V Ocircumflex -50 KPX V Odieresis -50 KPX V Ograve -50 KPX V Ohungarumlaut -50 KPX V Omacron -50 KPX V Oslash -50 KPX V Otilde -50 KPX V a -60 KPX V aacute -60 KPX V abreve -60 KPX V acircumflex -60 KPX V adieresis -60 KPX V agrave -60 KPX V amacron -60 KPX V aogonek -60 KPX V aring -60 KPX V atilde -60 KPX V colon -40 KPX V comma -120 KPX V e -50 KPX V eacute -50 KPX V ecaron -50 KPX V ecircumflex -50 KPX V edieresis -50 KPX V edotaccent -50 KPX V egrave -50 KPX V emacron -50 KPX V eogonek -50 KPX V hyphen -80 KPX V o -90 KPX V oacute -90 KPX V ocircumflex -90 KPX V odieresis -90 KPX V ograve -90 KPX V ohungarumlaut -90 KPX V omacron -90 KPX V oslash -90 KPX V otilde -90 KPX V period -120 KPX V semicolon -40 KPX V u -60 KPX V uacute -60 KPX V ucircumflex -60 KPX V udieresis -60 KPX V ugrave -60 KPX V uhungarumlaut -60 KPX V umacron -60 KPX V uogonek -60 KPX V uring -60 KPX W A -60 KPX W Aacute -60 KPX W Abreve -60 KPX W Acircumflex -60 KPX W Adieresis -60 KPX W Agrave -60 KPX W Amacron -60 KPX W Aogonek -60 KPX W Aring -60 KPX W Atilde -60 KPX W O -20 KPX W Oacute -20 KPX W Ocircumflex -20 KPX W Odieresis -20 KPX W Ograve -20 KPX W Ohungarumlaut -20 KPX W Omacron -20 KPX W Oslash -20 KPX W Otilde -20 KPX W a -40 KPX W aacute -40 KPX W abreve -40 KPX W acircumflex -40 KPX W adieresis -40 KPX W agrave -40 KPX W amacron -40 KPX W aogonek -40 KPX W aring -40 KPX W atilde -40 KPX W colon -10 KPX W comma -80 KPX W e -35 KPX W eacute -35 KPX W ecaron -35 KPX W ecircumflex -35 KPX W edieresis -35 KPX W edotaccent -35 KPX W egrave -35 KPX W emacron -35 KPX W eogonek -35 KPX W hyphen -40 KPX W o -60 KPX W oacute -60 KPX W ocircumflex -60 KPX W odieresis -60 KPX W ograve -60 KPX W ohungarumlaut -60 KPX W omacron -60 KPX W oslash -60 KPX W otilde -60 KPX W period -80 KPX W semicolon -10 KPX W u -45 KPX W uacute -45 KPX W ucircumflex -45 KPX W udieresis -45 KPX W ugrave -45 KPX W uhungarumlaut -45 KPX W umacron -45 KPX W uogonek -45 KPX W uring -45 KPX W y -20 KPX W yacute -20 KPX W ydieresis -20 KPX Y A -110 KPX Y Aacute -110 KPX Y Abreve -110 KPX Y Acircumflex -110 KPX Y Adieresis -110 KPX Y Agrave -110 KPX Y Amacron -110 KPX Y Aogonek -110 KPX Y Aring -110 KPX Y Atilde -110 KPX Y O -70 KPX Y Oacute -70 KPX Y Ocircumflex -70 KPX Y Odieresis -70 KPX Y Ograve -70 KPX Y Ohungarumlaut -70 KPX Y Omacron -70 KPX Y Oslash -70 KPX Y Otilde -70 KPX Y a -90 KPX Y aacute -90 KPX Y abreve -90 KPX Y acircumflex -90 KPX Y adieresis -90 KPX Y agrave -90 KPX Y amacron -90 KPX Y aogonek -90 KPX Y aring -90 KPX Y atilde -90 KPX Y colon -50 KPX Y comma -100 KPX Y e -80 KPX Y eacute -80 KPX Y ecaron -80 KPX Y ecircumflex -80 KPX Y edieresis -80 KPX Y edotaccent -80 KPX Y egrave -80 KPX Y emacron -80 KPX Y eogonek -80 KPX Y o -100 KPX Y oacute -100 KPX Y ocircumflex -100 KPX Y odieresis -100 KPX Y ograve -100 KPX Y ohungarumlaut -100 KPX Y omacron -100 KPX Y oslash -100 KPX Y otilde -100 KPX Y period -100 KPX Y semicolon -50 KPX Y u -100 KPX Y uacute -100 KPX Y ucircumflex -100 KPX Y udieresis -100 KPX Y ugrave -100 KPX Y uhungarumlaut -100 KPX Y umacron -100 KPX Y uogonek -100 KPX Y uring -100 KPX Yacute A -110 KPX Yacute Aacute -110 KPX Yacute Abreve -110 KPX Yacute Acircumflex -110 KPX Yacute Adieresis -110 KPX Yacute Agrave -110 KPX Yacute Amacron -110 KPX Yacute Aogonek -110 KPX Yacute Aring -110 KPX Yacute Atilde -110 KPX Yacute O -70 KPX Yacute Oacute -70 KPX Yacute Ocircumflex -70 KPX Yacute Odieresis -70 KPX Yacute Ograve -70 KPX Yacute Ohungarumlaut -70 KPX Yacute Omacron -70 KPX Yacute Oslash -70 KPX Yacute Otilde -70 KPX Yacute a -90 KPX Yacute aacute -90 KPX Yacute abreve -90 KPX Yacute acircumflex -90 KPX Yacute adieresis -90 KPX Yacute agrave -90 KPX Yacute amacron -90 KPX Yacute aogonek -90 KPX Yacute aring -90 KPX Yacute atilde -90 KPX Yacute colon -50 KPX Yacute comma -100 KPX Yacute e -80 KPX Yacute eacute -80 KPX Yacute ecaron -80 KPX Yacute ecircumflex -80 KPX Yacute edieresis -80 KPX Yacute edotaccent -80 KPX Yacute egrave -80 KPX Yacute emacron -80 KPX Yacute eogonek -80 KPX Yacute o -100 KPX Yacute oacute -100 KPX Yacute ocircumflex -100 KPX Yacute odieresis -100 KPX Yacute ograve -100 KPX Yacute ohungarumlaut -100 KPX Yacute omacron -100 KPX Yacute oslash -100 KPX Yacute otilde -100 KPX Yacute period -100 KPX Yacute semicolon -50 KPX Yacute u -100 KPX Yacute uacute -100 KPX Yacute ucircumflex -100 KPX Yacute udieresis -100 KPX Yacute ugrave -100 KPX Yacute uhungarumlaut -100 KPX Yacute umacron -100 KPX Yacute uogonek -100 KPX Yacute uring -100 KPX Ydieresis A -110 KPX Ydieresis Aacute -110 KPX Ydieresis Abreve -110 KPX Ydieresis Acircumflex -110 KPX Ydieresis Adieresis -110 KPX Ydieresis Agrave -110 KPX Ydieresis Amacron -110 KPX Ydieresis Aogonek -110 KPX Ydieresis Aring -110 KPX Ydieresis Atilde -110 KPX Ydieresis O -70 KPX Ydieresis Oacute -70 KPX Ydieresis Ocircumflex -70 KPX Ydieresis Odieresis -70 KPX Ydieresis Ograve -70 KPX Ydieresis Ohungarumlaut -70 KPX Ydieresis Omacron -70 KPX Ydieresis Oslash -70 KPX Ydieresis Otilde -70 KPX Ydieresis a -90 KPX Ydieresis aacute -90 KPX Ydieresis abreve -90 KPX Ydieresis acircumflex -90 KPX Ydieresis adieresis -90 KPX Ydieresis agrave -90 KPX Ydieresis amacron -90 KPX Ydieresis aogonek -90 KPX Ydieresis aring -90 KPX Ydieresis atilde -90 KPX Ydieresis colon -50 KPX Ydieresis comma -100 KPX Ydieresis e -80 KPX Ydieresis eacute -80 KPX Ydieresis ecaron -80 KPX Ydieresis ecircumflex -80 KPX Ydieresis edieresis -80 KPX Ydieresis edotaccent -80 KPX Ydieresis egrave -80 KPX Ydieresis emacron -80 KPX Ydieresis eogonek -80 KPX Ydieresis o -100 KPX Ydieresis oacute -100 KPX Ydieresis ocircumflex -100 KPX Ydieresis odieresis -100 KPX Ydieresis ograve -100 KPX Ydieresis ohungarumlaut -100 KPX Ydieresis omacron -100 KPX Ydieresis oslash -100 KPX Ydieresis otilde -100 KPX Ydieresis period -100 KPX Ydieresis semicolon -50 KPX Ydieresis u -100 KPX Ydieresis uacute -100 KPX Ydieresis ucircumflex -100 KPX Ydieresis udieresis -100 KPX Ydieresis ugrave -100 KPX Ydieresis uhungarumlaut -100 KPX Ydieresis umacron -100 KPX Ydieresis uogonek -100 KPX Ydieresis uring -100 KPX a g -10 KPX a gbreve -10 KPX a gcommaaccent -10 KPX a v -15 KPX a w -15 KPX a y -20 KPX a yacute -20 KPX a ydieresis -20 KPX aacute g -10 KPX aacute gbreve -10 KPX aacute gcommaaccent -10 KPX aacute v -15 KPX aacute w -15 KPX aacute y -20 KPX aacute yacute -20 KPX aacute ydieresis -20 KPX abreve g -10 KPX abreve gbreve -10 KPX abreve gcommaaccent -10 KPX abreve v -15 KPX abreve w -15 KPX abreve y -20 KPX abreve yacute -20 KPX abreve ydieresis -20 KPX acircumflex g -10 KPX acircumflex gbreve -10 KPX acircumflex gcommaaccent -10 KPX acircumflex v -15 KPX acircumflex w -15 KPX acircumflex y -20 KPX acircumflex yacute -20 KPX acircumflex ydieresis -20 KPX adieresis g -10 KPX adieresis gbreve -10 KPX adieresis gcommaaccent -10 KPX adieresis v -15 KPX adieresis w -15 KPX adieresis y -20 KPX adieresis yacute -20 KPX adieresis ydieresis -20 KPX agrave g -10 KPX agrave gbreve -10 KPX agrave gcommaaccent -10 KPX agrave v -15 KPX agrave w -15 KPX agrave y -20 KPX agrave yacute -20 KPX agrave ydieresis -20 KPX amacron g -10 KPX amacron gbreve -10 KPX amacron gcommaaccent -10 KPX amacron v -15 KPX amacron w -15 KPX amacron y -20 KPX amacron yacute -20 KPX amacron ydieresis -20 KPX aogonek g -10 KPX aogonek gbreve -10 KPX aogonek gcommaaccent -10 KPX aogonek v -15 KPX aogonek w -15 KPX aogonek y -20 KPX aogonek yacute -20 KPX aogonek ydieresis -20 KPX aring g -10 KPX aring gbreve -10 KPX aring gcommaaccent -10 KPX aring v -15 KPX aring w -15 KPX aring y -20 KPX aring yacute -20 KPX aring ydieresis -20 KPX atilde g -10 KPX atilde gbreve -10 KPX atilde gcommaaccent -10 KPX atilde v -15 KPX atilde w -15 KPX atilde y -20 KPX atilde yacute -20 KPX atilde ydieresis -20 KPX b l -10 KPX b lacute -10 KPX b lcommaaccent -10 KPX b lslash -10 KPX b u -20 KPX b uacute -20 KPX b ucircumflex -20 KPX b udieresis -20 KPX b ugrave -20 KPX b uhungarumlaut -20 KPX b umacron -20 KPX b uogonek -20 KPX b uring -20 KPX b v -20 KPX b y -20 KPX b yacute -20 KPX b ydieresis -20 KPX c h -10 KPX c k -20 KPX c kcommaaccent -20 KPX c l -20 KPX c lacute -20 KPX c lcommaaccent -20 KPX c lslash -20 KPX c y -10 KPX c yacute -10 KPX c ydieresis -10 KPX cacute h -10 KPX cacute k -20 KPX cacute kcommaaccent -20 KPX cacute l -20 KPX cacute lacute -20 KPX cacute lcommaaccent -20 KPX cacute lslash -20 KPX cacute y -10 KPX cacute yacute -10 KPX cacute ydieresis -10 KPX ccaron h -10 KPX ccaron k -20 KPX ccaron kcommaaccent -20 KPX ccaron l -20 KPX ccaron lacute -20 KPX ccaron lcommaaccent -20 KPX ccaron lslash -20 KPX ccaron y -10 KPX ccaron yacute -10 KPX ccaron ydieresis -10 KPX ccedilla h -10 KPX ccedilla k -20 KPX ccedilla kcommaaccent -20 KPX ccedilla l -20 KPX ccedilla lacute -20 KPX ccedilla lcommaaccent -20 KPX ccedilla lslash -20 KPX ccedilla y -10 KPX ccedilla yacute -10 KPX ccedilla ydieresis -10 KPX colon space -40 KPX comma quotedblright -120 KPX comma quoteright -120 KPX comma space -40 KPX d d -10 KPX d dcroat -10 KPX d v -15 KPX d w -15 KPX d y -15 KPX d yacute -15 KPX d ydieresis -15 KPX dcroat d -10 KPX dcroat dcroat -10 KPX dcroat v -15 KPX dcroat w -15 KPX dcroat y -15 KPX dcroat yacute -15 KPX dcroat ydieresis -15 KPX e comma 10 KPX e period 20 KPX e v -15 KPX e w -15 KPX e x -15 KPX e y -15 KPX e yacute -15 KPX e ydieresis -15 KPX eacute comma 10 KPX eacute period 20 KPX eacute v -15 KPX eacute w -15 KPX eacute x -15 KPX eacute y -15 KPX eacute yacute -15 KPX eacute ydieresis -15 KPX ecaron comma 10 KPX ecaron period 20 KPX ecaron v -15 KPX ecaron w -15 KPX ecaron x -15 KPX ecaron y -15 KPX ecaron yacute -15 KPX ecaron ydieresis -15 KPX ecircumflex comma 10 KPX ecircumflex period 20 KPX ecircumflex v -15 KPX ecircumflex w -15 KPX ecircumflex x -15 KPX ecircumflex y -15 KPX ecircumflex yacute -15 KPX ecircumflex ydieresis -15 KPX edieresis comma 10 KPX edieresis period 20 KPX edieresis v -15 KPX edieresis w -15 KPX edieresis x -15 KPX edieresis y -15 KPX edieresis yacute -15 KPX edieresis ydieresis -15 KPX edotaccent comma 10 KPX edotaccent period 20 KPX edotaccent v -15 KPX edotaccent w -15 KPX edotaccent x -15 KPX edotaccent y -15 KPX edotaccent yacute -15 KPX edotaccent ydieresis -15 KPX egrave comma 10 KPX egrave period 20 KPX egrave v -15 KPX egrave w -15 KPX egrave x -15 KPX egrave y -15 KPX egrave yacute -15 KPX egrave ydieresis -15 KPX emacron comma 10 KPX emacron period 20 KPX emacron v -15 KPX emacron w -15 KPX emacron x -15 KPX emacron y -15 KPX emacron yacute -15 KPX emacron ydieresis -15 KPX eogonek comma 10 KPX eogonek period 20 KPX eogonek v -15 KPX eogonek w -15 KPX eogonek x -15 KPX eogonek y -15 KPX eogonek yacute -15 KPX eogonek ydieresis -15 KPX f comma -10 KPX f e -10 KPX f eacute -10 KPX f ecaron -10 KPX f ecircumflex -10 KPX f edieresis -10 KPX f edotaccent -10 KPX f egrave -10 KPX f emacron -10 KPX f eogonek -10 KPX f o -20 KPX f oacute -20 KPX f ocircumflex -20 KPX f odieresis -20 KPX f ograve -20 KPX f ohungarumlaut -20 KPX f omacron -20 KPX f oslash -20 KPX f otilde -20 KPX f period -10 KPX f quotedblright 30 KPX f quoteright 30 KPX g e 10 KPX g eacute 10 KPX g ecaron 10 KPX g ecircumflex 10 KPX g edieresis 10 KPX g edotaccent 10 KPX g egrave 10 KPX g emacron 10 KPX g eogonek 10 KPX g g -10 KPX g gbreve -10 KPX g gcommaaccent -10 KPX gbreve e 10 KPX gbreve eacute 10 KPX gbreve ecaron 10 KPX gbreve ecircumflex 10 KPX gbreve edieresis 10 KPX gbreve edotaccent 10 KPX gbreve egrave 10 KPX gbreve emacron 10 KPX gbreve eogonek 10 KPX gbreve g -10 KPX gbreve gbreve -10 KPX gbreve gcommaaccent -10 KPX gcommaaccent e 10 KPX gcommaaccent eacute 10 KPX gcommaaccent ecaron 10 KPX gcommaaccent ecircumflex 10 KPX gcommaaccent edieresis 10 KPX gcommaaccent edotaccent 10 KPX gcommaaccent egrave 10 KPX gcommaaccent emacron 10 KPX gcommaaccent eogonek 10 KPX gcommaaccent g -10 KPX gcommaaccent gbreve -10 KPX gcommaaccent gcommaaccent -10 KPX h y -20 KPX h yacute -20 KPX h ydieresis -20 KPX k o -15 KPX k oacute -15 KPX k ocircumflex -15 KPX k odieresis -15 KPX k ograve -15 KPX k ohungarumlaut -15 KPX k omacron -15 KPX k oslash -15 KPX k otilde -15 KPX kcommaaccent o -15 KPX kcommaaccent oacute -15 KPX kcommaaccent ocircumflex -15 KPX kcommaaccent odieresis -15 KPX kcommaaccent ograve -15 KPX kcommaaccent ohungarumlaut -15 KPX kcommaaccent omacron -15 KPX kcommaaccent oslash -15 KPX kcommaaccent otilde -15 KPX l w -15 KPX l y -15 KPX l yacute -15 KPX l ydieresis -15 KPX lacute w -15 KPX lacute y -15 KPX lacute yacute -15 KPX lacute ydieresis -15 KPX lcommaaccent w -15 KPX lcommaaccent y -15 KPX lcommaaccent yacute -15 KPX lcommaaccent ydieresis -15 KPX lslash w -15 KPX lslash y -15 KPX lslash yacute -15 KPX lslash ydieresis -15 KPX m u -20 KPX m uacute -20 KPX m ucircumflex -20 KPX m udieresis -20 KPX m ugrave -20 KPX m uhungarumlaut -20 KPX m umacron -20 KPX m uogonek -20 KPX m uring -20 KPX m y -30 KPX m yacute -30 KPX m ydieresis -30 KPX n u -10 KPX n uacute -10 KPX n ucircumflex -10 KPX n udieresis -10 KPX n ugrave -10 KPX n uhungarumlaut -10 KPX n umacron -10 KPX n uogonek -10 KPX n uring -10 KPX n v -40 KPX n y -20 KPX n yacute -20 KPX n ydieresis -20 KPX nacute u -10 KPX nacute uacute -10 KPX nacute ucircumflex -10 KPX nacute udieresis -10 KPX nacute ugrave -10 KPX nacute uhungarumlaut -10 KPX nacute umacron -10 KPX nacute uogonek -10 KPX nacute uring -10 KPX nacute v -40 KPX nacute y -20 KPX nacute yacute -20 KPX nacute ydieresis -20 KPX ncaron u -10 KPX ncaron uacute -10 KPX ncaron ucircumflex -10 KPX ncaron udieresis -10 KPX ncaron ugrave -10 KPX ncaron uhungarumlaut -10 KPX ncaron umacron -10 KPX ncaron uogonek -10 KPX ncaron uring -10 KPX ncaron v -40 KPX ncaron y -20 KPX ncaron yacute -20 KPX ncaron ydieresis -20 KPX ncommaaccent u -10 KPX ncommaaccent uacute -10 KPX ncommaaccent ucircumflex -10 KPX ncommaaccent udieresis -10 KPX ncommaaccent ugrave -10 KPX ncommaaccent uhungarumlaut -10 KPX ncommaaccent umacron -10 KPX ncommaaccent uogonek -10 KPX ncommaaccent uring -10 KPX ncommaaccent v -40 KPX ncommaaccent y -20 KPX ncommaaccent yacute -20 KPX ncommaaccent ydieresis -20 KPX ntilde u -10 KPX ntilde uacute -10 KPX ntilde ucircumflex -10 KPX ntilde udieresis -10 KPX ntilde ugrave -10 KPX ntilde uhungarumlaut -10 KPX ntilde umacron -10 KPX ntilde uogonek -10 KPX ntilde uring -10 KPX ntilde v -40 KPX ntilde y -20 KPX ntilde yacute -20 KPX ntilde ydieresis -20 KPX o v -20 KPX o w -15 KPX o x -30 KPX o y -20 KPX o yacute -20 KPX o ydieresis -20 KPX oacute v -20 KPX oacute w -15 KPX oacute x -30 KPX oacute y -20 KPX oacute yacute -20 KPX oacute ydieresis -20 KPX ocircumflex v -20 KPX ocircumflex w -15 KPX ocircumflex x -30 KPX ocircumflex y -20 KPX ocircumflex yacute -20 KPX ocircumflex ydieresis -20 KPX odieresis v -20 KPX odieresis w -15 KPX odieresis x -30 KPX odieresis y -20 KPX odieresis yacute -20 KPX odieresis ydieresis -20 KPX ograve v -20 KPX ograve w -15 KPX ograve x -30 KPX ograve y -20 KPX ograve yacute -20 KPX ograve ydieresis -20 KPX ohungarumlaut v -20 KPX ohungarumlaut w -15 KPX ohungarumlaut x -30 KPX ohungarumlaut y -20 KPX ohungarumlaut yacute -20 KPX ohungarumlaut ydieresis -20 KPX omacron v -20 KPX omacron w -15 KPX omacron x -30 KPX omacron y -20 KPX omacron yacute -20 KPX omacron ydieresis -20 KPX oslash v -20 KPX oslash w -15 KPX oslash x -30 KPX oslash y -20 KPX oslash yacute -20 KPX oslash ydieresis -20 KPX otilde v -20 KPX otilde w -15 KPX otilde x -30 KPX otilde y -20 KPX otilde yacute -20 KPX otilde ydieresis -20 KPX p y -15 KPX p yacute -15 KPX p ydieresis -15 KPX period quotedblright -120 KPX period quoteright -120 KPX period space -40 KPX quotedblright space -80 KPX quoteleft quoteleft -46 KPX quoteright d -80 KPX quoteright dcroat -80 KPX quoteright l -20 KPX quoteright lacute -20 KPX quoteright lcommaaccent -20 KPX quoteright lslash -20 KPX quoteright quoteright -46 KPX quoteright r -40 KPX quoteright racute -40 KPX quoteright rcaron -40 KPX quoteright rcommaaccent -40 KPX quoteright s -60 KPX quoteright sacute -60 KPX quoteright scaron -60 KPX quoteright scedilla -60 KPX quoteright scommaaccent -60 KPX quoteright space -80 KPX quoteright v -20 KPX r c -20 KPX r cacute -20 KPX r ccaron -20 KPX r ccedilla -20 KPX r comma -60 KPX r d -20 KPX r dcroat -20 KPX r g -15 KPX r gbreve -15 KPX r gcommaaccent -15 KPX r hyphen -20 KPX r o -20 KPX r oacute -20 KPX r ocircumflex -20 KPX r odieresis -20 KPX r ograve -20 KPX r ohungarumlaut -20 KPX r omacron -20 KPX r oslash -20 KPX r otilde -20 KPX r period -60 KPX r q -20 KPX r s -15 KPX r sacute -15 KPX r scaron -15 KPX r scedilla -15 KPX r scommaaccent -15 KPX r t 20 KPX r tcommaaccent 20 KPX r v 10 KPX r y 10 KPX r yacute 10 KPX r ydieresis 10 KPX racute c -20 KPX racute cacute -20 KPX racute ccaron -20 KPX racute ccedilla -20 KPX racute comma -60 KPX racute d -20 KPX racute dcroat -20 KPX racute g -15 KPX racute gbreve -15 KPX racute gcommaaccent -15 KPX racute hyphen -20 KPX racute o -20 KPX racute oacute -20 KPX racute ocircumflex -20 KPX racute odieresis -20 KPX racute ograve -20 KPX racute ohungarumlaut -20 KPX racute omacron -20 KPX racute oslash -20 KPX racute otilde -20 KPX racute period -60 KPX racute q -20 KPX racute s -15 KPX racute sacute -15 KPX racute scaron -15 KPX racute scedilla -15 KPX racute scommaaccent -15 KPX racute t 20 KPX racute tcommaaccent 20 KPX racute v 10 KPX racute y 10 KPX racute yacute 10 KPX racute ydieresis 10 KPX rcaron c -20 KPX rcaron cacute -20 KPX rcaron ccaron -20 KPX rcaron ccedilla -20 KPX rcaron comma -60 KPX rcaron d -20 KPX rcaron dcroat -20 KPX rcaron g -15 KPX rcaron gbreve -15 KPX rcaron gcommaaccent -15 KPX rcaron hyphen -20 KPX rcaron o -20 KPX rcaron oacute -20 KPX rcaron ocircumflex -20 KPX rcaron odieresis -20 KPX rcaron ograve -20 KPX rcaron ohungarumlaut -20 KPX rcaron omacron -20 KPX rcaron oslash -20 KPX rcaron otilde -20 KPX rcaron period -60 KPX rcaron q -20 KPX rcaron s -15 KPX rcaron sacute -15 KPX rcaron scaron -15 KPX rcaron scedilla -15 KPX rcaron scommaaccent -15 KPX rcaron t 20 KPX rcaron tcommaaccent 20 KPX rcaron v 10 KPX rcaron y 10 KPX rcaron yacute 10 KPX rcaron ydieresis 10 KPX rcommaaccent c -20 KPX rcommaaccent cacute -20 KPX rcommaaccent ccaron -20 KPX rcommaaccent ccedilla -20 KPX rcommaaccent comma -60 KPX rcommaaccent d -20 KPX rcommaaccent dcroat -20 KPX rcommaaccent g -15 KPX rcommaaccent gbreve -15 KPX rcommaaccent gcommaaccent -15 KPX rcommaaccent hyphen -20 KPX rcommaaccent o -20 KPX rcommaaccent oacute -20 KPX rcommaaccent ocircumflex -20 KPX rcommaaccent odieresis -20 KPX rcommaaccent ograve -20 KPX rcommaaccent ohungarumlaut -20 KPX rcommaaccent omacron -20 KPX rcommaaccent oslash -20 KPX rcommaaccent otilde -20 KPX rcommaaccent period -60 KPX rcommaaccent q -20 KPX rcommaaccent s -15 KPX rcommaaccent sacute -15 KPX rcommaaccent scaron -15 KPX rcommaaccent scedilla -15 KPX rcommaaccent scommaaccent -15 KPX rcommaaccent t 20 KPX rcommaaccent tcommaaccent 20 KPX rcommaaccent v 10 KPX rcommaaccent y 10 KPX rcommaaccent yacute 10 KPX rcommaaccent ydieresis 10 KPX s w -15 KPX sacute w -15 KPX scaron w -15 KPX scedilla w -15 KPX scommaaccent w -15 KPX semicolon space -40 KPX space T -100 KPX space Tcaron -100 KPX space Tcommaaccent -100 KPX space V -80 KPX space W -80 KPX space Y -120 KPX space Yacute -120 KPX space Ydieresis -120 KPX space quotedblleft -80 KPX space quoteleft -60 KPX v a -20 KPX v aacute -20 KPX v abreve -20 KPX v acircumflex -20 KPX v adieresis -20 KPX v agrave -20 KPX v amacron -20 KPX v aogonek -20 KPX v aring -20 KPX v atilde -20 KPX v comma -80 KPX v o -30 KPX v oacute -30 KPX v ocircumflex -30 KPX v odieresis -30 KPX v ograve -30 KPX v ohungarumlaut -30 KPX v omacron -30 KPX v oslash -30 KPX v otilde -30 KPX v period -80 KPX w comma -40 KPX w o -20 KPX w oacute -20 KPX w ocircumflex -20 KPX w odieresis -20 KPX w ograve -20 KPX w ohungarumlaut -20 KPX w omacron -20 KPX w oslash -20 KPX w otilde -20 KPX w period -40 KPX x e -10 KPX x eacute -10 KPX x ecaron -10 KPX x ecircumflex -10 KPX x edieresis -10 KPX x edotaccent -10 KPX x egrave -10 KPX x emacron -10 KPX x eogonek -10 KPX y a -30 KPX y aacute -30 KPX y abreve -30 KPX y acircumflex -30 KPX y adieresis -30 KPX y agrave -30 KPX y amacron -30 KPX y aogonek -30 KPX y aring -30 KPX y atilde -30 KPX y comma -80 KPX y e -10 KPX y eacute -10 KPX y ecaron -10 KPX y ecircumflex -10 KPX y edieresis -10 KPX y edotaccent -10 KPX y egrave -10 KPX y emacron -10 KPX y eogonek -10 KPX y o -25 KPX y oacute -25 KPX y ocircumflex -25 KPX y odieresis -25 KPX y ograve -25 KPX y ohungarumlaut -25 KPX y omacron -25 KPX y oslash -25 KPX y otilde -25 KPX y period -80 KPX yacute a -30 KPX yacute aacute -30 KPX yacute abreve -30 KPX yacute acircumflex -30 KPX yacute adieresis -30 KPX yacute agrave -30 KPX yacute amacron -30 KPX yacute aogonek -30 KPX yacute aring -30 KPX yacute atilde -30 KPX yacute comma -80 KPX yacute e -10 KPX yacute eacute -10 KPX yacute ecaron -10 KPX yacute ecircumflex -10 KPX yacute edieresis -10 KPX yacute edotaccent -10 KPX yacute egrave -10 KPX yacute emacron -10 KPX yacute eogonek -10 KPX yacute o -25 KPX yacute oacute -25 KPX yacute ocircumflex -25 KPX yacute odieresis -25 KPX yacute ograve -25 KPX yacute ohungarumlaut -25 KPX yacute omacron -25 KPX yacute oslash -25 KPX yacute otilde -25 KPX yacute period -80 KPX ydieresis a -30 KPX ydieresis aacute -30 KPX ydieresis abreve -30 KPX ydieresis acircumflex -30 KPX ydieresis adieresis -30 KPX ydieresis agrave -30 KPX ydieresis amacron -30 KPX ydieresis aogonek -30 KPX ydieresis aring -30 KPX ydieresis atilde -30 KPX ydieresis comma -80 KPX ydieresis e -10 KPX ydieresis eacute -10 KPX ydieresis ecaron -10 KPX ydieresis ecircumflex -10 KPX ydieresis edieresis -10 KPX ydieresis edotaccent -10 KPX ydieresis egrave -10 KPX ydieresis emacron -10 KPX ydieresis eogonek -10 KPX ydieresis o -25 KPX ydieresis oacute -25 KPX ydieresis ocircumflex -25 KPX ydieresis odieresis -25 KPX ydieresis ograve -25 KPX ydieresis ohungarumlaut -25 KPX ydieresis omacron -25 KPX ydieresis oslash -25 KPX ydieresis otilde -25 KPX ydieresis period -80 KPX z e 10 KPX z eacute 10 KPX z ecaron 10 KPX z ecircumflex 10 KPX z edieresis 10 KPX z edotaccent 10 KPX z egrave 10 KPX z emacron 10 KPX z eogonek 10 KPX zacute e 10 KPX zacute eacute 10 KPX zacute ecaron 10 KPX zacute ecircumflex 10 KPX zacute edieresis 10 KPX zacute edotaccent 10 KPX zacute egrave 10 KPX zacute emacron 10 KPX zacute eogonek 10 KPX zcaron e 10 KPX zcaron eacute 10 KPX zcaron ecaron 10 KPX zcaron ecircumflex 10 KPX zcaron edieresis 10 KPX zcaron edotaccent 10 KPX zcaron egrave 10 KPX zcaron emacron 10 KPX zcaron eogonek 10 KPX zdotaccent e 10 KPX zdotaccent eacute 10 KPX zdotaccent ecaron 10 KPX zdotaccent ecircumflex 10 KPX zdotaccent edieresis 10 KPX zdotaccent edotaccent 10 KPX zdotaccent egrave 10 KPX zdotaccent emacron 10 KPX zdotaccent eogonek 10 EndKernPairs EndKernData EndFontMetrics a2ps-4.14/afm/Makefile.in0000644000175000017500000003671610735337306014461 0ustar mhattamhatta# Makefile.in generated by automake 1.9.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005 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@ # -*- Makefile -*- # Makefile for a2ps' AFM library directory. # # Copyright (c) 1988, 89, 90, 91, 92, 93 Miguel Santana # Copyright (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana # # $Id: Makefile.am,v 1.1.1.1.2.2 2007/12/29 01:58:10 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. # srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = afm DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/a2_psutils.m4 \ $(top_srcdir)/m4/atexit.m4 $(top_srcdir)/m4/file.m4 \ $(top_srcdir)/m4/fp_echo.m4 $(top_srcdir)/m4/fullpath.m4 \ $(top_srcdir)/m4/gccwarn.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gperf-check.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/inttypes_h.m4 $(top_srcdir)/m4/isc-posix.m4 \ $(top_srcdir)/m4/lex.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/lpr.m4 \ $(top_srcdir)/m4/m4.m4 $(top_srcdir)/m4/malloc.m4 \ $(top_srcdir)/m4/mbrtowc.m4 $(top_srcdir)/m4/mbstate_t.m4 \ $(top_srcdir)/m4/perl.m4 $(top_srcdir)/m4/prereq.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/protos.m4 \ $(top_srcdir)/m4/realloc.m4 $(top_srcdir)/m4/rename.m4 \ $(top_srcdir)/m4/stdint_h.m4 $(top_srcdir)/m4/strcasecmp.m4 \ $(top_srcdir)/m4/strftim.m4 $(top_srcdir)/m4/termios.m4 \ $(top_srcdir)/m4/tterm.m4 $(top_srcdir)/m4/uintmax_t.m4 \ $(top_srcdir)/m4/ulonglong.m4 $(top_srcdir)/m4/winsz.m4 \ $(top_srcdir)/m4/xstrtoumax.m4 $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(SHELL) $(top_srcdir)/auxdir/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = am__installdirs = "$(DESTDIR)$(afmdir)" "$(DESTDIR)$(afmdir)" afmSCRIPT_INSTALL = $(INSTALL_SCRIPT) SCRIPTS = $(afm_SCRIPTS) SOURCES = DIST_SOURCES = 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 = `echo $$p | sed -e 's|^.*/||'`; afmDATA_INSTALL = $(INSTALL_DATA) DATA = $(afm_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ AMDEP_FALSE = @AMDEP_FALSE@ AMDEP_TRUE = @AMDEP_TRUE@ AMTAR = @AMTAR@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ COM_DISPLAY = @COM_DISPLAY@ COM_LATEX = @COM_LATEX@ COM_PS2PDF = @COM_PS2PDF@ COM_PSUTILS = @COM_PSUTILS@ COM_TEXI = @COM_TEXI@ COM_acroread = @COM_acroread@ COM_acroread4 = @COM_acroread4@ COM_bzip = @COM_bzip@ COM_bzip2 = @COM_bzip2@ COM_convert = @COM_convert@ COM_distill = @COM_distill@ 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_netscape = @COM_netscape@ COM_pdf2ps = @COM_pdf2ps@ COM_ps2pdf = @COM_ps2pdf@ COM_psnup = @COM_psnup@ COM_psselect = @COM_psselect@ COM_tex = @COM_tex@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ ECHO = @ECHO@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ ENCODING = @ENCODING@ EXEEXT = @EXEEXT@ EXTENSIONS_FALSE = @EXTENSIONS_FALSE@ EXTENSIONS_TRUE = @EXTENSIONS_TRUE@ EXTRA_CFLAGS = @EXTRA_CFLAGS@ F77 = @F77@ FFLAGS = @FFLAGS@ FILE_LINK = @FILE_LINK@ GMSGFMT = @GMSGFMT@ GNU_PACKAGE = @GNU_PACKAGE@ GPERF = @GPERF@ GREP = @GREP@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ LDFLAGS = @LDFLAGS@ LEX = @LEX@ LEXLIB = @LEXLIB@ LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBVERSION = @LIBVERSION@ LN_S = @LN_S@ LPR = @LPR@ LPR_QUEUE_OPTION = @LPR_QUEUE_OPTION@ LTALLOCA = @LTALLOCA@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ M4 = @M4@ MAKEINFO = @MAKEINFO@ MEDIUM = @MEDIUM@ MKINSTALLDIRS = @MKINSTALLDIRS@ MSGFMT = @MSGFMT@ MSGMERGE = @MSGMERGE@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ POSUB = @POSUB@ PSFONT_PATH = @PSFONT_PATH@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ U = @U@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ YACC = @YACC@ YFLAGS = @YFLAGS@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_F77 = @ac_ct_F77@ acroread = @acroread@ am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ 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@ bzip = @bzip@ bzip2 = @bzip2@ convert = @convert@ datadir = @datadir@ datarootdir = @datarootdir@ distill = @distill@ docdir = @docdir@ dvidir = @dvidir@ dvips = @dvips@ exec_prefix = @exec_prefix@ file_prog = @file_prog@ ghostview = @ghostview@ 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@ netscape = @netscape@ oldincludedir = @oldincludedir@ pdf2ps = @pdf2ps@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ ps2pdf = @ps2pdf@ psdir = @psdir@ psnup = @psnup@ psselect = @psselect@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ subdirs = @subdirs@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ tex = @tex@ 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 \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu afm/Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu afm/Makefile .PRECIOUS: 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__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ 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 install-afmSCRIPTS: $(afm_SCRIPTS) @$(NORMAL_INSTALL) test -z "$(afmdir)" || $(mkdir_p) "$(DESTDIR)$(afmdir)" @list='$(afm_SCRIPTS)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f $$d$$p; then \ f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \ echo " $(afmSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(afmdir)/$$f'"; \ $(afmSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(afmdir)/$$f"; \ else :; fi; \ done uninstall-afmSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(afm_SCRIPTS)'; for p in $$list; do \ f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \ echo " rm -f '$(DESTDIR)$(afmdir)/$$f'"; \ rm -f "$(DESTDIR)$(afmdir)/$$f"; \ done mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool uninstall-info-am: install-afmDATA: $(afm_DATA) @$(NORMAL_INSTALL) test -z "$(afmdir)" || $(mkdir_p) "$(DESTDIR)$(afmdir)" @list='$(afm_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f=$(am__strip_dir) \ echo " $(afmDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(afmdir)/$$f'"; \ $(afmDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(afmdir)/$$f"; \ done uninstall-afmDATA: @$(NORMAL_UNINSTALL) @list='$(afm_DATA)'; for p in $$list; do \ f=$(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(afmdir)/$$f'"; \ rm -f "$(DESTDIR)$(afmdir)/$$f"; \ done tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(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: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_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 distclean-libtool dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-afmDATA install-afmSCRIPTS install-exec-am: install-info: install-info-am install-man: 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 mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-afmDATA uninstall-afmSCRIPTS uninstall-info-am .PHONY: all all-am check check-am clean clean-generic clean-libtool \ 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-exec install-exec-am install-info install-info-am \ install-man install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am uninstall uninstall-afmDATA uninstall-afmSCRIPTS \ uninstall-am uninstall-info-am # 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."; \ 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.14/afm/pplb.afm0000644000175000017500000010056510674334153014027 0ustar mhattamhattaStartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1989, 1990, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Thu May 1 13:25:14 1997 Comment UniqueID 43075 Comment VMusage 51499 66524 FontName Palatino-Bold FullName Palatino Bold FamilyName Palatino Weight Bold ItalicAngle 0 IsFixedPitch false FontBBox -152 -266 1000 924 UnderlinePosition -100 UnderlineThickness 50 Version 002.000 Notice Copyright (c) 1985, 1987, 1989, 1990, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.Palatino is a trademark of Linotype-Hell AG and/or its subsidiaries. EncodingScheme AdobeStandardEncoding CapHeight 681 XHeight 471 Ascender 726 Descender -281 StdHW 55 StdVW 122 StartCharMetrics 314 C 32 ; WX 250 ; N space ; B 0 0 0 0 ; C 33 ; WX 278 ; N exclam ; B 63 -12 219 688 ; C 34 ; WX 402 ; N quotedbl ; B 22 376 380 695 ; C 35 ; WX 500 ; N numbersign ; B 4 0 496 673 ; C 36 ; WX 500 ; N dollar ; B 28 -114 472 721 ; C 37 ; WX 889 ; N percent ; B 61 -9 828 714 ; C 38 ; WX 833 ; N ampersand ; B 52 -17 813 684 ; C 39 ; WX 278 ; N quoteright ; B 29 405 249 695 ; C 40 ; WX 333 ; N parenleft ; B 65 -104 305 723 ; C 41 ; WX 333 ; N parenright ; B 28 -104 268 723 ; C 42 ; WX 444 ; N asterisk ; B 44 332 399 695 ; C 43 ; WX 606 ; N plus ; B 51 0 555 505 ; C 44 ; WX 250 ; N comma ; B -6 -166 227 141 ; C 45 ; WX 333 ; N hyphen ; B 16 195 317 305 ; C 46 ; WX 250 ; N period ; B 47 -12 203 144 ; C 47 ; WX 296 ; N slash ; B -9 -17 305 720 ; C 48 ; WX 500 ; N zero ; B 33 -17 468 660 ; C 49 ; WX 500 ; N one ; B 35 -3 455 670 ; C 50 ; WX 500 ; N two ; B 25 -3 472 660 ; C 51 ; WX 500 ; N three ; B 22 -17 458 660 ; C 52 ; WX 500 ; N four ; B 12 -3 473 672 ; C 53 ; WX 500 ; N five ; B 42 -17 472 656 ; C 54 ; WX 500 ; N six ; B 37 -17 469 660 ; C 55 ; WX 500 ; N seven ; B 46 -3 493 656 ; C 56 ; WX 500 ; N eight ; B 34 -17 467 660 ; C 57 ; WX 500 ; N nine ; B 31 -17 463 660 ; C 58 ; WX 250 ; N colon ; B 47 -12 203 454 ; C 59 ; WX 250 ; N semicolon ; B -6 -166 227 454 ; C 60 ; WX 606 ; N less ; B 49 -15 558 519 ; C 61 ; WX 606 ; N equal ; B 51 114 555 396 ; C 62 ; WX 606 ; N greater ; B 49 -15 558 519 ; C 63 ; WX 444 ; N question ; B 43 -12 411 687 ; C 64 ; WX 747 ; N at ; B 42 -12 704 681 ; C 65 ; WX 778 ; N A ; B 24 -3 757 686 ; C 66 ; WX 667 ; N B ; B 39 -3 611 681 ; C 67 ; WX 722 ; N C ; B 44 -17 695 695 ; C 68 ; WX 833 ; N D ; B 35 -3 786 681 ; C 69 ; WX 611 ; N E ; B 39 -4 577 681 ; C 70 ; WX 556 ; N F ; B 28 -3 539 681 ; C 71 ; WX 833 ; N G ; B 47 -17 776 695 ; C 72 ; WX 833 ; N H ; B 36 -3 796 681 ; C 73 ; WX 389 ; N I ; B 39 -3 350 681 ; C 74 ; WX 389 ; N J ; B -11 -213 350 681 ; C 75 ; WX 778 ; N K ; B 39 -3 763 681 ; C 76 ; WX 611 ; N L ; B 39 -4 577 681 ; C 77 ; WX 1000 ; N M ; B 32 -10 968 681 ; C 78 ; WX 833 ; N N ; B 35 -16 798 681 ; C 79 ; WX 833 ; N O ; B 47 -17 787 695 ; C 80 ; WX 611 ; N P ; B 39 -3 594 681 ; C 81 ; WX 833 ; N Q ; B 47 -184 787 695 ; C 82 ; WX 722 ; N R ; B 39 -3 708 681 ; C 83 ; WX 611 ; N S ; B 57 -17 559 695 ; C 84 ; WX 667 ; N T ; B 17 -3 650 681 ; C 85 ; WX 778 ; N U ; B 26 -17 760 681 ; C 86 ; WX 778 ; N V ; B 20 -3 763 681 ; C 87 ; WX 1000 ; N W ; B 17 -3 988 686 ; C 88 ; WX 667 ; N X ; B 17 -3 650 695 ; C 89 ; WX 667 ; N Y ; B 15 -3 660 695 ; C 90 ; WX 667 ; N Z ; B 24 -3 627 681 ; C 91 ; WX 333 ; N bracketleft ; B 73 -104 291 720 ; C 92 ; WX 606 ; N backslash ; B 72 0 534 720 ; C 93 ; WX 333 ; N bracketright ; B 42 -104 260 720 ; C 94 ; WX 606 ; N asciicircum ; B 52 275 554 678 ; C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; C 96 ; WX 278 ; N quoteleft ; B 29 405 249 695 ; C 97 ; WX 500 ; N a ; B 40 -17 478 471 ; C 98 ; WX 611 ; N b ; B 10 -17 556 720 ; C 99 ; WX 444 ; N c ; B 37 -17 414 471 ; C 100 ; WX 611 ; N d ; B 42 -17 577 720 ; C 101 ; WX 500 ; N e ; B 42 -17 461 471 ; C 102 ; WX 389 ; N f ; B 34 -3 381 720 ; L i fi ; L l fl ; C 103 ; WX 556 ; N g ; B 26 -266 535 471 ; C 104 ; WX 611 ; N h ; B 24 -3 587 720 ; C 105 ; WX 333 ; N i ; B 34 -3 298 706 ; C 106 ; WX 333 ; N j ; B 3 -266 241 706 ; C 107 ; WX 611 ; N k ; B 21 -3 597 720 ; C 108 ; WX 333 ; N l ; B 24 -3 296 720 ; C 109 ; WX 889 ; N m ; B 24 -3 864 471 ; C 110 ; WX 611 ; N n ; B 24 -3 587 471 ; C 111 ; WX 556 ; N o ; B 40 -17 517 471 ; C 112 ; WX 611 ; N p ; B 29 -258 567 471 ; C 113 ; WX 611 ; N q ; B 52 -258 589 471 ; C 114 ; WX 389 ; N r ; B 30 -3 389 471 ; C 115 ; WX 444 ; N s ; B 39 -17 405 471 ; C 116 ; WX 333 ; N t ; B 22 -17 324 632 ; C 117 ; WX 611 ; N u ; B 25 -17 583 471 ; C 118 ; WX 556 ; N v ; B 11 -3 545 459 ; C 119 ; WX 833 ; N w ; B 13 -3 820 471 ; C 120 ; WX 500 ; N x ; B 20 -3 483 471 ; C 121 ; WX 556 ; N y ; B 10 -266 546 459 ; C 122 ; WX 500 ; N z ; B 16 -3 464 459 ; C 123 ; WX 310 ; N braceleft ; B 5 -117 288 725 ; C 124 ; WX 606 ; N bar ; B 260 -250 346 750 ; C 125 ; WX 310 ; N braceright ; B 22 -117 305 725 ; C 126 ; WX 606 ; N asciitilde ; B 51 155 555 342 ; C 161 ; WX 278 ; N exclamdown ; B 59 -227 215 471 ; C 162 ; WX 500 ; N cent ; B 73 -106 450 554 ; C 163 ; WX 500 ; N sterling ; B -2 -19 501 676 ; C 164 ; WX 167 ; N fraction ; B -152 0 320 660 ; C 165 ; WX 500 ; N yen ; B 17 -3 483 695 ; C 166 ; WX 500 ; N florin ; B 11 -242 490 703 ; C 167 ; WX 500 ; N section ; B 30 -217 471 695 ; C 168 ; WX 500 ; N currency ; B 32 96 468 533 ; C 169 ; WX 227 ; N quotesingle ; B 45 376 181 695 ; C 170 ; WX 500 ; N quotedblleft ; B 34 405 466 695 ; C 171 ; WX 500 ; N guillemotleft ; B 36 44 463 438 ; C 172 ; WX 389 ; N guilsinglleft ; B 82 44 307 438 ; C 173 ; WX 389 ; N guilsinglright ; B 82 44 307 438 ; C 174 ; WX 611 ; N fi ; B 10 -3 595 720 ; C 175 ; WX 611 ; N fl ; B 17 -3 593 720 ; C 177 ; WX 500 ; N endash ; B 0 208 500 291 ; C 178 ; WX 500 ; N dagger ; B 29 -6 472 682 ; C 179 ; WX 500 ; N daggerdbl ; B 32 -245 468 682 ; C 180 ; WX 250 ; N periodcentered ; B 47 179 203 335 ; C 182 ; WX 641 ; N paragraph ; B 19 -161 599 683 ; C 183 ; WX 606 ; N bullet ; B 131 172 475 516 ; C 184 ; WX 333 ; N quotesinglbase ; B 56 -160 276 130 ; C 185 ; WX 500 ; N quotedblbase ; B 34 -160 466 130 ; C 186 ; WX 500 ; N quotedblright ; B 34 405 466 695 ; C 187 ; WX 500 ; N guillemotright ; B 37 44 464 438 ; C 188 ; WX 1000 ; N ellipsis ; B 89 -12 911 144 ; C 189 ; WX 1000 ; N perthousand ; B 33 -9 982 724 ; C 191 ; WX 444 ; N questiondown ; B 33 -231 401 471 ; C 193 ; WX 333 ; N grave ; B 18 506 256 691 ; C 194 ; WX 333 ; N acute ; B 78 506 316 691 ; C 195 ; WX 333 ; N circumflex ; B -2 506 335 681 ; C 196 ; WX 333 ; N tilde ; B -16 535 349 661 ; C 197 ; WX 333 ; N macron ; B 1 538 332 609 ; C 198 ; WX 333 ; N breve ; B 15 506 318 669 ; C 199 ; WX 333 ; N dotaccent ; B 92 556 242 706 ; C 200 ; WX 333 ; N dieresis ; B -8 556 341 690 ; C 202 ; WX 333 ; N ring ; B 67 500 267 700 ; C 203 ; WX 333 ; N cedilla ; B 73 -225 300 -7 ; C 205 ; WX 333 ; N hungarumlaut ; B -56 506 390 691 ; C 206 ; WX 333 ; N ogonek ; B 49 -225 287 -20 ; C 207 ; WX 333 ; N caron ; B -2 510 335 685 ; C 208 ; WX 1000 ; N emdash ; B 0 208 1000 291 ; C 225 ; WX 1000 ; N AE ; B 12 -4 954 681 ; C 227 ; WX 438 ; N ordfeminine ; B 77 367 361 660 ; C 232 ; WX 611 ; N Lslash ; B 16 -4 577 681 ; C 233 ; WX 833 ; N Oslash ; B 32 -20 808 698 ; C 234 ; WX 1000 ; N OE ; B 43 -17 985 695 ; C 235 ; WX 488 ; N ordmasculine ; B 89 367 399 660 ; C 241 ; WX 778 ; N ae ; B 46 -17 731 471 ; C 245 ; WX 333 ; N dotlessi ; B 34 -3 298 471 ; C 248 ; WX 333 ; N lslash ; B -4 -3 334 720 ; C 249 ; WX 556 ; N oslash ; B 23 -18 534 471 ; C 250 ; WX 833 ; N oe ; B 48 -17 799 471 ; C 251 ; WX 611 ; N germandbls ; B 30 -17 565 720 ; C -1 ; WX 389 ; N Idieresis ; B 20 -3 369 895 ; C -1 ; WX 500 ; N eacute ; B 42 -17 461 711 ; C -1 ; WX 500 ; N abreve ; B 40 -17 478 689 ; C -1 ; WX 611 ; N uhungarumlaut ; B 25 -17 583 711 ; C -1 ; WX 500 ; N ecaron ; B 42 -17 461 725 ; C -1 ; WX 667 ; N Ydieresis ; B 15 -3 660 895 ; C -1 ; WX 606 ; N divide ; B 51 0 555 510 ; C -1 ; WX 667 ; N Yacute ; B 15 -3 660 915 ; C -1 ; WX 778 ; N Acircumflex ; B 24 -3 757 905 ; C -1 ; WX 500 ; N aacute ; B 40 -17 478 711 ; C -1 ; WX 778 ; N Ucircumflex ; B 26 -17 760 905 ; C -1 ; WX 556 ; N yacute ; B 10 -266 546 711 ; C -1 ; WX 444 ; N scommaaccent ; B 39 -266 405 471 ; C -1 ; WX 500 ; N ecircumflex ; B 42 -17 461 721 ; C -1 ; WX 778 ; N Uring ; B 26 -17 760 924 ; C -1 ; WX 778 ; N Udieresis ; B 26 -17 760 895 ; C -1 ; WX 500 ; N aogonek ; B 40 -225 478 471 ; C -1 ; WX 778 ; N Uacute ; B 26 -17 760 915 ; C -1 ; WX 611 ; N uogonek ; B 25 -201 642 471 ; C -1 ; WX 611 ; N Edieresis ; B 39 -4 577 895 ; C -1 ; WX 833 ; N Dcroat ; B 10 -3 786 681 ; C -1 ; WX 250 ; N commaaccent ; B 48 -266 203 -50 ; C -1 ; WX 747 ; N copyright ; B 26 -17 720 695 ; C -1 ; WX 611 ; N Emacron ; B 39 -4 577 833 ; C -1 ; WX 444 ; N ccaron ; B 37 -17 421 705 ; C -1 ; WX 500 ; N aring ; B 40 -17 478 720 ; C -1 ; WX 833 ; N Ncommaaccent ; B 35 -266 798 681 ; C -1 ; WX 333 ; N lacute ; B 24 -3 336 924 ; C -1 ; WX 500 ; N agrave ; B 40 -17 478 711 ; C -1 ; WX 667 ; N Tcommaaccent ; B 17 -266 650 681 ; C -1 ; WX 722 ; N Cacute ; B 44 -17 695 915 ; C -1 ; WX 500 ; N atilde ; B 40 -17 478 693 ; C -1 ; WX 611 ; N Edotaccent ; B 39 -4 577 910 ; C -1 ; WX 444 ; N scaron ; B 39 -17 405 705 ; C -1 ; WX 444 ; N scedilla ; B 39 -225 405 471 ; C -1 ; WX 333 ; N iacute ; B 34 -3 316 711 ; C -1 ; WX 471 ; N lozenge ; B 7 0 465 732 ; C -1 ; WX 722 ; N Rcaron ; B 39 -3 708 909 ; C -1 ; WX 833 ; N Gcommaaccent ; B 47 -266 776 695 ; C -1 ; WX 611 ; N ucircumflex ; B 25 -17 583 701 ; C -1 ; WX 500 ; N acircumflex ; B 40 -17 478 701 ; C -1 ; WX 778 ; N Amacron ; B 24 -3 757 833 ; C -1 ; WX 389 ; N rcaron ; B 30 -3 389 705 ; C -1 ; WX 444 ; N ccedilla ; B 37 -225 414 471 ; C -1 ; WX 667 ; N Zdotaccent ; B 24 -3 627 910 ; C -1 ; WX 611 ; N Thorn ; B 39 -3 574 681 ; C -1 ; WX 833 ; N Omacron ; B 47 -17 787 833 ; C -1 ; WX 722 ; N Racute ; B 39 -3 708 915 ; C -1 ; WX 611 ; N Sacute ; B 57 -17 559 915 ; C -1 ; WX 675 ; N dcaron ; B 42 -17 698 724 ; C -1 ; WX 778 ; N Umacron ; B 26 -17 760 833 ; C -1 ; WX 611 ; N uring ; B 25 -17 583 720 ; C -1 ; WX 300 ; N threesuperior ; B 9 261 292 667 ; C -1 ; WX 833 ; N Ograve ; B 47 -17 787 915 ; C -1 ; WX 778 ; N Agrave ; B 24 -3 757 915 ; C -1 ; WX 778 ; N Abreve ; B 24 -3 757 893 ; C -1 ; WX 606 ; N multiply ; B 72 21 534 483 ; C -1 ; WX 611 ; N uacute ; B 25 -17 583 711 ; C -1 ; WX 667 ; N Tcaron ; B 17 -3 650 909 ; C -1 ; WX 476 ; N partialdiff ; B 9 -38 467 718 ; C -1 ; WX 556 ; N ydieresis ; B 10 -266 546 710 ; C -1 ; WX 833 ; N Nacute ; B 35 -16 798 915 ; C -1 ; WX 333 ; N icircumflex ; B -2 -3 335 701 ; C -1 ; WX 611 ; N Ecircumflex ; B 39 -4 577 905 ; C -1 ; WX 500 ; N adieresis ; B 40 -17 478 691 ; C -1 ; WX 500 ; N edieresis ; B 42 -17 461 691 ; C -1 ; WX 444 ; N cacute ; B 37 -17 414 731 ; C -1 ; WX 611 ; N nacute ; B 24 -3 587 711 ; C -1 ; WX 611 ; N umacron ; B 25 -17 583 609 ; C -1 ; WX 833 ; N Ncaron ; B 35 -16 798 909 ; C -1 ; WX 389 ; N Iacute ; B 39 -3 350 915 ; C -1 ; WX 606 ; N plusminus ; B 51 0 555 505 ; C -1 ; WX 606 ; N brokenbar ; B 260 -175 346 675 ; C -1 ; WX 747 ; N registered ; B 26 -17 720 695 ; C -1 ; WX 833 ; N Gbreve ; B 47 -17 776 893 ; C -1 ; WX 389 ; N Idotaccent ; B 39 -3 350 910 ; C -1 ; WX 600 ; N summation ; B 15 -10 586 706 ; C -1 ; WX 611 ; N Egrave ; B 39 -4 577 915 ; C -1 ; WX 389 ; N racute ; B 30 -3 404 711 ; C -1 ; WX 556 ; N omacron ; B 40 -17 517 609 ; C -1 ; WX 667 ; N Zacute ; B 24 -3 627 915 ; C -1 ; WX 667 ; N Zcaron ; B 24 -3 627 909 ; C -1 ; WX 549 ; N greaterequal ; B 26 0 523 682 ; C -1 ; WX 833 ; N Eth ; B 10 -3 786 681 ; C -1 ; WX 722 ; N Ccedilla ; B 44 -225 695 695 ; C -1 ; WX 333 ; N lcommaaccent ; B 24 -266 296 720 ; C -1 ; WX 403 ; N tcaron ; B 22 -17 430 741 ; C -1 ; WX 500 ; N eogonek ; B 42 -215 461 471 ; C -1 ; WX 778 ; N Uogonek ; B 26 -225 760 681 ; C -1 ; WX 778 ; N Aacute ; B 24 -3 757 915 ; C -1 ; WX 778 ; N Adieresis ; B 24 -3 757 895 ; C -1 ; WX 500 ; N egrave ; B 42 -17 461 711 ; C -1 ; WX 500 ; N zacute ; B 16 -3 464 711 ; C -1 ; WX 333 ; N iogonek ; B 34 -225 300 706 ; C -1 ; WX 833 ; N Oacute ; B 47 -17 787 915 ; C -1 ; WX 556 ; N oacute ; B 40 -17 517 711 ; C -1 ; WX 500 ; N amacron ; B 40 -17 478 609 ; C -1 ; WX 444 ; N sacute ; B 39 -17 405 711 ; C -1 ; WX 333 ; N idieresis ; B -8 -3 341 710 ; C -1 ; WX 833 ; N Ocircumflex ; B 47 -17 787 905 ; C -1 ; WX 778 ; N Ugrave ; B 26 -17 760 915 ; C -1 ; WX 614 ; N Delta ; B 6 0 608 688 ; C -1 ; WX 611 ; N thorn ; B 17 -258 563 720 ; C -1 ; WX 300 ; N twosuperior ; B 5 261 295 660 ; C -1 ; WX 833 ; N Odieresis ; B 47 -17 787 895 ; C -1 ; WX 611 ; N mu ; B 25 -225 583 471 ; C -1 ; WX 333 ; N igrave ; B 18 -3 298 711 ; C -1 ; WX 556 ; N ohungarumlaut ; B 40 -17 562 711 ; C -1 ; WX 611 ; N Eogonek ; B 39 -225 581 681 ; C -1 ; WX 611 ; N dcroat ; B 42 -17 607 720 ; C -1 ; WX 750 ; N threequarters ; B 15 -2 735 667 ; C -1 ; WX 611 ; N Scedilla ; B 57 -225 559 695 ; C -1 ; WX 393 ; N lcaron ; B 24 -3 415 724 ; C -1 ; WX 778 ; N Kcommaaccent ; B 39 -266 763 681 ; C -1 ; WX 611 ; N Lacute ; B 39 -4 577 915 ; C -1 ; WX 998 ; N trademark ; B 38 274 961 678 ; C -1 ; WX 500 ; N edotaccent ; B 42 -17 461 707 ; C -1 ; WX 389 ; N Igrave ; B 39 -3 350 915 ; C -1 ; WX 389 ; N Imacron ; B 29 -3 360 833 ; C -1 ; WX 611 ; N Lcaron ; B 39 -4 577 695 ; C -1 ; WX 750 ; N onehalf ; B 9 -2 745 665 ; C -1 ; WX 549 ; N lessequal ; B 26 0 523 682 ; C -1 ; WX 556 ; N ocircumflex ; B 40 -17 517 701 ; C -1 ; WX 611 ; N ntilde ; B 24 -3 587 693 ; C -1 ; WX 778 ; N Uhungarumlaut ; B 26 -17 760 915 ; C -1 ; WX 611 ; N Eacute ; B 39 -4 577 915 ; C -1 ; WX 500 ; N emacron ; B 42 -17 461 629 ; C -1 ; WX 556 ; N gbreve ; B 26 -266 535 689 ; C -1 ; WX 750 ; N onequarter ; B 19 -2 735 665 ; C -1 ; WX 611 ; N Scaron ; B 57 -17 559 909 ; C -1 ; WX 611 ; N Scommaaccent ; B 57 -266 559 695 ; C -1 ; WX 833 ; N Ohungarumlaut ; B 47 -17 787 915 ; C -1 ; WX 400 ; N degree ; B 50 360 350 660 ; C -1 ; WX 556 ; N ograve ; B 40 -17 517 711 ; C -1 ; WX 722 ; N Ccaron ; B 44 -17 695 909 ; C -1 ; WX 611 ; N ugrave ; B 25 -17 583 711 ; C -1 ; WX 453 ; N radical ; B -9 -91 463 765 ; C -1 ; WX 833 ; N Dcaron ; B 35 -3 786 909 ; C -1 ; WX 389 ; N rcommaaccent ; B 30 -266 389 471 ; C -1 ; WX 833 ; N Ntilde ; B 35 -16 798 885 ; C -1 ; WX 556 ; N otilde ; B 40 -17 517 693 ; C -1 ; WX 722 ; N Rcommaaccent ; B 39 -266 708 681 ; C -1 ; WX 611 ; N Lcommaaccent ; B 39 -266 577 681 ; C -1 ; WX 778 ; N Atilde ; B 24 -3 757 885 ; C -1 ; WX 778 ; N Aogonek ; B 24 -225 767 686 ; C -1 ; WX 778 ; N Aring ; B 24 -3 757 924 ; C -1 ; WX 833 ; N Otilde ; B 47 -17 787 885 ; C -1 ; WX 500 ; N zdotaccent ; B 16 -3 464 707 ; C -1 ; WX 611 ; N Ecaron ; B 39 -4 577 909 ; C -1 ; WX 389 ; N Iogonek ; B 39 -225 352 681 ; C -1 ; WX 611 ; N kcommaaccent ; B 21 -266 597 720 ; C -1 ; WX 606 ; N minus ; B 51 212 555 298 ; C -1 ; WX 389 ; N Icircumflex ; B 26 -3 363 905 ; C -1 ; WX 611 ; N ncaron ; B 24 -3 587 705 ; C -1 ; WX 333 ; N tcommaaccent ; B 22 -266 324 632 ; C -1 ; WX 606 ; N logicalnot ; B 51 114 555 396 ; C -1 ; WX 556 ; N odieresis ; B 40 -17 517 710 ; C -1 ; WX 611 ; N udieresis ; B 25 -17 583 710 ; C -1 ; WX 549 ; N notequal ; B 12 -40 537 554 ; C -1 ; WX 556 ; N gcommaaccent ; B 26 -266 535 740 ; C -1 ; WX 556 ; N eth ; B 40 -17 517 720 ; C -1 ; WX 500 ; N zcaron ; B 16 -3 464 705 ; C -1 ; WX 611 ; N ncommaaccent ; B 24 -266 587 471 ; C -1 ; WX 300 ; N onesuperior ; B 14 261 287 665 ; C -1 ; WX 333 ; N imacron ; B 34 -3 298 609 ; EndCharMetrics StartKernData StartKernPairs 828 KPX A T -92 KPX A Tcaron -92 KPX A Tcommaaccent -92 KPX A V -129 KPX A W -90 KPX A Y -111 KPX A Yacute -111 KPX A Ydieresis -111 KPX A quoteright -92 KPX A space -18 KPX A v -70 KPX A w -70 KPX A y -70 KPX A yacute -70 KPX A ydieresis -70 KPX Aacute T -92 KPX Aacute Tcaron -92 KPX Aacute Tcommaaccent -92 KPX Aacute V -129 KPX Aacute W -90 KPX Aacute Y -111 KPX Aacute Yacute -111 KPX Aacute Ydieresis -111 KPX Aacute quoteright -92 KPX Aacute space -18 KPX Aacute v -70 KPX Aacute w -70 KPX Aacute y -70 KPX Aacute yacute -70 KPX Aacute ydieresis -70 KPX Abreve T -92 KPX Abreve Tcaron -92 KPX Abreve Tcommaaccent -92 KPX Abreve V -129 KPX Abreve W -90 KPX Abreve Y -111 KPX Abreve Yacute -111 KPX Abreve Ydieresis -111 KPX Abreve quoteright -92 KPX Abreve space -18 KPX Abreve v -70 KPX Abreve w -70 KPX Abreve y -70 KPX Abreve yacute -70 KPX Abreve ydieresis -70 KPX Acircumflex T -92 KPX Acircumflex Tcaron -92 KPX Acircumflex Tcommaaccent -92 KPX Acircumflex V -129 KPX Acircumflex W -90 KPX Acircumflex Y -111 KPX Acircumflex Yacute -111 KPX Acircumflex Ydieresis -111 KPX Acircumflex quoteright -92 KPX Acircumflex space -18 KPX Acircumflex v -70 KPX Acircumflex w -70 KPX Acircumflex y -70 KPX Acircumflex yacute -70 KPX Acircumflex ydieresis -70 KPX Adieresis T -92 KPX Adieresis Tcaron -92 KPX Adieresis Tcommaaccent -92 KPX Adieresis V -129 KPX Adieresis W -90 KPX Adieresis Y -111 KPX Adieresis Yacute -111 KPX Adieresis Ydieresis -111 KPX Adieresis quoteright -92 KPX Adieresis space -18 KPX Adieresis v -70 KPX Adieresis w -70 KPX Adieresis y -70 KPX Adieresis yacute -70 KPX Adieresis ydieresis -70 KPX Agrave T -92 KPX Agrave Tcaron -92 KPX Agrave Tcommaaccent -92 KPX Agrave V -129 KPX Agrave W -90 KPX Agrave Y -111 KPX Agrave Yacute -111 KPX Agrave Ydieresis -111 KPX Agrave quoteright -92 KPX Agrave space -18 KPX Agrave v -70 KPX Agrave w -70 KPX Agrave y -70 KPX Agrave yacute -70 KPX Agrave ydieresis -70 KPX Amacron T -92 KPX Amacron Tcaron -92 KPX Amacron Tcommaaccent -92 KPX Amacron V -129 KPX Amacron W -90 KPX Amacron Y -111 KPX Amacron Yacute -111 KPX Amacron Ydieresis -111 KPX Amacron quoteright -92 KPX Amacron space -18 KPX Amacron v -70 KPX Amacron w -70 KPX Amacron y -70 KPX Amacron yacute -70 KPX Amacron ydieresis -70 KPX Aogonek T -92 KPX Aogonek Tcaron -92 KPX Aogonek Tcommaaccent -92 KPX Aogonek V -129 KPX Aogonek W -90 KPX Aogonek Y -111 KPX Aogonek Yacute -111 KPX Aogonek Ydieresis -111 KPX Aogonek quoteright -92 KPX Aogonek space -18 KPX Aogonek v -70 KPX Aogonek w -70 KPX Aogonek y -70 KPX Aogonek yacute -70 KPX Aogonek ydieresis -70 KPX Aring T -92 KPX Aring Tcaron -92 KPX Aring Tcommaaccent -92 KPX Aring V -129 KPX Aring W -90 KPX Aring Y -111 KPX Aring Yacute -111 KPX Aring Ydieresis -111 KPX Aring quoteright -92 KPX Aring space -18 KPX Aring v -70 KPX Aring w -70 KPX Aring y -70 KPX Aring yacute -70 KPX Aring ydieresis -70 KPX Atilde T -92 KPX Atilde Tcaron -92 KPX Atilde Tcommaaccent -92 KPX Atilde V -129 KPX Atilde W -90 KPX Atilde Y -111 KPX Atilde Yacute -111 KPX Atilde Ydieresis -111 KPX Atilde quoteright -92 KPX Atilde space -18 KPX Atilde v -70 KPX Atilde w -70 KPX Atilde y -70 KPX Atilde yacute -70 KPX Atilde ydieresis -70 KPX F A -55 KPX F Aacute -55 KPX F Abreve -55 KPX F Acircumflex -55 KPX F Adieresis -55 KPX F Agrave -55 KPX F Amacron -55 KPX F Aogonek -55 KPX F Aring -55 KPX F Atilde -55 KPX F comma -111 KPX F period -111 KPX L T -74 KPX L Tcaron -74 KPX L Tcommaaccent -74 KPX L V -92 KPX L W -92 KPX L Y -92 KPX L Yacute -92 KPX L Ydieresis -92 KPX L quoteright -74 KPX L space -18 KPX L y -74 KPX L yacute -74 KPX L ydieresis -74 KPX Lacute T -74 KPX Lacute Tcaron -74 KPX Lacute Tcommaaccent -74 KPX Lacute V -92 KPX Lacute W -92 KPX Lacute Y -92 KPX Lacute Yacute -92 KPX Lacute Ydieresis -92 KPX Lacute quoteright -74 KPX Lacute space -18 KPX Lacute y -74 KPX Lacute yacute -74 KPX Lacute ydieresis -74 KPX Lcaron quoteright -74 KPX Lcaron space -18 KPX Lcaron y -74 KPX Lcaron yacute -74 KPX Lcaron ydieresis -74 KPX Lcommaaccent T -74 KPX Lcommaaccent Tcaron -74 KPX Lcommaaccent Tcommaaccent -74 KPX Lcommaaccent V -92 KPX Lcommaaccent W -92 KPX Lcommaaccent Y -92 KPX Lcommaaccent Yacute -92 KPX Lcommaaccent Ydieresis -92 KPX Lcommaaccent quoteright -74 KPX Lcommaaccent space -18 KPX Lcommaaccent y -74 KPX Lcommaaccent yacute -74 KPX Lcommaaccent ydieresis -74 KPX Lslash T -74 KPX Lslash Tcaron -74 KPX Lslash Tcommaaccent -74 KPX Lslash V -92 KPX Lslash W -92 KPX Lslash Y -92 KPX Lslash Yacute -92 KPX Lslash Ydieresis -92 KPX Lslash quoteright -74 KPX Lslash space -18 KPX Lslash y -74 KPX Lslash yacute -74 KPX Lslash ydieresis -74 KPX P A -74 KPX P Aacute -74 KPX P Abreve -74 KPX P Acircumflex -74 KPX P Adieresis -74 KPX P Agrave -74 KPX P Amacron -74 KPX P Aogonek -74 KPX P Aring -74 KPX P Atilde -74 KPX P comma -129 KPX P period -129 KPX R T -55 KPX R Tcaron -55 KPX R Tcommaaccent -55 KPX R V -74 KPX R W -37 KPX R Y -55 KPX R Yacute -55 KPX R Ydieresis -55 KPX R y -30 KPX R yacute -30 KPX R ydieresis -30 KPX Racute T -55 KPX Racute Tcaron -55 KPX Racute Tcommaaccent -55 KPX Racute V -74 KPX Racute W -37 KPX Racute Y -55 KPX Racute Yacute -55 KPX Racute Ydieresis -55 KPX Racute y -30 KPX Racute yacute -30 KPX Racute ydieresis -30 KPX Rcaron T -55 KPX Rcaron Tcaron -55 KPX Rcaron Tcommaaccent -55 KPX Rcaron V -74 KPX Rcaron W -37 KPX Rcaron Y -55 KPX Rcaron Yacute -55 KPX Rcaron Ydieresis -55 KPX Rcaron y -30 KPX Rcaron yacute -30 KPX Rcaron ydieresis -30 KPX Rcommaaccent T -55 KPX Rcommaaccent Tcaron -55 KPX Rcommaaccent Tcommaaccent -55 KPX Rcommaaccent V -74 KPX Rcommaaccent W -37 KPX Rcommaaccent Y -55 KPX Rcommaaccent Yacute -55 KPX Rcommaaccent Ydieresis -55 KPX Rcommaaccent y -30 KPX Rcommaaccent yacute -30 KPX Rcommaaccent ydieresis -30 KPX T A -92 KPX T Aacute -92 KPX T Abreve -92 KPX T Acircumflex -92 KPX T Adieresis -92 KPX T Agrave -92 KPX T Amacron -92 KPX T Aogonek -92 KPX T Aring -92 KPX T Atilde -92 KPX T a -111 KPX T aacute -111 KPX T abreve -71 KPX T acircumflex -71 KPX T adieresis -71 KPX T agrave -71 KPX T amacron -71 KPX T aogonek -111 KPX T aring -111 KPX T atilde -111 KPX T c -129 KPX T cacute -129 KPX T ccaron -129 KPX T ccedilla -129 KPX T colon -74 KPX T comma -92 KPX T e -111 KPX T eacute -111 KPX T ecaron -111 KPX T ecircumflex -71 KPX T edieresis -71 KPX T edotaccent -111 KPX T egrave -71 KPX T emacron -71 KPX T eogonek -111 KPX T hyphen -92 KPX T i -55 KPX T iacute -55 KPX T iogonek -55 KPX T o -111 KPX T oacute -111 KPX T ocircumflex -111 KPX T odieresis -111 KPX T ograve -111 KPX T ohungarumlaut -111 KPX T omacron -111 KPX T oslash -111 KPX T otilde -111 KPX T period -92 KPX T r -111 KPX T racute -111 KPX T rcaron -71 KPX T rcommaaccent -111 KPX T s -111 KPX T sacute -111 KPX T scaron -71 KPX T scedilla -111 KPX T scommaaccent -111 KPX T semicolon -74 KPX T u -129 KPX T uacute -129 KPX T ucircumflex -129 KPX T udieresis -129 KPX T ugrave -129 KPX T uhungarumlaut -129 KPX T umacron -129 KPX T uogonek -129 KPX T uring -129 KPX T w -90 KPX T y -90 KPX T yacute -90 KPX T ydieresis -90 KPX Tcaron A -92 KPX Tcaron Aacute -92 KPX Tcaron Abreve -92 KPX Tcaron Acircumflex -92 KPX Tcaron Adieresis -92 KPX Tcaron Agrave -92 KPX Tcaron Amacron -92 KPX Tcaron Aogonek -92 KPX Tcaron Aring -92 KPX Tcaron Atilde -92 KPX Tcaron a -111 KPX Tcaron aacute -111 KPX Tcaron abreve -71 KPX Tcaron acircumflex -71 KPX Tcaron adieresis -71 KPX Tcaron agrave -71 KPX Tcaron amacron -71 KPX Tcaron aogonek -111 KPX Tcaron aring -111 KPX Tcaron atilde -111 KPX Tcaron c -129 KPX Tcaron cacute -129 KPX Tcaron ccaron -129 KPX Tcaron ccedilla -129 KPX Tcaron colon -74 KPX Tcaron comma -92 KPX Tcaron e -111 KPX Tcaron eacute -111 KPX Tcaron ecaron -111 KPX Tcaron ecircumflex -71 KPX Tcaron edieresis -71 KPX Tcaron edotaccent -111 KPX Tcaron egrave -71 KPX Tcaron emacron -71 KPX Tcaron eogonek -111 KPX Tcaron hyphen -92 KPX Tcaron i -55 KPX Tcaron iacute -55 KPX Tcaron iogonek -55 KPX Tcaron o -111 KPX Tcaron oacute -111 KPX Tcaron ocircumflex -111 KPX Tcaron odieresis -111 KPX Tcaron ograve -111 KPX Tcaron ohungarumlaut -111 KPX Tcaron omacron -111 KPX Tcaron oslash -111 KPX Tcaron otilde -111 KPX Tcaron period -92 KPX Tcaron r -111 KPX Tcaron racute -111 KPX Tcaron rcaron -71 KPX Tcaron rcommaaccent -111 KPX Tcaron s -111 KPX Tcaron sacute -111 KPX Tcaron scaron -71 KPX Tcaron scedilla -111 KPX Tcaron scommaaccent -111 KPX Tcaron semicolon -74 KPX Tcaron u -129 KPX Tcaron uacute -129 KPX Tcaron ucircumflex -129 KPX Tcaron udieresis -129 KPX Tcaron ugrave -129 KPX Tcaron uhungarumlaut -129 KPX Tcaron umacron -129 KPX Tcaron uogonek -129 KPX Tcaron uring -129 KPX Tcaron w -90 KPX Tcaron y -90 KPX Tcaron yacute -90 KPX Tcaron ydieresis -90 KPX Tcommaaccent A -92 KPX Tcommaaccent Aacute -92 KPX Tcommaaccent Abreve -92 KPX Tcommaaccent Acircumflex -92 KPX Tcommaaccent Adieresis -92 KPX Tcommaaccent Agrave -92 KPX Tcommaaccent Amacron -92 KPX Tcommaaccent Aogonek -92 KPX Tcommaaccent Aring -92 KPX Tcommaaccent Atilde -92 KPX Tcommaaccent a -111 KPX Tcommaaccent aacute -111 KPX Tcommaaccent abreve -71 KPX Tcommaaccent acircumflex -71 KPX Tcommaaccent adieresis -71 KPX Tcommaaccent agrave -71 KPX Tcommaaccent amacron -71 KPX Tcommaaccent aogonek -111 KPX Tcommaaccent aring -111 KPX Tcommaaccent atilde -111 KPX Tcommaaccent c -129 KPX Tcommaaccent cacute -129 KPX Tcommaaccent ccaron -129 KPX Tcommaaccent ccedilla -129 KPX Tcommaaccent colon -74 KPX Tcommaaccent comma -92 KPX Tcommaaccent e -111 KPX Tcommaaccent eacute -111 KPX Tcommaaccent ecaron -111 KPX Tcommaaccent ecircumflex -71 KPX Tcommaaccent edieresis -71 KPX Tcommaaccent edotaccent -111 KPX Tcommaaccent egrave -71 KPX Tcommaaccent emacron -71 KPX Tcommaaccent eogonek -111 KPX Tcommaaccent hyphen -92 KPX Tcommaaccent i -55 KPX Tcommaaccent iacute -55 KPX Tcommaaccent iogonek -55 KPX Tcommaaccent o -111 KPX Tcommaaccent oacute -111 KPX Tcommaaccent ocircumflex -111 KPX Tcommaaccent odieresis -111 KPX Tcommaaccent ograve -111 KPX Tcommaaccent ohungarumlaut -111 KPX Tcommaaccent omacron -111 KPX Tcommaaccent oslash -111 KPX Tcommaaccent otilde -111 KPX Tcommaaccent period -92 KPX Tcommaaccent r -111 KPX Tcommaaccent racute -111 KPX Tcommaaccent rcaron -71 KPX Tcommaaccent rcommaaccent -111 KPX Tcommaaccent s -111 KPX Tcommaaccent sacute -111 KPX Tcommaaccent scaron -71 KPX Tcommaaccent scedilla -111 KPX Tcommaaccent scommaaccent -111 KPX Tcommaaccent semicolon -74 KPX Tcommaaccent u -129 KPX Tcommaaccent uacute -129 KPX Tcommaaccent ucircumflex -129 KPX Tcommaaccent udieresis -129 KPX Tcommaaccent ugrave -129 KPX Tcommaaccent uhungarumlaut -129 KPX Tcommaaccent umacron -129 KPX Tcommaaccent uogonek -129 KPX Tcommaaccent uring -129 KPX Tcommaaccent w -90 KPX Tcommaaccent y -90 KPX Tcommaaccent yacute -90 KPX Tcommaaccent ydieresis -90 KPX V A -129 KPX V Aacute -129 KPX V Abreve -129 KPX V Acircumflex -129 KPX V Adieresis -129 KPX V Agrave -129 KPX V Amacron -129 KPX V Aogonek -129 KPX V Aring -129 KPX V Atilde -129 KPX V a -111 KPX V aacute -111 KPX V abreve -71 KPX V acircumflex -111 KPX V adieresis -111 KPX V agrave -111 KPX V amacron -111 KPX V aogonek -111 KPX V aring -111 KPX V atilde -71 KPX V colon -74 KPX V comma -129 KPX V e -111 KPX V eacute -111 KPX V ecaron -111 KPX V ecircumflex -111 KPX V edieresis -111 KPX V edotaccent -111 KPX V egrave -111 KPX V emacron -111 KPX V eogonek -111 KPX V hyphen -92 KPX V i -55 KPX V iacute -55 KPX V iogonek -55 KPX V o -111 KPX V oacute -111 KPX V ocircumflex -111 KPX V odieresis -111 KPX V ograve -111 KPX V ohungarumlaut -111 KPX V omacron -111 KPX V oslash -111 KPX V otilde -111 KPX V period -129 KPX V r -111 KPX V racute -111 KPX V rcaron -71 KPX V rcommaaccent -111 KPX V semicolon -74 KPX V u -92 KPX V uacute -92 KPX V ucircumflex -92 KPX V udieresis -92 KPX V ugrave -92 KPX V uhungarumlaut -92 KPX V umacron -92 KPX V uogonek -92 KPX V uring -92 KPX V y -90 KPX V yacute -90 KPX V ydieresis -90 KPX W A -90 KPX W Aacute -90 KPX W Abreve -90 KPX W Acircumflex -90 KPX W Adieresis -90 KPX W Agrave -90 KPX W Amacron -90 KPX W Aogonek -90 KPX W Aring -90 KPX W Atilde -90 KPX W a -74 KPX W aacute -74 KPX W abreve -74 KPX W acircumflex -74 KPX W adieresis -74 KPX W agrave -74 KPX W amacron -74 KPX W aogonek -74 KPX W aring -74 KPX W atilde -74 KPX W colon -37 KPX W comma -92 KPX W e -74 KPX W eacute -74 KPX W ecaron -74 KPX W ecircumflex -74 KPX W edieresis -74 KPX W edotaccent -74 KPX W egrave -74 KPX W emacron -74 KPX W eogonek -74 KPX W hyphen -37 KPX W i -37 KPX W iacute -37 KPX W iogonek -37 KPX W o -74 KPX W oacute -74 KPX W ocircumflex -74 KPX W odieresis -74 KPX W ograve -74 KPX W ohungarumlaut -74 KPX W omacron -74 KPX W oslash -74 KPX W otilde -74 KPX W period -37 KPX W r -74 KPX W racute -74 KPX W rcaron -74 KPX W rcommaaccent -74 KPX W semicolon -37 KPX W u -74 KPX W uacute -74 KPX W ucircumflex -74 KPX W udieresis -74 KPX W ugrave -74 KPX W uhungarumlaut -74 KPX W umacron -74 KPX W uogonek -74 KPX W uring -74 KPX W y -74 KPX W yacute -74 KPX W ydieresis -74 KPX Y A -55 KPX Y Aacute -55 KPX Y Abreve -55 KPX Y Acircumflex -55 KPX Y Adieresis -55 KPX Y Agrave -55 KPX Y Amacron -55 KPX Y Aogonek -55 KPX Y Aring -55 KPX Y Atilde -55 KPX Y a -74 KPX Y aacute -74 KPX Y abreve -74 KPX Y acircumflex -74 KPX Y adieresis -74 KPX Y agrave -74 KPX Y amacron -74 KPX Y aogonek -74 KPX Y aring -74 KPX Y atilde -74 KPX Y colon -55 KPX Y comma -74 KPX Y e -74 KPX Y eacute -74 KPX Y ecaron -74 KPX Y ecircumflex -74 KPX Y edieresis -74 KPX Y edotaccent -74 KPX Y egrave -74 KPX Y emacron -74 KPX Y eogonek -74 KPX Y hyphen -74 KPX Y i -55 KPX Y iacute -55 KPX Y iogonek -55 KPX Y o -74 KPX Y oacute -74 KPX Y ocircumflex -74 KPX Y odieresis -74 KPX Y ograve -74 KPX Y ohungarumlaut -74 KPX Y omacron -74 KPX Y oslash -74 KPX Y otilde -74 KPX Y p -74 KPX Y period -74 KPX Y q -92 KPX Y semicolon -55 KPX Y u -74 KPX Y uacute -74 KPX Y ucircumflex -74 KPX Y udieresis -74 KPX Y ugrave -74 KPX Y uhungarumlaut -74 KPX Y umacron -74 KPX Y uogonek -74 KPX Y uring -74 KPX Y v -74 KPX Yacute A -55 KPX Yacute Aacute -55 KPX Yacute Abreve -55 KPX Yacute Acircumflex -55 KPX Yacute Adieresis -55 KPX Yacute Agrave -55 KPX Yacute Amacron -55 KPX Yacute Aogonek -55 KPX Yacute Aring -55 KPX Yacute Atilde -55 KPX Yacute a -74 KPX Yacute aacute -74 KPX Yacute abreve -74 KPX Yacute acircumflex -74 KPX Yacute adieresis -74 KPX Yacute agrave -74 KPX Yacute amacron -74 KPX Yacute aogonek -74 KPX Yacute aring -74 KPX Yacute atilde -74 KPX Yacute colon -55 KPX Yacute comma -74 KPX Yacute e -74 KPX Yacute eacute -74 KPX Yacute ecaron -74 KPX Yacute ecircumflex -74 KPX Yacute edieresis -74 KPX Yacute edotaccent -74 KPX Yacute egrave -74 KPX Yacute emacron -74 KPX Yacute eogonek -74 KPX Yacute hyphen -74 KPX Yacute i -55 KPX Yacute iacute -55 KPX Yacute iogonek -55 KPX Yacute o -74 KPX Yacute oacute -74 KPX Yacute ocircumflex -74 KPX Yacute odieresis -74 KPX Yacute ograve -74 KPX Yacute ohungarumlaut -74 KPX Yacute omacron -74 KPX Yacute oslash -74 KPX Yacute otilde -74 KPX Yacute p -74 KPX Yacute period -74 KPX Yacute q -92 KPX Yacute semicolon -55 KPX Yacute u -74 KPX Yacute uacute -74 KPX Yacute ucircumflex -74 KPX Yacute udieresis -74 KPX Yacute ugrave -74 KPX Yacute uhungarumlaut -74 KPX Yacute umacron -74 KPX Yacute uogonek -74 KPX Yacute uring -74 KPX Yacute v -74 KPX Ydieresis A -55 KPX Ydieresis Aacute -55 KPX Ydieresis Abreve -55 KPX Ydieresis Acircumflex -55 KPX Ydieresis Adieresis -55 KPX Ydieresis Agrave -55 KPX Ydieresis Amacron -55 KPX Ydieresis Aogonek -55 KPX Ydieresis Aring -55 KPX Ydieresis Atilde -55 KPX Ydieresis a -74 KPX Ydieresis aacute -74 KPX Ydieresis abreve -74 KPX Ydieresis acircumflex -74 KPX Ydieresis adieresis -74 KPX Ydieresis agrave -74 KPX Ydieresis amacron -74 KPX Ydieresis aogonek -74 KPX Ydieresis aring -74 KPX Ydieresis atilde -74 KPX Ydieresis colon -55 KPX Ydieresis comma -74 KPX Ydieresis e -74 KPX Ydieresis eacute -74 KPX Ydieresis ecaron -74 KPX Ydieresis ecircumflex -74 KPX Ydieresis edieresis -74 KPX Ydieresis edotaccent -74 KPX Ydieresis egrave -74 KPX Ydieresis emacron -74 KPX Ydieresis eogonek -74 KPX Ydieresis hyphen -74 KPX Ydieresis i -55 KPX Ydieresis iacute -55 KPX Ydieresis iogonek -55 KPX Ydieresis o -74 KPX Ydieresis oacute -74 KPX Ydieresis ocircumflex -74 KPX Ydieresis odieresis -74 KPX Ydieresis ograve -74 KPX Ydieresis ohungarumlaut -74 KPX Ydieresis omacron -74 KPX Ydieresis oslash -74 KPX Ydieresis otilde -74 KPX Ydieresis p -74 KPX Ydieresis period -74 KPX Ydieresis q -92 KPX Ydieresis semicolon -55 KPX Ydieresis u -74 KPX Ydieresis uacute -74 KPX Ydieresis ucircumflex -74 KPX Ydieresis udieresis -74 KPX Ydieresis ugrave -74 KPX Ydieresis uhungarumlaut -74 KPX Ydieresis umacron -74 KPX Ydieresis uogonek -74 KPX Ydieresis uring -74 KPX Ydieresis v -74 KPX f f -18 KPX f quoteright 37 KPX one one -37 KPX quoteleft quoteleft -55 KPX quoteright quoteright -55 KPX quoteright s -55 KPX quoteright sacute -55 KPX quoteright scaron -55 KPX quoteright scedilla -55 KPX quoteright scommaaccent -55 KPX quoteright space -55 KPX quoteright t -18 KPX quoteright tcommaaccent -18 KPX r comma -55 KPX r hyphen -18 KPX r period -55 KPX r quoteright 55 KPX racute comma -55 KPX racute hyphen -18 KPX racute period -55 KPX racute quoteright 55 KPX rcaron comma -55 KPX rcaron hyphen -18 KPX rcaron period -55 KPX rcaron quoteright 55 KPX rcommaaccent comma -55 KPX rcommaaccent hyphen -18 KPX rcommaaccent period -55 KPX rcommaaccent quoteright 55 KPX v comma -111 KPX v period -111 KPX w comma -92 KPX w period -92 KPX y comma -92 KPX y period -92 KPX yacute comma -92 KPX yacute period -92 KPX ydieresis comma -92 KPX ydieresis period -92 EndKernPairs EndKernData EndFontMetrics a2ps-4.14/afm/pcrbo.afm0000644000175000017500000003574710674334152014207 0ustar mhattamhattaStartFontMetrics 4.1 Comment Copyright (c) 1989, 1990, 1991, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Mon Jun 23 16:28:46 1997 Comment UniqueID 43049 Comment VMusage 17529 79244 FontName Courier-BoldOblique FullName Courier Bold Oblique FamilyName Courier Weight Bold ItalicAngle -12 IsFixedPitch true FontBBox -57 -250 869 801 UnderlinePosition -100 UnderlineThickness 50 Version 003.000 Notice Copyright (c) 1989, 1990, 1991, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved. EncodingScheme AdobeStandardEncoding CapHeight 562 XHeight 439 Ascender 629 Descender -157 StdHW 84 StdVW 106 StartCharMetrics 314 C 32 ; WX 600 ; N space ; B 0 0 0 0 ; C 33 ; WX 600 ; N exclam ; B 215 -15 495 572 ; C 34 ; WX 600 ; N quotedbl ; B 211 277 585 562 ; C 35 ; WX 600 ; N numbersign ; B 88 -45 641 651 ; C 36 ; WX 600 ; N dollar ; B 87 -126 630 666 ; C 37 ; WX 600 ; N percent ; B 101 -15 625 616 ; C 38 ; WX 600 ; N ampersand ; B 61 -15 595 543 ; C 39 ; WX 600 ; N quoteright ; B 229 277 543 562 ; C 40 ; WX 600 ; N parenleft ; B 265 -102 592 616 ; C 41 ; WX 600 ; N parenright ; B 117 -102 444 616 ; C 42 ; WX 600 ; N asterisk ; B 179 219 598 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 206 -15 427 171 ; C 47 ; WX 600 ; N slash ; B 90 -77 626 626 ; C 48 ; WX 600 ; N zero ; B 135 -15 593 616 ; C 49 ; WX 600 ; N one ; B 93 0 562 616 ; C 50 ; WX 600 ; N two ; B 61 0 594 616 ; C 51 ; WX 600 ; N three ; B 71 -15 571 616 ; C 52 ; WX 600 ; N four ; B 81 0 559 616 ; C 53 ; WX 600 ; N five ; B 77 -15 621 601 ; C 54 ; WX 600 ; N six ; B 135 -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 75 -15 592 616 ; C 58 ; WX 600 ; N colon ; B 205 -15 480 425 ; C 59 ; WX 600 ; N semicolon ; B 99 -111 481 425 ; C 60 ; WX 600 ; N less ; B 120 15 613 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 592 580 ; C 64 ; WX 600 ; N at ; B 65 -15 642 616 ; C 65 ; WX 600 ; N A ; B -9 0 632 562 ; C 66 ; WX 600 ; N B ; B 30 0 630 562 ; C 67 ; WX 600 ; N C ; B 74 -18 675 580 ; C 68 ; WX 600 ; N D ; B 30 0 664 562 ; C 69 ; WX 600 ; N E ; B 25 0 670 562 ; C 70 ; WX 600 ; N F ; B 39 0 684 562 ; C 71 ; WX 600 ; N G ; B 74 -18 675 580 ; C 72 ; WX 600 ; N H ; B 20 0 700 562 ; C 73 ; WX 600 ; N I ; B 77 0 643 562 ; C 74 ; WX 600 ; N J ; B 58 -18 721 562 ; C 75 ; WX 600 ; N K ; B 21 0 692 562 ; C 76 ; WX 600 ; N L ; B 39 0 636 562 ; C 77 ; WX 600 ; N M ; B -2 0 722 562 ; C 78 ; WX 600 ; N N ; B 8 -12 730 562 ; C 79 ; WX 600 ; N O ; B 74 -18 645 580 ; C 80 ; WX 600 ; N P ; B 48 0 643 562 ; C 81 ; WX 600 ; N Q ; B 83 -138 636 580 ; C 82 ; WX 600 ; N R ; B 24 0 617 562 ; C 83 ; WX 600 ; N S ; B 54 -22 673 582 ; C 84 ; WX 600 ; N T ; B 86 0 679 562 ; C 85 ; WX 600 ; N U ; B 101 -18 716 562 ; C 86 ; WX 600 ; N V ; B 84 0 733 562 ; C 87 ; WX 600 ; N W ; B 79 0 738 562 ; C 88 ; WX 600 ; N X ; B 12 0 690 562 ; C 89 ; WX 600 ; N Y ; B 109 0 709 562 ; C 90 ; WX 600 ; N Z ; B 62 0 637 562 ; C 91 ; WX 600 ; N bracketleft ; B 223 -102 606 616 ; C 92 ; WX 600 ; N backslash ; B 222 -77 496 626 ; C 93 ; WX 600 ; N bracketright ; B 103 -102 486 616 ; C 94 ; WX 600 ; N asciicircum ; B 171 250 556 616 ; C 95 ; WX 600 ; N underscore ; B -27 -125 585 -75 ; C 96 ; WX 600 ; N quoteleft ; B 297 277 487 562 ; C 97 ; WX 600 ; N a ; B 61 -15 593 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 60 -15 645 626 ; C 101 ; WX 600 ; N e ; B 81 -15 605 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 40 -146 674 454 ; C 104 ; WX 600 ; N h ; B 18 0 615 626 ; C 105 ; WX 600 ; N i ; B 77 0 546 658 ; C 106 ; WX 600 ; N j ; B 36 -146 580 658 ; C 107 ; WX 600 ; N k ; B 33 0 643 626 ; C 108 ; WX 600 ; N l ; B 77 0 546 626 ; C 109 ; WX 600 ; N m ; B -22 0 649 454 ; C 110 ; WX 600 ; N n ; B 18 0 615 454 ; C 111 ; WX 600 ; N o ; B 71 -15 622 454 ; C 112 ; WX 600 ; N p ; B -32 -142 622 454 ; C 113 ; WX 600 ; N q ; B 60 -142 685 454 ; C 114 ; WX 600 ; N r ; B 47 0 655 454 ; C 115 ; WX 600 ; N s ; B 66 -17 608 459 ; C 116 ; WX 600 ; N t ; B 118 -15 567 562 ; C 117 ; WX 600 ; N u ; B 70 -15 592 439 ; C 118 ; WX 600 ; N v ; B 70 0 695 439 ; C 119 ; WX 600 ; N w ; B 53 0 712 439 ; C 120 ; WX 600 ; N x ; B 6 0 671 439 ; C 121 ; WX 600 ; N y ; B -21 -142 695 439 ; C 122 ; WX 600 ; N z ; B 81 0 614 439 ; C 123 ; WX 600 ; N braceleft ; B 203 -102 595 616 ; C 124 ; WX 600 ; N bar ; B 201 -250 505 750 ; C 125 ; WX 600 ; N braceright ; B 114 -102 506 616 ; C 126 ; WX 600 ; N asciitilde ; B 120 153 590 356 ; C 161 ; WX 600 ; N exclamdown ; B 196 -146 477 449 ; C 162 ; WX 600 ; N cent ; B 121 -49 605 614 ; C 163 ; WX 600 ; N sterling ; B 106 -28 650 611 ; C 164 ; WX 600 ; N fraction ; B 22 -60 708 661 ; C 165 ; WX 600 ; N yen ; B 98 0 710 562 ; C 166 ; WX 600 ; N florin ; B -57 -131 702 616 ; C 167 ; WX 600 ; N section ; B 74 -70 620 580 ; C 168 ; WX 600 ; N currency ; B 77 49 644 517 ; C 169 ; WX 600 ; N quotesingle ; B 303 277 493 562 ; C 170 ; WX 600 ; N quotedblleft ; B 190 277 594 562 ; C 171 ; WX 600 ; N guillemotleft ; B 62 70 639 446 ; C 172 ; WX 600 ; N guilsinglleft ; B 195 70 545 446 ; C 173 ; WX 600 ; N guilsinglright ; B 165 70 514 446 ; C 174 ; WX 600 ; N fi ; B 12 0 644 626 ; C 175 ; WX 600 ; N fl ; B 12 0 644 626 ; C 177 ; WX 600 ; N endash ; B 108 203 602 313 ; C 178 ; WX 600 ; N dagger ; B 175 -70 586 580 ; C 179 ; WX 600 ; N daggerdbl ; B 121 -70 587 580 ; C 180 ; WX 600 ; N periodcentered ; B 248 165 461 351 ; C 182 ; WX 600 ; N paragraph ; B 61 -70 700 580 ; C 183 ; WX 600 ; N bullet ; B 196 132 523 430 ; C 184 ; WX 600 ; N quotesinglbase ; B 144 -142 458 143 ; C 185 ; WX 600 ; N quotedblbase ; B 34 -142 560 143 ; C 186 ; WX 600 ; N quotedblright ; B 119 277 645 562 ; C 187 ; WX 600 ; N guillemotright ; B 71 70 647 446 ; C 188 ; WX 600 ; N ellipsis ; B 35 -15 587 116 ; C 189 ; WX 600 ; N perthousand ; B -45 -15 743 616 ; C 191 ; WX 600 ; N questiondown ; B 100 -146 509 449 ; C 193 ; WX 600 ; N grave ; B 272 508 503 661 ; C 194 ; WX 600 ; N acute ; B 312 508 609 661 ; C 195 ; WX 600 ; N circumflex ; B 212 483 607 657 ; C 196 ; WX 600 ; N tilde ; B 199 493 643 636 ; C 197 ; WX 600 ; N macron ; B 195 505 637 585 ; C 198 ; WX 600 ; N breve ; B 217 468 652 631 ; C 199 ; WX 600 ; N dotaccent ; B 348 498 493 638 ; C 200 ; WX 600 ; N dieresis ; B 246 498 595 638 ; C 202 ; WX 600 ; N ring ; B 319 481 528 678 ; C 203 ; WX 600 ; N cedilla ; B 168 -206 368 0 ; C 205 ; WX 600 ; N hungarumlaut ; B 171 488 729 661 ; C 206 ; WX 600 ; N ogonek ; B 143 -199 367 0 ; C 207 ; WX 600 ; N caron ; B 238 493 633 667 ; C 208 ; WX 600 ; N emdash ; B 33 203 677 313 ; C 225 ; WX 600 ; N AE ; B -29 0 708 562 ; C 227 ; WX 600 ; N ordfeminine ; B 188 196 526 580 ; C 232 ; WX 600 ; N Lslash ; B 39 0 636 562 ; C 233 ; WX 600 ; N Oslash ; B 48 -22 673 584 ; C 234 ; WX 600 ; N OE ; B 26 0 701 562 ; C 235 ; WX 600 ; N ordmasculine ; B 188 196 543 580 ; C 241 ; WX 600 ; N ae ; B 21 -15 652 454 ; C 245 ; WX 600 ; N dotlessi ; B 77 0 546 439 ; C 248 ; WX 600 ; N lslash ; B 77 0 587 626 ; C 249 ; WX 600 ; N oslash ; B 54 -24 638 463 ; C 250 ; WX 600 ; N oe ; B 18 -15 662 454 ; C 251 ; WX 600 ; N germandbls ; B 22 -15 629 626 ; C -1 ; WX 600 ; N Idieresis ; B 77 0 643 761 ; C -1 ; WX 600 ; N eacute ; B 81 -15 609 661 ; C -1 ; WX 600 ; N abreve ; B 61 -15 658 661 ; C -1 ; WX 600 ; N uhungarumlaut ; B 70 -15 769 661 ; C -1 ; WX 600 ; N ecaron ; B 81 -15 633 667 ; C -1 ; WX 600 ; N Ydieresis ; B 109 0 709 761 ; C -1 ; WX 600 ; N divide ; B 114 16 596 500 ; C -1 ; WX 600 ; N Yacute ; B 109 0 709 784 ; C -1 ; WX 600 ; N Acircumflex ; B -9 0 632 780 ; C -1 ; WX 600 ; N aacute ; B 61 -15 609 661 ; C -1 ; WX 600 ; N Ucircumflex ; B 101 -18 716 780 ; C -1 ; WX 600 ; N yacute ; B -21 -142 695 661 ; C -1 ; WX 600 ; N scommaaccent ; B 66 -250 608 459 ; C -1 ; WX 600 ; N ecircumflex ; B 81 -15 607 657 ; C -1 ; WX 600 ; N Uring ; B 101 -18 716 801 ; C -1 ; WX 600 ; N Udieresis ; B 101 -18 716 761 ; C -1 ; WX 600 ; N aogonek ; B 61 -199 593 454 ; C -1 ; WX 600 ; N Uacute ; B 101 -18 716 784 ; C -1 ; WX 600 ; N uogonek ; B 70 -199 592 439 ; C -1 ; WX 600 ; N Edieresis ; B 25 0 670 761 ; C -1 ; WX 600 ; N Dcroat ; B 30 0 664 562 ; C -1 ; WX 600 ; N commaaccent ; B 151 -250 385 -57 ; C -1 ; WX 600 ; N copyright ; B 53 -18 667 580 ; C -1 ; WX 600 ; N Emacron ; B 25 0 670 708 ; C -1 ; WX 600 ; N ccaron ; B 81 -15 633 667 ; C -1 ; WX 600 ; N aring ; B 61 -15 593 678 ; C -1 ; WX 600 ; N Ncommaaccent ; B 8 -250 730 562 ; C -1 ; WX 600 ; N lacute ; B 77 0 639 801 ; C -1 ; WX 600 ; N agrave ; B 61 -15 593 661 ; C -1 ; WX 600 ; N Tcommaaccent ; B 86 -250 679 562 ; C -1 ; WX 600 ; N Cacute ; B 74 -18 675 784 ; C -1 ; WX 600 ; N atilde ; B 61 -15 643 636 ; C -1 ; WX 600 ; N Edotaccent ; B 25 0 670 761 ; C -1 ; WX 600 ; N scaron ; B 66 -17 633 667 ; C -1 ; WX 600 ; N scedilla ; B 66 -206 608 459 ; C -1 ; WX 600 ; N iacute ; B 77 0 609 661 ; C -1 ; WX 600 ; N lozenge ; B 145 0 614 740 ; C -1 ; WX 600 ; N Rcaron ; B 24 0 659 790 ; C -1 ; WX 600 ; N Gcommaaccent ; B 74 -250 675 580 ; C -1 ; WX 600 ; N ucircumflex ; B 70 -15 597 657 ; C -1 ; WX 600 ; N acircumflex ; B 61 -15 607 657 ; C -1 ; WX 600 ; N Amacron ; B -9 0 633 708 ; C -1 ; WX 600 ; N rcaron ; B 47 0 655 667 ; C -1 ; WX 600 ; N ccedilla ; B 81 -206 631 459 ; C -1 ; WX 600 ; N Zdotaccent ; B 62 0 637 761 ; C -1 ; WX 600 ; N Thorn ; B 48 0 620 562 ; C -1 ; WX 600 ; N Omacron ; B 74 -18 663 708 ; C -1 ; WX 600 ; N Racute ; B 24 0 665 784 ; C -1 ; WX 600 ; N Sacute ; B 54 -22 673 784 ; C -1 ; WX 600 ; N dcaron ; B 60 -15 861 626 ; C -1 ; WX 600 ; N Umacron ; B 101 -18 716 708 ; C -1 ; WX 600 ; N uring ; B 70 -15 592 678 ; C -1 ; WX 600 ; N threesuperior ; B 193 222 526 616 ; C -1 ; WX 600 ; N Ograve ; B 74 -18 645 784 ; C -1 ; WX 600 ; N Agrave ; B -9 0 632 784 ; C -1 ; WX 600 ; N Abreve ; B -9 0 684 784 ; C -1 ; WX 600 ; N multiply ; B 104 39 606 478 ; C -1 ; WX 600 ; N uacute ; B 70 -15 599 661 ; C -1 ; WX 600 ; N Tcaron ; B 86 0 679 790 ; C -1 ; WX 600 ; N partialdiff ; B 91 -38 627 728 ; C -1 ; WX 600 ; N ydieresis ; B -21 -142 695 638 ; C -1 ; WX 600 ; N Nacute ; B 8 -12 730 784 ; C -1 ; WX 600 ; N icircumflex ; B 77 0 577 657 ; C -1 ; WX 600 ; N Ecircumflex ; B 25 0 670 780 ; C -1 ; WX 600 ; N adieresis ; B 61 -15 595 638 ; C -1 ; WX 600 ; N edieresis ; B 81 -15 605 638 ; C -1 ; WX 600 ; N cacute ; B 81 -15 649 661 ; C -1 ; WX 600 ; N nacute ; B 18 0 639 661 ; C -1 ; WX 600 ; N umacron ; B 70 -15 637 585 ; C -1 ; WX 600 ; N Ncaron ; B 8 -12 730 790 ; C -1 ; WX 600 ; N Iacute ; B 77 0 643 784 ; C -1 ; WX 600 ; N plusminus ; B 76 24 614 515 ; C -1 ; WX 600 ; N brokenbar ; B 217 -175 489 675 ; C -1 ; WX 600 ; N registered ; B 53 -18 667 580 ; C -1 ; WX 600 ; N Gbreve ; B 74 -18 684 784 ; C -1 ; WX 600 ; N Idotaccent ; B 77 0 643 761 ; C -1 ; WX 600 ; N summation ; B 15 -10 672 706 ; C -1 ; WX 600 ; N Egrave ; B 25 0 670 784 ; C -1 ; WX 600 ; N racute ; B 47 0 655 661 ; C -1 ; WX 600 ; N omacron ; B 71 -15 637 585 ; C -1 ; WX 600 ; N Zacute ; B 62 0 665 784 ; C -1 ; WX 600 ; N Zcaron ; B 62 0 659 790 ; C -1 ; WX 600 ; N greaterequal ; B 26 0 627 696 ; C -1 ; WX 600 ; N Eth ; B 30 0 664 562 ; C -1 ; WX 600 ; N Ccedilla ; B 74 -206 675 580 ; C -1 ; WX 600 ; N lcommaaccent ; B 77 -250 546 626 ; C -1 ; WX 600 ; N tcaron ; B 118 -15 627 703 ; C -1 ; WX 600 ; N eogonek ; B 81 -199 605 454 ; C -1 ; WX 600 ; N Uogonek ; B 101 -199 716 562 ; C -1 ; WX 600 ; N Aacute ; B -9 0 655 784 ; C -1 ; WX 600 ; N Adieresis ; B -9 0 632 761 ; C -1 ; WX 600 ; N egrave ; B 81 -15 605 661 ; C -1 ; WX 600 ; N zacute ; B 81 0 614 661 ; C -1 ; WX 600 ; N iogonek ; B 77 -199 546 658 ; C -1 ; WX 600 ; N Oacute ; B 74 -18 645 784 ; C -1 ; WX 600 ; N oacute ; B 71 -15 649 661 ; C -1 ; WX 600 ; N amacron ; B 61 -15 637 585 ; C -1 ; WX 600 ; N sacute ; B 66 -17 609 661 ; C -1 ; WX 600 ; N idieresis ; B 77 0 561 618 ; C -1 ; WX 600 ; N Ocircumflex ; B 74 -18 645 780 ; C -1 ; WX 600 ; N Ugrave ; B 101 -18 716 784 ; C -1 ; WX 600 ; N Delta ; B 6 0 594 688 ; C -1 ; WX 600 ; N thorn ; B -32 -142 622 626 ; C -1 ; WX 600 ; N twosuperior ; B 191 230 542 616 ; C -1 ; WX 600 ; N Odieresis ; B 74 -18 645 761 ; C -1 ; WX 600 ; N mu ; B 49 -142 592 439 ; C -1 ; WX 600 ; N igrave ; B 77 0 546 661 ; C -1 ; WX 600 ; N ohungarumlaut ; B 71 -15 809 661 ; C -1 ; WX 600 ; N Eogonek ; B 25 -199 670 562 ; C -1 ; WX 600 ; N dcroat ; B 60 -15 712 626 ; C -1 ; WX 600 ; N threequarters ; B 8 -60 699 661 ; C -1 ; WX 600 ; N Scedilla ; B 54 -206 673 582 ; C -1 ; WX 600 ; N lcaron ; B 77 0 731 626 ; C -1 ; WX 600 ; N Kcommaaccent ; B 21 -250 692 562 ; C -1 ; WX 600 ; N Lacute ; B 39 0 636 784 ; C -1 ; WX 600 ; N trademark ; B 86 230 869 562 ; C -1 ; WX 600 ; N edotaccent ; B 81 -15 605 638 ; C -1 ; WX 600 ; N Igrave ; B 77 0 643 784 ; C -1 ; WX 600 ; N Imacron ; B 77 0 663 708 ; C -1 ; WX 600 ; N Lcaron ; B 39 0 757 562 ; C -1 ; WX 600 ; N onehalf ; B 22 -60 716 661 ; C -1 ; WX 600 ; N lessequal ; B 26 0 671 696 ; C -1 ; WX 600 ; N ocircumflex ; B 71 -15 622 657 ; C -1 ; WX 600 ; N ntilde ; B 18 0 643 636 ; C -1 ; WX 600 ; N Uhungarumlaut ; B 101 -18 805 784 ; C -1 ; WX 600 ; N Eacute ; B 25 0 670 784 ; C -1 ; WX 600 ; N emacron ; B 81 -15 637 585 ; C -1 ; WX 600 ; N gbreve ; B 40 -146 674 661 ; C -1 ; WX 600 ; N onequarter ; B 13 -60 707 661 ; C -1 ; WX 600 ; N Scaron ; B 54 -22 689 790 ; C -1 ; WX 600 ; N Scommaaccent ; B 54 -250 673 582 ; C -1 ; WX 600 ; N Ohungarumlaut ; B 74 -18 795 784 ; C -1 ; WX 600 ; N degree ; B 173 243 570 616 ; C -1 ; WX 600 ; N ograve ; B 71 -15 622 661 ; C -1 ; WX 600 ; N Ccaron ; B 74 -18 689 790 ; C -1 ; WX 600 ; N ugrave ; B 70 -15 592 661 ; C -1 ; WX 600 ; N radical ; B 67 -104 635 778 ; C -1 ; WX 600 ; N Dcaron ; B 30 0 664 790 ; C -1 ; WX 600 ; N rcommaaccent ; B 47 -250 655 454 ; C -1 ; WX 600 ; N Ntilde ; B 8 -12 730 759 ; C -1 ; WX 600 ; N otilde ; B 71 -15 643 636 ; C -1 ; WX 600 ; N Rcommaaccent ; B 24 -250 617 562 ; C -1 ; WX 600 ; N Lcommaaccent ; B 39 -250 636 562 ; C -1 ; WX 600 ; N Atilde ; B -9 0 669 759 ; C -1 ; WX 600 ; N Aogonek ; B -9 -199 632 562 ; C -1 ; WX 600 ; N Aring ; B -9 0 632 801 ; C -1 ; WX 600 ; N Otilde ; B 74 -18 669 759 ; C -1 ; WX 600 ; N zdotaccent ; B 81 0 614 638 ; C -1 ; WX 600 ; N Ecaron ; B 25 0 670 790 ; C -1 ; WX 600 ; N Iogonek ; B 77 -199 643 562 ; C -1 ; WX 600 ; N kcommaaccent ; B 33 -250 643 626 ; C -1 ; WX 600 ; N minus ; B 114 203 596 313 ; C -1 ; WX 600 ; N Icircumflex ; B 77 0 643 780 ; C -1 ; WX 600 ; N ncaron ; B 18 0 633 667 ; C -1 ; WX 600 ; N tcommaaccent ; B 118 -250 567 562 ; C -1 ; WX 600 ; N logicalnot ; B 135 103 617 413 ; C -1 ; WX 600 ; N odieresis ; B 71 -15 622 638 ; C -1 ; WX 600 ; N udieresis ; B 70 -15 595 638 ; C -1 ; WX 600 ; N notequal ; B 30 -47 626 563 ; C -1 ; WX 600 ; N gcommaaccent ; B 40 -146 674 714 ; C -1 ; WX 600 ; N eth ; B 93 -27 661 626 ; C -1 ; WX 600 ; N zcaron ; B 81 0 643 667 ; C -1 ; WX 600 ; N ncommaaccent ; B 18 -250 615 454 ; C -1 ; WX 600 ; N onesuperior ; B 212 230 514 616 ; C -1 ; WX 600 ; N imacron ; B 77 0 575 585 ; EndCharMetrics EndFontMetrics a2ps-4.14/afm/pncb.afm0000644000175000017500000012110010674334153014000 0ustar mhattamhattaStartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1988, 1991, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Thu May 1 14:22:15 1997 Comment UniqueID 43095 Comment VMusage 44510 55535 FontName NewCenturySchlbk-Bold FullName New Century Schoolbook Bold FamilyName New Century Schoolbook Weight Bold ItalicAngle 0 IsFixedPitch false FontBBox -165 -250 1000 988 UnderlinePosition -100 UnderlineThickness 50 Version 002.000 Notice Copyright (c) 1985, 1987, 1988, 1991, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved. EncodingScheme AdobeStandardEncoding CapHeight 722 XHeight 475 Ascender 737 Descender -205 StdHW 54 StdVW 154 StartCharMetrics 314 C 32 ; WX 287 ; N space ; B 0 0 0 0 ; C 33 ; WX 296 ; N exclam ; B 53 -15 243 737 ; C 34 ; WX 333 ; N quotedbl ; B 0 378 333 737 ; C 35 ; WX 574 ; N numbersign ; B 36 0 538 690 ; C 36 ; WX 574 ; N dollar ; B 25 -141 549 810 ; C 37 ; WX 833 ; N percent ; B 14 -15 819 705 ; C 38 ; WX 852 ; N ampersand ; B 34 -15 818 737 ; C 39 ; WX 241 ; N quoteright ; B 22 378 220 737 ; C 40 ; WX 389 ; N parenleft ; B 77 -117 345 745 ; C 41 ; WX 389 ; N parenright ; B 44 -117 312 745 ; C 42 ; WX 500 ; N asterisk ; B 54 302 446 737 ; C 43 ; WX 606 ; N plus ; B 50 0 556 506 ; C 44 ; WX 278 ; N comma ; B 40 -184 238 175 ; C 45 ; WX 333 ; N hyphen ; B 42 174 291 302 ; C 46 ; WX 278 ; N period ; B 44 -15 234 175 ; C 47 ; WX 278 ; N slash ; B -42 -15 320 737 ; C 48 ; WX 574 ; N zero ; B 27 -15 547 705 ; C 49 ; WX 574 ; N one ; B 83 0 491 705 ; C 50 ; WX 574 ; N two ; B 19 0 531 705 ; C 51 ; WX 574 ; N three ; B 23 -15 531 705 ; C 52 ; WX 574 ; N four ; B 19 0 547 705 ; C 53 ; WX 574 ; N five ; B 32 -15 534 705 ; C 54 ; WX 574 ; N six ; B 27 -15 547 705 ; C 55 ; WX 574 ; N seven ; B 45 -15 547 705 ; C 56 ; WX 574 ; N eight ; B 27 -15 548 705 ; C 57 ; WX 574 ; N nine ; B 27 -15 547 705 ; C 58 ; WX 278 ; N colon ; B 44 -15 234 485 ; C 59 ; WX 278 ; N semicolon ; B 40 -184 238 485 ; C 60 ; WX 606 ; N less ; B 50 -9 556 515 ; C 61 ; WX 606 ; N equal ; B 50 103 556 403 ; C 62 ; WX 606 ; N greater ; B 50 -9 556 515 ; C 63 ; WX 500 ; N question ; B 23 -15 477 737 ; C 64 ; WX 747 ; N at ; B -2 -15 750 737 ; C 65 ; WX 759 ; N A ; B -19 0 778 737 ; C 66 ; WX 778 ; N B ; B 19 0 739 722 ; C 67 ; WX 778 ; N C ; B 39 -15 723 737 ; C 68 ; WX 833 ; N D ; B 19 0 794 722 ; C 69 ; WX 759 ; N E ; B 19 0 708 722 ; C 70 ; WX 722 ; N F ; B 19 0 697 722 ; C 71 ; WX 833 ; N G ; B 39 -15 818 737 ; C 72 ; WX 870 ; N H ; B 19 0 851 722 ; C 73 ; WX 444 ; N I ; B 29 0 415 722 ; C 74 ; WX 648 ; N J ; B 6 -15 642 722 ; C 75 ; WX 815 ; N K ; B 19 0 822 722 ; C 76 ; WX 722 ; N L ; B 19 0 703 722 ; C 77 ; WX 981 ; N M ; B 10 0 971 722 ; C 78 ; WX 833 ; N N ; B 5 -10 828 722 ; C 79 ; WX 833 ; N O ; B 39 -15 794 737 ; C 80 ; WX 759 ; N P ; B 24 0 735 722 ; C 81 ; WX 833 ; N Q ; B 39 -189 808 737 ; C 82 ; WX 815 ; N R ; B 19 -15 815 722 ; C 83 ; WX 667 ; N S ; B 51 -15 634 737 ; C 84 ; WX 722 ; N T ; B 16 0 706 722 ; C 85 ; WX 833 ; N U ; B 14 -15 825 722 ; C 86 ; WX 759 ; N V ; B -19 -10 778 722 ; C 87 ; WX 981 ; N W ; B 7 -10 974 722 ; C 88 ; WX 722 ; N X ; B -12 0 734 722 ; C 89 ; WX 722 ; N Y ; B -12 0 734 722 ; C 90 ; WX 667 ; N Z ; B 28 0 639 722 ; C 91 ; WX 389 ; N bracketleft ; B 84 -109 339 737 ; C 92 ; WX 606 ; N backslash ; B 122 -15 484 737 ; C 93 ; WX 389 ; N bracketright ; B 50 -109 305 737 ; C 94 ; WX 606 ; N asciicircum ; B 66 325 540 690 ; C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; C 96 ; WX 241 ; N quoteleft ; B 22 378 220 737 ; C 97 ; WX 611 ; N a ; B 40 -15 601 485 ; C 98 ; WX 648 ; N b ; B 4 -15 616 737 ; C 99 ; WX 556 ; N c ; B 32 -15 524 485 ; C 100 ; WX 667 ; N d ; B 32 -15 644 737 ; C 101 ; WX 574 ; N e ; B 32 -15 542 485 ; C 102 ; WX 389 ; N f ; B 11 0 461 737 ; L i fi ; L l fl ; C 103 ; WX 611 ; N g ; B 30 -205 623 535 ; C 104 ; WX 685 ; N h ; B 17 0 662 737 ; C 105 ; WX 370 ; N i ; B 26 0 338 737 ; C 106 ; WX 352 ; N j ; B -86 -205 271 737 ; C 107 ; WX 667 ; N k ; B 17 0 662 737 ; C 108 ; WX 352 ; N l ; B 17 0 329 737 ; C 109 ; WX 963 ; N m ; B 17 0 940 485 ; C 110 ; WX 685 ; N n ; B 17 0 662 485 ; C 111 ; WX 611 ; N o ; B 32 -15 579 485 ; C 112 ; WX 667 ; N p ; B 17 -205 629 485 ; C 113 ; WX 648 ; N q ; B 32 -205 638 485 ; C 114 ; WX 519 ; N r ; B 17 0 516 485 ; C 115 ; WX 500 ; N s ; B 48 -15 476 485 ; C 116 ; WX 426 ; N t ; B 21 -15 405 675 ; C 117 ; WX 685 ; N u ; B 17 -15 668 475 ; C 118 ; WX 611 ; N v ; B 12 -10 599 475 ; C 119 ; WX 889 ; N w ; B 16 -10 873 475 ; C 120 ; WX 611 ; N x ; B 12 0 599 475 ; C 121 ; WX 611 ; N y ; B 12 -205 599 475 ; C 122 ; WX 537 ; N z ; B 38 0 499 475 ; C 123 ; WX 389 ; N braceleft ; B 36 -109 313 737 ; C 124 ; WX 606 ; N bar ; B 249 -250 357 750 ; C 125 ; WX 389 ; N braceright ; B 76 -109 353 737 ; C 126 ; WX 606 ; N asciitilde ; B 72 160 534 346 ; C 161 ; WX 296 ; N exclamdown ; B 53 -205 243 547 ; C 162 ; WX 574 ; N cent ; B 32 -102 528 572 ; C 163 ; WX 574 ; N sterling ; B 16 -15 558 705 ; C 164 ; WX 167 ; N fraction ; B -165 -15 332 705 ; C 165 ; WX 574 ; N yen ; B -10 0 584 690 ; C 166 ; WX 574 ; N florin ; B 14 -205 548 737 ; C 167 ; WX 500 ; N section ; B 62 -86 438 737 ; C 168 ; WX 574 ; N currency ; B 27 84 547 605 ; C 169 ; WX 241 ; N quotesingle ; B 53 378 189 737 ; C 170 ; WX 481 ; N quotedblleft ; B 22 378 459 737 ; C 171 ; WX 500 ; N guillemotleft ; B 46 79 454 397 ; C 172 ; WX 333 ; N guilsinglleft ; B 62 79 271 397 ; C 173 ; WX 333 ; N guilsinglright ; B 62 79 271 397 ; C 174 ; WX 685 ; N fi ; B 11 0 666 737 ; C 175 ; WX 685 ; N fl ; B 11 0 666 737 ; C 177 ; WX 500 ; N endash ; B 0 184 500 292 ; C 178 ; WX 500 ; N dagger ; B 39 -101 461 737 ; C 179 ; WX 500 ; N daggerdbl ; B 39 -89 461 737 ; C 180 ; WX 278 ; N periodcentered ; B 53 200 225 372 ; C 182 ; WX 747 ; N paragraph ; B 96 -71 631 722 ; C 183 ; WX 606 ; N bullet ; B 122 180 484 542 ; C 184 ; WX 241 ; N quotesinglbase ; B 22 -184 220 175 ; C 185 ; WX 481 ; N quotedblbase ; B 22 -184 459 175 ; C 186 ; WX 481 ; N quotedblright ; B 22 378 459 737 ; C 187 ; WX 500 ; N guillemotright ; B 46 79 454 397 ; C 188 ; WX 1000 ; N ellipsis ; B 72 -15 928 175 ; C 189 ; WX 1000 ; N perthousand ; B 7 -15 993 705 ; C 191 ; WX 500 ; N questiondown ; B 23 -205 477 547 ; C 193 ; WX 333 ; N grave ; B 2 547 249 737 ; C 194 ; WX 333 ; N acute ; B 84 547 331 737 ; C 195 ; WX 333 ; N circumflex ; B -10 547 344 725 ; C 196 ; WX 333 ; N tilde ; B -24 563 357 705 ; C 197 ; WX 333 ; N macron ; B -6 582 339 664 ; C 198 ; WX 333 ; N breve ; B 9 547 324 714 ; C 199 ; WX 333 ; N dotaccent ; B 95 565 267 737 ; C 200 ; WX 333 ; N dieresis ; B -12 565 345 707 ; C 202 ; WX 333 ; N ring ; B 58 545 274 761 ; C 203 ; WX 333 ; N cedilla ; B 17 -224 248 0 ; C 205 ; WX 333 ; N hungarumlaut ; B -16 547 431 737 ; C 206 ; WX 333 ; N ogonek ; B 72 -220 330 4 ; C 207 ; WX 333 ; N caron ; B -10 547 344 725 ; C 208 ; WX 1000 ; N emdash ; B 0 184 1000 292 ; C 225 ; WX 981 ; N AE ; B -29 0 963 722 ; C 227 ; WX 367 ; N ordfeminine ; B 1 407 393 705 ; C 232 ; WX 722 ; N Lslash ; B 19 0 703 722 ; C 233 ; WX 833 ; N Oslash ; B 39 -53 794 775 ; C 234 ; WX 1000 ; N OE ; B 0 0 982 722 ; C 235 ; WX 367 ; N ordmasculine ; B 1 407 366 705 ; C 241 ; WX 870 ; N ae ; B 32 -15 838 485 ; C 245 ; WX 370 ; N dotlessi ; B 26 0 338 475 ; C 248 ; WX 352 ; N lslash ; B 17 0 329 737 ; C 249 ; WX 611 ; N oslash ; B 32 -103 579 573 ; C 250 ; WX 907 ; N oe ; B 32 -15 875 485 ; C 251 ; WX 611 ; N germandbls ; B -2 -15 580 737 ; C -1 ; WX 444 ; N Idieresis ; B 29 0 415 921 ; C -1 ; WX 574 ; N eacute ; B 32 -15 542 737 ; C -1 ; WX 611 ; N abreve ; B 40 -15 601 714 ; C -1 ; WX 685 ; N uhungarumlaut ; B 17 -15 668 737 ; C -1 ; WX 574 ; N ecaron ; B 32 -15 542 725 ; C -1 ; WX 722 ; N Ydieresis ; B -12 0 734 921 ; C -1 ; WX 606 ; N divide ; B 50 -40 556 546 ; C -1 ; WX 722 ; N Yacute ; B -12 0 734 964 ; C -1 ; WX 759 ; N Acircumflex ; B -19 0 778 952 ; C -1 ; WX 611 ; N aacute ; B 40 -15 601 737 ; C -1 ; WX 833 ; N Ucircumflex ; B 14 -15 825 952 ; C -1 ; WX 611 ; N yacute ; B 12 -205 599 737 ; C -1 ; WX 500 ; N scommaaccent ; B 48 -250 476 485 ; C -1 ; WX 574 ; N ecircumflex ; B 32 -15 542 725 ; C -1 ; WX 833 ; N Uring ; B 14 -15 825 988 ; C -1 ; WX 833 ; N Udieresis ; B 14 -15 825 921 ; C -1 ; WX 611 ; N aogonek ; B 40 -231 628 485 ; C -1 ; WX 833 ; N Uacute ; B 14 -15 825 964 ; C -1 ; WX 685 ; N uogonek ; B 17 -220 670 475 ; C -1 ; WX 759 ; N Edieresis ; B 19 0 708 921 ; C -1 ; WX 833 ; N Dcroat ; B 19 0 794 722 ; C -1 ; WX 250 ; N commaaccent ; B 45 -250 187 -50 ; C -1 ; WX 747 ; N copyright ; B -2 -15 750 737 ; C -1 ; WX 759 ; N Emacron ; B 19 0 708 891 ; C -1 ; WX 556 ; N ccaron ; B 32 -15 524 725 ; C -1 ; WX 611 ; N aring ; B 40 -15 601 761 ; C -1 ; WX 833 ; N Ncommaaccent ; B 5 -230 828 722 ; C -1 ; WX 352 ; N lacute ; B 17 0 341 964 ; C -1 ; WX 611 ; N agrave ; B 40 -15 601 737 ; C -1 ; WX 722 ; N Tcommaaccent ; B 16 -250 706 722 ; C -1 ; WX 778 ; N Cacute ; B 39 -15 723 964 ; C -1 ; WX 611 ; N atilde ; B 40 -15 601 705 ; C -1 ; WX 759 ; N Edotaccent ; B 19 0 708 951 ; C -1 ; WX 500 ; N scaron ; B 48 -15 476 725 ; C -1 ; WX 500 ; N scedilla ; B 48 -224 476 485 ; C -1 ; WX 370 ; N iacute ; B 26 0 350 737 ; C -1 ; WX 494 ; N lozenge ; B 10 0 484 745 ; C -1 ; WX 815 ; N Rcaron ; B 19 -15 815 952 ; C -1 ; WX 833 ; N Gcommaaccent ; B 39 -250 818 737 ; C -1 ; WX 685 ; N ucircumflex ; B 17 -15 668 725 ; C -1 ; WX 611 ; N acircumflex ; B 40 -15 601 725 ; C -1 ; WX 759 ; N Amacron ; B -19 0 778 891 ; C -1 ; WX 519 ; N rcaron ; B 17 0 516 725 ; C -1 ; WX 556 ; N ccedilla ; B 32 -224 524 485 ; C -1 ; WX 667 ; N Zdotaccent ; B 28 0 639 951 ; C -1 ; WX 759 ; N Thorn ; B 24 0 735 722 ; C -1 ; WX 833 ; N Omacron ; B 39 -15 794 891 ; C -1 ; WX 815 ; N Racute ; B 19 -15 815 964 ; C -1 ; WX 667 ; N Sacute ; B 51 -15 634 964 ; C -1 ; WX 747 ; N dcaron ; B 32 -15 748 737 ; C -1 ; WX 833 ; N Umacron ; B 14 -15 825 891 ; C -1 ; WX 685 ; N uring ; B 17 -15 668 761 ; C -1 ; WX 344 ; N threesuperior ; B -3 273 355 705 ; C -1 ; WX 833 ; N Ograve ; B 39 -15 794 964 ; C -1 ; WX 759 ; N Agrave ; B -19 0 778 964 ; C -1 ; WX 759 ; N Abreve ; B -19 0 778 941 ; C -1 ; WX 606 ; N multiply ; B 65 15 541 491 ; C -1 ; WX 685 ; N uacute ; B 17 -15 668 737 ; C -1 ; WX 722 ; N Tcaron ; B 16 0 706 952 ; C -1 ; WX 494 ; N partialdiff ; B 11 -21 494 750 ; C -1 ; WX 611 ; N ydieresis ; B 12 -205 599 694 ; C -1 ; WX 833 ; N Nacute ; B 5 -10 828 964 ; C -1 ; WX 370 ; N icircumflex ; B 9 0 363 725 ; C -1 ; WX 759 ; N Ecircumflex ; B 19 0 708 952 ; C -1 ; WX 611 ; N adieresis ; B 40 -15 601 694 ; C -1 ; WX 574 ; N edieresis ; B 32 -15 542 694 ; C -1 ; WX 556 ; N cacute ; B 32 -15 524 737 ; C -1 ; WX 685 ; N nacute ; B 17 0 662 737 ; C -1 ; WX 685 ; N umacron ; B 17 -15 668 664 ; C -1 ; WX 833 ; N Ncaron ; B 5 -10 828 952 ; C -1 ; WX 444 ; N Iacute ; B 29 0 415 964 ; C -1 ; WX 606 ; N plusminus ; B 50 0 556 506 ; C -1 ; WX 606 ; N brokenbar ; B 249 -175 357 675 ; C -1 ; WX 747 ; N registered ; B -2 -15 750 737 ; C -1 ; WX 833 ; N Gbreve ; B 39 -15 818 941 ; C -1 ; WX 444 ; N Idotaccent ; B 29 0 415 951 ; C -1 ; WX 600 ; N summation ; B 14 -10 585 706 ; C -1 ; WX 759 ; N Egrave ; B 19 0 708 964 ; C -1 ; WX 519 ; N racute ; B 17 0 516 737 ; C -1 ; WX 611 ; N omacron ; B 32 -15 579 664 ; C -1 ; WX 667 ; N Zacute ; B 28 0 639 964 ; C -1 ; WX 667 ; N Zcaron ; B 28 0 639 952 ; C -1 ; WX 549 ; N greaterequal ; B 26 0 523 704 ; C -1 ; WX 833 ; N Eth ; B 19 0 794 722 ; C -1 ; WX 778 ; N Ccedilla ; B 39 -224 723 737 ; C -1 ; WX 352 ; N lcommaaccent ; B 17 -250 329 737 ; C -1 ; WX 456 ; N tcaron ; B 21 -15 450 795 ; C -1 ; WX 574 ; N eogonek ; B 32 -220 542 485 ; C -1 ; WX 833 ; N Uogonek ; B 14 -220 825 722 ; C -1 ; WX 759 ; N Aacute ; B -19 0 778 964 ; C -1 ; WX 759 ; N Adieresis ; B -19 0 778 921 ; C -1 ; WX 574 ; N egrave ; B 32 -15 542 737 ; C -1 ; WX 537 ; N zacute ; B 38 0 499 737 ; C -1 ; WX 370 ; N iogonek ; B 26 -224 353 737 ; C -1 ; WX 833 ; N Oacute ; B 39 -15 794 964 ; C -1 ; WX 611 ; N oacute ; B 32 -15 579 737 ; C -1 ; WX 611 ; N amacron ; B 40 -15 601 664 ; C -1 ; WX 500 ; N sacute ; B 48 -15 476 737 ; C -1 ; WX 370 ; N idieresis ; B 7 0 364 694 ; C -1 ; WX 833 ; N Ocircumflex ; B 39 -15 794 952 ; C -1 ; WX 833 ; N Ugrave ; B 14 -15 825 964 ; C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ; C -1 ; WX 667 ; N thorn ; B 17 -205 629 737 ; C -1 ; WX 344 ; N twosuperior ; B -3 282 350 705 ; C -1 ; WX 833 ; N Odieresis ; B 39 -15 794 921 ; C -1 ; WX 685 ; N mu ; B 17 -205 668 475 ; C -1 ; WX 370 ; N igrave ; B 21 0 338 737 ; C -1 ; WX 611 ; N ohungarumlaut ; B 32 -15 579 737 ; C -1 ; WX 759 ; N Eogonek ; B 19 -224 712 722 ; C -1 ; WX 667 ; N dcroat ; B 32 -15 644 737 ; C -1 ; WX 861 ; N threequarters ; B 15 -15 838 705 ; C -1 ; WX 667 ; N Scedilla ; B 51 -224 634 737 ; C -1 ; WX 448 ; N lcaron ; B 17 0 439 737 ; C -1 ; WX 815 ; N Kcommaaccent ; B 19 -250 822 722 ; C -1 ; WX 722 ; N Lacute ; B 19 0 703 964 ; C -1 ; WX 1000 ; N trademark ; B 6 317 982 722 ; C -1 ; WX 574 ; N edotaccent ; B 32 -15 542 724 ; C -1 ; WX 444 ; N Igrave ; B 29 0 415 964 ; C -1 ; WX 444 ; N Imacron ; B 29 0 415 891 ; C -1 ; WX 722 ; N Lcaron ; B 19 0 703 737 ; C -1 ; WX 861 ; N onehalf ; B 31 -15 838 705 ; C -1 ; WX 549 ; N lessequal ; B 29 0 526 704 ; C -1 ; WX 611 ; N ocircumflex ; B 32 -15 579 725 ; C -1 ; WX 685 ; N ntilde ; B 17 0 662 705 ; C -1 ; WX 833 ; N Uhungarumlaut ; B 14 -15 825 964 ; C -1 ; WX 759 ; N Eacute ; B 19 0 708 964 ; C -1 ; WX 574 ; N emacron ; B 32 -15 542 664 ; C -1 ; WX 611 ; N gbreve ; B 30 -205 623 734 ; C -1 ; WX 861 ; N onequarter ; B 31 -15 838 705 ; C -1 ; WX 667 ; N Scaron ; B 51 -15 634 952 ; C -1 ; WX 667 ; N Scommaaccent ; B 51 -250 634 737 ; C -1 ; WX 833 ; N Ohungarumlaut ; B 39 -15 794 964 ; C -1 ; WX 400 ; N degree ; B 57 419 343 705 ; C -1 ; WX 611 ; N ograve ; B 32 -15 579 737 ; C -1 ; WX 778 ; N Ccaron ; B 39 -15 723 952 ; C -1 ; WX 685 ; N ugrave ; B 17 -15 668 737 ; C -1 ; WX 549 ; N radical ; B 10 -46 512 850 ; C -1 ; WX 833 ; N Dcaron ; B 19 0 794 952 ; C -1 ; WX 519 ; N rcommaaccent ; B 17 -250 516 485 ; C -1 ; WX 833 ; N Ntilde ; B 5 -10 828 932 ; C -1 ; WX 611 ; N otilde ; B 32 -15 579 705 ; C -1 ; WX 815 ; N Rcommaaccent ; B 19 -230 815 722 ; C -1 ; WX 722 ; N Lcommaaccent ; B 19 -250 703 722 ; C -1 ; WX 759 ; N Atilde ; B -19 0 778 932 ; C -1 ; WX 759 ; N Aogonek ; B -19 -224 793 737 ; C -1 ; WX 759 ; N Aring ; B -19 0 778 988 ; C -1 ; WX 833 ; N Otilde ; B 39 -15 794 932 ; C -1 ; WX 537 ; N zdotaccent ; B 38 0 499 724 ; C -1 ; WX 759 ; N Ecaron ; B 19 0 708 952 ; C -1 ; WX 444 ; N Iogonek ; B 29 -220 415 722 ; C -1 ; WX 667 ; N kcommaaccent ; B 17 -250 662 737 ; C -1 ; WX 606 ; N minus ; B 50 199 556 307 ; C -1 ; WX 444 ; N Icircumflex ; B 29 0 415 952 ; C -1 ; WX 685 ; N ncaron ; B 17 0 662 725 ; C -1 ; WX 426 ; N tcommaaccent ; B 21 -250 405 675 ; C -1 ; WX 606 ; N logicalnot ; B 50 103 556 403 ; C -1 ; WX 611 ; N odieresis ; B 32 -15 579 694 ; C -1 ; WX 685 ; N udieresis ; B 17 -15 668 694 ; C -1 ; WX 549 ; N notequal ; B 15 -49 540 570 ; C -1 ; WX 611 ; N gcommaaccent ; B 30 -205 623 842 ; C -1 ; WX 611 ; N eth ; B 32 -15 579 737 ; C -1 ; WX 537 ; N zcaron ; B 38 0 499 725 ; C -1 ; WX 685 ; N ncommaaccent ; B 17 -250 662 485 ; C -1 ; WX 344 ; N onesuperior ; B 31 282 309 705 ; C -1 ; WX 370 ; N imacron ; B 26 0 338 664 ; EndCharMetrics StartKernData StartKernPairs 1205 KPX A T -55 KPX A Tcaron -55 KPX A Tcommaaccent -55 KPX A U -18 KPX A Uacute -18 KPX A Ucircumflex -18 KPX A Udieresis -18 KPX A Ugrave -18 KPX A Uhungarumlaut -18 KPX A Umacron -18 KPX A Uogonek -18 KPX A Uring -18 KPX A V -74 KPX A W -74 KPX A Y -91 KPX A Yacute -91 KPX A Ydieresis -91 KPX A quotedblright -74 KPX A quoteright -74 KPX A v -18 KPX A w -18 KPX A y -18 KPX A yacute -18 KPX A ydieresis -18 KPX Aacute T -55 KPX Aacute Tcaron -55 KPX Aacute Tcommaaccent -55 KPX Aacute U -18 KPX Aacute Uacute -18 KPX Aacute Ucircumflex -18 KPX Aacute Udieresis -18 KPX Aacute Ugrave -18 KPX Aacute Uhungarumlaut -18 KPX Aacute Umacron -18 KPX Aacute Uogonek -18 KPX Aacute Uring -18 KPX Aacute V -74 KPX Aacute W -74 KPX Aacute Y -91 KPX Aacute Yacute -91 KPX Aacute Ydieresis -91 KPX Aacute quotedblright -74 KPX Aacute quoteright -74 KPX Aacute v -18 KPX Aacute w -18 KPX Aacute y -18 KPX Aacute yacute -18 KPX Aacute ydieresis -18 KPX Abreve T -55 KPX Abreve Tcaron -55 KPX Abreve Tcommaaccent -55 KPX Abreve U -18 KPX Abreve Uacute -18 KPX Abreve Ucircumflex -18 KPX Abreve Udieresis -18 KPX Abreve Ugrave -18 KPX Abreve Uhungarumlaut -18 KPX Abreve Umacron -18 KPX Abreve Uogonek -18 KPX Abreve Uring -18 KPX Abreve V -74 KPX Abreve W -74 KPX Abreve Y -91 KPX Abreve Yacute -91 KPX Abreve Ydieresis -91 KPX Abreve quotedblright -74 KPX Abreve quoteright -74 KPX Abreve v -18 KPX Abreve w -18 KPX Abreve y -18 KPX Abreve yacute -18 KPX Abreve ydieresis -18 KPX Acircumflex T -55 KPX Acircumflex Tcaron -55 KPX Acircumflex Tcommaaccent -55 KPX Acircumflex U -18 KPX Acircumflex Uacute -18 KPX Acircumflex Ucircumflex -18 KPX Acircumflex Udieresis -18 KPX Acircumflex Ugrave -18 KPX Acircumflex Uhungarumlaut -18 KPX Acircumflex Umacron -18 KPX Acircumflex Uogonek -18 KPX Acircumflex Uring -18 KPX Acircumflex V -74 KPX Acircumflex W -74 KPX Acircumflex Y -91 KPX Acircumflex Yacute -91 KPX Acircumflex Ydieresis -91 KPX Acircumflex quotedblright -74 KPX Acircumflex quoteright -74 KPX Acircumflex v -18 KPX Acircumflex w -18 KPX Acircumflex y -18 KPX Acircumflex yacute -18 KPX Acircumflex ydieresis -18 KPX Adieresis T -55 KPX Adieresis Tcaron -55 KPX Adieresis Tcommaaccent -55 KPX Adieresis U -18 KPX Adieresis Uacute -18 KPX Adieresis Ucircumflex -18 KPX Adieresis Udieresis -18 KPX Adieresis Ugrave -18 KPX Adieresis Uhungarumlaut -18 KPX Adieresis Umacron -18 KPX Adieresis Uogonek -18 KPX Adieresis Uring -18 KPX Adieresis V -74 KPX Adieresis W -74 KPX Adieresis Y -91 KPX Adieresis Yacute -91 KPX Adieresis Ydieresis -91 KPX Adieresis quotedblright -74 KPX Adieresis quoteright -74 KPX Adieresis v -18 KPX Adieresis w -18 KPX Adieresis y -18 KPX Adieresis yacute -18 KPX Adieresis ydieresis -18 KPX Agrave T -55 KPX Agrave Tcaron -55 KPX Agrave Tcommaaccent -55 KPX Agrave U -18 KPX Agrave Uacute -18 KPX Agrave Ucircumflex -18 KPX Agrave Udieresis -18 KPX Agrave Ugrave -18 KPX Agrave Uhungarumlaut -18 KPX Agrave Umacron -18 KPX Agrave Uogonek -18 KPX Agrave Uring -18 KPX Agrave V -74 KPX Agrave W -74 KPX Agrave Y -91 KPX Agrave Yacute -91 KPX Agrave Ydieresis -91 KPX Agrave quotedblright -74 KPX Agrave quoteright -74 KPX Agrave v -18 KPX Agrave w -18 KPX Agrave y -18 KPX Agrave yacute -18 KPX Agrave ydieresis -18 KPX Amacron T -55 KPX Amacron Tcaron -55 KPX Amacron Tcommaaccent -55 KPX Amacron U -18 KPX Amacron Uacute -18 KPX Amacron Ucircumflex -18 KPX Amacron Udieresis -18 KPX Amacron Ugrave -18 KPX Amacron Uhungarumlaut -18 KPX Amacron Umacron -18 KPX Amacron Uogonek -18 KPX Amacron Uring -18 KPX Amacron V -74 KPX Amacron W -74 KPX Amacron Y -91 KPX Amacron Yacute -91 KPX Amacron Ydieresis -91 KPX Amacron quotedblright -74 KPX Amacron quoteright -74 KPX Amacron v -18 KPX Amacron w -18 KPX Amacron y -18 KPX Amacron yacute -18 KPX Amacron ydieresis -18 KPX Aogonek T -55 KPX Aogonek Tcaron -55 KPX Aogonek Tcommaaccent -55 KPX Aogonek U -18 KPX Aogonek Uacute -18 KPX Aogonek Ucircumflex -18 KPX Aogonek Udieresis -18 KPX Aogonek Ugrave -18 KPX Aogonek Uhungarumlaut -18 KPX Aogonek Umacron -18 KPX Aogonek Uogonek -18 KPX Aogonek Uring -18 KPX Aogonek V -74 KPX Aogonek W -74 KPX Aogonek Y -91 KPX Aogonek Yacute -91 KPX Aogonek Ydieresis -91 KPX Aogonek quotedblright -74 KPX Aogonek quoteright -74 KPX Aogonek v -18 KPX Aogonek w -18 KPX Aring T -55 KPX Aring Tcaron -55 KPX Aring Tcommaaccent -55 KPX Aring U -18 KPX Aring Uacute -18 KPX Aring Ucircumflex -18 KPX Aring Udieresis -18 KPX Aring Ugrave -18 KPX Aring Uhungarumlaut -18 KPX Aring Umacron -18 KPX Aring Uogonek -18 KPX Aring Uring -18 KPX Aring V -74 KPX Aring W -74 KPX Aring Y -91 KPX Aring Yacute -91 KPX Aring Ydieresis -91 KPX Aring quotedblright -74 KPX Aring quoteright -74 KPX Aring v -18 KPX Aring w -18 KPX Aring y -18 KPX Aring yacute -18 KPX Aring ydieresis -18 KPX Atilde T -55 KPX Atilde Tcaron -55 KPX Atilde Tcommaaccent -55 KPX Atilde U -18 KPX Atilde Uacute -18 KPX Atilde Ucircumflex -18 KPX Atilde Udieresis -18 KPX Atilde Ugrave -18 KPX Atilde Uhungarumlaut -18 KPX Atilde Umacron -18 KPX Atilde Uogonek -18 KPX Atilde Uring -18 KPX Atilde V -74 KPX Atilde W -74 KPX Atilde Y -91 KPX Atilde Yacute -91 KPX Atilde Ydieresis -91 KPX Atilde quotedblright -74 KPX Atilde quoteright -74 KPX Atilde v -18 KPX Atilde w -18 KPX Atilde y -18 KPX Atilde yacute -18 KPX Atilde ydieresis -18 KPX C comma -18 KPX C period -18 KPX Cacute comma -18 KPX Cacute period -18 KPX Ccaron comma -18 KPX Ccaron period -18 KPX Ccedilla comma -18 KPX Ccedilla period -18 KPX D comma -25 KPX D period -25 KPX Dcaron comma -25 KPX Dcaron period -25 KPX Dcroat comma -25 KPX Dcroat period -25 KPX F a -74 KPX F aacute -74 KPX F abreve -74 KPX F acircumflex -74 KPX F adieresis -74 KPX F agrave -74 KPX F amacron -74 KPX F aogonek -74 KPX F aring -74 KPX F atilde -74 KPX F comma -125 KPX F e -55 KPX F eacute -55 KPX F ecaron -55 KPX F ecircumflex -55 KPX F edieresis -55 KPX F edotaccent -55 KPX F egrave -55 KPX F emacron -55 KPX F eogonek -55 KPX F i -18 KPX F iacute -18 KPX F icircumflex -18 KPX F idieresis -18 KPX F igrave -18 KPX F imacron -18 KPX F iogonek -18 KPX F o -55 KPX F oacute -55 KPX F ocircumflex -55 KPX F odieresis -55 KPX F ograve -55 KPX F ohungarumlaut -55 KPX F omacron -55 KPX F oslash -55 KPX F otilde -55 KPX F period -125 KPX F r -18 KPX F racute -18 KPX F rcaron -18 KPX F rcommaaccent -18 KPX J A -18 KPX J Aacute -18 KPX J Abreve -18 KPX J Acircumflex -18 KPX J Adieresis -18 KPX J Agrave -18 KPX J Amacron -18 KPX J Aogonek -18 KPX J Aring -18 KPX J Atilde -18 KPX J a -18 KPX J aacute -18 KPX J abreve -18 KPX J acircumflex -18 KPX J adieresis -18 KPX J agrave -18 KPX J amacron -18 KPX J aogonek -18 KPX J aring -18 KPX J atilde -18 KPX J comma -55 KPX J e -18 KPX J eacute -18 KPX J ecaron -18 KPX J ecircumflex -18 KPX J edieresis -18 KPX J edotaccent -18 KPX J egrave -18 KPX J emacron -18 KPX J eogonek -18 KPX J o -18 KPX J oacute -18 KPX J ocircumflex -18 KPX J odieresis -18 KPX J ograve -18 KPX J ohungarumlaut -18 KPX J omacron -18 KPX J oslash -18 KPX J otilde -18 KPX J period -55 KPX J u -18 KPX J uacute -18 KPX J ucircumflex -18 KPX J udieresis -18 KPX J ugrave -18 KPX J uhungarumlaut -18 KPX J umacron -18 KPX J uogonek -18 KPX J uring -18 KPX K u -18 KPX K uacute -18 KPX K ucircumflex -18 KPX K udieresis -18 KPX K ugrave -18 KPX K uhungarumlaut -18 KPX K umacron -18 KPX K uogonek -18 KPX K uring -18 KPX K y -25 KPX K yacute -25 KPX K ydieresis -25 KPX Kcommaaccent u -18 KPX Kcommaaccent uacute -18 KPX Kcommaaccent ucircumflex -18 KPX Kcommaaccent udieresis -18 KPX Kcommaaccent ugrave -18 KPX Kcommaaccent uhungarumlaut -18 KPX Kcommaaccent umacron -18 KPX Kcommaaccent uogonek -18 KPX Kcommaaccent uring -18 KPX Kcommaaccent y -25 KPX Kcommaaccent yacute -25 KPX Kcommaaccent ydieresis -25 KPX L T -100 KPX L Tcaron -100 KPX L Tcommaaccent -100 KPX L V -100 KPX L W -74 KPX L Y -74 KPX L Yacute -74 KPX L Ydieresis -74 KPX L quotedblright -100 KPX L quoteright -100 KPX L y -25 KPX L yacute -25 KPX L ydieresis -25 KPX Lacute T -100 KPX Lacute Tcaron -100 KPX Lacute Tcommaaccent -100 KPX Lacute V -100 KPX Lacute W -74 KPX Lacute Y -74 KPX Lacute Yacute -74 KPX Lacute Ydieresis -74 KPX Lacute quotedblright -100 KPX Lacute quoteright -100 KPX Lacute y -25 KPX Lacute yacute -25 KPX Lacute ydieresis -25 KPX Lcommaaccent T -100 KPX Lcommaaccent Tcaron -100 KPX Lcommaaccent Tcommaaccent -100 KPX Lcommaaccent V -100 KPX Lcommaaccent W -74 KPX Lcommaaccent Y -74 KPX Lcommaaccent Yacute -74 KPX Lcommaaccent Ydieresis -74 KPX Lcommaaccent quotedblright -100 KPX Lcommaaccent quoteright -100 KPX Lcommaaccent y -25 KPX Lcommaaccent yacute -25 KPX Lcommaaccent ydieresis -25 KPX Lslash T -100 KPX Lslash Tcaron -100 KPX Lslash Tcommaaccent -100 KPX Lslash V -100 KPX Lslash W -74 KPX Lslash Y -74 KPX Lslash Yacute -74 KPX Lslash Ydieresis -74 KPX Lslash quotedblright -100 KPX Lslash quoteright -100 KPX Lslash y -25 KPX Lslash yacute -25 KPX Lslash ydieresis -25 KPX N comma -18 KPX N period -18 KPX Nacute comma -18 KPX Nacute period -18 KPX Ncaron comma -18 KPX Ncaron period -18 KPX Ncommaaccent comma -18 KPX Ncommaaccent period -18 KPX Ntilde comma -18 KPX Ntilde period -18 KPX O T 10 KPX O Tcaron 10 KPX O Tcommaaccent 10 KPX O comma -25 KPX O period -25 KPX Oacute T 10 KPX Oacute Tcaron 10 KPX Oacute Tcommaaccent 10 KPX Oacute comma -25 KPX Oacute period -25 KPX Ocircumflex T 10 KPX Ocircumflex Tcaron 10 KPX Ocircumflex Tcommaaccent 10 KPX Ocircumflex comma -25 KPX Ocircumflex period -25 KPX Odieresis T 10 KPX Odieresis Tcaron 10 KPX Odieresis Tcommaaccent 10 KPX Odieresis comma -25 KPX Odieresis period -25 KPX Ograve T 10 KPX Ograve Tcaron 10 KPX Ograve Tcommaaccent 10 KPX Ograve comma -25 KPX Ograve period -25 KPX Ohungarumlaut T 10 KPX Ohungarumlaut Tcaron 10 KPX Ohungarumlaut Tcommaaccent 10 KPX Ohungarumlaut comma -25 KPX Ohungarumlaut period -25 KPX Omacron T 10 KPX Omacron Tcaron 10 KPX Omacron Tcommaaccent 10 KPX Omacron comma -25 KPX Omacron period -25 KPX Oslash T 10 KPX Oslash Tcaron 10 KPX Oslash Tcommaaccent 10 KPX Oslash comma -25 KPX Oslash period -25 KPX Otilde T 10 KPX Otilde Tcaron 10 KPX Otilde Tcommaaccent 10 KPX Otilde comma -25 KPX Otilde period -25 KPX P A -74 KPX P Aacute -74 KPX P Abreve -74 KPX P Acircumflex -74 KPX P Adieresis -74 KPX P Agrave -74 KPX P Amacron -74 KPX P Aogonek -74 KPX P Aring -74 KPX P Atilde -74 KPX P a -55 KPX P aacute -55 KPX P abreve -55 KPX P acircumflex -55 KPX P adieresis -55 KPX P agrave -55 KPX P amacron -55 KPX P aogonek -55 KPX P aring -55 KPX P atilde -55 KPX P comma -150 KPX P e -55 KPX P eacute -55 KPX P ecaron -55 KPX P ecircumflex -55 KPX P edieresis -55 KPX P edotaccent -55 KPX P egrave -55 KPX P emacron -55 KPX P eogonek -55 KPX P o -55 KPX P oacute -55 KPX P ocircumflex -55 KPX P odieresis -55 KPX P ograve -55 KPX P ohungarumlaut -55 KPX P omacron -55 KPX P oslash -55 KPX P otilde -55 KPX P period -150 KPX S comma -18 KPX S period -18 KPX Sacute comma -18 KPX Sacute period -18 KPX Scaron comma -18 KPX Scaron period -18 KPX Scedilla comma -18 KPX Scedilla period -18 KPX Scommaaccent comma -18 KPX Scommaaccent period -18 KPX T A -55 KPX T Aacute -55 KPX T Abreve -55 KPX T Acircumflex -55 KPX T Adieresis -55 KPX T Agrave -55 KPX T Amacron -55 KPX T Aogonek -55 KPX T Aring -55 KPX T Atilde -55 KPX T O 10 KPX T Oacute 10 KPX T Ocircumflex 10 KPX T Odieresis 10 KPX T Ograve 10 KPX T Ohungarumlaut 10 KPX T Omacron 10 KPX T Oslash 10 KPX T Otilde 10 KPX T a -74 KPX T aacute -74 KPX T abreve -74 KPX T acircumflex -74 KPX T adieresis -74 KPX T agrave -74 KPX T amacron -74 KPX T aogonek -74 KPX T aring -74 KPX T atilde -74 KPX T comma -100 KPX T e -74 KPX T eacute -74 KPX T ecaron -74 KPX T ecircumflex -74 KPX T edieresis -74 KPX T edotaccent -74 KPX T egrave -74 KPX T emacron -74 KPX T eogonek -74 KPX T hyphen -125 KPX T i -18 KPX T iacute -18 KPX T icircumflex -18 KPX T idieresis -18 KPX T igrave -18 KPX T imacron -18 KPX T iogonek -18 KPX T o -74 KPX T oacute -74 KPX T ocircumflex -74 KPX T odieresis -74 KPX T ograve -74 KPX T ohungarumlaut -74 KPX T omacron -74 KPX T oslash -74 KPX T otilde -74 KPX T period -100 KPX T r -18 KPX T racute -18 KPX T rcaron -18 KPX T rcommaaccent -18 KPX T u -18 KPX T uacute -18 KPX T ucircumflex -18 KPX T udieresis -18 KPX T ugrave -18 KPX T uhungarumlaut -18 KPX T umacron -18 KPX T uogonek -18 KPX T uring -18 KPX Tcaron A -55 KPX Tcaron Aacute -55 KPX Tcaron Abreve -55 KPX Tcaron Acircumflex -55 KPX Tcaron Adieresis -55 KPX Tcaron Agrave -55 KPX Tcaron Amacron -55 KPX Tcaron Aogonek -55 KPX Tcaron Aring -55 KPX Tcaron Atilde -55 KPX Tcaron O 10 KPX Tcaron Oacute 10 KPX Tcaron Ocircumflex 10 KPX Tcaron Odieresis 10 KPX Tcaron Ograve 10 KPX Tcaron Ohungarumlaut 10 KPX Tcaron Omacron 10 KPX Tcaron Oslash 10 KPX Tcaron Otilde 10 KPX Tcaron a -74 KPX Tcaron aacute -74 KPX Tcaron abreve -74 KPX Tcaron acircumflex -74 KPX Tcaron adieresis -74 KPX Tcaron agrave -74 KPX Tcaron amacron -74 KPX Tcaron aogonek -74 KPX Tcaron aring -74 KPX Tcaron atilde -74 KPX Tcaron comma -100 KPX Tcaron e -74 KPX Tcaron eacute -74 KPX Tcaron ecaron -74 KPX Tcaron ecircumflex -74 KPX Tcaron edieresis -74 KPX Tcaron edotaccent -74 KPX Tcaron egrave -74 KPX Tcaron emacron -74 KPX Tcaron eogonek -74 KPX Tcaron hyphen -125 KPX Tcaron i -18 KPX Tcaron iacute -18 KPX Tcaron icircumflex -18 KPX Tcaron idieresis -18 KPX Tcaron igrave -18 KPX Tcaron imacron -18 KPX Tcaron iogonek -18 KPX Tcaron o -74 KPX Tcaron oacute -74 KPX Tcaron ocircumflex -74 KPX Tcaron odieresis -74 KPX Tcaron ograve -74 KPX Tcaron ohungarumlaut -74 KPX Tcaron omacron -74 KPX Tcaron oslash -74 KPX Tcaron otilde -74 KPX Tcaron period -100 KPX Tcaron r -18 KPX Tcaron racute -18 KPX Tcaron rcaron -18 KPX Tcaron rcommaaccent -18 KPX Tcaron u -18 KPX Tcaron uacute -18 KPX Tcaron ucircumflex -18 KPX Tcaron udieresis -18 KPX Tcaron ugrave -18 KPX Tcaron uhungarumlaut -18 KPX Tcaron umacron -18 KPX Tcaron uogonek -18 KPX Tcaron uring -18 KPX Tcommaaccent A -55 KPX Tcommaaccent Aacute -55 KPX Tcommaaccent Abreve -55 KPX Tcommaaccent Acircumflex -55 KPX Tcommaaccent Adieresis -55 KPX Tcommaaccent Agrave -55 KPX Tcommaaccent Amacron -55 KPX Tcommaaccent Aogonek -55 KPX Tcommaaccent Aring -55 KPX Tcommaaccent Atilde -55 KPX Tcommaaccent O 10 KPX Tcommaaccent Oacute 10 KPX Tcommaaccent Ocircumflex 10 KPX Tcommaaccent Odieresis 10 KPX Tcommaaccent Ograve 10 KPX Tcommaaccent Ohungarumlaut 10 KPX Tcommaaccent Omacron 10 KPX Tcommaaccent Oslash 10 KPX Tcommaaccent Otilde 10 KPX Tcommaaccent a -74 KPX Tcommaaccent aacute -74 KPX Tcommaaccent abreve -74 KPX Tcommaaccent acircumflex -74 KPX Tcommaaccent adieresis -74 KPX Tcommaaccent agrave -74 KPX Tcommaaccent amacron -74 KPX Tcommaaccent aogonek -74 KPX Tcommaaccent aring -74 KPX Tcommaaccent atilde -74 KPX Tcommaaccent comma -100 KPX Tcommaaccent e -74 KPX Tcommaaccent eacute -74 KPX Tcommaaccent ecaron -74 KPX Tcommaaccent ecircumflex -74 KPX Tcommaaccent edieresis -74 KPX Tcommaaccent edotaccent -74 KPX Tcommaaccent egrave -74 KPX Tcommaaccent emacron -74 KPX Tcommaaccent eogonek -74 KPX Tcommaaccent hyphen -125 KPX Tcommaaccent i -18 KPX Tcommaaccent iacute -18 KPX Tcommaaccent icircumflex -18 KPX Tcommaaccent idieresis -18 KPX Tcommaaccent igrave -18 KPX Tcommaaccent imacron -18 KPX Tcommaaccent iogonek -18 KPX Tcommaaccent o -74 KPX Tcommaaccent oacute -74 KPX Tcommaaccent ocircumflex -74 KPX Tcommaaccent odieresis -74 KPX Tcommaaccent ograve -74 KPX Tcommaaccent ohungarumlaut -74 KPX Tcommaaccent omacron -74 KPX Tcommaaccent oslash -74 KPX Tcommaaccent otilde -74 KPX Tcommaaccent period -100 KPX Tcommaaccent r -18 KPX Tcommaaccent racute -18 KPX Tcommaaccent rcaron -18 KPX Tcommaaccent rcommaaccent -18 KPX Tcommaaccent u -18 KPX Tcommaaccent uacute -18 KPX Tcommaaccent ucircumflex -18 KPX Tcommaaccent udieresis -18 KPX Tcommaaccent ugrave -18 KPX Tcommaaccent uhungarumlaut -18 KPX Tcommaaccent umacron -18 KPX Tcommaaccent uogonek -18 KPX Tcommaaccent uring -18 KPX U A -18 KPX U Aacute -18 KPX U Abreve -18 KPX U Acircumflex -18 KPX U Adieresis -18 KPX U Agrave -18 KPX U Amacron -18 KPX U Aogonek -18 KPX U Aring -18 KPX U Atilde -18 KPX U comma -25 KPX U period -25 KPX Uacute A -18 KPX Uacute Aacute -18 KPX Uacute Abreve -18 KPX Uacute Acircumflex -18 KPX Uacute Adieresis -18 KPX Uacute Agrave -18 KPX Uacute Amacron -18 KPX Uacute Aogonek -18 KPX Uacute Aring -18 KPX Uacute Atilde -18 KPX Uacute comma -25 KPX Uacute period -25 KPX Ucircumflex A -18 KPX Ucircumflex Aacute -18 KPX Ucircumflex Abreve -18 KPX Ucircumflex Acircumflex -18 KPX Ucircumflex Adieresis -18 KPX Ucircumflex Agrave -18 KPX Ucircumflex Amacron -18 KPX Ucircumflex Aogonek -18 KPX Ucircumflex Aring -18 KPX Ucircumflex Atilde -18 KPX Ucircumflex comma -25 KPX Ucircumflex period -25 KPX Udieresis A -18 KPX Udieresis Aacute -18 KPX Udieresis Abreve -18 KPX Udieresis Acircumflex -18 KPX Udieresis Adieresis -18 KPX Udieresis Agrave -18 KPX Udieresis Amacron -18 KPX Udieresis Aogonek -18 KPX Udieresis Aring -18 KPX Udieresis Atilde -18 KPX Udieresis comma -25 KPX Udieresis period -25 KPX Ugrave A -18 KPX Ugrave Aacute -18 KPX Ugrave Abreve -18 KPX Ugrave Acircumflex -18 KPX Ugrave Adieresis -18 KPX Ugrave Agrave -18 KPX Ugrave Amacron -18 KPX Ugrave Aogonek -18 KPX Ugrave Aring -18 KPX Ugrave Atilde -18 KPX Ugrave comma -25 KPX Ugrave period -25 KPX Uhungarumlaut A -18 KPX Uhungarumlaut Aacute -18 KPX Uhungarumlaut Abreve -18 KPX Uhungarumlaut Acircumflex -18 KPX Uhungarumlaut Adieresis -18 KPX Uhungarumlaut Agrave -18 KPX Uhungarumlaut Amacron -18 KPX Uhungarumlaut Aogonek -18 KPX Uhungarumlaut Aring -18 KPX Uhungarumlaut Atilde -18 KPX Uhungarumlaut comma -25 KPX Uhungarumlaut period -25 KPX Umacron A -18 KPX Umacron Aacute -18 KPX Umacron Abreve -18 KPX Umacron Acircumflex -18 KPX Umacron Adieresis -18 KPX Umacron Agrave -18 KPX Umacron Amacron -18 KPX Umacron Aogonek -18 KPX Umacron Aring -18 KPX Umacron Atilde -18 KPX Umacron comma -25 KPX Umacron period -25 KPX Uogonek A -18 KPX Uogonek Aacute -18 KPX Uogonek Abreve -18 KPX Uogonek Acircumflex -18 KPX Uogonek Adieresis -18 KPX Uogonek Agrave -18 KPX Uogonek Amacron -18 KPX Uogonek Aogonek -18 KPX Uogonek Aring -18 KPX Uogonek Atilde -18 KPX Uogonek comma -25 KPX Uogonek period -25 KPX Uring A -18 KPX Uring Aacute -18 KPX Uring Abreve -18 KPX Uring Acircumflex -18 KPX Uring Adieresis -18 KPX Uring Agrave -18 KPX Uring Amacron -18 KPX Uring Aogonek -18 KPX Uring Aring -18 KPX Uring Atilde -18 KPX Uring comma -25 KPX Uring period -25 KPX V A -74 KPX V Aacute -74 KPX V Abreve -74 KPX V Acircumflex -74 KPX V Adieresis -74 KPX V Agrave -74 KPX V Amacron -74 KPX V Aogonek -74 KPX V Aring -74 KPX V Atilde -74 KPX V a -74 KPX V aacute -74 KPX V abreve -74 KPX V acircumflex -74 KPX V adieresis -74 KPX V agrave -74 KPX V amacron -74 KPX V aogonek -74 KPX V aring -74 KPX V atilde -74 KPX V colon -37 KPX V comma -125 KPX V e -74 KPX V eacute -74 KPX V ecaron -74 KPX V ecircumflex -74 KPX V edieresis -74 KPX V edotaccent -74 KPX V egrave -74 KPX V emacron -74 KPX V eogonek -74 KPX V hyphen -100 KPX V i -18 KPX V iacute -18 KPX V icircumflex -18 KPX V idieresis -18 KPX V igrave -18 KPX V imacron -18 KPX V iogonek -18 KPX V o -74 KPX V oacute -74 KPX V ocircumflex -74 KPX V odieresis -74 KPX V ograve -74 KPX V ohungarumlaut -74 KPX V omacron -74 KPX V oslash -74 KPX V otilde -74 KPX V period -125 KPX V semicolon -37 KPX V u -55 KPX V uacute -55 KPX V ucircumflex -55 KPX V udieresis -55 KPX V ugrave -55 KPX V uhungarumlaut -55 KPX V umacron -55 KPX V uogonek -55 KPX V uring -55 KPX W A -74 KPX W Aacute -74 KPX W Abreve -74 KPX W Acircumflex -74 KPX W Adieresis -74 KPX W Agrave -74 KPX W Amacron -74 KPX W Aogonek -74 KPX W Aring -74 KPX W Atilde -74 KPX W a -74 KPX W aacute -74 KPX W abreve -74 KPX W acircumflex -74 KPX W adieresis -74 KPX W agrave -74 KPX W amacron -74 KPX W aogonek -74 KPX W aring -74 KPX W atilde -74 KPX W colon -55 KPX W comma -100 KPX W e -74 KPX W eacute -74 KPX W ecaron -74 KPX W ecircumflex -74 KPX W edieresis -74 KPX W edotaccent -74 KPX W egrave -74 KPX W emacron -74 KPX W eogonek -74 KPX W hyphen -100 KPX W i -18 KPX W iacute -18 KPX W icircumflex -18 KPX W idieresis -18 KPX W igrave -18 KPX W imacron -18 KPX W iogonek -18 KPX W o -74 KPX W oacute -74 KPX W ocircumflex -74 KPX W odieresis -74 KPX W ograve -74 KPX W ohungarumlaut -74 KPX W omacron -74 KPX W oslash -74 KPX W otilde -74 KPX W period -100 KPX W semicolon -55 KPX W u -37 KPX W uacute -37 KPX W ucircumflex -37 KPX W udieresis -37 KPX W ugrave -37 KPX W uhungarumlaut -37 KPX W umacron -37 KPX W uogonek -37 KPX W uring -37 KPX W y -25 KPX W yacute -25 KPX W ydieresis -25 KPX Y A -91 KPX Y Aacute -91 KPX Y Abreve -91 KPX Y Acircumflex -91 KPX Y Adieresis -91 KPX Y Agrave -91 KPX Y Amacron -91 KPX Y Aogonek -91 KPX Y Aring -91 KPX Y Atilde -91 KPX Y a -100 KPX Y aacute -100 KPX Y abreve -100 KPX Y acircumflex -100 KPX Y adieresis -100 KPX Y agrave -100 KPX Y amacron -100 KPX Y aogonek -100 KPX Y aring -100 KPX Y atilde -100 KPX Y colon -25 KPX Y comma -100 KPX Y e -100 KPX Y eacute -100 KPX Y ecaron -40 KPX Y ecircumflex -100 KPX Y edieresis -40 KPX Y edotaccent -100 KPX Y egrave -40 KPX Y emacron -40 KPX Y eogonek -100 KPX Y hyphen -125 KPX Y i -18 KPX Y iacute -18 KPX Y icircumflex -18 KPX Y iogonek -18 KPX Y o -100 KPX Y oacute -100 KPX Y ocircumflex -100 KPX Y odieresis -40 KPX Y ograve -40 KPX Y ohungarumlaut -100 KPX Y omacron -40 KPX Y oslash -100 KPX Y otilde -100 KPX Y period -100 KPX Y semicolon -25 KPX Y u -55 KPX Y uacute -55 KPX Y ucircumflex -55 KPX Y udieresis -55 KPX Y ugrave -55 KPX Y uhungarumlaut -55 KPX Y umacron -55 KPX Y uogonek -55 KPX Y uring -55 KPX Yacute A -91 KPX Yacute Aacute -91 KPX Yacute Abreve -91 KPX Yacute Acircumflex -91 KPX Yacute Adieresis -91 KPX Yacute Agrave -91 KPX Yacute Amacron -91 KPX Yacute Aogonek -91 KPX Yacute Aring -91 KPX Yacute Atilde -91 KPX Yacute a -100 KPX Yacute aacute -100 KPX Yacute abreve -100 KPX Yacute acircumflex -100 KPX Yacute adieresis -100 KPX Yacute agrave -100 KPX Yacute amacron -100 KPX Yacute aogonek -100 KPX Yacute aring -100 KPX Yacute atilde -100 KPX Yacute colon -25 KPX Yacute comma -100 KPX Yacute e -100 KPX Yacute eacute -100 KPX Yacute ecaron -40 KPX Yacute ecircumflex -100 KPX Yacute edieresis -40 KPX Yacute edotaccent -100 KPX Yacute egrave -40 KPX Yacute emacron -40 KPX Yacute eogonek -100 KPX Yacute hyphen -125 KPX Yacute i -18 KPX Yacute iacute -18 KPX Yacute icircumflex -18 KPX Yacute iogonek -18 KPX Yacute o -100 KPX Yacute oacute -100 KPX Yacute ocircumflex -100 KPX Yacute odieresis -40 KPX Yacute ograve -40 KPX Yacute ohungarumlaut -100 KPX Yacute omacron -40 KPX Yacute oslash -100 KPX Yacute otilde -100 KPX Yacute period -100 KPX Yacute semicolon -25 KPX Yacute u -55 KPX Yacute uacute -55 KPX Yacute ucircumflex -55 KPX Yacute udieresis -55 KPX Yacute ugrave -55 KPX Yacute uhungarumlaut -55 KPX Yacute umacron -55 KPX Yacute uogonek -55 KPX Yacute uring -55 KPX Ydieresis A -91 KPX Ydieresis Aacute -91 KPX Ydieresis Abreve -91 KPX Ydieresis Acircumflex -91 KPX Ydieresis Adieresis -91 KPX Ydieresis Agrave -91 KPX Ydieresis Amacron -91 KPX Ydieresis Aogonek -91 KPX Ydieresis Aring -91 KPX Ydieresis Atilde -91 KPX Ydieresis a -100 KPX Ydieresis aacute -100 KPX Ydieresis abreve -100 KPX Ydieresis acircumflex -100 KPX Ydieresis adieresis -100 KPX Ydieresis agrave -100 KPX Ydieresis amacron -100 KPX Ydieresis aogonek -100 KPX Ydieresis aring -100 KPX Ydieresis atilde -100 KPX Ydieresis colon -25 KPX Ydieresis comma -100 KPX Ydieresis e -100 KPX Ydieresis eacute -100 KPX Ydieresis ecaron -40 KPX Ydieresis ecircumflex -100 KPX Ydieresis edieresis -40 KPX Ydieresis edotaccent -100 KPX Ydieresis egrave -40 KPX Ydieresis emacron -40 KPX Ydieresis eogonek -100 KPX Ydieresis hyphen -125 KPX Ydieresis i -18 KPX Ydieresis iacute -18 KPX Ydieresis icircumflex -18 KPX Ydieresis iogonek -18 KPX Ydieresis o -100 KPX Ydieresis oacute -100 KPX Ydieresis ocircumflex -100 KPX Ydieresis odieresis -40 KPX Ydieresis ograve -40 KPX Ydieresis ohungarumlaut -100 KPX Ydieresis omacron -40 KPX Ydieresis oslash -100 KPX Ydieresis otilde -100 KPX Ydieresis period -100 KPX Ydieresis semicolon -25 KPX Ydieresis u -55 KPX Ydieresis uacute -55 KPX Ydieresis ucircumflex -55 KPX Ydieresis udieresis -55 KPX Ydieresis ugrave -55 KPX Ydieresis uhungarumlaut -55 KPX Ydieresis umacron -55 KPX Ydieresis uogonek -55 KPX Ydieresis uring -55 KPX colon space -18 KPX comma quotedblright -18 KPX comma quoteright -18 KPX comma space -18 KPX f quotedblright 75 KPX f quoteright 75 KPX period quotedblright -18 KPX period quoteright -18 KPX period space -18 KPX quotedblleft A -74 KPX quotedblleft Aacute -74 KPX quotedblleft Abreve -74 KPX quotedblleft Acircumflex -74 KPX quotedblleft Adieresis -74 KPX quotedblleft Agrave -74 KPX quotedblleft Amacron -74 KPX quotedblleft Aogonek -74 KPX quotedblleft Aring -74 KPX quotedblleft Atilde -74 KPX quotedblright space -18 KPX quoteleft A -74 KPX quoteleft Aacute -74 KPX quoteleft Abreve -74 KPX quoteleft Acircumflex -74 KPX quoteleft Adieresis -74 KPX quoteleft Agrave -74 KPX quoteleft Amacron -74 KPX quoteleft Aogonek -74 KPX quoteleft Aring -74 KPX quoteleft Atilde -74 KPX quoteright d -25 KPX quoteright dcroat -25 KPX quoteright s -25 KPX quoteright sacute -25 KPX quoteright scaron -25 KPX quoteright scedilla -25 KPX quoteright scommaaccent -25 KPX r comma -74 KPX r period -74 KPX racute comma -74 KPX racute period -74 KPX rcaron comma -74 KPX rcaron period -74 KPX rcommaaccent comma -74 KPX rcommaaccent period -74 KPX semicolon space -18 KPX space A -18 KPX space Aacute -18 KPX space Abreve -18 KPX space Acircumflex -18 KPX space Adieresis -18 KPX space Agrave -18 KPX space Amacron -18 KPX space Aogonek -18 KPX space Aring -18 KPX space Atilde -18 KPX space T -18 KPX space Tcaron -18 KPX space Tcommaaccent -18 KPX space V -18 KPX space W -18 KPX space Y -18 KPX space Yacute -18 KPX space Ydieresis -18 KPX space quotedblleft -18 KPX space quoteleft -18 KPX v comma -100 KPX v period -100 KPX w comma -100 KPX w period -100 KPX y comma -100 KPX y period -100 KPX yacute comma -100 KPX yacute period -100 KPX ydieresis comma -100 KPX ydieresis period -100 EndKernPairs EndKernData EndFontMetrics a2ps-4.14/afm/pncbi.afm0000644000175000017500000021366010674334153014166 0ustar mhattamhattaStartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1989, 1991, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Thu May 1 14:34:01 1997 Comment UniqueID 43097 Comment VMusage 44127 55152 FontName NewCenturySchlbk-BoldItalic FullName New Century Schoolbook Bold Italic FamilyName New Century Schoolbook Weight Bold ItalicAngle -16 IsFixedPitch false FontBBox -205 -250 1147 991 UnderlinePosition -100 UnderlineThickness 50 Version 002.000 Notice Copyright (c) 1985, 1987, 1989, 1991, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved. EncodingScheme AdobeStandardEncoding CapHeight 722 XHeight 477 Ascender 737 Descender -205 StdHW 54 StdVW 150 StartCharMetrics 314 C 32 ; WX 287 ; N space ; B 0 0 0 0 ; C 33 ; WX 333 ; N exclam ; B 0 -15 333 737 ; C 34 ; WX 400 ; N quotedbl ; B 66 388 428 737 ; C 35 ; WX 574 ; N numbersign ; B 30 0 544 690 ; C 36 ; WX 574 ; N dollar ; B 9 -120 565 810 ; C 37 ; WX 889 ; N percent ; B 54 -28 835 727 ; C 38 ; WX 889 ; N ampersand ; B 32 -15 823 737 ; C 39 ; WX 259 ; N quoteright ; B 48 388 275 737 ; C 40 ; WX 407 ; N parenleft ; B 72 -117 454 745 ; C 41 ; WX 407 ; N parenright ; B -70 -117 310 745 ; C 42 ; WX 500 ; N asterisk ; B 58 301 498 737 ; C 43 ; WX 606 ; N plus ; B 50 0 556 506 ; C 44 ; WX 287 ; N comma ; B -57 -192 170 157 ; C 45 ; WX 333 ; N hyphen ; B 2 177 263 299 ; C 46 ; WX 287 ; N period ; B -20 -15 152 157 ; C 47 ; WX 278 ; N slash ; B -41 -15 320 737 ; C 48 ; WX 574 ; N zero ; B 21 -15 553 705 ; C 49 ; WX 574 ; N one ; B 25 0 489 705 ; C 50 ; WX 574 ; N two ; B -38 -3 538 705 ; C 51 ; WX 574 ; N three ; B -7 -15 536 705 ; C 52 ; WX 574 ; N four ; B -13 0 544 705 ; C 53 ; WX 574 ; N five ; B 0 -15 574 705 ; C 54 ; WX 574 ; N six ; B 31 -15 574 705 ; C 55 ; WX 574 ; N seven ; B 64 -15 593 705 ; C 56 ; WX 574 ; N eight ; B 0 -15 552 705 ; C 57 ; WX 574 ; N nine ; B 0 -15 543 705 ; C 58 ; WX 287 ; N colon ; B -20 -15 237 477 ; C 59 ; WX 287 ; N semicolon ; B -57 -192 237 477 ; C 60 ; WX 606 ; N less ; B 50 -9 556 515 ; C 61 ; WX 606 ; N equal ; B 50 103 556 403 ; C 62 ; WX 606 ; N greater ; B 50 -8 556 514 ; C 63 ; WX 481 ; N question ; B 79 -15 451 737 ; C 64 ; WX 747 ; N at ; B -4 -15 751 737 ; C 65 ; WX 741 ; N A ; B -75 0 716 737 ; C 66 ; WX 759 ; N B ; B -50 0 721 722 ; C 67 ; WX 759 ; N C ; B 37 -15 759 737 ; C 68 ; WX 833 ; N D ; B -47 0 796 722 ; C 69 ; WX 741 ; N E ; B -41 0 730 722 ; C 70 ; WX 704 ; N F ; B -41 0 730 722 ; C 71 ; WX 815 ; N G ; B 37 -15 805 737 ; C 72 ; WX 870 ; N H ; B -41 0 911 722 ; C 73 ; WX 444 ; N I ; B -41 0 485 722 ; C 74 ; WX 667 ; N J ; B -20 -15 708 722 ; C 75 ; WX 778 ; N K ; B -41 0 832 722 ; C 76 ; WX 704 ; N L ; B -41 0 670 722 ; C 77 ; WX 944 ; N M ; B -44 0 988 722 ; C 78 ; WX 852 ; N N ; B -61 -10 913 722 ; C 79 ; WX 833 ; N O ; B 37 -15 796 737 ; C 80 ; WX 741 ; N P ; B -41 0 730 722 ; C 81 ; WX 833 ; N Q ; B 37 -189 796 737 ; C 82 ; WX 796 ; N R ; B -41 -15 749 722 ; C 83 ; WX 685 ; N S ; B 1 -15 666 737 ; C 84 ; WX 722 ; N T ; B 41 0 759 722 ; C 85 ; WX 833 ; N U ; B 88 -15 900 722 ; C 86 ; WX 741 ; N V ; B 32 -10 802 722 ; C 87 ; WX 944 ; N W ; B 40 -10 1000 722 ; C 88 ; WX 741 ; N X ; B -82 0 801 722 ; C 89 ; WX 704 ; N Y ; B 13 0 775 722 ; C 90 ; WX 704 ; N Z ; B -33 0 711 722 ; C 91 ; WX 407 ; N bracketleft ; B 1 -109 464 737 ; C 92 ; WX 606 ; N backslash ; B 161 -15 445 737 ; C 93 ; WX 407 ; N bracketright ; B -101 -109 362 737 ; C 94 ; WX 606 ; N asciicircum ; B 66 325 540 690 ; C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; C 96 ; WX 259 ; N quoteleft ; B 47 388 274 737 ; C 97 ; WX 667 ; N a ; B 6 -15 636 477 ; C 98 ; WX 611 ; N b ; B 29 -15 557 737 ; C 99 ; WX 537 ; N c ; B 0 -15 482 477 ; C 100 ; WX 667 ; N d ; B 0 -15 660 737 ; C 101 ; WX 519 ; N e ; B 0 -15 479 477 ; C 102 ; WX 389 ; N f ; B -48 -205 550 737 ; L i fi ; L l fl ; C 103 ; WX 611 ; N g ; B -63 -205 604 528 ; C 104 ; WX 685 ; N h ; B 0 -15 639 737 ; C 105 ; WX 389 ; N i ; B 32 -15 345 737 ; C 106 ; WX 370 ; N j ; B -205 -205 347 737 ; C 107 ; WX 648 ; N k ; B -11 -15 578 737 ; C 108 ; WX 389 ; N l ; B 32 -15 375 737 ; C 109 ; WX 944 ; N m ; B 0 -15 909 477 ; C 110 ; WX 685 ; N n ; B 0 -15 639 477 ; C 111 ; WX 574 ; N o ; B 0 -15 530 477 ; C 112 ; WX 648 ; N p ; B -119 -205 590 477 ; C 113 ; WX 630 ; N q ; B 0 -205 587 477 ; C 114 ; WX 519 ; N r ; B 0 0 527 486 ; C 115 ; WX 481 ; N s ; B 0 -15 435 477 ; C 116 ; WX 407 ; N t ; B 24 -15 403 650 ; C 117 ; WX 685 ; N u ; B 30 -15 635 477 ; C 118 ; WX 556 ; N v ; B 30 -15 496 477 ; C 119 ; WX 833 ; N w ; B 30 -15 773 477 ; C 120 ; WX 574 ; N x ; B -46 -15 574 477 ; C 121 ; WX 519 ; N y ; B -66 -205 493 477 ; C 122 ; WX 519 ; N z ; B -19 -15 473 477 ; C 123 ; WX 407 ; N braceleft ; B 52 -109 408 737 ; C 124 ; WX 606 ; N bar ; B 249 -250 357 750 ; C 125 ; WX 407 ; N braceright ; B -25 -109 331 737 ; C 126 ; WX 606 ; N asciitilde ; B 72 160 534 346 ; C 161 ; WX 333 ; N exclamdown ; B -44 -205 289 547 ; C 162 ; WX 574 ; N cent ; B 30 -144 512 578 ; C 163 ; WX 574 ; N sterling ; B -18 -15 566 705 ; C 164 ; WX 167 ; N fraction ; B -166 -15 333 705 ; C 165 ; WX 574 ; N yen ; B 17 0 629 690 ; C 166 ; WX 574 ; N florin ; B -43 -205 575 737 ; C 167 ; WX 500 ; N section ; B -30 -146 515 737 ; C 168 ; WX 574 ; N currency ; B 27 84 547 605 ; C 169 ; WX 287 ; N quotesingle ; B 112 388 250 737 ; C 170 ; WX 481 ; N quotedblleft ; B 54 388 521 737 ; C 171 ; WX 481 ; N guillemotleft ; B -35 69 449 407 ; C 172 ; WX 278 ; N guilsinglleft ; B -25 69 244 407 ; C 173 ; WX 278 ; N guilsinglright ; B -26 69 243 407 ; C 174 ; WX 685 ; N fi ; B -70 -205 641 737 ; C 175 ; WX 685 ; N fl ; B -70 -205 671 737 ; C 177 ; WX 500 ; N endash ; B -47 189 479 287 ; C 178 ; WX 500 ; N dagger ; B 48 -146 508 737 ; C 179 ; WX 500 ; N daggerdbl ; B -60 -150 508 737 ; C 180 ; WX 287 ; N periodcentered ; B 57 200 229 372 ; C 182 ; WX 650 ; N paragraph ; B 25 -131 681 722 ; C 183 ; WX 606 ; N bullet ; B 122 180 484 542 ; C 184 ; WX 259 ; N quotesinglbase ; B -57 -192 170 157 ; C 185 ; WX 481 ; N quotedblbase ; B -57 -192 412 157 ; C 186 ; WX 481 ; N quotedblright ; B 43 388 510 737 ; C 187 ; WX 481 ; N guillemotright ; B -31 69 453 407 ; C 188 ; WX 1000 ; N ellipsis ; B 81 -15 919 157 ; C 189 ; WX 1167 ; N perthousand ; B 20 -28 1147 727 ; C 191 ; WX 481 ; N questiondown ; B 0 -205 372 547 ; C 193 ; WX 333 ; N grave ; B 74 538 294 722 ; C 194 ; WX 333 ; N acute ; B 123 538 372 722 ; C 195 ; WX 333 ; N circumflex ; B 23 533 365 705 ; C 196 ; WX 333 ; N tilde ; B 28 561 398 690 ; C 197 ; WX 333 ; N macron ; B 47 573 404 649 ; C 198 ; WX 333 ; N breve ; B 67 535 390 698 ; C 199 ; WX 333 ; N dotaccent ; B 145 571 311 737 ; C 200 ; WX 333 ; N dieresis ; B 33 571 393 715 ; C 202 ; WX 333 ; N ring ; B 111 522 335 746 ; C 203 ; WX 333 ; N cedilla ; B -21 -220 225 3 ; C 205 ; WX 333 ; N hungarumlaut ; B 15 538 480 722 ; C 206 ; WX 333 ; N ogonek ; B 36 -220 338 4 ; C 207 ; WX 333 ; N caron ; B 60 531 403 705 ; C 208 ; WX 1000 ; N emdash ; B -47 189 979 287 ; C 225 ; WX 889 ; N AE ; B -86 0 915 722 ; C 227 ; WX 412 ; N ordfeminine ; B 47 407 460 705 ; C 232 ; WX 704 ; N Lslash ; B -41 0 670 722 ; C 233 ; WX 833 ; N Oslash ; B 35 -68 798 790 ; C 234 ; WX 963 ; N OE ; B 29 0 989 722 ; C 235 ; WX 356 ; N ordmasculine ; B 42 407 394 705 ; C 241 ; WX 815 ; N ae ; B -18 -15 775 477 ; C 245 ; WX 389 ; N dotlessi ; B 32 -15 345 477 ; C 248 ; WX 389 ; N lslash ; B 24 -15 387 737 ; C 249 ; WX 574 ; N oslash ; B 0 -121 530 583 ; C 250 ; WX 852 ; N oe ; B -6 -15 812 477 ; C 251 ; WX 574 ; N germandbls ; B -91 -205 540 737 ; C -1 ; WX 444 ; N Idieresis ; B -41 0 509 915 ; C -1 ; WX 519 ; N eacute ; B 0 -15 479 722 ; C -1 ; WX 667 ; N abreve ; B 6 -15 636 698 ; C -1 ; WX 685 ; N uhungarumlaut ; B 30 -15 656 722 ; C -1 ; WX 519 ; N ecaron ; B 0 -15 496 705 ; C -1 ; WX 704 ; N Ydieresis ; B 13 0 775 915 ; C -1 ; WX 606 ; N divide ; B 50 -40 556 546 ; C -1 ; WX 704 ; N Yacute ; B 13 0 775 947 ; C -1 ; WX 741 ; N Acircumflex ; B -75 0 716 930 ; C -1 ; WX 667 ; N aacute ; B 6 -15 636 722 ; C -1 ; WX 833 ; N Ucircumflex ; B 88 -15 900 930 ; C -1 ; WX 519 ; N yacute ; B -66 -205 493 722 ; C -1 ; WX 481 ; N scommaaccent ; B 0 -250 435 477 ; C -1 ; WX 519 ; N ecircumflex ; B 0 -15 479 705 ; C -1 ; WX 833 ; N Uring ; B 88 -15 900 991 ; C -1 ; WX 833 ; N Udieresis ; B 88 -15 900 915 ; C -1 ; WX 667 ; N aogonek ; B 6 -230 636 477 ; C -1 ; WX 833 ; N Uacute ; B 88 -15 900 947 ; C -1 ; WX 685 ; N uogonek ; B 30 -233 635 477 ; C -1 ; WX 741 ; N Edieresis ; B -41 0 730 915 ; C -1 ; WX 833 ; N Dcroat ; B -47 0 796 722 ; C -1 ; WX 250 ; N commaaccent ; B -25 -250 141 -50 ; C -1 ; WX 747 ; N copyright ; B -2 -15 750 737 ; C -1 ; WX 741 ; N Emacron ; B -41 0 730 874 ; C -1 ; WX 537 ; N ccaron ; B 0 -15 505 705 ; C -1 ; WX 667 ; N aring ; B 6 -15 636 746 ; C -1 ; WX 852 ; N Ncommaaccent ; B -61 -230 913 722 ; C -1 ; WX 389 ; N lacute ; B 32 -15 500 947 ; C -1 ; WX 667 ; N agrave ; B 6 -15 636 722 ; C -1 ; WX 722 ; N Tcommaaccent ; B 41 -250 759 722 ; C -1 ; WX 759 ; N Cacute ; B 37 -15 759 947 ; C -1 ; WX 667 ; N atilde ; B 6 -15 636 690 ; C -1 ; WX 741 ; N Edotaccent ; B -41 0 730 937 ; C -1 ; WX 481 ; N scaron ; B 0 -15 477 705 ; C -1 ; WX 481 ; N scedilla ; B 0 -220 435 477 ; C -1 ; WX 389 ; N iacute ; B 32 -15 370 715 ; C -1 ; WX 494 ; N lozenge ; B 10 0 484 745 ; C -1 ; WX 796 ; N Rcaron ; B -41 -15 749 930 ; C -1 ; WX 815 ; N Gcommaaccent ; B 37 -250 805 737 ; C -1 ; WX 685 ; N ucircumflex ; B 30 -15 635 705 ; C -1 ; WX 667 ; N acircumflex ; B 6 -15 636 705 ; C -1 ; WX 741 ; N Amacron ; B -75 0 716 874 ; C -1 ; WX 519 ; N rcaron ; B 0 0 527 695 ; C -1 ; WX 537 ; N ccedilla ; B 0 -220 482 477 ; C -1 ; WX 704 ; N Zdotaccent ; B -33 0 711 937 ; C -1 ; WX 741 ; N Thorn ; B -41 0 690 722 ; C -1 ; WX 833 ; N Omacron ; B 37 -15 796 874 ; C -1 ; WX 796 ; N Racute ; B -41 -15 749 947 ; C -1 ; WX 685 ; N Sacute ; B 1 -15 666 947 ; C -1 ; WX 747 ; N dcaron ; B 0 -15 826 737 ; C -1 ; WX 833 ; N Umacron ; B 88 -15 900 874 ; C -1 ; WX 685 ; N uring ; B 30 -15 635 746 ; C -1 ; WX 344 ; N threesuperior ; B 3 273 361 705 ; C -1 ; WX 833 ; N Ograve ; B 37 -15 796 947 ; C -1 ; WX 741 ; N Agrave ; B -75 0 716 947 ; C -1 ; WX 741 ; N Abreve ; B -75 0 716 923 ; C -1 ; WX 606 ; N multiply ; B 65 15 541 491 ; C -1 ; WX 685 ; N uacute ; B 30 -15 635 722 ; C -1 ; WX 722 ; N Tcaron ; B 41 0 759 930 ; C -1 ; WX 494 ; N partialdiff ; B 11 -21 494 750 ; C -1 ; WX 519 ; N ydieresis ; B -66 -205 493 690 ; C -1 ; WX 852 ; N Nacute ; B -61 -10 913 947 ; C -1 ; WX 389 ; N icircumflex ; B 21 -15 363 698 ; C -1 ; WX 741 ; N Ecircumflex ; B -41 0 730 930 ; C -1 ; WX 667 ; N adieresis ; B 6 -15 636 690 ; C -1 ; WX 519 ; N edieresis ; B 0 -15 486 690 ; C -1 ; WX 537 ; N cacute ; B 0 -15 482 722 ; C -1 ; WX 685 ; N nacute ; B 0 -15 639 722 ; C -1 ; WX 685 ; N umacron ; B 30 -15 635 649 ; C -1 ; WX 852 ; N Ncaron ; B -61 -10 913 930 ; C -1 ; WX 444 ; N Iacute ; B -41 0 488 947 ; C -1 ; WX 606 ; N plusminus ; B 50 0 556 506 ; C -1 ; WX 606 ; N brokenbar ; B 249 -175 357 675 ; C -1 ; WX 747 ; N registered ; B -2 -15 750 737 ; C -1 ; WX 815 ; N Gbreve ; B 37 -15 805 923 ; C -1 ; WX 444 ; N Idotaccent ; B -41 0 485 937 ; C -1 ; WX 600 ; N summation ; B 14 -10 585 706 ; C -1 ; WX 741 ; N Egrave ; B -41 0 730 947 ; C -1 ; WX 519 ; N racute ; B 0 0 527 722 ; C -1 ; WX 574 ; N omacron ; B 0 -15 530 649 ; C -1 ; WX 704 ; N Zacute ; B -33 0 711 947 ; C -1 ; WX 704 ; N Zcaron ; B -33 0 711 930 ; C -1 ; WX 549 ; N greaterequal ; B 26 0 523 704 ; C -1 ; WX 833 ; N Eth ; B -47 0 796 722 ; C -1 ; WX 759 ; N Ccedilla ; B 37 -220 759 737 ; C -1 ; WX 389 ; N lcommaaccent ; B 25 -250 375 737 ; C -1 ; WX 447 ; N tcaron ; B 24 -15 544 767 ; C -1 ; WX 519 ; N eogonek ; B 0 -229 479 477 ; C -1 ; WX 833 ; N Uogonek ; B 88 -230 900 722 ; C -1 ; WX 741 ; N Aacute ; B -75 0 716 947 ; C -1 ; WX 741 ; N Adieresis ; B -75 0 716 915 ; C -1 ; WX 519 ; N egrave ; B 0 -15 479 722 ; C -1 ; WX 519 ; N zacute ; B -19 -15 473 722 ; C -1 ; WX 389 ; N iogonek ; B -8 -232 345 737 ; C -1 ; WX 833 ; N Oacute ; B 37 -15 796 947 ; C -1 ; WX 574 ; N oacute ; B 0 -15 530 722 ; C -1 ; WX 667 ; N amacron ; B 6 -15 636 649 ; C -1 ; WX 481 ; N sacute ; B 0 -15 446 722 ; C -1 ; WX 389 ; N idieresis ; B 31 -15 391 690 ; C -1 ; WX 833 ; N Ocircumflex ; B 37 -15 796 930 ; C -1 ; WX 833 ; N Ugrave ; B 88 -15 900 947 ; C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ; C -1 ; WX 648 ; N thorn ; B -119 -205 590 737 ; C -1 ; WX 344 ; N twosuperior ; B -17 280 362 705 ; C -1 ; WX 833 ; N Odieresis ; B 37 -15 796 915 ; C -1 ; WX 685 ; N mu ; B -89 -205 635 477 ; C -1 ; WX 389 ; N igrave ; B 32 -15 345 715 ; C -1 ; WX 574 ; N ohungarumlaut ; B 0 -15 601 722 ; C -1 ; WX 741 ; N Eogonek ; B -41 -224 730 722 ; C -1 ; WX 667 ; N dcroat ; B 0 -15 734 737 ; C -1 ; WX 861 ; N threequarters ; B 35 -15 789 705 ; C -1 ; WX 685 ; N Scedilla ; B 1 -220 666 737 ; C -1 ; WX 449 ; N lcaron ; B 32 -15 541 737 ; C -1 ; WX 778 ; N Kcommaaccent ; B -41 -250 832 722 ; C -1 ; WX 704 ; N Lacute ; B -41 0 670 947 ; C -1 ; WX 950 ; N trademark ; B 42 317 1017 722 ; C -1 ; WX 519 ; N edotaccent ; B 0 -15 479 712 ; C -1 ; WX 444 ; N Igrave ; B -41 0 485 947 ; C -1 ; WX 444 ; N Imacron ; B -41 0 520 874 ; C -1 ; WX 704 ; N Lcaron ; B -41 0 702 737 ; C -1 ; WX 861 ; N onehalf ; B 17 -15 798 705 ; C -1 ; WX 549 ; N lessequal ; B 29 0 526 704 ; C -1 ; WX 574 ; N ocircumflex ; B 0 -15 530 705 ; C -1 ; WX 685 ; N ntilde ; B 0 -15 639 690 ; C -1 ; WX 833 ; N Uhungarumlaut ; B 88 -15 900 947 ; C -1 ; WX 741 ; N Eacute ; B -41 0 730 947 ; C -1 ; WX 519 ; N emacron ; B 0 -15 497 649 ; C -1 ; WX 611 ; N gbreve ; B -63 -205 604 698 ; C -1 ; WX 861 ; N onequarter ; B 17 -15 789 705 ; C -1 ; WX 685 ; N Scaron ; B 1 -15 666 930 ; C -1 ; WX 685 ; N Scommaaccent ; B 1 -250 666 737 ; C -1 ; WX 833 ; N Ohungarumlaut ; B 37 -15 796 947 ; C -1 ; WX 400 ; N degree ; B 86 419 372 705 ; C -1 ; WX 574 ; N ograve ; B 0 -15 530 722 ; C -1 ; WX 759 ; N Ccaron ; B 37 -15 759 930 ; C -1 ; WX 685 ; N ugrave ; B 30 -15 635 722 ; C -1 ; WX 549 ; N radical ; B 10 -46 512 850 ; C -1 ; WX 833 ; N Dcaron ; B -47 0 796 930 ; C -1 ; WX 519 ; N rcommaaccent ; B -31 -250 527 486 ; C -1 ; WX 852 ; N Ntilde ; B -61 -10 913 915 ; C -1 ; WX 574 ; N otilde ; B 0 -15 530 690 ; C -1 ; WX 796 ; N Rcommaaccent ; B -41 -250 749 722 ; C -1 ; WX 704 ; N Lcommaaccent ; B -41 -250 670 722 ; C -1 ; WX 741 ; N Atilde ; B -75 0 716 915 ; C -1 ; WX 741 ; N Aogonek ; B -75 -224 744 737 ; C -1 ; WX 741 ; N Aring ; B -75 0 716 991 ; C -1 ; WX 833 ; N Otilde ; B 37 -15 796 915 ; C -1 ; WX 519 ; N zdotaccent ; B -19 -15 473 712 ; C -1 ; WX 741 ; N Ecaron ; B -41 0 730 930 ; C -1 ; WX 444 ; N Iogonek ; B -41 -220 485 722 ; C -1 ; WX 648 ; N kcommaaccent ; B -11 -250 578 737 ; C -1 ; WX 606 ; N minus ; B 50 199 556 307 ; C -1 ; WX 444 ; N Icircumflex ; B -41 0 485 930 ; C -1 ; WX 685 ; N ncaron ; B 0 -15 639 705 ; C -1 ; WX 407 ; N tcommaaccent ; B -6 -250 403 650 ; C -1 ; WX 606 ; N logicalnot ; B 50 103 556 403 ; C -1 ; WX 574 ; N odieresis ; B 0 -15 530 690 ; C -1 ; WX 685 ; N udieresis ; B 30 -15 635 690 ; C -1 ; WX 549 ; N notequal ; B 15 -49 540 570 ; C -1 ; WX 611 ; N gcommaaccent ; B -63 -205 604 822 ; C -1 ; WX 574 ; N eth ; B 0 -15 530 752 ; C -1 ; WX 519 ; N zcaron ; B -19 -15 473 695 ; C -1 ; WX 685 ; N ncommaaccent ; B 0 -250 639 477 ; C -1 ; WX 344 ; N onesuperior ; B 19 282 326 705 ; C -1 ; WX 389 ; N imacron ; B 32 -15 376 642 ; EndCharMetrics StartKernData StartKernPairs 2653 KPX A C 5 KPX A Cacute 5 KPX A Ccaron 5 KPX A Ccedilla 5 KPX A G 5 KPX A Gbreve 5 KPX A Gcommaaccent 5 KPX A O 5 KPX A Oacute 5 KPX A Ocircumflex 5 KPX A Odieresis 5 KPX A Ograve 5 KPX A Ohungarumlaut 5 KPX A Omacron 5 KPX A Oslash 5 KPX A Otilde 5 KPX A Q 5 KPX A T 5 KPX A Tcaron 5 KPX A Tcommaaccent 5 KPX A U -32 KPX A Uacute -32 KPX A Ucircumflex -32 KPX A Udieresis -32 KPX A Ugrave -32 KPX A Uhungarumlaut -32 KPX A Umacron -32 KPX A Uogonek -32 KPX A Uring -32 KPX A V -100 KPX A W -84 KPX A Y -70 KPX A Yacute -70 KPX A Ydieresis -70 KPX A quotedblright -95 KPX A quoteright -95 KPX A u -15 KPX A uacute -15 KPX A ucircumflex -15 KPX A udieresis -15 KPX A ugrave -15 KPX A uhungarumlaut -15 KPX A umacron -15 KPX A uogonek -15 KPX A uring -15 KPX A v -10 KPX A w -25 KPX A y -33 KPX A yacute -33 KPX A ydieresis -33 KPX Aacute C 5 KPX Aacute Cacute 5 KPX Aacute Ccaron 5 KPX Aacute Ccedilla 5 KPX Aacute G 5 KPX Aacute Gbreve 5 KPX Aacute Gcommaaccent 5 KPX Aacute O 5 KPX Aacute Oacute 5 KPX Aacute Ocircumflex 5 KPX Aacute Odieresis 5 KPX Aacute Ograve 5 KPX Aacute Ohungarumlaut 5 KPX Aacute Omacron 5 KPX Aacute Oslash 5 KPX Aacute Otilde 5 KPX Aacute Q 5 KPX Aacute T 5 KPX Aacute Tcaron 5 KPX Aacute Tcommaaccent 5 KPX Aacute U -32 KPX Aacute Uacute -32 KPX Aacute Ucircumflex -32 KPX Aacute Udieresis -32 KPX Aacute Ugrave -32 KPX Aacute Uhungarumlaut -32 KPX Aacute Umacron -32 KPX Aacute Uogonek -32 KPX Aacute Uring -32 KPX Aacute V -100 KPX Aacute W -84 KPX Aacute Y -70 KPX Aacute Yacute -70 KPX Aacute Ydieresis -70 KPX Aacute quotedblright -95 KPX Aacute quoteright -95 KPX Aacute u -15 KPX Aacute uacute -15 KPX Aacute ucircumflex -15 KPX Aacute udieresis -15 KPX Aacute ugrave -15 KPX Aacute uhungarumlaut -15 KPX Aacute umacron -15 KPX Aacute uogonek -15 KPX Aacute uring -15 KPX Aacute v -10 KPX Aacute w -25 KPX Aacute y -33 KPX Aacute yacute -33 KPX Aacute ydieresis -33 KPX Abreve C 5 KPX Abreve Cacute 5 KPX Abreve Ccaron 5 KPX Abreve Ccedilla 5 KPX Abreve G 5 KPX Abreve Gbreve 5 KPX Abreve Gcommaaccent 5 KPX Abreve O 5 KPX Abreve Oacute 5 KPX Abreve Ocircumflex 5 KPX Abreve Odieresis 5 KPX Abreve Ograve 5 KPX Abreve Ohungarumlaut 5 KPX Abreve Omacron 5 KPX Abreve Oslash 5 KPX Abreve Otilde 5 KPX Abreve Q 5 KPX Abreve T 5 KPX Abreve Tcaron 5 KPX Abreve Tcommaaccent 5 KPX Abreve U -32 KPX Abreve Uacute -32 KPX Abreve Ucircumflex -32 KPX Abreve Udieresis -32 KPX Abreve Ugrave -32 KPX Abreve Uhungarumlaut -32 KPX Abreve Umacron -32 KPX Abreve Uogonek -32 KPX Abreve Uring -32 KPX Abreve V -100 KPX Abreve W -84 KPX Abreve Y -70 KPX Abreve Yacute -70 KPX Abreve Ydieresis -70 KPX Abreve quotedblright -95 KPX Abreve quoteright -95 KPX Abreve u -15 KPX Abreve uacute -15 KPX Abreve ucircumflex -15 KPX Abreve udieresis -15 KPX Abreve ugrave -15 KPX Abreve uhungarumlaut -15 KPX Abreve umacron -15 KPX Abreve uogonek -15 KPX Abreve uring -15 KPX Abreve v -10 KPX Abreve w -25 KPX Abreve y -33 KPX Abreve yacute -33 KPX Abreve ydieresis -33 KPX Acircumflex C 5 KPX Acircumflex Cacute 5 KPX Acircumflex Ccaron 5 KPX Acircumflex Ccedilla 5 KPX Acircumflex G 5 KPX Acircumflex Gbreve 5 KPX Acircumflex Gcommaaccent 5 KPX Acircumflex O 5 KPX Acircumflex Oacute 5 KPX Acircumflex Ocircumflex 5 KPX Acircumflex Odieresis 5 KPX Acircumflex Ograve 5 KPX Acircumflex Ohungarumlaut 5 KPX Acircumflex Omacron 5 KPX Acircumflex Oslash 5 KPX Acircumflex Otilde 5 KPX Acircumflex Q 5 KPX Acircumflex T 5 KPX Acircumflex Tcaron 5 KPX Acircumflex Tcommaaccent 5 KPX Acircumflex U -32 KPX Acircumflex Uacute -32 KPX Acircumflex Ucircumflex -32 KPX Acircumflex Udieresis -32 KPX Acircumflex Ugrave -32 KPX Acircumflex Uhungarumlaut -32 KPX Acircumflex Umacron -32 KPX Acircumflex Uogonek -32 KPX Acircumflex Uring -32 KPX Acircumflex V -100 KPX Acircumflex W -84 KPX Acircumflex Y -70 KPX Acircumflex Yacute -70 KPX Acircumflex Ydieresis -70 KPX Acircumflex quotedblright -95 KPX Acircumflex quoteright -95 KPX Acircumflex u -15 KPX Acircumflex uacute -15 KPX Acircumflex ucircumflex -15 KPX Acircumflex udieresis -15 KPX Acircumflex ugrave -15 KPX Acircumflex uhungarumlaut -15 KPX Acircumflex umacron -15 KPX Acircumflex uogonek -15 KPX Acircumflex uring -15 KPX Acircumflex v -10 KPX Acircumflex w -25 KPX Acircumflex y -33 KPX Acircumflex yacute -33 KPX Acircumflex ydieresis -33 KPX Adieresis C 5 KPX Adieresis Cacute 5 KPX Adieresis Ccaron 5 KPX Adieresis Ccedilla 5 KPX Adieresis G 5 KPX Adieresis Gbreve 5 KPX Adieresis Gcommaaccent 5 KPX Adieresis O 5 KPX Adieresis Oacute 5 KPX Adieresis Ocircumflex 5 KPX Adieresis Odieresis 5 KPX Adieresis Ograve 5 KPX Adieresis Ohungarumlaut 5 KPX Adieresis Omacron 5 KPX Adieresis Oslash 5 KPX Adieresis Otilde 5 KPX Adieresis Q 5 KPX Adieresis T 5 KPX Adieresis Tcaron 5 KPX Adieresis Tcommaaccent 5 KPX Adieresis U -32 KPX Adieresis Uacute -32 KPX Adieresis Ucircumflex -32 KPX Adieresis Udieresis -32 KPX Adieresis Ugrave -32 KPX Adieresis Uhungarumlaut -32 KPX Adieresis Umacron -32 KPX Adieresis Uogonek -32 KPX Adieresis Uring -32 KPX Adieresis V -100 KPX Adieresis W -84 KPX Adieresis Y -70 KPX Adieresis Yacute -70 KPX Adieresis Ydieresis -70 KPX Adieresis quotedblright -95 KPX Adieresis quoteright -95 KPX Adieresis u -15 KPX Adieresis uacute -15 KPX Adieresis ucircumflex -15 KPX Adieresis udieresis -15 KPX Adieresis ugrave -15 KPX Adieresis uhungarumlaut -15 KPX Adieresis umacron -15 KPX Adieresis uogonek -15 KPX Adieresis uring -15 KPX Adieresis v -10 KPX Adieresis w -25 KPX Adieresis y -33 KPX Adieresis yacute -33 KPX Adieresis ydieresis -33 KPX Agrave C 5 KPX Agrave Cacute 5 KPX Agrave Ccaron 5 KPX Agrave Ccedilla 5 KPX Agrave G 5 KPX Agrave Gbreve 5 KPX Agrave Gcommaaccent 5 KPX Agrave O 5 KPX Agrave Oacute 5 KPX Agrave Ocircumflex 5 KPX Agrave Odieresis 5 KPX Agrave Ograve 5 KPX Agrave Ohungarumlaut 5 KPX Agrave Omacron 5 KPX Agrave Oslash 5 KPX Agrave Otilde 5 KPX Agrave Q 5 KPX Agrave T 5 KPX Agrave Tcaron 5 KPX Agrave Tcommaaccent 5 KPX Agrave U -32 KPX Agrave Uacute -32 KPX Agrave Ucircumflex -32 KPX Agrave Udieresis -32 KPX Agrave Ugrave -32 KPX Agrave Uhungarumlaut -32 KPX Agrave Umacron -32 KPX Agrave Uogonek -32 KPX Agrave Uring -32 KPX Agrave V -100 KPX Agrave W -84 KPX Agrave Y -70 KPX Agrave Yacute -70 KPX Agrave Ydieresis -70 KPX Agrave quotedblright -95 KPX Agrave quoteright -95 KPX Agrave u -15 KPX Agrave uacute -15 KPX Agrave ucircumflex -15 KPX Agrave udieresis -15 KPX Agrave ugrave -15 KPX Agrave uhungarumlaut -15 KPX Agrave umacron -15 KPX Agrave uogonek -15 KPX Agrave uring -15 KPX Agrave v -10 KPX Agrave w -25 KPX Agrave y -33 KPX Agrave yacute -33 KPX Agrave ydieresis -33 KPX Amacron C 5 KPX Amacron Cacute 5 KPX Amacron Ccaron 5 KPX Amacron Ccedilla 5 KPX Amacron G 5 KPX Amacron Gbreve 5 KPX Amacron Gcommaaccent 5 KPX Amacron O 5 KPX Amacron Oacute 5 KPX Amacron Ocircumflex 5 KPX Amacron Odieresis 5 KPX Amacron Ograve 5 KPX Amacron Ohungarumlaut 5 KPX Amacron Omacron 5 KPX Amacron Oslash 5 KPX Amacron Otilde 5 KPX Amacron Q 5 KPX Amacron T 5 KPX Amacron Tcaron 5 KPX Amacron Tcommaaccent 5 KPX Amacron U -32 KPX Amacron Uacute -32 KPX Amacron Ucircumflex -32 KPX Amacron Udieresis -32 KPX Amacron Ugrave -32 KPX Amacron Uhungarumlaut -32 KPX Amacron Umacron -32 KPX Amacron Uogonek -32 KPX Amacron Uring -32 KPX Amacron V -100 KPX Amacron W -84 KPX Amacron Y -70 KPX Amacron Yacute -70 KPX Amacron Ydieresis -70 KPX Amacron quotedblright -95 KPX Amacron quoteright -95 KPX Amacron u -15 KPX Amacron uacute -15 KPX Amacron ucircumflex -15 KPX Amacron udieresis -15 KPX Amacron ugrave -15 KPX Amacron uhungarumlaut -15 KPX Amacron umacron -15 KPX Amacron uogonek -15 KPX Amacron uring -15 KPX Amacron v -10 KPX Amacron w -25 KPX Amacron y -33 KPX Amacron yacute -33 KPX Amacron ydieresis -33 KPX Aogonek C 5 KPX Aogonek Cacute 5 KPX Aogonek Ccaron 5 KPX Aogonek Ccedilla 5 KPX Aogonek G 5 KPX Aogonek Gbreve 5 KPX Aogonek Gcommaaccent 5 KPX Aogonek O 5 KPX Aogonek Oacute 5 KPX Aogonek Ocircumflex 5 KPX Aogonek Odieresis 5 KPX Aogonek Ograve 5 KPX Aogonek Ohungarumlaut 5 KPX Aogonek Omacron 5 KPX Aogonek Oslash 5 KPX Aogonek Otilde 5 KPX Aogonek Q 5 KPX Aogonek T 5 KPX Aogonek Tcaron 5 KPX Aogonek Tcommaaccent 5 KPX Aogonek U -32 KPX Aogonek Uacute -32 KPX Aogonek Ucircumflex -32 KPX Aogonek Udieresis -32 KPX Aogonek Ugrave -32 KPX Aogonek Uhungarumlaut -32 KPX Aogonek Umacron -32 KPX Aogonek Uogonek -32 KPX Aogonek Uring -32 KPX Aogonek V -100 KPX Aogonek W -84 KPX Aogonek Y -70 KPX Aogonek Yacute -70 KPX Aogonek Ydieresis -70 KPX Aogonek quotedblright -95 KPX Aogonek quoteright -95 KPX Aogonek u -15 KPX Aogonek uacute -15 KPX Aogonek ucircumflex -15 KPX Aogonek udieresis -15 KPX Aogonek ugrave -15 KPX Aogonek uhungarumlaut -15 KPX Aogonek umacron -15 KPX Aogonek uogonek -15 KPX Aogonek uring -15 KPX Aogonek v -10 KPX Aogonek w -25 KPX Aring C 5 KPX Aring Cacute 5 KPX Aring Ccaron 5 KPX Aring Ccedilla 5 KPX Aring G 5 KPX Aring Gbreve 5 KPX Aring Gcommaaccent 5 KPX Aring O 5 KPX Aring Oacute 5 KPX Aring Ocircumflex 5 KPX Aring Odieresis 5 KPX Aring Ograve 5 KPX Aring Ohungarumlaut 5 KPX Aring Omacron 5 KPX Aring Oslash 5 KPX Aring Otilde 5 KPX Aring Q 5 KPX Aring T 5 KPX Aring Tcaron 5 KPX Aring Tcommaaccent 5 KPX Aring U -32 KPX Aring Uacute -32 KPX Aring Ucircumflex -32 KPX Aring Udieresis -32 KPX Aring Ugrave -32 KPX Aring Uhungarumlaut -32 KPX Aring Umacron -32 KPX Aring Uogonek -32 KPX Aring Uring -32 KPX Aring V -100 KPX Aring W -84 KPX Aring Y -70 KPX Aring Yacute -70 KPX Aring Ydieresis -70 KPX Aring quotedblright -95 KPX Aring quoteright -95 KPX Aring u -15 KPX Aring uacute -15 KPX Aring ucircumflex -15 KPX Aring udieresis -15 KPX Aring ugrave -15 KPX Aring uhungarumlaut -15 KPX Aring umacron -15 KPX Aring uogonek -15 KPX Aring uring -15 KPX Aring v -10 KPX Aring w -25 KPX Aring y -33 KPX Aring yacute -33 KPX Aring ydieresis -33 KPX Atilde C 5 KPX Atilde Cacute 5 KPX Atilde Ccaron 5 KPX Atilde Ccedilla 5 KPX Atilde G 5 KPX Atilde Gbreve 5 KPX Atilde Gcommaaccent 5 KPX Atilde O 5 KPX Atilde Oacute 5 KPX Atilde Ocircumflex 5 KPX Atilde Odieresis 5 KPX Atilde Ograve 5 KPX Atilde Ohungarumlaut 5 KPX Atilde Omacron 5 KPX Atilde Oslash 5 KPX Atilde Otilde 5 KPX Atilde Q 5 KPX Atilde T 5 KPX Atilde Tcaron 5 KPX Atilde Tcommaaccent 5 KPX Atilde U -32 KPX Atilde Uacute -32 KPX Atilde Ucircumflex -32 KPX Atilde Udieresis -32 KPX Atilde Ugrave -32 KPX Atilde Uhungarumlaut -32 KPX Atilde Umacron -32 KPX Atilde Uogonek -32 KPX Atilde Uring -32 KPX Atilde V -100 KPX Atilde W -84 KPX Atilde Y -70 KPX Atilde Yacute -70 KPX Atilde Ydieresis -70 KPX Atilde quotedblright -95 KPX Atilde quoteright -95 KPX Atilde u -15 KPX Atilde uacute -15 KPX Atilde ucircumflex -15 KPX Atilde udieresis -15 KPX Atilde ugrave -15 KPX Atilde uhungarumlaut -15 KPX Atilde umacron -15 KPX Atilde uogonek -15 KPX Atilde uring -15 KPX Atilde v -10 KPX Atilde w -25 KPX Atilde y -33 KPX Atilde yacute -33 KPX Atilde ydieresis -33 KPX B A -11 KPX B Aacute -11 KPX B Abreve -11 KPX B Acircumflex -11 KPX B Adieresis -11 KPX B Agrave -11 KPX B Amacron -11 KPX B Aogonek -11 KPX B Aring -11 KPX B Atilde -11 KPX B U 15 KPX B Uacute 15 KPX B Ucircumflex 15 KPX B Udieresis 15 KPX B Ugrave 15 KPX B Uhungarumlaut 15 KPX B Umacron 15 KPX B Uogonek 15 KPX B Uring 15 KPX B comma 15 KPX B period 15 KPX C A -5 KPX C Aacute -5 KPX C Abreve -5 KPX C Acircumflex -5 KPX C Adieresis -5 KPX C Agrave -5 KPX C Amacron -5 KPX C Aogonek -5 KPX C Aring -5 KPX C Atilde -5 KPX Cacute A -5 KPX Cacute Aacute -5 KPX Cacute Abreve -5 KPX Cacute Acircumflex -5 KPX Cacute Adieresis -5 KPX Cacute Agrave -5 KPX Cacute Amacron -5 KPX Cacute Aogonek -5 KPX Cacute Aring -5 KPX Cacute Atilde -5 KPX Ccaron A -5 KPX Ccaron Aacute -5 KPX Ccaron Abreve -5 KPX Ccaron Acircumflex -5 KPX Ccaron Adieresis -5 KPX Ccaron Agrave -5 KPX Ccaron Amacron -5 KPX Ccaron Aogonek -5 KPX Ccaron Aring -5 KPX Ccaron Atilde -5 KPX Ccedilla A -5 KPX Ccedilla Aacute -5 KPX Ccedilla Abreve -5 KPX Ccedilla Acircumflex -5 KPX Ccedilla Adieresis -5 KPX Ccedilla Agrave -5 KPX Ccedilla Amacron -5 KPX Ccedilla Aogonek -5 KPX Ccedilla Aring -5 KPX Ccedilla Atilde -5 KPX D V -18 KPX D W -11 KPX D Y 6 KPX D Yacute 6 KPX D Ydieresis 6 KPX D comma -11 KPX D period -11 KPX Dcaron V -18 KPX Dcaron W -11 KPX Dcaron Y 6 KPX Dcaron Yacute 6 KPX Dcaron Ydieresis 6 KPX Dcaron comma -11 KPX Dcaron period -11 KPX Dcroat V -18 KPX Dcroat W -11 KPX Dcroat Y 6 KPX Dcroat Yacute 6 KPX Dcroat Ydieresis 6 KPX Dcroat comma -11 KPX Dcroat period -11 KPX F A -79 KPX F Aacute -79 KPX F Abreve -79 KPX F Acircumflex -79 KPX F Adieresis -79 KPX F Agrave -79 KPX F Amacron -79 KPX F Aogonek -79 KPX F Aring -79 KPX F Atilde -79 KPX F a -47 KPX F aacute -47 KPX F abreve -47 KPX F acircumflex -47 KPX F adieresis -47 KPX F agrave -47 KPX F amacron -47 KPX F aogonek -47 KPX F aring -47 KPX F atilde -47 KPX F comma -91 KPX F e -41 KPX F eacute -41 KPX F ecaron -41 KPX F ecircumflex -41 KPX F edieresis -41 KPX F edotaccent -41 KPX F egrave -41 KPX F emacron -41 KPX F eogonek -41 KPX F i -41 KPX F iacute -41 KPX F icircumflex -41 KPX F idieresis -41 KPX F igrave -41 KPX F imacron -41 KPX F iogonek -41 KPX F o -47 KPX F oacute -47 KPX F ocircumflex -47 KPX F odieresis -47 KPX F ograve -47 KPX F ohungarumlaut -47 KPX F omacron -47 KPX F oslash -47 KPX F otilde -47 KPX F period -91 KPX F r -27 KPX F racute -27 KPX F rcaron -27 KPX F rcommaaccent -27 KPX J A -30 KPX J Aacute -30 KPX J Abreve -30 KPX J Acircumflex -30 KPX J Adieresis -30 KPX J Agrave -30 KPX J Amacron -30 KPX J Aogonek -30 KPX J Aring -30 KPX J Atilde -30 KPX J a -40 KPX J aacute -40 KPX J abreve -40 KPX J acircumflex -40 KPX J adieresis -40 KPX J agrave -40 KPX J amacron -40 KPX J aogonek -40 KPX J aring -40 KPX J atilde -40 KPX J comma -74 KPX J e -33 KPX J eacute -33 KPX J ecaron -33 KPX J ecircumflex -33 KPX J edieresis -33 KPX J edotaccent -33 KPX J egrave -33 KPX J emacron -33 KPX J eogonek -33 KPX J o -40 KPX J oacute -40 KPX J ocircumflex -40 KPX J odieresis -40 KPX J ograve -40 KPX J ohungarumlaut -40 KPX J omacron -40 KPX J oslash -40 KPX J otilde -40 KPX J period -74 KPX J u -39 KPX J uacute -39 KPX J ucircumflex -39 KPX J udieresis -39 KPX J ugrave -39 KPX J uhungarumlaut -39 KPX J umacron -39 KPX J uogonek -39 KPX J uring -39 KPX K e 18 KPX K eacute 18 KPX K ecaron 18 KPX K ecircumflex 18 KPX K edieresis 18 KPX K edotaccent 18 KPX K egrave 18 KPX K emacron 18 KPX K eogonek 18 KPX K o -4 KPX K oacute -4 KPX K ocircumflex -4 KPX K odieresis -4 KPX K ograve -4 KPX K ohungarumlaut -4 KPX K omacron -4 KPX K oslash -4 KPX K otilde -4 KPX K u -4 KPX K uacute -4 KPX K ucircumflex -4 KPX K udieresis -4 KPX K ugrave -4 KPX K uhungarumlaut -4 KPX K umacron -4 KPX K uogonek -4 KPX K uring -4 KPX K y -48 KPX K yacute -48 KPX K ydieresis -48 KPX Kcommaaccent e 18 KPX Kcommaaccent eacute 18 KPX Kcommaaccent ecaron 18 KPX Kcommaaccent ecircumflex 18 KPX Kcommaaccent edieresis 18 KPX Kcommaaccent edotaccent 18 KPX Kcommaaccent egrave 18 KPX Kcommaaccent emacron 18 KPX Kcommaaccent eogonek 18 KPX Kcommaaccent o -4 KPX Kcommaaccent oacute -4 KPX Kcommaaccent ocircumflex -4 KPX Kcommaaccent odieresis -4 KPX Kcommaaccent ograve -4 KPX Kcommaaccent ohungarumlaut -4 KPX Kcommaaccent omacron -4 KPX Kcommaaccent oslash -4 KPX Kcommaaccent otilde -4 KPX Kcommaaccent u -4 KPX Kcommaaccent uacute -4 KPX Kcommaaccent ucircumflex -4 KPX Kcommaaccent udieresis -4 KPX Kcommaaccent ugrave -4 KPX Kcommaaccent uhungarumlaut -4 KPX Kcommaaccent umacron -4 KPX Kcommaaccent uogonek -4 KPX Kcommaaccent uring -4 KPX Kcommaaccent y -48 KPX Kcommaaccent yacute -48 KPX Kcommaaccent ydieresis -48 KPX L T -75 KPX L Tcaron -75 KPX L Tcommaaccent -75 KPX L V -97 KPX L W -69 KPX L Y -55 KPX L Yacute -55 KPX L Ydieresis -55 KPX L quotedblright -100 KPX L quoteright -100 KPX L y -30 KPX L yacute -30 KPX L ydieresis -30 KPX Lacute T -75 KPX Lacute Tcaron -75 KPX Lacute Tcommaaccent -75 KPX Lacute V -97 KPX Lacute W -69 KPX Lacute Y -55 KPX Lacute Yacute -55 KPX Lacute Ydieresis -55 KPX Lacute quotedblright -100 KPX Lacute quoteright -100 KPX Lacute y -30 KPX Lacute yacute -30 KPX Lacute ydieresis -30 KPX Lcommaaccent T -75 KPX Lcommaaccent Tcaron -75 KPX Lcommaaccent Tcommaaccent -75 KPX Lcommaaccent V -97 KPX Lcommaaccent W -69 KPX Lcommaaccent Y -55 KPX Lcommaaccent Yacute -55 KPX Lcommaaccent Ydieresis -55 KPX Lcommaaccent quotedblright -100 KPX Lcommaaccent quoteright -100 KPX Lcommaaccent y -30 KPX Lcommaaccent yacute -30 KPX Lcommaaccent ydieresis -30 KPX Lslash T -75 KPX Lslash Tcaron -75 KPX Lslash Tcommaaccent -75 KPX Lslash V -97 KPX Lslash W -69 KPX Lslash Y -55 KPX Lslash Yacute -55 KPX Lslash Ydieresis -55 KPX Lslash quotedblright -100 KPX Lslash quoteright -100 KPX Lslash y -30 KPX Lslash yacute -30 KPX Lslash ydieresis -30 KPX N comma -49 KPX N period -49 KPX Nacute comma -49 KPX Nacute period -49 KPX Ncaron comma -49 KPX Ncaron period -49 KPX Ncommaaccent comma -49 KPX Ncommaaccent period -49 KPX Ntilde comma -49 KPX Ntilde period -49 KPX O A -5 KPX O Aacute -5 KPX O Abreve -5 KPX O Acircumflex -5 KPX O Adieresis -5 KPX O Agrave -5 KPX O Amacron -5 KPX O Aogonek -5 KPX O Aring -5 KPX O Atilde -5 KPX O V -24 KPX O W -15 KPX O X -18 KPX O comma -18 KPX O period -18 KPX Oacute A -5 KPX Oacute Aacute -5 KPX Oacute Abreve -5 KPX Oacute Acircumflex -5 KPX Oacute Adieresis -5 KPX Oacute Agrave -5 KPX Oacute Amacron -5 KPX Oacute Aogonek -5 KPX Oacute Aring -5 KPX Oacute Atilde -5 KPX Oacute V -24 KPX Oacute W -15 KPX Oacute X -18 KPX Oacute comma -18 KPX Oacute period -18 KPX Ocircumflex A -5 KPX Ocircumflex Aacute -5 KPX Ocircumflex Abreve -5 KPX Ocircumflex Acircumflex -5 KPX Ocircumflex Adieresis -5 KPX Ocircumflex Agrave -5 KPX Ocircumflex Amacron -5 KPX Ocircumflex Aogonek -5 KPX Ocircumflex Aring -5 KPX Ocircumflex Atilde -5 KPX Ocircumflex V -24 KPX Ocircumflex W -15 KPX Ocircumflex X -18 KPX Ocircumflex comma -18 KPX Ocircumflex period -18 KPX Odieresis A -5 KPX Odieresis Aacute -5 KPX Odieresis Abreve -5 KPX Odieresis Acircumflex -5 KPX Odieresis Adieresis -5 KPX Odieresis Agrave -5 KPX Odieresis Amacron -5 KPX Odieresis Aogonek -5 KPX Odieresis Aring -5 KPX Odieresis Atilde -5 KPX Odieresis V -24 KPX Odieresis W -15 KPX Odieresis X -18 KPX Odieresis comma -18 KPX Odieresis period -18 KPX Ograve A -5 KPX Ograve Aacute -5 KPX Ograve Abreve -5 KPX Ograve Acircumflex -5 KPX Ograve Adieresis -5 KPX Ograve Agrave -5 KPX Ograve Amacron -5 KPX Ograve Aogonek -5 KPX Ograve Aring -5 KPX Ograve Atilde -5 KPX Ograve V -24 KPX Ograve W -15 KPX Ograve X -18 KPX Ograve comma -18 KPX Ograve period -18 KPX Ohungarumlaut A -5 KPX Ohungarumlaut Aacute -5 KPX Ohungarumlaut Abreve -5 KPX Ohungarumlaut Acircumflex -5 KPX Ohungarumlaut Adieresis -5 KPX Ohungarumlaut Agrave -5 KPX Ohungarumlaut Amacron -5 KPX Ohungarumlaut Aogonek -5 KPX Ohungarumlaut Aring -5 KPX Ohungarumlaut Atilde -5 KPX Ohungarumlaut V -24 KPX Ohungarumlaut W -15 KPX Ohungarumlaut X -18 KPX Ohungarumlaut comma -18 KPX Ohungarumlaut period -18 KPX Omacron A -5 KPX Omacron Aacute -5 KPX Omacron Abreve -5 KPX Omacron Acircumflex -5 KPX Omacron Adieresis -5 KPX Omacron Agrave -5 KPX Omacron Amacron -5 KPX Omacron Aogonek -5 KPX Omacron Aring -5 KPX Omacron Atilde -5 KPX Omacron V -24 KPX Omacron W -15 KPX Omacron X -18 KPX Omacron comma -18 KPX Omacron period -18 KPX Oslash A -5 KPX Oslash Aacute -5 KPX Oslash Abreve -5 KPX Oslash Acircumflex -5 KPX Oslash Adieresis -5 KPX Oslash Agrave -5 KPX Oslash Amacron -5 KPX Oslash Aogonek -5 KPX Oslash Aring -5 KPX Oslash Atilde -5 KPX Oslash V -24 KPX Oslash W -15 KPX Oslash X -18 KPX Oslash comma -18 KPX Oslash period -18 KPX Otilde A -5 KPX Otilde Aacute -5 KPX Otilde Abreve -5 KPX Otilde Acircumflex -5 KPX Otilde Adieresis -5 KPX Otilde Agrave -5 KPX Otilde Amacron -5 KPX Otilde Aogonek -5 KPX Otilde Aring -5 KPX Otilde Atilde -5 KPX Otilde V -24 KPX Otilde W -15 KPX Otilde X -18 KPX Otilde comma -18 KPX Otilde period -18 KPX P A -80 KPX P Aacute -80 KPX P Abreve -80 KPX P Acircumflex -80 KPX P Adieresis -80 KPX P Agrave -80 KPX P Amacron -80 KPX P Aogonek -80 KPX P Aring -80 KPX P Atilde -80 KPX P a -40 KPX P aacute -40 KPX P abreve -40 KPX P acircumflex -40 KPX P adieresis -40 KPX P agrave -40 KPX P amacron -40 KPX P aogonek -40 KPX P aring -40 KPX P atilde -40 KPX P comma -100 KPX P e -33 KPX P eacute -33 KPX P ecaron -33 KPX P ecircumflex -33 KPX P edieresis -33 KPX P edotaccent -33 KPX P egrave -33 KPX P emacron -33 KPX P eogonek -33 KPX P o -40 KPX P oacute -40 KPX P ocircumflex -40 KPX P odieresis -40 KPX P ograve -40 KPX P ohungarumlaut -40 KPX P omacron -40 KPX P oslash -40 KPX P otilde -40 KPX P period -100 KPX R V -24 KPX R W -14 KPX Racute V -24 KPX Racute W -14 KPX Rcaron V -24 KPX Rcaron W -14 KPX Rcommaaccent V -24 KPX Rcommaaccent W -14 KPX S comma -18 KPX S period -18 KPX Sacute comma -18 KPX Sacute period -18 KPX Scaron comma -18 KPX Scaron period -18 KPX Scedilla comma -18 KPX Scedilla period -18 KPX Scommaaccent comma -18 KPX Scommaaccent period -18 KPX T A -60 KPX T Aacute -60 KPX T Abreve -60 KPX T Acircumflex -60 KPX T Adieresis -60 KPX T Agrave -60 KPX T Amacron -60 KPX T Aogonek -60 KPX T Aring -60 KPX T Atilde -60 KPX T O 11 KPX T Oacute 11 KPX T Ocircumflex 11 KPX T Odieresis 11 KPX T Ograve 11 KPX T Ohungarumlaut 11 KPX T Omacron 11 KPX T Oslash 11 KPX T Otilde 11 KPX T a -40 KPX T aacute -40 KPX T abreve -40 KPX T acircumflex -40 KPX T adieresis -40 KPX T agrave -40 KPX T amacron -40 KPX T aogonek -40 KPX T aring -40 KPX T atilde -40 KPX T comma -55 KPX T e -33 KPX T eacute -33 KPX T ecaron -33 KPX T ecircumflex -33 KPX T edieresis -33 KPX T edotaccent -33 KPX T egrave -33 KPX T emacron -33 KPX T eogonek -33 KPX T h -9 KPX T hyphen -75 KPX T i -22 KPX T iacute -22 KPX T icircumflex -22 KPX T idieresis -22 KPX T igrave -22 KPX T imacron -22 KPX T iogonek -22 KPX T o -40 KPX T oacute -40 KPX T ocircumflex -40 KPX T odieresis -40 KPX T ograve -40 KPX T ohungarumlaut -40 KPX T omacron -40 KPX T oslash -40 KPX T otilde -40 KPX T period -55 KPX T r -9 KPX T racute -9 KPX T rcaron -9 KPX T rcommaaccent -9 KPX T u -22 KPX T uacute -22 KPX T ucircumflex -22 KPX T udieresis -22 KPX T ugrave -22 KPX T uhungarumlaut -22 KPX T umacron -22 KPX T uogonek -22 KPX T uring -22 KPX T w -30 KPX T y -30 KPX T yacute -30 KPX T ydieresis -30 KPX Tcaron A -60 KPX Tcaron Aacute -60 KPX Tcaron Abreve -60 KPX Tcaron Acircumflex -60 KPX Tcaron Adieresis -60 KPX Tcaron Agrave -60 KPX Tcaron Amacron -60 KPX Tcaron Aogonek -60 KPX Tcaron Aring -60 KPX Tcaron Atilde -60 KPX Tcaron O 11 KPX Tcaron Oacute 11 KPX Tcaron Ocircumflex 11 KPX Tcaron Odieresis 11 KPX Tcaron Ograve 11 KPX Tcaron Ohungarumlaut 11 KPX Tcaron Omacron 11 KPX Tcaron Oslash 11 KPX Tcaron Otilde 11 KPX Tcaron a -40 KPX Tcaron aacute -40 KPX Tcaron abreve -40 KPX Tcaron acircumflex -40 KPX Tcaron adieresis -40 KPX Tcaron agrave -40 KPX Tcaron amacron -40 KPX Tcaron aogonek -40 KPX Tcaron aring -40 KPX Tcaron atilde -40 KPX Tcaron comma -55 KPX Tcaron e -33 KPX Tcaron eacute -33 KPX Tcaron ecaron -33 KPX Tcaron ecircumflex -33 KPX Tcaron edieresis -33 KPX Tcaron edotaccent -33 KPX Tcaron egrave -33 KPX Tcaron emacron -33 KPX Tcaron eogonek -33 KPX Tcaron h -9 KPX Tcaron hyphen -75 KPX Tcaron i -22 KPX Tcaron iacute -22 KPX Tcaron icircumflex -22 KPX Tcaron idieresis -22 KPX Tcaron igrave -22 KPX Tcaron imacron -22 KPX Tcaron iogonek -22 KPX Tcaron o -40 KPX Tcaron oacute -40 KPX Tcaron ocircumflex -40 KPX Tcaron odieresis -40 KPX Tcaron ograve -40 KPX Tcaron ohungarumlaut -40 KPX Tcaron omacron -40 KPX Tcaron oslash -40 KPX Tcaron otilde -40 KPX Tcaron period -55 KPX Tcaron r -9 KPX Tcaron racute -9 KPX Tcaron rcaron -9 KPX Tcaron rcommaaccent -9 KPX Tcaron u -22 KPX Tcaron uacute -22 KPX Tcaron ucircumflex -22 KPX Tcaron udieresis -22 KPX Tcaron ugrave -22 KPX Tcaron uhungarumlaut -22 KPX Tcaron umacron -22 KPX Tcaron uogonek -22 KPX Tcaron uring -22 KPX Tcaron w -30 KPX Tcaron y -30 KPX Tcaron yacute -30 KPX Tcaron ydieresis -30 KPX Tcommaaccent A -60 KPX Tcommaaccent Aacute -60 KPX Tcommaaccent Abreve -60 KPX Tcommaaccent Acircumflex -60 KPX Tcommaaccent Adieresis -60 KPX Tcommaaccent Agrave -60 KPX Tcommaaccent Amacron -60 KPX Tcommaaccent Aogonek -60 KPX Tcommaaccent Aring -60 KPX Tcommaaccent Atilde -60 KPX Tcommaaccent O 11 KPX Tcommaaccent Oacute 11 KPX Tcommaaccent Ocircumflex 11 KPX Tcommaaccent Odieresis 11 KPX Tcommaaccent Ograve 11 KPX Tcommaaccent Ohungarumlaut 11 KPX Tcommaaccent Omacron 11 KPX Tcommaaccent Oslash 11 KPX Tcommaaccent Otilde 11 KPX Tcommaaccent a -40 KPX Tcommaaccent aacute -40 KPX Tcommaaccent abreve -40 KPX Tcommaaccent acircumflex -40 KPX Tcommaaccent adieresis -40 KPX Tcommaaccent agrave -40 KPX Tcommaaccent amacron -40 KPX Tcommaaccent aogonek -40 KPX Tcommaaccent aring -40 KPX Tcommaaccent atilde -40 KPX Tcommaaccent comma -55 KPX Tcommaaccent e -33 KPX Tcommaaccent eacute -33 KPX Tcommaaccent ecaron -33 KPX Tcommaaccent ecircumflex -33 KPX Tcommaaccent edieresis -33 KPX Tcommaaccent edotaccent -33 KPX Tcommaaccent egrave -33 KPX Tcommaaccent emacron -33 KPX Tcommaaccent eogonek -33 KPX Tcommaaccent h -9 KPX Tcommaaccent hyphen -75 KPX Tcommaaccent i -22 KPX Tcommaaccent iacute -22 KPX Tcommaaccent icircumflex -22 KPX Tcommaaccent idieresis -22 KPX Tcommaaccent igrave -22 KPX Tcommaaccent imacron -22 KPX Tcommaaccent iogonek -22 KPX Tcommaaccent o -40 KPX Tcommaaccent oacute -40 KPX Tcommaaccent ocircumflex -40 KPX Tcommaaccent odieresis -40 KPX Tcommaaccent ograve -40 KPX Tcommaaccent ohungarumlaut -40 KPX Tcommaaccent omacron -40 KPX Tcommaaccent oslash -40 KPX Tcommaaccent otilde -40 KPX Tcommaaccent period -55 KPX Tcommaaccent r -9 KPX Tcommaaccent racute -9 KPX Tcommaaccent rcaron -9 KPX Tcommaaccent rcommaaccent -9 KPX Tcommaaccent u -22 KPX Tcommaaccent uacute -22 KPX Tcommaaccent ucircumflex -22 KPX Tcommaaccent udieresis -22 KPX Tcommaaccent ugrave -22 KPX Tcommaaccent uhungarumlaut -22 KPX Tcommaaccent umacron -22 KPX Tcommaaccent uogonek -22 KPX Tcommaaccent uring -22 KPX Tcommaaccent w -30 KPX Tcommaaccent y -30 KPX Tcommaaccent yacute -30 KPX Tcommaaccent ydieresis -30 KPX U A -42 KPX U Aacute -42 KPX U Abreve -42 KPX U Acircumflex -42 KPX U Adieresis -42 KPX U Agrave -42 KPX U Amacron -42 KPX U Aogonek -42 KPX U Aring -42 KPX U Atilde -42 KPX U comma -25 KPX U period -25 KPX Uacute A -42 KPX Uacute Aacute -42 KPX Uacute Abreve -42 KPX Uacute Acircumflex -42 KPX Uacute Adieresis -42 KPX Uacute Agrave -42 KPX Uacute Amacron -42 KPX Uacute Aogonek -42 KPX Uacute Aring -42 KPX Uacute Atilde -42 KPX Uacute comma -25 KPX Uacute period -25 KPX Ucircumflex A -42 KPX Ucircumflex Aacute -42 KPX Ucircumflex Abreve -42 KPX Ucircumflex Acircumflex -42 KPX Ucircumflex Adieresis -42 KPX Ucircumflex Agrave -42 KPX Ucircumflex Amacron -42 KPX Ucircumflex Aogonek -42 KPX Ucircumflex Aring -42 KPX Ucircumflex Atilde -42 KPX Ucircumflex comma -25 KPX Ucircumflex period -25 KPX Udieresis A -42 KPX Udieresis Aacute -42 KPX Udieresis Abreve -42 KPX Udieresis Acircumflex -42 KPX Udieresis Adieresis -42 KPX Udieresis Agrave -42 KPX Udieresis Amacron -42 KPX Udieresis Aogonek -42 KPX Udieresis Aring -42 KPX Udieresis Atilde -42 KPX Udieresis comma -25 KPX Udieresis period -25 KPX Ugrave A -42 KPX Ugrave Aacute -42 KPX Ugrave Abreve -42 KPX Ugrave Acircumflex -42 KPX Ugrave Adieresis -42 KPX Ugrave Agrave -42 KPX Ugrave Amacron -42 KPX Ugrave Aogonek -42 KPX Ugrave Aring -42 KPX Ugrave Atilde -42 KPX Ugrave comma -25 KPX Ugrave period -25 KPX Uhungarumlaut A -42 KPX Uhungarumlaut Aacute -42 KPX Uhungarumlaut Abreve -42 KPX Uhungarumlaut Acircumflex -42 KPX Uhungarumlaut Adieresis -42 KPX Uhungarumlaut Agrave -42 KPX Uhungarumlaut Amacron -42 KPX Uhungarumlaut Aogonek -42 KPX Uhungarumlaut Aring -42 KPX Uhungarumlaut Atilde -42 KPX Uhungarumlaut comma -25 KPX Uhungarumlaut period -25 KPX Umacron A -42 KPX Umacron Aacute -42 KPX Umacron Abreve -42 KPX Umacron Acircumflex -42 KPX Umacron Adieresis -42 KPX Umacron Agrave -42 KPX Umacron Amacron -42 KPX Umacron Aogonek -42 KPX Umacron Aring -42 KPX Umacron Atilde -42 KPX Umacron comma -25 KPX Umacron period -25 KPX Uogonek A -42 KPX Uogonek Aacute -42 KPX Uogonek Abreve -42 KPX Uogonek Acircumflex -42 KPX Uogonek Adieresis -42 KPX Uogonek Agrave -42 KPX Uogonek Amacron -42 KPX Uogonek Aogonek -42 KPX Uogonek Aring -42 KPX Uogonek Atilde -42 KPX Uogonek comma -25 KPX Uogonek period -25 KPX Uring A -42 KPX Uring Aacute -42 KPX Uring Abreve -42 KPX Uring Acircumflex -42 KPX Uring Adieresis -42 KPX Uring Agrave -42 KPX Uring Amacron -42 KPX Uring Aogonek -42 KPX Uring Aring -42 KPX Uring Atilde -42 KPX Uring comma -25 KPX Uring period -25 KPX V A -100 KPX V Aacute -100 KPX V Abreve -100 KPX V Acircumflex -100 KPX V Adieresis -100 KPX V Agrave -100 KPX V Amacron -100 KPX V Aogonek -100 KPX V Aring -100 KPX V Atilde -100 KPX V G -12 KPX V Gbreve -12 KPX V Gcommaaccent -12 KPX V O -19 KPX V Oacute -19 KPX V Ocircumflex -19 KPX V Odieresis -19 KPX V Ograve -19 KPX V Ohungarumlaut -19 KPX V Omacron -19 KPX V Oslash -19 KPX V Otilde -19 KPX V a -55 KPX V aacute -55 KPX V abreve -55 KPX V acircumflex -55 KPX V adieresis -55 KPX V agrave -55 KPX V amacron -55 KPX V aogonek -55 KPX V aring -55 KPX V atilde -55 KPX V colon -49 KPX V comma -94 KPX V e -66 KPX V eacute -66 KPX V ecaron -66 KPX V ecircumflex -66 KPX V edieresis -66 KPX V edotaccent -66 KPX V egrave -66 KPX V emacron -66 KPX V eogonek -66 KPX V hyphen -94 KPX V i -35 KPX V iacute -35 KPX V iogonek -35 KPX V o -71 KPX V oacute -71 KPX V ocircumflex -71 KPX V odieresis -71 KPX V ograve -71 KPX V ohungarumlaut -71 KPX V omacron -71 KPX V oslash -71 KPX V otilde -71 KPX V period -94 KPX V semicolon 6 KPX V u -70 KPX V uacute -70 KPX V ucircumflex -70 KPX V udieresis -70 KPX V ugrave -70 KPX V uhungarumlaut -70 KPX V umacron -70 KPX V uogonek -70 KPX V uring -70 KPX W A -66 KPX W Aacute -66 KPX W Abreve -66 KPX W Acircumflex -66 KPX W Adieresis -66 KPX W Agrave -66 KPX W Amacron -66 KPX W Aogonek -66 KPX W Aring -66 KPX W Atilde -66 KPX W O -11 KPX W Oacute -11 KPX W Ocircumflex -11 KPX W Odieresis -11 KPX W Ograve -11 KPX W Ohungarumlaut -11 KPX W Omacron -11 KPX W Oslash -11 KPX W Otilde -11 KPX W a -33 KPX W aacute -33 KPX W abreve -33 KPX W acircumflex -33 KPX W adieresis -33 KPX W agrave -33 KPX W amacron -33 KPX W aogonek -33 KPX W aring -33 KPX W atilde -33 KPX W colon -22 KPX W comma -86 KPX W e -39 KPX W eacute -39 KPX W ecaron -39 KPX W ecircumflex -39 KPX W edieresis -39 KPX W edotaccent -39 KPX W egrave -39 KPX W emacron -39 KPX W eogonek -39 KPX W h 5 KPX W hyphen -61 KPX W i -27 KPX W iacute -27 KPX W iogonek -27 KPX W o -33 KPX W oacute -33 KPX W ocircumflex -33 KPX W odieresis -33 KPX W ograve -33 KPX W ohungarumlaut -33 KPX W omacron -33 KPX W oslash -33 KPX W otilde -33 KPX W period -86 KPX W semicolon -22 KPX W u -25 KPX W uacute -25 KPX W ucircumflex -25 KPX W udieresis -25 KPX W ugrave -25 KPX W uhungarumlaut -25 KPX W umacron -25 KPX W uogonek -25 KPX W uring -25 KPX W y -41 KPX W yacute -41 KPX W ydieresis -41 KPX Y A -79 KPX Y Aacute -79 KPX Y Abreve -79 KPX Y Acircumflex -79 KPX Y Adieresis -79 KPX Y Agrave -79 KPX Y Amacron -79 KPX Y Aogonek -79 KPX Y Aring -79 KPX Y Atilde -79 KPX Y a -77 KPX Y aacute -77 KPX Y abreve -77 KPX Y acircumflex -77 KPX Y adieresis -77 KPX Y agrave -77 KPX Y amacron -77 KPX Y aogonek -77 KPX Y aring -77 KPX Y atilde -77 KPX Y colon -55 KPX Y comma -91 KPX Y e -71 KPX Y eacute -71 KPX Y ecaron -71 KPX Y ecircumflex -71 KPX Y edieresis -31 KPX Y edotaccent -71 KPX Y egrave -31 KPX Y emacron -71 KPX Y eogonek -71 KPX Y hyphen -91 KPX Y i -22 KPX Y iacute -22 KPX Y icircumflex -22 KPX Y iogonek -22 KPX Y o -77 KPX Y oacute -77 KPX Y ocircumflex -77 KPX Y odieresis -77 KPX Y ograve -77 KPX Y ohungarumlaut -77 KPX Y omacron -77 KPX Y oslash -77 KPX Y otilde -77 KPX Y period -91 KPX Y semicolon -55 KPX Y u -58 KPX Y uacute -58 KPX Y ucircumflex -58 KPX Y udieresis -58 KPX Y ugrave -58 KPX Y uhungarumlaut -58 KPX Y umacron -58 KPX Y uogonek -58 KPX Y uring -58 KPX Yacute A -79 KPX Yacute Aacute -79 KPX Yacute Abreve -79 KPX Yacute Acircumflex -79 KPX Yacute Adieresis -79 KPX Yacute Agrave -79 KPX Yacute Amacron -79 KPX Yacute Aogonek -79 KPX Yacute Aring -79 KPX Yacute Atilde -79 KPX Yacute a -77 KPX Yacute aacute -77 KPX Yacute abreve -77 KPX Yacute acircumflex -77 KPX Yacute adieresis -77 KPX Yacute agrave -77 KPX Yacute amacron -77 KPX Yacute aogonek -77 KPX Yacute aring -77 KPX Yacute atilde -77 KPX Yacute colon -55 KPX Yacute comma -91 KPX Yacute e -71 KPX Yacute eacute -71 KPX Yacute ecaron -71 KPX Yacute ecircumflex -71 KPX Yacute edieresis -31 KPX Yacute edotaccent -71 KPX Yacute egrave -31 KPX Yacute emacron -71 KPX Yacute eogonek -71 KPX Yacute hyphen -91 KPX Yacute i -22 KPX Yacute iacute -22 KPX Yacute icircumflex -22 KPX Yacute iogonek -22 KPX Yacute o -77 KPX Yacute oacute -77 KPX Yacute ocircumflex -77 KPX Yacute odieresis -77 KPX Yacute ograve -77 KPX Yacute ohungarumlaut -77 KPX Yacute omacron -77 KPX Yacute oslash -77 KPX Yacute otilde -77 KPX Yacute period -91 KPX Yacute semicolon -55 KPX Yacute u -58 KPX Yacute uacute -58 KPX Yacute ucircumflex -58 KPX Yacute udieresis -58 KPX Yacute ugrave -58 KPX Yacute uhungarumlaut -58 KPX Yacute umacron -58 KPX Yacute uogonek -58 KPX Yacute uring -58 KPX Ydieresis A -79 KPX Ydieresis Aacute -79 KPX Ydieresis Abreve -79 KPX Ydieresis Acircumflex -79 KPX Ydieresis Adieresis -79 KPX Ydieresis Agrave -79 KPX Ydieresis Amacron -79 KPX Ydieresis Aogonek -79 KPX Ydieresis Aring -79 KPX Ydieresis Atilde -79 KPX Ydieresis a -77 KPX Ydieresis aacute -77 KPX Ydieresis abreve -77 KPX Ydieresis acircumflex -77 KPX Ydieresis adieresis -77 KPX Ydieresis agrave -77 KPX Ydieresis amacron -77 KPX Ydieresis aogonek -77 KPX Ydieresis aring -77 KPX Ydieresis atilde -77 KPX Ydieresis colon -55 KPX Ydieresis comma -91 KPX Ydieresis e -71 KPX Ydieresis eacute -71 KPX Ydieresis ecaron -71 KPX Ydieresis ecircumflex -71 KPX Ydieresis edieresis -31 KPX Ydieresis edotaccent -71 KPX Ydieresis egrave -31 KPX Ydieresis emacron -71 KPX Ydieresis eogonek -71 KPX Ydieresis hyphen -91 KPX Ydieresis i -22 KPX Ydieresis iacute -22 KPX Ydieresis icircumflex -22 KPX Ydieresis iogonek -22 KPX Ydieresis o -77 KPX Ydieresis oacute -77 KPX Ydieresis ocircumflex -77 KPX Ydieresis odieresis -77 KPX Ydieresis ograve -77 KPX Ydieresis ohungarumlaut -77 KPX Ydieresis omacron -77 KPX Ydieresis oslash -77 KPX Ydieresis otilde -77 KPX Ydieresis period -91 KPX Ydieresis semicolon -55 KPX Ydieresis u -58 KPX Ydieresis uacute -58 KPX Ydieresis ucircumflex -58 KPX Ydieresis udieresis -58 KPX Ydieresis ugrave -58 KPX Ydieresis uhungarumlaut -58 KPX Ydieresis umacron -58 KPX Ydieresis uogonek -58 KPX Ydieresis uring -58 KPX a v 6 KPX a w -8 KPX a y -8 KPX a yacute -8 KPX a ydieresis -8 KPX aacute v 6 KPX aacute w -8 KPX aacute y -8 KPX aacute yacute -8 KPX aacute ydieresis -8 KPX abreve v 6 KPX abreve w -8 KPX abreve y -8 KPX abreve yacute -8 KPX abreve ydieresis -8 KPX acircumflex v 6 KPX acircumflex w -8 KPX acircumflex y -8 KPX acircumflex yacute -8 KPX acircumflex ydieresis -8 KPX adieresis v 6 KPX adieresis w -8 KPX adieresis y -8 KPX adieresis yacute -8 KPX adieresis ydieresis -8 KPX agrave v 6 KPX agrave w -8 KPX agrave y -8 KPX agrave yacute -8 KPX agrave ydieresis -8 KPX amacron v 6 KPX amacron w -8 KPX amacron y -8 KPX amacron yacute -8 KPX amacron ydieresis -8 KPX aogonek v 6 KPX aogonek w -8 KPX aogonek y 18 KPX aogonek yacute 18 KPX aogonek ydieresis 18 KPX aring v 6 KPX aring w -8 KPX aring y -8 KPX aring yacute -8 KPX aring ydieresis -8 KPX atilde v 6 KPX atilde w -8 KPX atilde y -8 KPX atilde yacute -8 KPX atilde ydieresis -8 KPX b comma 6 KPX b period 6 KPX b v 8 KPX b y -6 KPX b yacute -6 KPX b ydieresis -6 KPX c comma -8 KPX c h -18 KPX c k -8 KPX c kcommaaccent -8 KPX c l -13 KPX c lacute -13 KPX c lcommaaccent -13 KPX c lslash -13 KPX c period -8 KPX c y -20 KPX c yacute -20 KPX c ydieresis -20 KPX cacute comma -8 KPX cacute h -18 KPX cacute k -8 KPX cacute kcommaaccent -8 KPX cacute l -13 KPX cacute lacute -13 KPX cacute lcommaaccent -13 KPX cacute lslash -13 KPX cacute period -8 KPX cacute y -20 KPX cacute yacute -20 KPX cacute ydieresis -20 KPX ccaron comma -8 KPX ccaron h -18 KPX ccaron k -8 KPX ccaron kcommaaccent -8 KPX ccaron l -13 KPX ccaron lacute -13 KPX ccaron lcommaaccent -13 KPX ccaron lslash -13 KPX ccaron period -8 KPX ccaron y -20 KPX ccaron yacute -20 KPX ccaron ydieresis -20 KPX ccedilla comma -8 KPX ccedilla h -18 KPX ccedilla k -8 KPX ccedilla kcommaaccent -8 KPX ccedilla l -13 KPX ccedilla lacute -13 KPX ccedilla lcommaaccent -13 KPX ccedilla lslash -13 KPX ccedilla period -8 KPX ccedilla y -20 KPX ccedilla yacute -20 KPX ccedilla ydieresis -20 KPX colon space -18 KPX comma quotedblright -18 KPX comma quoteright -18 KPX comma space -18 KPX d w -15 KPX d y -15 KPX d yacute -15 KPX d ydieresis -15 KPX dcroat w -15 KPX dcroat y -15 KPX dcroat yacute -15 KPX dcroat ydieresis -15 KPX e b -8 KPX e g -4 KPX e gbreve -4 KPX e gcommaaccent -4 KPX e p -11 KPX e w -15 KPX e x -5 KPX e y -15 KPX e yacute -15 KPX e ydieresis -15 KPX eacute b -8 KPX eacute g -4 KPX eacute gbreve -4 KPX eacute gcommaaccent -4 KPX eacute p -11 KPX eacute w -15 KPX eacute x -5 KPX eacute y -15 KPX eacute yacute -15 KPX eacute ydieresis -15 KPX ecaron b -8 KPX ecaron g -4 KPX ecaron gbreve -4 KPX ecaron gcommaaccent -4 KPX ecaron p -11 KPX ecaron w -15 KPX ecaron x -5 KPX ecaron y -15 KPX ecaron yacute -15 KPX ecaron ydieresis -15 KPX ecircumflex b -8 KPX ecircumflex g -4 KPX ecircumflex gbreve -4 KPX ecircumflex gcommaaccent -4 KPX ecircumflex p -11 KPX ecircumflex w -15 KPX ecircumflex x -5 KPX ecircumflex y -15 KPX ecircumflex yacute -15 KPX ecircumflex ydieresis -15 KPX edieresis b -8 KPX edieresis g -4 KPX edieresis gbreve -4 KPX edieresis gcommaaccent -4 KPX edieresis p -11 KPX edieresis w -15 KPX edieresis x -5 KPX edieresis y -15 KPX edieresis yacute -15 KPX edieresis ydieresis -15 KPX edotaccent b -8 KPX edotaccent g -4 KPX edotaccent gbreve -4 KPX edotaccent gcommaaccent -4 KPX edotaccent p -11 KPX edotaccent w -15 KPX edotaccent x -5 KPX edotaccent y -15 KPX edotaccent yacute -15 KPX edotaccent ydieresis -15 KPX egrave b -8 KPX egrave g -4 KPX egrave gbreve -4 KPX egrave gcommaaccent -4 KPX egrave p -11 KPX egrave w -15 KPX egrave x -5 KPX egrave y -15 KPX egrave yacute -15 KPX egrave ydieresis -15 KPX emacron b -8 KPX emacron g -4 KPX emacron gbreve -4 KPX emacron gcommaaccent -4 KPX emacron p -11 KPX emacron w -15 KPX emacron x -5 KPX emacron y -15 KPX emacron yacute -15 KPX emacron ydieresis -15 KPX eogonek b -8 KPX eogonek g -4 KPX eogonek gbreve -4 KPX eogonek gcommaaccent -4 KPX eogonek p -11 KPX eogonek w -15 KPX eogonek x -5 KPX eogonek y -15 KPX eogonek yacute -15 KPX eogonek ydieresis -15 KPX f a 8 KPX f aacute 8 KPX f abreve 8 KPX f acircumflex 8 KPX f adieresis 8 KPX f agrave 8 KPX f amacron 8 KPX f aogonek 8 KPX f aring 8 KPX f atilde 8 KPX f comma -28 KPX f dotlessi 7 KPX f e 14 KPX f eacute 14 KPX f ecaron 34 KPX f ecircumflex 34 KPX f edieresis 34 KPX f edotaccent 14 KPX f egrave 34 KPX f emacron 34 KPX f eogonek 14 KPX f i 7 KPX f iacute 27 KPX f icircumflex 27 KPX f idieresis 27 KPX f igrave 27 KPX f imacron 27 KPX f iogonek 7 KPX f l 7 KPX f lacute 7 KPX f lcommaaccent 7 KPX f lslash 7 KPX f o 7 KPX f oacute 7 KPX f ocircumflex 7 KPX f odieresis 7 KPX f ograve 7 KPX f ohungarumlaut 7 KPX f omacron 7 KPX f oslash 7 KPX f otilde 7 KPX f period -28 KPX f quotedblright 105 KPX f quoteright 105 KPX g comma -5 KPX g period -5 KPX g r 11 KPX g racute 11 KPX g rcaron 11 KPX g rcommaaccent 11 KPX g y -11 KPX g yacute -11 KPX g ydieresis -11 KPX gbreve comma -5 KPX gbreve period -5 KPX gbreve r 11 KPX gbreve racute 11 KPX gbreve rcaron 11 KPX gbreve rcommaaccent 11 KPX gbreve y -11 KPX gbreve yacute -11 KPX gbreve ydieresis -11 KPX gcommaaccent comma -5 KPX gcommaaccent period -5 KPX gcommaaccent r 11 KPX gcommaaccent racute 11 KPX gcommaaccent rcaron 11 KPX gcommaaccent rcommaaccent 11 KPX gcommaaccent y -11 KPX gcommaaccent yacute -11 KPX gcommaaccent ydieresis -11 KPX h y -20 KPX h yacute -20 KPX h ydieresis -20 KPX i v 7 KPX iacute v 7 KPX icircumflex v 7 KPX idieresis v 7 KPX igrave v 7 KPX imacron v 7 KPX iogonek v 7 KPX k e -16 KPX k eacute -16 KPX k ecaron -16 KPX k ecircumflex -16 KPX k edieresis -16 KPX k edotaccent -16 KPX k egrave -16 KPX k emacron -16 KPX k eogonek -16 KPX k o -22 KPX k oacute -22 KPX k ocircumflex -22 KPX k odieresis -22 KPX k ograve -22 KPX k ohungarumlaut -22 KPX k omacron -22 KPX k oslash -22 KPX k otilde -22 KPX k y -15 KPX k yacute -15 KPX k ydieresis -15 KPX kcommaaccent e -16 KPX kcommaaccent eacute -16 KPX kcommaaccent ecaron -16 KPX kcommaaccent ecircumflex -16 KPX kcommaaccent edieresis -16 KPX kcommaaccent edotaccent -16 KPX kcommaaccent egrave -16 KPX kcommaaccent emacron -16 KPX kcommaaccent eogonek -16 KPX kcommaaccent o -22 KPX kcommaaccent oacute -22 KPX kcommaaccent ocircumflex -22 KPX kcommaaccent odieresis -22 KPX kcommaaccent ograve -22 KPX kcommaaccent ohungarumlaut -22 KPX kcommaaccent omacron -22 KPX kcommaaccent oslash -22 KPX kcommaaccent otilde -22 KPX kcommaaccent y -15 KPX kcommaaccent yacute -15 KPX kcommaaccent ydieresis -15 KPX l w -7 KPX l y -7 KPX l yacute -7 KPX l ydieresis -7 KPX lacute w -7 KPX lacute y -7 KPX lacute yacute -7 KPX lacute ydieresis -7 KPX lcommaaccent w -7 KPX lcommaaccent y -7 KPX lcommaaccent yacute -7 KPX lcommaaccent ydieresis -7 KPX lslash w -7 KPX lslash y -7 KPX lslash yacute -7 KPX lslash ydieresis -7 KPX m u -11 KPX m uacute -11 KPX m ucircumflex -11 KPX m udieresis -11 KPX m ugrave -11 KPX m uhungarumlaut -11 KPX m umacron -11 KPX m uogonek -11 KPX m uring -11 KPX m y -20 KPX m yacute -20 KPX m ydieresis -20 KPX n u -11 KPX n uacute -11 KPX n ucircumflex -11 KPX n udieresis -11 KPX n ugrave -11 KPX n uhungarumlaut -11 KPX n umacron -11 KPX n uogonek -11 KPX n uring -11 KPX n v -7 KPX n y -20 KPX n yacute -20 KPX n ydieresis -20 KPX nacute u -11 KPX nacute uacute -11 KPX nacute ucircumflex -11 KPX nacute udieresis -11 KPX nacute ugrave -11 KPX nacute uhungarumlaut -11 KPX nacute umacron -11 KPX nacute uogonek -11 KPX nacute uring -11 KPX nacute v -7 KPX nacute y -20 KPX nacute yacute -20 KPX nacute ydieresis -20 KPX ncaron u -11 KPX ncaron uacute -11 KPX ncaron ucircumflex -11 KPX ncaron udieresis -11 KPX ncaron ugrave -11 KPX ncaron uhungarumlaut -11 KPX ncaron umacron -11 KPX ncaron uogonek -11 KPX ncaron uring -11 KPX ncaron v -7 KPX ncaron y -20 KPX ncaron yacute -20 KPX ncaron ydieresis -20 KPX ncommaaccent u -11 KPX ncommaaccent uacute -11 KPX ncommaaccent ucircumflex -11 KPX ncommaaccent udieresis -11 KPX ncommaaccent ugrave -11 KPX ncommaaccent uhungarumlaut -11 KPX ncommaaccent umacron -11 KPX ncommaaccent uogonek -11 KPX ncommaaccent uring -11 KPX ncommaaccent v -7 KPX ncommaaccent y -20 KPX ncommaaccent yacute -20 KPX ncommaaccent ydieresis -20 KPX ntilde u -11 KPX ntilde uacute -11 KPX ntilde ucircumflex -11 KPX ntilde udieresis -11 KPX ntilde ugrave -11 KPX ntilde uhungarumlaut -11 KPX ntilde umacron -11 KPX ntilde uogonek -11 KPX ntilde uring -11 KPX ntilde v -7 KPX ntilde y -20 KPX ntilde yacute -20 KPX ntilde ydieresis -20 KPX o v 6 KPX o w -8 KPX o y -11 KPX o yacute -11 KPX o ydieresis -11 KPX oacute v 6 KPX oacute w -8 KPX oacute y -11 KPX oacute yacute -11 KPX oacute ydieresis -11 KPX ocircumflex v 6 KPX ocircumflex w -8 KPX ocircumflex y -11 KPX ocircumflex yacute -11 KPX ocircumflex ydieresis -11 KPX odieresis v 6 KPX odieresis w -8 KPX odieresis y -11 KPX odieresis yacute -11 KPX odieresis ydieresis -11 KPX ograve v 6 KPX ograve w -8 KPX ograve y -11 KPX ograve yacute -11 KPX ograve ydieresis -11 KPX ohungarumlaut v 6 KPX ohungarumlaut w -8 KPX ohungarumlaut y -11 KPX ohungarumlaut yacute -11 KPX ohungarumlaut ydieresis -11 KPX omacron v 6 KPX omacron w -8 KPX omacron y -11 KPX omacron yacute -11 KPX omacron ydieresis -11 KPX oslash v 6 KPX oslash w -8 KPX oslash y -11 KPX oslash yacute -11 KPX oslash ydieresis -11 KPX otilde v 6 KPX otilde w -8 KPX otilde y -11 KPX otilde yacute -11 KPX otilde ydieresis -11 KPX p comma 8 KPX p period 8 KPX p y -4 KPX p yacute -4 KPX p ydieresis -4 KPX period quotedblright -18 KPX period quoteright -18 KPX period space -18 KPX quotedblleft A -60 KPX quotedblleft Aacute -60 KPX quotedblleft Abreve -60 KPX quotedblleft Acircumflex -60 KPX quotedblleft Adieresis -60 KPX quotedblleft Agrave -60 KPX quotedblleft Amacron -60 KPX quotedblleft Aogonek -60 KPX quotedblleft Aring -60 KPX quotedblleft Atilde -60 KPX quotedblleft quoteleft 20 KPX quotedblright space -18 KPX quoteleft A -80 KPX quoteleft Aacute -80 KPX quoteleft Abreve -80 KPX quoteleft Acircumflex -80 KPX quoteleft Adieresis -80 KPX quoteleft Agrave -80 KPX quoteleft Amacron -80 KPX quoteleft Aogonek -80 KPX quoteleft Aring -80 KPX quoteleft Atilde -80 KPX quoteright d -41 KPX quoteright dcroat -41 KPX quoteright l -22 KPX quoteright lacute -22 KPX quoteright lcommaaccent -22 KPX quoteright lslash -22 KPX quoteright r -9 KPX quoteright racute -9 KPX quoteright rcaron -9 KPX quoteright rcommaaccent -9 KPX quoteright s -46 KPX quoteright sacute -46 KPX quoteright scaron -46 KPX quoteright scedilla -46 KPX quoteright scommaaccent -46 KPX quoteright t -22 KPX quoteright tcommaaccent -22 KPX quoteright v -16 KPX r a -11 KPX r aacute -11 KPX r abreve -11 KPX r acircumflex -11 KPX r adieresis -11 KPX r agrave -11 KPX r amacron -11 KPX r aogonek -11 KPX r aring -11 KPX r atilde -11 KPX r colon 9 KPX r comma -90 KPX r d -7 KPX r dcroat -7 KPX r e -7 KPX r eacute -7 KPX r ecaron -7 KPX r ecircumflex -7 KPX r edieresis -7 KPX r edotaccent -7 KPX r egrave -7 KPX r emacron -7 KPX r eogonek -7 KPX r g -11 KPX r gbreve -11 KPX r gcommaaccent -11 KPX r hyphen -16 KPX r i -14 KPX r iacute -14 KPX r icircumflex -14 KPX r idieresis -14 KPX r igrave -14 KPX r imacron -14 KPX r iogonek -14 KPX r k 9 KPX r kcommaaccent 9 KPX r l -14 KPX r lacute -14 KPX r lcommaaccent -14 KPX r lslash -14 KPX r o -11 KPX r oacute -11 KPX r ocircumflex -11 KPX r odieresis -11 KPX r ograve -11 KPX r ohungarumlaut -11 KPX r omacron -11 KPX r oslash -11 KPX r otilde -11 KPX r p -17 KPX r period -90 KPX r quoteright 9 KPX r s -20 KPX r sacute -20 KPX r scaron -20 KPX r scedilla -20 KPX r scommaaccent -20 KPX r semicolon 9 KPX r t -11 KPX r tcommaaccent -11 KPX r u -11 KPX r uacute -11 KPX r ucircumflex -11 KPX r udieresis -11 KPX r ugrave -11 KPX r uhungarumlaut -11 KPX r umacron -11 KPX r uogonek -11 KPX r uring -11 KPX r v -7 KPX r y -20 KPX r yacute -20 KPX r ydieresis -20 KPX racute a -11 KPX racute aacute -11 KPX racute abreve -11 KPX racute acircumflex -11 KPX racute adieresis -11 KPX racute agrave -11 KPX racute amacron -11 KPX racute aogonek -11 KPX racute aring -11 KPX racute atilde -11 KPX racute colon 9 KPX racute comma -90 KPX racute d -7 KPX racute dcroat -7 KPX racute e -7 KPX racute eacute -7 KPX racute ecaron -7 KPX racute ecircumflex -7 KPX racute edieresis -7 KPX racute edotaccent -7 KPX racute egrave -7 KPX racute emacron -7 KPX racute eogonek -7 KPX racute g -11 KPX racute gbreve -11 KPX racute gcommaaccent -11 KPX racute hyphen -16 KPX racute i -14 KPX racute iacute -14 KPX racute icircumflex -14 KPX racute idieresis -14 KPX racute igrave -14 KPX racute imacron -14 KPX racute iogonek -14 KPX racute k 9 KPX racute kcommaaccent 9 KPX racute l -14 KPX racute lacute -14 KPX racute lcommaaccent -14 KPX racute lslash -14 KPX racute o -11 KPX racute oacute -11 KPX racute ocircumflex -11 KPX racute odieresis -11 KPX racute ograve -11 KPX racute ohungarumlaut -11 KPX racute omacron -11 KPX racute oslash -11 KPX racute otilde -11 KPX racute p -17 KPX racute period -90 KPX racute quoteright 9 KPX racute s -20 KPX racute sacute -20 KPX racute scaron -20 KPX racute scedilla -20 KPX racute scommaaccent -20 KPX racute semicolon 9 KPX racute t -11 KPX racute tcommaaccent -11 KPX racute u -11 KPX racute uacute -11 KPX racute ucircumflex -11 KPX racute udieresis -11 KPX racute ugrave -11 KPX racute uhungarumlaut -11 KPX racute umacron -11 KPX racute uogonek -11 KPX racute uring -11 KPX racute v -7 KPX racute y -20 KPX racute yacute -20 KPX racute ydieresis -20 KPX rcaron a -11 KPX rcaron aacute -11 KPX rcaron abreve -11 KPX rcaron acircumflex -11 KPX rcaron adieresis -11 KPX rcaron agrave -11 KPX rcaron amacron -11 KPX rcaron aogonek -11 KPX rcaron aring -11 KPX rcaron atilde -11 KPX rcaron colon 9 KPX rcaron comma -90 KPX rcaron d -7 KPX rcaron dcroat -7 KPX rcaron e -7 KPX rcaron eacute -7 KPX rcaron ecaron -7 KPX rcaron ecircumflex -7 KPX rcaron edieresis -7 KPX rcaron edotaccent -7 KPX rcaron egrave -7 KPX rcaron emacron -7 KPX rcaron eogonek -7 KPX rcaron g -11 KPX rcaron gbreve -11 KPX rcaron gcommaaccent -11 KPX rcaron hyphen -16 KPX rcaron i -14 KPX rcaron iacute -14 KPX rcaron icircumflex -14 KPX rcaron idieresis -14 KPX rcaron igrave -14 KPX rcaron imacron -14 KPX rcaron iogonek -14 KPX rcaron k 9 KPX rcaron kcommaaccent 9 KPX rcaron l -14 KPX rcaron lacute -14 KPX rcaron lcommaaccent -14 KPX rcaron lslash -14 KPX rcaron o -11 KPX rcaron oacute -11 KPX rcaron ocircumflex -11 KPX rcaron odieresis -11 KPX rcaron ograve -11 KPX rcaron ohungarumlaut -11 KPX rcaron omacron -11 KPX rcaron oslash -11 KPX rcaron otilde -11 KPX rcaron p -17 KPX rcaron period -90 KPX rcaron quoteright 9 KPX rcaron s -20 KPX rcaron sacute -20 KPX rcaron scaron -20 KPX rcaron scedilla -20 KPX rcaron scommaaccent -20 KPX rcaron semicolon 9 KPX rcaron t -11 KPX rcaron tcommaaccent -11 KPX rcaron u -11 KPX rcaron uacute -11 KPX rcaron ucircumflex -11 KPX rcaron udieresis -11 KPX rcaron ugrave -11 KPX rcaron uhungarumlaut -11 KPX rcaron umacron -11 KPX rcaron uogonek -11 KPX rcaron uring -11 KPX rcaron v -7 KPX rcaron y -20 KPX rcaron yacute -20 KPX rcaron ydieresis -20 KPX rcommaaccent a -11 KPX rcommaaccent aacute -11 KPX rcommaaccent abreve -11 KPX rcommaaccent acircumflex -11 KPX rcommaaccent adieresis -11 KPX rcommaaccent agrave -11 KPX rcommaaccent amacron -11 KPX rcommaaccent aogonek -11 KPX rcommaaccent aring -11 KPX rcommaaccent atilde -11 KPX rcommaaccent colon 9 KPX rcommaaccent comma -90 KPX rcommaaccent d -7 KPX rcommaaccent dcroat -7 KPX rcommaaccent e -7 KPX rcommaaccent eacute -7 KPX rcommaaccent ecaron -7 KPX rcommaaccent ecircumflex -7 KPX rcommaaccent edieresis -7 KPX rcommaaccent edotaccent -7 KPX rcommaaccent egrave -7 KPX rcommaaccent emacron -7 KPX rcommaaccent eogonek -7 KPX rcommaaccent g -11 KPX rcommaaccent gbreve -11 KPX rcommaaccent gcommaaccent -11 KPX rcommaaccent hyphen -16 KPX rcommaaccent i -14 KPX rcommaaccent iacute -14 KPX rcommaaccent icircumflex -14 KPX rcommaaccent idieresis -14 KPX rcommaaccent igrave -14 KPX rcommaaccent imacron -14 KPX rcommaaccent iogonek -14 KPX rcommaaccent k 9 KPX rcommaaccent kcommaaccent 9 KPX rcommaaccent l -14 KPX rcommaaccent lacute -14 KPX rcommaaccent lcommaaccent -14 KPX rcommaaccent lslash -14 KPX rcommaaccent o -11 KPX rcommaaccent oacute -11 KPX rcommaaccent ocircumflex -11 KPX rcommaaccent odieresis -11 KPX rcommaaccent ograve -11 KPX rcommaaccent ohungarumlaut -11 KPX rcommaaccent omacron -11 KPX rcommaaccent oslash -11 KPX rcommaaccent otilde -11 KPX rcommaaccent p -17 KPX rcommaaccent period -90 KPX rcommaaccent quoteright 9 KPX rcommaaccent s -20 KPX rcommaaccent sacute -20 KPX rcommaaccent scaron -20 KPX rcommaaccent scedilla -20 KPX rcommaaccent scommaaccent -20 KPX rcommaaccent semicolon 9 KPX rcommaaccent t -11 KPX rcommaaccent tcommaaccent -11 KPX rcommaaccent u -11 KPX rcommaaccent uacute -11 KPX rcommaaccent ucircumflex -11 KPX rcommaaccent udieresis -11 KPX rcommaaccent ugrave -11 KPX rcommaaccent uhungarumlaut -11 KPX rcommaaccent umacron -11 KPX rcommaaccent uogonek -11 KPX rcommaaccent uring -11 KPX rcommaaccent v -7 KPX rcommaaccent y -20 KPX rcommaaccent yacute -20 KPX rcommaaccent ydieresis -20 KPX s comma 11 KPX s period 11 KPX sacute comma 11 KPX sacute period 11 KPX scaron comma 11 KPX scaron period 11 KPX scedilla comma 11 KPX scedilla period 11 KPX scommaaccent comma 11 KPX scommaaccent period 11 KPX semicolon space -18 KPX space A -22 KPX space Aacute -22 KPX space Abreve -22 KPX space Acircumflex -22 KPX space Adieresis -22 KPX space Agrave -22 KPX space Amacron -22 KPX space Aogonek -22 KPX space Aring -22 KPX space Atilde -22 KPX space T -18 KPX space Tcaron -18 KPX space Tcommaaccent -18 KPX space V -24 KPX space W -33 KPX space Y -18 KPX space Yacute -18 KPX space Ydieresis -18 KPX space quotedblleft -18 KPX v a -6 KPX v aacute -6 KPX v abreve -6 KPX v acircumflex -6 KPX v adieresis -6 KPX v agrave -6 KPX v amacron -6 KPX v aogonek -6 KPX v aring -6 KPX v atilde -6 KPX v comma -11 KPX v o -6 KPX v oacute -6 KPX v ocircumflex -6 KPX v odieresis -6 KPX v ograve -6 KPX v ohungarumlaut -6 KPX v omacron -6 KPX v oslash -6 KPX v otilde -6 KPX v period -11 KPX w a -14 KPX w aacute -14 KPX w abreve -14 KPX w acircumflex -14 KPX w adieresis -14 KPX w agrave -14 KPX w amacron -14 KPX w aogonek -14 KPX w aring -14 KPX w atilde -14 KPX w comma -17 KPX w e -8 KPX w eacute -8 KPX w ecaron -8 KPX w ecircumflex -8 KPX w edieresis -8 KPX w edotaccent -8 KPX w egrave -8 KPX w emacron -8 KPX w eogonek -8 KPX w o -14 KPX w oacute -14 KPX w ocircumflex -14 KPX w odieresis -14 KPX w ograve -14 KPX w ohungarumlaut -14 KPX w omacron -14 KPX w oslash -14 KPX w otilde -14 KPX w period -17 KPX x e 5 KPX x eacute 5 KPX x ecaron 5 KPX x ecircumflex 5 KPX x edieresis 5 KPX x edotaccent 5 KPX x egrave 5 KPX x emacron 5 KPX x eogonek 5 KPX y a 8 KPX y aacute 8 KPX y abreve 8 KPX y acircumflex 8 KPX y adieresis 8 KPX y agrave 8 KPX y amacron 8 KPX y aogonek 8 KPX y aring 8 KPX y atilde 8 KPX y comma -25 KPX y e 15 KPX y eacute 15 KPX y ecaron 15 KPX y ecircumflex 15 KPX y edieresis 15 KPX y edotaccent 15 KPX y egrave 15 KPX y emacron 15 KPX y eogonek 15 KPX y o 8 KPX y oacute 8 KPX y ocircumflex 8 KPX y odieresis 8 KPX y ograve 8 KPX y ohungarumlaut 8 KPX y omacron 8 KPX y oslash 8 KPX y otilde 8 KPX y period -25 KPX yacute a 8 KPX yacute aacute 8 KPX yacute abreve 8 KPX yacute acircumflex 8 KPX yacute adieresis 8 KPX yacute agrave 8 KPX yacute amacron 8 KPX yacute aogonek 8 KPX yacute aring 8 KPX yacute atilde 8 KPX yacute comma -25 KPX yacute e 15 KPX yacute eacute 15 KPX yacute ecaron 15 KPX yacute ecircumflex 15 KPX yacute edieresis 15 KPX yacute edotaccent 15 KPX yacute egrave 15 KPX yacute emacron 15 KPX yacute eogonek 15 KPX yacute o 8 KPX yacute oacute 8 KPX yacute ocircumflex 8 KPX yacute odieresis 8 KPX yacute ograve 8 KPX yacute ohungarumlaut 8 KPX yacute omacron 8 KPX yacute oslash 8 KPX yacute otilde 8 KPX yacute period -25 KPX ydieresis a 8 KPX ydieresis aacute 8 KPX ydieresis abreve 8 KPX ydieresis acircumflex 8 KPX ydieresis adieresis 8 KPX ydieresis agrave 8 KPX ydieresis amacron 8 KPX ydieresis aogonek 8 KPX ydieresis aring 8 KPX ydieresis atilde 8 KPX ydieresis comma -25 KPX ydieresis e 15 KPX ydieresis eacute 15 KPX ydieresis ecaron 15 KPX ydieresis ecircumflex 15 KPX ydieresis edieresis 15 KPX ydieresis edotaccent 15 KPX ydieresis egrave 15 KPX ydieresis emacron 15 KPX ydieresis eogonek 15 KPX ydieresis o 8 KPX ydieresis oacute 8 KPX ydieresis ocircumflex 8 KPX ydieresis odieresis 8 KPX ydieresis ograve 8 KPX ydieresis ohungarumlaut 8 KPX ydieresis omacron 8 KPX ydieresis oslash 8 KPX ydieresis otilde 8 KPX ydieresis period -25 KPX z e 4 KPX z eacute 4 KPX z ecaron 4 KPX z ecircumflex 4 KPX z edieresis 4 KPX z edotaccent 4 KPX z egrave 4 KPX z emacron 4 KPX z eogonek 4 KPX zacute e 4 KPX zacute eacute 4 KPX zacute ecaron 4 KPX zacute ecircumflex 4 KPX zacute edieresis 4 KPX zacute edotaccent 4 KPX zacute egrave 4 KPX zacute emacron 4 KPX zacute eogonek 4 KPX zcaron e 4 KPX zcaron eacute 4 KPX zcaron ecaron 4 KPX zcaron ecircumflex 4 KPX zcaron edieresis 4 KPX zcaron edotaccent 4 KPX zcaron egrave 4 KPX zcaron emacron 4 KPX zcaron eogonek 4 KPX zdotaccent e 4 KPX zdotaccent eacute 4 KPX zdotaccent ecaron 4 KPX zdotaccent ecircumflex 4 KPX zdotaccent edieresis 4 KPX zdotaccent edotaccent 4 KPX zdotaccent egrave 4 KPX zdotaccent emacron 4 KPX zdotaccent eogonek 4 EndKernPairs EndKernData EndFontMetrics a2ps-4.14/afm/phvro.afm0000644000175000017500000022113010674334153014220 0ustar mhattamhattaStartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Thu May 1 12:44:31 1997 Comment UniqueID 43055 Comment VMusage 14960 69346 FontName Helvetica-Oblique FullName Helvetica Oblique FamilyName Helvetica Weight Medium ItalicAngle -12 IsFixedPitch false FontBBox -170 -225 1116 931 UnderlinePosition -100 UnderlineThickness 50 Version 002.000 Notice Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries. EncodingScheme AdobeStandardEncoding CapHeight 718 XHeight 523 Ascender 718 Descender -207 StdHW 76 StdVW 88 StartCharMetrics 314 C 32 ; WX 278 ; N space ; B 0 0 0 0 ; C 33 ; WX 278 ; N exclam ; B 90 0 340 718 ; C 34 ; WX 355 ; N quotedbl ; B 168 463 438 718 ; C 35 ; WX 556 ; N numbersign ; B 73 0 631 688 ; C 36 ; WX 556 ; N dollar ; B 69 -115 617 775 ; C 37 ; WX 889 ; N percent ; B 147 -19 889 703 ; C 38 ; WX 667 ; N ampersand ; B 77 -15 647 718 ; C 39 ; WX 222 ; N quoteright ; B 151 463 310 718 ; C 40 ; WX 333 ; N parenleft ; B 108 -207 454 733 ; C 41 ; WX 333 ; N parenright ; B -9 -207 337 733 ; C 42 ; WX 389 ; N asterisk ; B 165 431 475 718 ; C 43 ; WX 584 ; N plus ; B 85 0 606 505 ; C 44 ; WX 278 ; N comma ; B 56 -147 214 106 ; C 45 ; WX 333 ; N hyphen ; B 93 232 357 322 ; C 46 ; WX 278 ; N period ; B 87 0 214 106 ; C 47 ; WX 278 ; N slash ; B -21 -19 452 737 ; C 48 ; WX 556 ; N zero ; B 93 -19 608 703 ; C 49 ; WX 556 ; N one ; B 207 0 508 703 ; C 50 ; WX 556 ; N two ; B 26 0 617 703 ; C 51 ; WX 556 ; N three ; B 75 -19 610 703 ; C 52 ; WX 556 ; N four ; B 61 0 576 703 ; C 53 ; WX 556 ; N five ; B 68 -19 621 688 ; C 54 ; WX 556 ; N six ; B 91 -19 615 703 ; C 55 ; WX 556 ; N seven ; B 137 0 669 688 ; C 56 ; WX 556 ; N eight ; B 74 -19 607 703 ; C 57 ; WX 556 ; N nine ; B 82 -19 609 703 ; C 58 ; WX 278 ; N colon ; B 87 0 301 516 ; C 59 ; WX 278 ; N semicolon ; B 56 -147 301 516 ; C 60 ; WX 584 ; N less ; B 94 11 641 495 ; C 61 ; WX 584 ; N equal ; B 63 115 628 390 ; C 62 ; WX 584 ; N greater ; B 50 11 597 495 ; C 63 ; WX 556 ; N question ; B 161 0 610 727 ; C 64 ; WX 1015 ; N at ; B 215 -19 965 737 ; C 65 ; WX 667 ; N A ; B 14 0 654 718 ; C 66 ; WX 667 ; N B ; B 74 0 712 718 ; C 67 ; WX 722 ; N C ; B 108 -19 782 737 ; C 68 ; WX 722 ; N D ; B 81 0 764 718 ; C 69 ; WX 667 ; N E ; B 86 0 762 718 ; C 70 ; WX 611 ; N F ; B 86 0 736 718 ; C 71 ; WX 778 ; N G ; B 111 -19 799 737 ; C 72 ; WX 722 ; N H ; B 77 0 799 718 ; C 73 ; WX 278 ; N I ; B 91 0 341 718 ; C 74 ; WX 500 ; N J ; B 47 -19 581 718 ; C 75 ; WX 667 ; N K ; B 76 0 808 718 ; C 76 ; WX 556 ; N L ; B 76 0 555 718 ; C 77 ; WX 833 ; N M ; B 73 0 914 718 ; C 78 ; WX 722 ; N N ; B 76 0 799 718 ; C 79 ; WX 778 ; N O ; B 105 -19 826 737 ; C 80 ; WX 667 ; N P ; B 86 0 737 718 ; C 81 ; WX 778 ; N Q ; B 105 -56 826 737 ; C 82 ; WX 722 ; N R ; B 88 0 773 718 ; C 83 ; WX 667 ; N S ; B 90 -19 713 737 ; C 84 ; WX 611 ; N T ; B 148 0 750 718 ; C 85 ; WX 722 ; N U ; B 123 -19 797 718 ; C 86 ; WX 667 ; N V ; B 173 0 800 718 ; C 87 ; WX 944 ; N W ; B 169 0 1081 718 ; C 88 ; WX 667 ; N X ; B 19 0 790 718 ; C 89 ; WX 667 ; N Y ; B 167 0 806 718 ; C 90 ; WX 611 ; N Z ; B 23 0 741 718 ; C 91 ; WX 278 ; N bracketleft ; B 21 -196 403 722 ; C 92 ; WX 278 ; N backslash ; B 140 -19 291 737 ; C 93 ; WX 278 ; N bracketright ; B -14 -196 368 722 ; C 94 ; WX 469 ; N asciicircum ; B 42 264 539 688 ; C 95 ; WX 556 ; N underscore ; B -27 -125 540 -75 ; C 96 ; WX 222 ; N quoteleft ; B 165 470 323 725 ; C 97 ; WX 556 ; N a ; B 61 -15 559 538 ; C 98 ; WX 556 ; N b ; B 58 -15 584 718 ; C 99 ; WX 500 ; N c ; B 74 -15 553 538 ; C 100 ; WX 556 ; N d ; B 84 -15 652 718 ; C 101 ; WX 556 ; N e ; B 84 -15 578 538 ; C 102 ; WX 278 ; N f ; B 86 0 416 728 ; L i fi ; L l fl ; C 103 ; WX 556 ; N g ; B 42 -220 610 538 ; C 104 ; WX 556 ; N h ; B 65 0 573 718 ; C 105 ; WX 222 ; N i ; B 67 0 308 718 ; C 106 ; WX 222 ; N j ; B -60 -210 308 718 ; C 107 ; WX 500 ; N k ; B 67 0 600 718 ; C 108 ; WX 222 ; N l ; B 67 0 308 718 ; C 109 ; WX 833 ; N m ; B 65 0 852 538 ; C 110 ; WX 556 ; N n ; B 65 0 573 538 ; C 111 ; WX 556 ; N o ; B 83 -14 585 538 ; C 112 ; WX 556 ; N p ; B 14 -207 584 538 ; C 113 ; WX 556 ; N q ; B 84 -207 605 538 ; C 114 ; WX 333 ; N r ; B 77 0 446 538 ; C 115 ; WX 500 ; N s ; B 63 -15 529 538 ; C 116 ; WX 278 ; N t ; B 102 -7 368 669 ; C 117 ; WX 556 ; N u ; B 94 -15 600 523 ; C 118 ; WX 500 ; N v ; B 119 0 603 523 ; C 119 ; WX 722 ; N w ; B 125 0 820 523 ; C 120 ; WX 500 ; N x ; B 11 0 594 523 ; C 121 ; WX 500 ; N y ; B 15 -214 600 523 ; C 122 ; WX 500 ; N z ; B 31 0 571 523 ; C 123 ; WX 334 ; N braceleft ; B 92 -196 445 722 ; C 124 ; WX 260 ; N bar ; B 46 -225 332 775 ; C 125 ; WX 334 ; N braceright ; B 0 -196 354 722 ; C 126 ; WX 584 ; N asciitilde ; B 111 180 580 326 ; C 161 ; WX 333 ; N exclamdown ; B 77 -195 326 523 ; C 162 ; WX 556 ; N cent ; B 95 -115 584 623 ; C 163 ; WX 556 ; N sterling ; B 49 -16 634 718 ; C 164 ; WX 167 ; N fraction ; B -170 -19 482 703 ; C 165 ; WX 556 ; N yen ; B 81 0 699 688 ; C 166 ; WX 556 ; N florin ; B -52 -207 654 737 ; C 167 ; WX 556 ; N section ; B 76 -191 584 737 ; C 168 ; WX 556 ; N currency ; B 60 99 646 603 ; C 169 ; WX 191 ; N quotesingle ; B 157 463 285 718 ; C 170 ; WX 333 ; N quotedblleft ; B 138 470 461 725 ; C 171 ; WX 556 ; N guillemotleft ; B 146 108 554 446 ; C 172 ; WX 333 ; N guilsinglleft ; B 137 108 340 446 ; C 173 ; WX 333 ; N guilsinglright ; B 111 108 314 446 ; C 174 ; WX 500 ; N fi ; B 86 0 587 728 ; C 175 ; WX 500 ; N fl ; B 86 0 585 728 ; C 177 ; WX 556 ; N endash ; B 51 240 623 313 ; C 178 ; WX 556 ; N dagger ; B 135 -159 622 718 ; C 179 ; WX 556 ; N daggerdbl ; B 52 -159 623 718 ; C 180 ; WX 278 ; N periodcentered ; B 129 190 257 315 ; C 182 ; WX 537 ; N paragraph ; B 126 -173 650 718 ; C 183 ; WX 350 ; N bullet ; B 91 202 413 517 ; C 184 ; WX 222 ; N quotesinglbase ; B 21 -149 180 106 ; C 185 ; WX 333 ; N quotedblbase ; B -6 -149 318 106 ; C 186 ; WX 333 ; N quotedblright ; B 124 463 448 718 ; C 187 ; WX 556 ; N guillemotright ; B 120 108 528 446 ; C 188 ; WX 1000 ; N ellipsis ; B 115 0 908 106 ; C 189 ; WX 1000 ; N perthousand ; B 88 -19 1029 703 ; C 191 ; WX 611 ; N questiondown ; B 85 -201 534 525 ; C 193 ; WX 333 ; N grave ; B 170 593 337 734 ; C 194 ; WX 333 ; N acute ; B 248 593 475 734 ; C 195 ; WX 333 ; N circumflex ; B 147 593 438 734 ; C 196 ; WX 333 ; N tilde ; B 125 606 490 722 ; C 197 ; WX 333 ; N macron ; B 143 627 468 684 ; C 198 ; WX 333 ; N breve ; B 167 595 476 731 ; C 199 ; WX 333 ; N dotaccent ; B 249 604 362 706 ; C 200 ; WX 333 ; N dieresis ; B 168 604 443 706 ; C 202 ; WX 333 ; N ring ; B 214 572 402 756 ; C 203 ; WX 333 ; N cedilla ; B 2 -225 232 0 ; C 205 ; WX 333 ; N hungarumlaut ; B 157 593 565 734 ; C 206 ; WX 333 ; N ogonek ; B 43 -225 249 0 ; C 207 ; WX 333 ; N caron ; B 177 593 468 734 ; C 208 ; WX 1000 ; N emdash ; B 51 240 1067 313 ; C 225 ; WX 1000 ; N AE ; B 8 0 1097 718 ; C 227 ; WX 370 ; N ordfeminine ; B 127 405 449 737 ; C 232 ; WX 556 ; N Lslash ; B 41 0 555 718 ; C 233 ; WX 778 ; N Oslash ; B 43 -19 890 737 ; C 234 ; WX 1000 ; N OE ; B 98 -19 1116 737 ; C 235 ; WX 365 ; N ordmasculine ; B 141 405 468 737 ; C 241 ; WX 889 ; N ae ; B 61 -15 909 538 ; C 245 ; WX 278 ; N dotlessi ; B 95 0 294 523 ; C 248 ; WX 222 ; N lslash ; B 41 0 347 718 ; C 249 ; WX 611 ; N oslash ; B 29 -22 647 545 ; C 250 ; WX 944 ; N oe ; B 83 -15 964 538 ; C 251 ; WX 611 ; N germandbls ; B 67 -15 658 728 ; C -1 ; WX 278 ; N Idieresis ; B 91 0 458 901 ; C -1 ; WX 556 ; N eacute ; B 84 -15 587 734 ; C -1 ; WX 556 ; N abreve ; B 61 -15 578 731 ; C -1 ; WX 556 ; N uhungarumlaut ; B 94 -15 677 734 ; C -1 ; WX 556 ; N ecaron ; B 84 -15 580 734 ; C -1 ; WX 667 ; N Ydieresis ; B 167 0 806 901 ; C -1 ; WX 584 ; N divide ; B 85 -19 606 524 ; C -1 ; WX 667 ; N Yacute ; B 167 0 806 929 ; C -1 ; WX 667 ; N Acircumflex ; B 14 0 654 929 ; C -1 ; WX 556 ; N aacute ; B 61 -15 587 734 ; C -1 ; WX 722 ; N Ucircumflex ; B 123 -19 797 929 ; C -1 ; WX 500 ; N yacute ; B 15 -214 600 734 ; C -1 ; WX 500 ; N scommaaccent ; B 63 -225 529 538 ; C -1 ; WX 556 ; N ecircumflex ; B 84 -15 578 734 ; C -1 ; WX 722 ; N Uring ; B 123 -19 797 931 ; C -1 ; WX 722 ; N Udieresis ; B 123 -19 797 901 ; C -1 ; WX 556 ; N aogonek ; B 61 -220 559 538 ; C -1 ; WX 722 ; N Uacute ; B 123 -19 797 929 ; C -1 ; WX 556 ; N uogonek ; B 94 -225 600 523 ; C -1 ; WX 667 ; N Edieresis ; B 86 0 762 901 ; C -1 ; WX 722 ; N Dcroat ; B 69 0 764 718 ; C -1 ; WX 250 ; N commaaccent ; B 39 -225 172 -40 ; C -1 ; WX 737 ; N copyright ; B 54 -19 837 737 ; C -1 ; WX 667 ; N Emacron ; B 86 0 762 879 ; C -1 ; WX 500 ; N ccaron ; B 74 -15 553 734 ; C -1 ; WX 556 ; N aring ; B 61 -15 559 756 ; C -1 ; WX 722 ; N Ncommaaccent ; B 76 -225 799 718 ; C -1 ; WX 222 ; N lacute ; B 67 0 461 929 ; C -1 ; WX 556 ; N agrave ; B 61 -15 559 734 ; C -1 ; WX 611 ; N Tcommaaccent ; B 148 -225 750 718 ; C -1 ; WX 722 ; N Cacute ; B 108 -19 782 929 ; C -1 ; WX 556 ; N atilde ; B 61 -15 592 722 ; C -1 ; WX 667 ; N Edotaccent ; B 86 0 762 901 ; C -1 ; WX 500 ; N scaron ; B 63 -15 552 734 ; C -1 ; WX 500 ; N scedilla ; B 63 -225 529 538 ; C -1 ; WX 278 ; N iacute ; B 95 0 448 734 ; C -1 ; WX 471 ; N lozenge ; B 88 0 540 728 ; C -1 ; WX 722 ; N Rcaron ; B 88 0 773 929 ; C -1 ; WX 778 ; N Gcommaaccent ; B 111 -225 799 737 ; C -1 ; WX 556 ; N ucircumflex ; B 94 -15 600 734 ; C -1 ; WX 556 ; N acircumflex ; B 61 -15 559 734 ; C -1 ; WX 667 ; N Amacron ; B 14 0 677 879 ; C -1 ; WX 333 ; N rcaron ; B 77 0 508 734 ; C -1 ; WX 500 ; N ccedilla ; B 74 -225 553 538 ; C -1 ; WX 611 ; N Zdotaccent ; B 23 0 741 901 ; C -1 ; WX 667 ; N Thorn ; B 86 0 712 718 ; C -1 ; WX 778 ; N Omacron ; B 105 -19 826 879 ; C -1 ; WX 722 ; N Racute ; B 88 0 773 929 ; C -1 ; WX 667 ; N Sacute ; B 90 -19 713 929 ; C -1 ; WX 643 ; N dcaron ; B 84 -15 808 718 ; C -1 ; WX 722 ; N Umacron ; B 123 -19 797 879 ; C -1 ; WX 556 ; N uring ; B 94 -15 600 756 ; C -1 ; WX 333 ; N threesuperior ; B 90 270 436 703 ; C -1 ; WX 778 ; N Ograve ; B 105 -19 826 929 ; C -1 ; WX 667 ; N Agrave ; B 14 0 654 929 ; C -1 ; WX 667 ; N Abreve ; B 14 0 685 926 ; C -1 ; WX 584 ; N multiply ; B 50 0 642 506 ; C -1 ; WX 556 ; N uacute ; B 94 -15 600 734 ; C -1 ; WX 611 ; N Tcaron ; B 148 0 750 929 ; C -1 ; WX 476 ; N partialdiff ; B 41 -38 550 714 ; C -1 ; WX 500 ; N ydieresis ; B 15 -214 600 706 ; C -1 ; WX 722 ; N Nacute ; B 76 0 799 929 ; C -1 ; WX 278 ; N icircumflex ; B 95 0 411 734 ; C -1 ; WX 667 ; N Ecircumflex ; B 86 0 762 929 ; C -1 ; WX 556 ; N adieresis ; B 61 -15 559 706 ; C -1 ; WX 556 ; N edieresis ; B 84 -15 578 706 ; C -1 ; WX 500 ; N cacute ; B 74 -15 559 734 ; C -1 ; WX 556 ; N nacute ; B 65 0 587 734 ; C -1 ; WX 556 ; N umacron ; B 94 -15 600 684 ; C -1 ; WX 722 ; N Ncaron ; B 76 0 799 929 ; C -1 ; WX 278 ; N Iacute ; B 91 0 489 929 ; C -1 ; WX 584 ; N plusminus ; B 39 0 618 506 ; C -1 ; WX 260 ; N brokenbar ; B 62 -150 316 700 ; C -1 ; WX 737 ; N registered ; B 54 -19 837 737 ; C -1 ; WX 778 ; N Gbreve ; B 111 -19 799 926 ; C -1 ; WX 278 ; N Idotaccent ; B 91 0 377 901 ; C -1 ; WX 600 ; N summation ; B 15 -10 671 706 ; C -1 ; WX 667 ; N Egrave ; B 86 0 762 929 ; C -1 ; WX 333 ; N racute ; B 77 0 475 734 ; C -1 ; WX 556 ; N omacron ; B 83 -14 585 684 ; C -1 ; WX 611 ; N Zacute ; B 23 0 741 929 ; C -1 ; WX 611 ; N Zcaron ; B 23 0 741 929 ; C -1 ; WX 549 ; N greaterequal ; B 26 0 620 674 ; C -1 ; WX 722 ; N Eth ; B 69 0 764 718 ; C -1 ; WX 722 ; N Ccedilla ; B 108 -225 782 737 ; C -1 ; WX 222 ; N lcommaaccent ; B 25 -225 308 718 ; C -1 ; WX 317 ; N tcaron ; B 102 -7 501 808 ; C -1 ; WX 556 ; N eogonek ; B 84 -225 578 538 ; C -1 ; WX 722 ; N Uogonek ; B 123 -225 797 718 ; C -1 ; WX 667 ; N Aacute ; B 14 0 683 929 ; C -1 ; WX 667 ; N Adieresis ; B 14 0 654 901 ; C -1 ; WX 556 ; N egrave ; B 84 -15 578 734 ; C -1 ; WX 500 ; N zacute ; B 31 0 571 734 ; C -1 ; WX 222 ; N iogonek ; B -61 -225 308 718 ; C -1 ; WX 778 ; N Oacute ; B 105 -19 826 929 ; C -1 ; WX 556 ; N oacute ; B 83 -14 587 734 ; C -1 ; WX 556 ; N amacron ; B 61 -15 580 684 ; C -1 ; WX 500 ; N sacute ; B 63 -15 559 734 ; C -1 ; WX 278 ; N idieresis ; B 95 0 416 706 ; C -1 ; WX 778 ; N Ocircumflex ; B 105 -19 826 929 ; C -1 ; WX 722 ; N Ugrave ; B 123 -19 797 929 ; C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ; C -1 ; WX 556 ; N thorn ; B 14 -207 584 718 ; C -1 ; WX 333 ; N twosuperior ; B 64 281 449 703 ; C -1 ; WX 778 ; N Odieresis ; B 105 -19 826 901 ; C -1 ; WX 556 ; N mu ; B 24 -207 600 523 ; C -1 ; WX 278 ; N igrave ; B 95 0 310 734 ; C -1 ; WX 556 ; N ohungarumlaut ; B 83 -14 677 734 ; C -1 ; WX 667 ; N Eogonek ; B 86 -220 762 718 ; C -1 ; WX 556 ; N dcroat ; B 84 -15 689 718 ; C -1 ; WX 834 ; N threequarters ; B 130 -19 861 703 ; C -1 ; WX 667 ; N Scedilla ; B 90 -225 713 737 ; C -1 ; WX 299 ; N lcaron ; B 67 0 464 718 ; C -1 ; WX 667 ; N Kcommaaccent ; B 76 -225 808 718 ; C -1 ; WX 556 ; N Lacute ; B 76 0 555 929 ; C -1 ; WX 1000 ; N trademark ; B 186 306 1056 718 ; C -1 ; WX 556 ; N edotaccent ; B 84 -15 578 706 ; C -1 ; WX 278 ; N Igrave ; B 91 0 351 929 ; C -1 ; WX 278 ; N Imacron ; B 91 0 483 879 ; C -1 ; WX 556 ; N Lcaron ; B 76 0 570 718 ; C -1 ; WX 834 ; N onehalf ; B 114 -19 839 703 ; C -1 ; WX 549 ; N lessequal ; B 26 0 666 674 ; C -1 ; WX 556 ; N ocircumflex ; B 83 -14 585 734 ; C -1 ; WX 556 ; N ntilde ; B 65 0 592 722 ; C -1 ; WX 722 ; N Uhungarumlaut ; B 123 -19 801 929 ; C -1 ; WX 667 ; N Eacute ; B 86 0 762 929 ; C -1 ; WX 556 ; N emacron ; B 84 -15 580 684 ; C -1 ; WX 556 ; N gbreve ; B 42 -220 610 731 ; C -1 ; WX 834 ; N onequarter ; B 150 -19 802 703 ; C -1 ; WX 667 ; N Scaron ; B 90 -19 713 929 ; C -1 ; WX 667 ; N Scommaaccent ; B 90 -225 713 737 ; C -1 ; WX 778 ; N Ohungarumlaut ; B 105 -19 829 929 ; C -1 ; WX 400 ; N degree ; B 169 411 468 703 ; C -1 ; WX 556 ; N ograve ; B 83 -14 585 734 ; C -1 ; WX 722 ; N Ccaron ; B 108 -19 782 929 ; C -1 ; WX 556 ; N ugrave ; B 94 -15 600 734 ; C -1 ; WX 453 ; N radical ; B 79 -80 617 762 ; C -1 ; WX 722 ; N Dcaron ; B 81 0 764 929 ; C -1 ; WX 333 ; N rcommaaccent ; B 30 -225 446 538 ; C -1 ; WX 722 ; N Ntilde ; B 76 0 799 917 ; C -1 ; WX 556 ; N otilde ; B 83 -14 602 722 ; C -1 ; WX 722 ; N Rcommaaccent ; B 88 -225 773 718 ; C -1 ; WX 556 ; N Lcommaaccent ; B 76 -225 555 718 ; C -1 ; WX 667 ; N Atilde ; B 14 0 699 917 ; C -1 ; WX 667 ; N Aogonek ; B 14 -225 654 718 ; C -1 ; WX 667 ; N Aring ; B 14 0 654 931 ; C -1 ; WX 778 ; N Otilde ; B 105 -19 826 917 ; C -1 ; WX 500 ; N zdotaccent ; B 31 0 571 706 ; C -1 ; WX 667 ; N Ecaron ; B 86 0 762 929 ; C -1 ; WX 278 ; N Iogonek ; B -33 -225 341 718 ; C -1 ; WX 500 ; N kcommaaccent ; B 67 -225 600 718 ; C -1 ; WX 584 ; N minus ; B 85 216 606 289 ; C -1 ; WX 278 ; N Icircumflex ; B 91 0 452 929 ; C -1 ; WX 556 ; N ncaron ; B 65 0 580 734 ; C -1 ; WX 278 ; N tcommaaccent ; B 63 -225 368 669 ; C -1 ; WX 584 ; N logicalnot ; B 106 108 628 390 ; C -1 ; WX 556 ; N odieresis ; B 83 -14 585 706 ; C -1 ; WX 556 ; N udieresis ; B 94 -15 600 706 ; C -1 ; WX 549 ; N notequal ; B 34 -35 623 551 ; C -1 ; WX 556 ; N gcommaaccent ; B 42 -220 610 822 ; C -1 ; WX 556 ; N eth ; B 81 -15 617 737 ; C -1 ; WX 500 ; N zcaron ; B 31 0 571 734 ; C -1 ; WX 556 ; N ncommaaccent ; B 65 -225 573 538 ; C -1 ; WX 333 ; N onesuperior ; B 166 281 371 703 ; C -1 ; WX 278 ; N imacron ; B 95 0 417 684 ; EndCharMetrics StartKernData StartKernPairs 2705 KPX A C -30 KPX A Cacute -30 KPX A Ccaron -30 KPX A Ccedilla -30 KPX A G -30 KPX A Gbreve -30 KPX A Gcommaaccent -30 KPX A O -30 KPX A Oacute -30 KPX A Ocircumflex -30 KPX A Odieresis -30 KPX A Ograve -30 KPX A Ohungarumlaut -30 KPX A Omacron -30 KPX A Oslash -30 KPX A Otilde -30 KPX A Q -30 KPX A T -120 KPX A Tcaron -120 KPX A Tcommaaccent -120 KPX A U -50 KPX A Uacute -50 KPX A Ucircumflex -50 KPX A Udieresis -50 KPX A Ugrave -50 KPX A Uhungarumlaut -50 KPX A Umacron -50 KPX A Uogonek -50 KPX A Uring -50 KPX A V -70 KPX A W -50 KPX A Y -100 KPX A Yacute -100 KPX A Ydieresis -100 KPX A u -30 KPX A uacute -30 KPX A ucircumflex -30 KPX A udieresis -30 KPX A ugrave -30 KPX A uhungarumlaut -30 KPX A umacron -30 KPX A uogonek -30 KPX A uring -30 KPX A v -40 KPX A w -40 KPX A y -40 KPX A yacute -40 KPX A ydieresis -40 KPX Aacute C -30 KPX Aacute Cacute -30 KPX Aacute Ccaron -30 KPX Aacute Ccedilla -30 KPX Aacute G -30 KPX Aacute Gbreve -30 KPX Aacute Gcommaaccent -30 KPX Aacute O -30 KPX Aacute Oacute -30 KPX Aacute Ocircumflex -30 KPX Aacute Odieresis -30 KPX Aacute Ograve -30 KPX Aacute Ohungarumlaut -30 KPX Aacute Omacron -30 KPX Aacute Oslash -30 KPX Aacute Otilde -30 KPX Aacute Q -30 KPX Aacute T -120 KPX Aacute Tcaron -120 KPX Aacute Tcommaaccent -120 KPX Aacute U -50 KPX Aacute Uacute -50 KPX Aacute Ucircumflex -50 KPX Aacute Udieresis -50 KPX Aacute Ugrave -50 KPX Aacute Uhungarumlaut -50 KPX Aacute Umacron -50 KPX Aacute Uogonek -50 KPX Aacute Uring -50 KPX Aacute V -70 KPX Aacute W -50 KPX Aacute Y -100 KPX Aacute Yacute -100 KPX Aacute Ydieresis -100 KPX Aacute u -30 KPX Aacute uacute -30 KPX Aacute ucircumflex -30 KPX Aacute udieresis -30 KPX Aacute ugrave -30 KPX Aacute uhungarumlaut -30 KPX Aacute umacron -30 KPX Aacute uogonek -30 KPX Aacute uring -30 KPX Aacute v -40 KPX Aacute w -40 KPX Aacute y -40 KPX Aacute yacute -40 KPX Aacute ydieresis -40 KPX Abreve C -30 KPX Abreve Cacute -30 KPX Abreve Ccaron -30 KPX Abreve Ccedilla -30 KPX Abreve G -30 KPX Abreve Gbreve -30 KPX Abreve Gcommaaccent -30 KPX Abreve O -30 KPX Abreve Oacute -30 KPX Abreve Ocircumflex -30 KPX Abreve Odieresis -30 KPX Abreve Ograve -30 KPX Abreve Ohungarumlaut -30 KPX Abreve Omacron -30 KPX Abreve Oslash -30 KPX Abreve Otilde -30 KPX Abreve Q -30 KPX Abreve T -120 KPX Abreve Tcaron -120 KPX Abreve Tcommaaccent -120 KPX Abreve U -50 KPX Abreve Uacute -50 KPX Abreve Ucircumflex -50 KPX Abreve Udieresis -50 KPX Abreve Ugrave -50 KPX Abreve Uhungarumlaut -50 KPX Abreve Umacron -50 KPX Abreve Uogonek -50 KPX Abreve Uring -50 KPX Abreve V -70 KPX Abreve W -50 KPX Abreve Y -100 KPX Abreve Yacute -100 KPX Abreve Ydieresis -100 KPX Abreve u -30 KPX Abreve uacute -30 KPX Abreve ucircumflex -30 KPX Abreve udieresis -30 KPX Abreve ugrave -30 KPX Abreve uhungarumlaut -30 KPX Abreve umacron -30 KPX Abreve uogonek -30 KPX Abreve uring -30 KPX Abreve v -40 KPX Abreve w -40 KPX Abreve y -40 KPX Abreve yacute -40 KPX Abreve ydieresis -40 KPX Acircumflex C -30 KPX Acircumflex Cacute -30 KPX Acircumflex Ccaron -30 KPX Acircumflex Ccedilla -30 KPX Acircumflex G -30 KPX Acircumflex Gbreve -30 KPX Acircumflex Gcommaaccent -30 KPX Acircumflex O -30 KPX Acircumflex Oacute -30 KPX Acircumflex Ocircumflex -30 KPX Acircumflex Odieresis -30 KPX Acircumflex Ograve -30 KPX Acircumflex Ohungarumlaut -30 KPX Acircumflex Omacron -30 KPX Acircumflex Oslash -30 KPX Acircumflex Otilde -30 KPX Acircumflex Q -30 KPX Acircumflex T -120 KPX Acircumflex Tcaron -120 KPX Acircumflex Tcommaaccent -120 KPX Acircumflex U -50 KPX Acircumflex Uacute -50 KPX Acircumflex Ucircumflex -50 KPX Acircumflex Udieresis -50 KPX Acircumflex Ugrave -50 KPX Acircumflex Uhungarumlaut -50 KPX Acircumflex Umacron -50 KPX Acircumflex Uogonek -50 KPX Acircumflex Uring -50 KPX Acircumflex V -70 KPX Acircumflex W -50 KPX Acircumflex Y -100 KPX Acircumflex Yacute -100 KPX Acircumflex Ydieresis -100 KPX Acircumflex u -30 KPX Acircumflex uacute -30 KPX Acircumflex ucircumflex -30 KPX Acircumflex udieresis -30 KPX Acircumflex ugrave -30 KPX Acircumflex uhungarumlaut -30 KPX Acircumflex umacron -30 KPX Acircumflex uogonek -30 KPX Acircumflex uring -30 KPX Acircumflex v -40 KPX Acircumflex w -40 KPX Acircumflex y -40 KPX Acircumflex yacute -40 KPX Acircumflex ydieresis -40 KPX Adieresis C -30 KPX Adieresis Cacute -30 KPX Adieresis Ccaron -30 KPX Adieresis Ccedilla -30 KPX Adieresis G -30 KPX Adieresis Gbreve -30 KPX Adieresis Gcommaaccent -30 KPX Adieresis O -30 KPX Adieresis Oacute -30 KPX Adieresis Ocircumflex -30 KPX Adieresis Odieresis -30 KPX Adieresis Ograve -30 KPX Adieresis Ohungarumlaut -30 KPX Adieresis Omacron -30 KPX Adieresis Oslash -30 KPX Adieresis Otilde -30 KPX Adieresis Q -30 KPX Adieresis T -120 KPX Adieresis Tcaron -120 KPX Adieresis Tcommaaccent -120 KPX Adieresis U -50 KPX Adieresis Uacute -50 KPX Adieresis Ucircumflex -50 KPX Adieresis Udieresis -50 KPX Adieresis Ugrave -50 KPX Adieresis Uhungarumlaut -50 KPX Adieresis Umacron -50 KPX Adieresis Uogonek -50 KPX Adieresis Uring -50 KPX Adieresis V -70 KPX Adieresis W -50 KPX Adieresis Y -100 KPX Adieresis Yacute -100 KPX Adieresis Ydieresis -100 KPX Adieresis u -30 KPX Adieresis uacute -30 KPX Adieresis ucircumflex -30 KPX Adieresis udieresis -30 KPX Adieresis ugrave -30 KPX Adieresis uhungarumlaut -30 KPX Adieresis umacron -30 KPX Adieresis uogonek -30 KPX Adieresis uring -30 KPX Adieresis v -40 KPX Adieresis w -40 KPX Adieresis y -40 KPX Adieresis yacute -40 KPX Adieresis ydieresis -40 KPX Agrave C -30 KPX Agrave Cacute -30 KPX Agrave Ccaron -30 KPX Agrave Ccedilla -30 KPX Agrave G -30 KPX Agrave Gbreve -30 KPX Agrave Gcommaaccent -30 KPX Agrave O -30 KPX Agrave Oacute -30 KPX Agrave Ocircumflex -30 KPX Agrave Odieresis -30 KPX Agrave Ograve -30 KPX Agrave Ohungarumlaut -30 KPX Agrave Omacron -30 KPX Agrave Oslash -30 KPX Agrave Otilde -30 KPX Agrave Q -30 KPX Agrave T -120 KPX Agrave Tcaron -120 KPX Agrave Tcommaaccent -120 KPX Agrave U -50 KPX Agrave Uacute -50 KPX Agrave Ucircumflex -50 KPX Agrave Udieresis -50 KPX Agrave Ugrave -50 KPX Agrave Uhungarumlaut -50 KPX Agrave Umacron -50 KPX Agrave Uogonek -50 KPX Agrave Uring -50 KPX Agrave V -70 KPX Agrave W -50 KPX Agrave Y -100 KPX Agrave Yacute -100 KPX Agrave Ydieresis -100 KPX Agrave u -30 KPX Agrave uacute -30 KPX Agrave ucircumflex -30 KPX Agrave udieresis -30 KPX Agrave ugrave -30 KPX Agrave uhungarumlaut -30 KPX Agrave umacron -30 KPX Agrave uogonek -30 KPX Agrave uring -30 KPX Agrave v -40 KPX Agrave w -40 KPX Agrave y -40 KPX Agrave yacute -40 KPX Agrave ydieresis -40 KPX Amacron C -30 KPX Amacron Cacute -30 KPX Amacron Ccaron -30 KPX Amacron Ccedilla -30 KPX Amacron G -30 KPX Amacron Gbreve -30 KPX Amacron Gcommaaccent -30 KPX Amacron O -30 KPX Amacron Oacute -30 KPX Amacron Ocircumflex -30 KPX Amacron Odieresis -30 KPX Amacron Ograve -30 KPX Amacron Ohungarumlaut -30 KPX Amacron Omacron -30 KPX Amacron Oslash -30 KPX Amacron Otilde -30 KPX Amacron Q -30 KPX Amacron T -120 KPX Amacron Tcaron -120 KPX Amacron Tcommaaccent -120 KPX Amacron U -50 KPX Amacron Uacute -50 KPX Amacron Ucircumflex -50 KPX Amacron Udieresis -50 KPX Amacron Ugrave -50 KPX Amacron Uhungarumlaut -50 KPX Amacron Umacron -50 KPX Amacron Uogonek -50 KPX Amacron Uring -50 KPX Amacron V -70 KPX Amacron W -50 KPX Amacron Y -100 KPX Amacron Yacute -100 KPX Amacron Ydieresis -100 KPX Amacron u -30 KPX Amacron uacute -30 KPX Amacron ucircumflex -30 KPX Amacron udieresis -30 KPX Amacron ugrave -30 KPX Amacron uhungarumlaut -30 KPX Amacron umacron -30 KPX Amacron uogonek -30 KPX Amacron uring -30 KPX Amacron v -40 KPX Amacron w -40 KPX Amacron y -40 KPX Amacron yacute -40 KPX Amacron ydieresis -40 KPX Aogonek C -30 KPX Aogonek Cacute -30 KPX Aogonek Ccaron -30 KPX Aogonek Ccedilla -30 KPX Aogonek G -30 KPX Aogonek Gbreve -30 KPX Aogonek Gcommaaccent -30 KPX Aogonek O -30 KPX Aogonek Oacute -30 KPX Aogonek Ocircumflex -30 KPX Aogonek Odieresis -30 KPX Aogonek Ograve -30 KPX Aogonek Ohungarumlaut -30 KPX Aogonek Omacron -30 KPX Aogonek Oslash -30 KPX Aogonek Otilde -30 KPX Aogonek Q -30 KPX Aogonek T -120 KPX Aogonek Tcaron -120 KPX Aogonek Tcommaaccent -120 KPX Aogonek U -50 KPX Aogonek Uacute -50 KPX Aogonek Ucircumflex -50 KPX Aogonek Udieresis -50 KPX Aogonek Ugrave -50 KPX Aogonek Uhungarumlaut -50 KPX Aogonek Umacron -50 KPX Aogonek Uogonek -50 KPX Aogonek Uring -50 KPX Aogonek V -70 KPX Aogonek W -50 KPX Aogonek Y -100 KPX Aogonek Yacute -100 KPX Aogonek Ydieresis -100 KPX Aogonek u -30 KPX Aogonek uacute -30 KPX Aogonek ucircumflex -30 KPX Aogonek udieresis -30 KPX Aogonek ugrave -30 KPX Aogonek uhungarumlaut -30 KPX Aogonek umacron -30 KPX Aogonek uogonek -30 KPX Aogonek uring -30 KPX Aogonek v -40 KPX Aogonek w -40 KPX Aogonek y -40 KPX Aogonek yacute -40 KPX Aogonek ydieresis -40 KPX Aring C -30 KPX Aring Cacute -30 KPX Aring Ccaron -30 KPX Aring Ccedilla -30 KPX Aring G -30 KPX Aring Gbreve -30 KPX Aring Gcommaaccent -30 KPX Aring O -30 KPX Aring Oacute -30 KPX Aring Ocircumflex -30 KPX Aring Odieresis -30 KPX Aring Ograve -30 KPX Aring Ohungarumlaut -30 KPX Aring Omacron -30 KPX Aring Oslash -30 KPX Aring Otilde -30 KPX Aring Q -30 KPX Aring T -120 KPX Aring Tcaron -120 KPX Aring Tcommaaccent -120 KPX Aring U -50 KPX Aring Uacute -50 KPX Aring Ucircumflex -50 KPX Aring Udieresis -50 KPX Aring Ugrave -50 KPX Aring Uhungarumlaut -50 KPX Aring Umacron -50 KPX Aring Uogonek -50 KPX Aring Uring -50 KPX Aring V -70 KPX Aring W -50 KPX Aring Y -100 KPX Aring Yacute -100 KPX Aring Ydieresis -100 KPX Aring u -30 KPX Aring uacute -30 KPX Aring ucircumflex -30 KPX Aring udieresis -30 KPX Aring ugrave -30 KPX Aring uhungarumlaut -30 KPX Aring umacron -30 KPX Aring uogonek -30 KPX Aring uring -30 KPX Aring v -40 KPX Aring w -40 KPX Aring y -40 KPX Aring yacute -40 KPX Aring ydieresis -40 KPX Atilde C -30 KPX Atilde Cacute -30 KPX Atilde Ccaron -30 KPX Atilde Ccedilla -30 KPX Atilde G -30 KPX Atilde Gbreve -30 KPX Atilde Gcommaaccent -30 KPX Atilde O -30 KPX Atilde Oacute -30 KPX Atilde Ocircumflex -30 KPX Atilde Odieresis -30 KPX Atilde Ograve -30 KPX Atilde Ohungarumlaut -30 KPX Atilde Omacron -30 KPX Atilde Oslash -30 KPX Atilde Otilde -30 KPX Atilde Q -30 KPX Atilde T -120 KPX Atilde Tcaron -120 KPX Atilde Tcommaaccent -120 KPX Atilde U -50 KPX Atilde Uacute -50 KPX Atilde Ucircumflex -50 KPX Atilde Udieresis -50 KPX Atilde Ugrave -50 KPX Atilde Uhungarumlaut -50 KPX Atilde Umacron -50 KPX Atilde Uogonek -50 KPX Atilde Uring -50 KPX Atilde V -70 KPX Atilde W -50 KPX Atilde Y -100 KPX Atilde Yacute -100 KPX Atilde Ydieresis -100 KPX Atilde u -30 KPX Atilde uacute -30 KPX Atilde ucircumflex -30 KPX Atilde udieresis -30 KPX Atilde ugrave -30 KPX Atilde uhungarumlaut -30 KPX Atilde umacron -30 KPX Atilde uogonek -30 KPX Atilde uring -30 KPX Atilde v -40 KPX Atilde w -40 KPX Atilde y -40 KPX Atilde yacute -40 KPX Atilde ydieresis -40 KPX B U -10 KPX B Uacute -10 KPX B Ucircumflex -10 KPX B Udieresis -10 KPX B Ugrave -10 KPX B Uhungarumlaut -10 KPX B Umacron -10 KPX B Uogonek -10 KPX B Uring -10 KPX B comma -20 KPX B period -20 KPX C comma -30 KPX C period -30 KPX Cacute comma -30 KPX Cacute period -30 KPX Ccaron comma -30 KPX Ccaron period -30 KPX Ccedilla comma -30 KPX Ccedilla period -30 KPX D A -40 KPX D Aacute -40 KPX D Abreve -40 KPX D Acircumflex -40 KPX D Adieresis -40 KPX D Agrave -40 KPX D Amacron -40 KPX D Aogonek -40 KPX D Aring -40 KPX D Atilde -40 KPX D V -70 KPX D W -40 KPX D Y -90 KPX D Yacute -90 KPX D Ydieresis -90 KPX D comma -70 KPX D period -70 KPX Dcaron A -40 KPX Dcaron Aacute -40 KPX Dcaron Abreve -40 KPX Dcaron Acircumflex -40 KPX Dcaron Adieresis -40 KPX Dcaron Agrave -40 KPX Dcaron Amacron -40 KPX Dcaron Aogonek -40 KPX Dcaron Aring -40 KPX Dcaron Atilde -40 KPX Dcaron V -70 KPX Dcaron W -40 KPX Dcaron Y -90 KPX Dcaron Yacute -90 KPX Dcaron Ydieresis -90 KPX Dcaron comma -70 KPX Dcaron period -70 KPX Dcroat A -40 KPX Dcroat Aacute -40 KPX Dcroat Abreve -40 KPX Dcroat Acircumflex -40 KPX Dcroat Adieresis -40 KPX Dcroat Agrave -40 KPX Dcroat Amacron -40 KPX Dcroat Aogonek -40 KPX Dcroat Aring -40 KPX Dcroat Atilde -40 KPX Dcroat V -70 KPX Dcroat W -40 KPX Dcroat Y -90 KPX Dcroat Yacute -90 KPX Dcroat Ydieresis -90 KPX Dcroat comma -70 KPX Dcroat period -70 KPX F A -80 KPX F Aacute -80 KPX F Abreve -80 KPX F Acircumflex -80 KPX F Adieresis -80 KPX F Agrave -80 KPX F Amacron -80 KPX F Aogonek -80 KPX F Aring -80 KPX F Atilde -80 KPX F a -50 KPX F aacute -50 KPX F abreve -50 KPX F acircumflex -50 KPX F adieresis -50 KPX F agrave -50 KPX F amacron -50 KPX F aogonek -50 KPX F aring -50 KPX F atilde -50 KPX F comma -150 KPX F e -30 KPX F eacute -30 KPX F ecaron -30 KPX F ecircumflex -30 KPX F edieresis -30 KPX F edotaccent -30 KPX F egrave -30 KPX F emacron -30 KPX F eogonek -30 KPX F o -30 KPX F oacute -30 KPX F ocircumflex -30 KPX F odieresis -30 KPX F ograve -30 KPX F ohungarumlaut -30 KPX F omacron -30 KPX F oslash -30 KPX F otilde -30 KPX F period -150 KPX F r -45 KPX F racute -45 KPX F rcaron -45 KPX F rcommaaccent -45 KPX J A -20 KPX J Aacute -20 KPX J Abreve -20 KPX J Acircumflex -20 KPX J Adieresis -20 KPX J Agrave -20 KPX J Amacron -20 KPX J Aogonek -20 KPX J Aring -20 KPX J Atilde -20 KPX J a -20 KPX J aacute -20 KPX J abreve -20 KPX J acircumflex -20 KPX J adieresis -20 KPX J agrave -20 KPX J amacron -20 KPX J aogonek -20 KPX J aring -20 KPX J atilde -20 KPX J comma -30 KPX J period -30 KPX J u -20 KPX J uacute -20 KPX J ucircumflex -20 KPX J udieresis -20 KPX J ugrave -20 KPX J uhungarumlaut -20 KPX J umacron -20 KPX J uogonek -20 KPX J uring -20 KPX K O -50 KPX K Oacute -50 KPX K Ocircumflex -50 KPX K Odieresis -50 KPX K Ograve -50 KPX K Ohungarumlaut -50 KPX K Omacron -50 KPX K Oslash -50 KPX K Otilde -50 KPX K e -40 KPX K eacute -40 KPX K ecaron -40 KPX K ecircumflex -40 KPX K edieresis -40 KPX K edotaccent -40 KPX K egrave -40 KPX K emacron -40 KPX K eogonek -40 KPX K o -40 KPX K oacute -40 KPX K ocircumflex -40 KPX K odieresis -40 KPX K ograve -40 KPX K ohungarumlaut -40 KPX K omacron -40 KPX K oslash -40 KPX K otilde -40 KPX K u -30 KPX K uacute -30 KPX K ucircumflex -30 KPX K udieresis -30 KPX K ugrave -30 KPX K uhungarumlaut -30 KPX K umacron -30 KPX K uogonek -30 KPX K uring -30 KPX K y -50 KPX K yacute -50 KPX K ydieresis -50 KPX Kcommaaccent O -50 KPX Kcommaaccent Oacute -50 KPX Kcommaaccent Ocircumflex -50 KPX Kcommaaccent Odieresis -50 KPX Kcommaaccent Ograve -50 KPX Kcommaaccent Ohungarumlaut -50 KPX Kcommaaccent Omacron -50 KPX Kcommaaccent Oslash -50 KPX Kcommaaccent Otilde -50 KPX Kcommaaccent e -40 KPX Kcommaaccent eacute -40 KPX Kcommaaccent ecaron -40 KPX Kcommaaccent ecircumflex -40 KPX Kcommaaccent edieresis -40 KPX Kcommaaccent edotaccent -40 KPX Kcommaaccent egrave -40 KPX Kcommaaccent emacron -40 KPX Kcommaaccent eogonek -40 KPX Kcommaaccent o -40 KPX Kcommaaccent oacute -40 KPX Kcommaaccent ocircumflex -40 KPX Kcommaaccent odieresis -40 KPX Kcommaaccent ograve -40 KPX Kcommaaccent ohungarumlaut -40 KPX Kcommaaccent omacron -40 KPX Kcommaaccent oslash -40 KPX Kcommaaccent otilde -40 KPX Kcommaaccent u -30 KPX Kcommaaccent uacute -30 KPX Kcommaaccent ucircumflex -30 KPX Kcommaaccent udieresis -30 KPX Kcommaaccent ugrave -30 KPX Kcommaaccent uhungarumlaut -30 KPX Kcommaaccent umacron -30 KPX Kcommaaccent uogonek -30 KPX Kcommaaccent uring -30 KPX Kcommaaccent y -50 KPX Kcommaaccent yacute -50 KPX Kcommaaccent ydieresis -50 KPX L T -110 KPX L Tcaron -110 KPX L Tcommaaccent -110 KPX L V -110 KPX L W -70 KPX L Y -140 KPX L Yacute -140 KPX L Ydieresis -140 KPX L quotedblright -140 KPX L quoteright -160 KPX L y -30 KPX L yacute -30 KPX L ydieresis -30 KPX Lacute T -110 KPX Lacute Tcaron -110 KPX Lacute Tcommaaccent -110 KPX Lacute V -110 KPX Lacute W -70 KPX Lacute Y -140 KPX Lacute Yacute -140 KPX Lacute Ydieresis -140 KPX Lacute quotedblright -140 KPX Lacute quoteright -160 KPX Lacute y -30 KPX Lacute yacute -30 KPX Lacute ydieresis -30 KPX Lcaron T -110 KPX Lcaron Tcaron -110 KPX Lcaron Tcommaaccent -110 KPX Lcaron V -110 KPX Lcaron W -70 KPX Lcaron Y -140 KPX Lcaron Yacute -140 KPX Lcaron Ydieresis -140 KPX Lcaron quotedblright -140 KPX Lcaron quoteright -160 KPX Lcaron y -30 KPX Lcaron yacute -30 KPX Lcaron ydieresis -30 KPX Lcommaaccent T -110 KPX Lcommaaccent Tcaron -110 KPX Lcommaaccent Tcommaaccent -110 KPX Lcommaaccent V -110 KPX Lcommaaccent W -70 KPX Lcommaaccent Y -140 KPX Lcommaaccent Yacute -140 KPX Lcommaaccent Ydieresis -140 KPX Lcommaaccent quotedblright -140 KPX Lcommaaccent quoteright -160 KPX Lcommaaccent y -30 KPX Lcommaaccent yacute -30 KPX Lcommaaccent ydieresis -30 KPX Lslash T -110 KPX Lslash Tcaron -110 KPX Lslash Tcommaaccent -110 KPX Lslash V -110 KPX Lslash W -70 KPX Lslash Y -140 KPX Lslash Yacute -140 KPX Lslash Ydieresis -140 KPX Lslash quotedblright -140 KPX Lslash quoteright -160 KPX Lslash y -30 KPX Lslash yacute -30 KPX Lslash ydieresis -30 KPX O A -20 KPX O Aacute -20 KPX O Abreve -20 KPX O Acircumflex -20 KPX O Adieresis -20 KPX O Agrave -20 KPX O Amacron -20 KPX O Aogonek -20 KPX O Aring -20 KPX O Atilde -20 KPX O T -40 KPX O Tcaron -40 KPX O Tcommaaccent -40 KPX O V -50 KPX O W -30 KPX O X -60 KPX O Y -70 KPX O Yacute -70 KPX O Ydieresis -70 KPX O comma -40 KPX O period -40 KPX Oacute A -20 KPX Oacute Aacute -20 KPX Oacute Abreve -20 KPX Oacute Acircumflex -20 KPX Oacute Adieresis -20 KPX Oacute Agrave -20 KPX Oacute Amacron -20 KPX Oacute Aogonek -20 KPX Oacute Aring -20 KPX Oacute Atilde -20 KPX Oacute T -40 KPX Oacute Tcaron -40 KPX Oacute Tcommaaccent -40 KPX Oacute V -50 KPX Oacute W -30 KPX Oacute X -60 KPX Oacute Y -70 KPX Oacute Yacute -70 KPX Oacute Ydieresis -70 KPX Oacute comma -40 KPX Oacute period -40 KPX Ocircumflex A -20 KPX Ocircumflex Aacute -20 KPX Ocircumflex Abreve -20 KPX Ocircumflex Acircumflex -20 KPX Ocircumflex Adieresis -20 KPX Ocircumflex Agrave -20 KPX Ocircumflex Amacron -20 KPX Ocircumflex Aogonek -20 KPX Ocircumflex Aring -20 KPX Ocircumflex Atilde -20 KPX Ocircumflex T -40 KPX Ocircumflex Tcaron -40 KPX Ocircumflex Tcommaaccent -40 KPX Ocircumflex V -50 KPX Ocircumflex W -30 KPX Ocircumflex X -60 KPX Ocircumflex Y -70 KPX Ocircumflex Yacute -70 KPX Ocircumflex Ydieresis -70 KPX Ocircumflex comma -40 KPX Ocircumflex period -40 KPX Odieresis A -20 KPX Odieresis Aacute -20 KPX Odieresis Abreve -20 KPX Odieresis Acircumflex -20 KPX Odieresis Adieresis -20 KPX Odieresis Agrave -20 KPX Odieresis Amacron -20 KPX Odieresis Aogonek -20 KPX Odieresis Aring -20 KPX Odieresis Atilde -20 KPX Odieresis T -40 KPX Odieresis Tcaron -40 KPX Odieresis Tcommaaccent -40 KPX Odieresis V -50 KPX Odieresis W -30 KPX Odieresis X -60 KPX Odieresis Y -70 KPX Odieresis Yacute -70 KPX Odieresis Ydieresis -70 KPX Odieresis comma -40 KPX Odieresis period -40 KPX Ograve A -20 KPX Ograve Aacute -20 KPX Ograve Abreve -20 KPX Ograve Acircumflex -20 KPX Ograve Adieresis -20 KPX Ograve Agrave -20 KPX Ograve Amacron -20 KPX Ograve Aogonek -20 KPX Ograve Aring -20 KPX Ograve Atilde -20 KPX Ograve T -40 KPX Ograve Tcaron -40 KPX Ograve Tcommaaccent -40 KPX Ograve V -50 KPX Ograve W -30 KPX Ograve X -60 KPX Ograve Y -70 KPX Ograve Yacute -70 KPX Ograve Ydieresis -70 KPX Ograve comma -40 KPX Ograve period -40 KPX Ohungarumlaut A -20 KPX Ohungarumlaut Aacute -20 KPX Ohungarumlaut Abreve -20 KPX Ohungarumlaut Acircumflex -20 KPX Ohungarumlaut Adieresis -20 KPX Ohungarumlaut Agrave -20 KPX Ohungarumlaut Amacron -20 KPX Ohungarumlaut Aogonek -20 KPX Ohungarumlaut Aring -20 KPX Ohungarumlaut Atilde -20 KPX Ohungarumlaut T -40 KPX Ohungarumlaut Tcaron -40 KPX Ohungarumlaut Tcommaaccent -40 KPX Ohungarumlaut V -50 KPX Ohungarumlaut W -30 KPX Ohungarumlaut X -60 KPX Ohungarumlaut Y -70 KPX Ohungarumlaut Yacute -70 KPX Ohungarumlaut Ydieresis -70 KPX Ohungarumlaut comma -40 KPX Ohungarumlaut period -40 KPX Omacron A -20 KPX Omacron Aacute -20 KPX Omacron Abreve -20 KPX Omacron Acircumflex -20 KPX Omacron Adieresis -20 KPX Omacron Agrave -20 KPX Omacron Amacron -20 KPX Omacron Aogonek -20 KPX Omacron Aring -20 KPX Omacron Atilde -20 KPX Omacron T -40 KPX Omacron Tcaron -40 KPX Omacron Tcommaaccent -40 KPX Omacron V -50 KPX Omacron W -30 KPX Omacron X -60 KPX Omacron Y -70 KPX Omacron Yacute -70 KPX Omacron Ydieresis -70 KPX Omacron comma -40 KPX Omacron period -40 KPX Oslash A -20 KPX Oslash Aacute -20 KPX Oslash Abreve -20 KPX Oslash Acircumflex -20 KPX Oslash Adieresis -20 KPX Oslash Agrave -20 KPX Oslash Amacron -20 KPX Oslash Aogonek -20 KPX Oslash Aring -20 KPX Oslash Atilde -20 KPX Oslash T -40 KPX Oslash Tcaron -40 KPX Oslash Tcommaaccent -40 KPX Oslash V -50 KPX Oslash W -30 KPX Oslash X -60 KPX Oslash Y -70 KPX Oslash Yacute -70 KPX Oslash Ydieresis -70 KPX Oslash comma -40 KPX Oslash period -40 KPX Otilde A -20 KPX Otilde Aacute -20 KPX Otilde Abreve -20 KPX Otilde Acircumflex -20 KPX Otilde Adieresis -20 KPX Otilde Agrave -20 KPX Otilde Amacron -20 KPX Otilde Aogonek -20 KPX Otilde Aring -20 KPX Otilde Atilde -20 KPX Otilde T -40 KPX Otilde Tcaron -40 KPX Otilde Tcommaaccent -40 KPX Otilde V -50 KPX Otilde W -30 KPX Otilde X -60 KPX Otilde Y -70 KPX Otilde Yacute -70 KPX Otilde Ydieresis -70 KPX Otilde comma -40 KPX Otilde period -40 KPX P A -120 KPX P Aacute -120 KPX P Abreve -120 KPX P Acircumflex -120 KPX P Adieresis -120 KPX P Agrave -120 KPX P Amacron -120 KPX P Aogonek -120 KPX P Aring -120 KPX P Atilde -120 KPX P a -40 KPX P aacute -40 KPX P abreve -40 KPX P acircumflex -40 KPX P adieresis -40 KPX P agrave -40 KPX P amacron -40 KPX P aogonek -40 KPX P aring -40 KPX P atilde -40 KPX P comma -180 KPX P e -50 KPX P eacute -50 KPX P ecaron -50 KPX P ecircumflex -50 KPX P edieresis -50 KPX P edotaccent -50 KPX P egrave -50 KPX P emacron -50 KPX P eogonek -50 KPX P o -50 KPX P oacute -50 KPX P ocircumflex -50 KPX P odieresis -50 KPX P ograve -50 KPX P ohungarumlaut -50 KPX P omacron -50 KPX P oslash -50 KPX P otilde -50 KPX P period -180 KPX Q U -10 KPX Q Uacute -10 KPX Q Ucircumflex -10 KPX Q Udieresis -10 KPX Q Ugrave -10 KPX Q Uhungarumlaut -10 KPX Q Umacron -10 KPX Q Uogonek -10 KPX Q Uring -10 KPX R O -20 KPX R Oacute -20 KPX R Ocircumflex -20 KPX R Odieresis -20 KPX R Ograve -20 KPX R Ohungarumlaut -20 KPX R Omacron -20 KPX R Oslash -20 KPX R Otilde -20 KPX R T -30 KPX R Tcaron -30 KPX R Tcommaaccent -30 KPX R U -40 KPX R Uacute -40 KPX R Ucircumflex -40 KPX R Udieresis -40 KPX R Ugrave -40 KPX R Uhungarumlaut -40 KPX R Umacron -40 KPX R Uogonek -40 KPX R Uring -40 KPX R V -50 KPX R W -30 KPX R Y -50 KPX R Yacute -50 KPX R Ydieresis -50 KPX Racute O -20 KPX Racute Oacute -20 KPX Racute Ocircumflex -20 KPX Racute Odieresis -20 KPX Racute Ograve -20 KPX Racute Ohungarumlaut -20 KPX Racute Omacron -20 KPX Racute Oslash -20 KPX Racute Otilde -20 KPX Racute T -30 KPX Racute Tcaron -30 KPX Racute Tcommaaccent -30 KPX Racute U -40 KPX Racute Uacute -40 KPX Racute Ucircumflex -40 KPX Racute Udieresis -40 KPX Racute Ugrave -40 KPX Racute Uhungarumlaut -40 KPX Racute Umacron -40 KPX Racute Uogonek -40 KPX Racute Uring -40 KPX Racute V -50 KPX Racute W -30 KPX Racute Y -50 KPX Racute Yacute -50 KPX Racute Ydieresis -50 KPX Rcaron O -20 KPX Rcaron Oacute -20 KPX Rcaron Ocircumflex -20 KPX Rcaron Odieresis -20 KPX Rcaron Ograve -20 KPX Rcaron Ohungarumlaut -20 KPX Rcaron Omacron -20 KPX Rcaron Oslash -20 KPX Rcaron Otilde -20 KPX Rcaron T -30 KPX Rcaron Tcaron -30 KPX Rcaron Tcommaaccent -30 KPX Rcaron U -40 KPX Rcaron Uacute -40 KPX Rcaron Ucircumflex -40 KPX Rcaron Udieresis -40 KPX Rcaron Ugrave -40 KPX Rcaron Uhungarumlaut -40 KPX Rcaron Umacron -40 KPX Rcaron Uogonek -40 KPX Rcaron Uring -40 KPX Rcaron V -50 KPX Rcaron W -30 KPX Rcaron Y -50 KPX Rcaron Yacute -50 KPX Rcaron Ydieresis -50 KPX Rcommaaccent O -20 KPX Rcommaaccent Oacute -20 KPX Rcommaaccent Ocircumflex -20 KPX Rcommaaccent Odieresis -20 KPX Rcommaaccent Ograve -20 KPX Rcommaaccent Ohungarumlaut -20 KPX Rcommaaccent Omacron -20 KPX Rcommaaccent Oslash -20 KPX Rcommaaccent Otilde -20 KPX Rcommaaccent T -30 KPX Rcommaaccent Tcaron -30 KPX Rcommaaccent Tcommaaccent -30 KPX Rcommaaccent U -40 KPX Rcommaaccent Uacute -40 KPX Rcommaaccent Ucircumflex -40 KPX Rcommaaccent Udieresis -40 KPX Rcommaaccent Ugrave -40 KPX Rcommaaccent Uhungarumlaut -40 KPX Rcommaaccent Umacron -40 KPX Rcommaaccent Uogonek -40 KPX Rcommaaccent Uring -40 KPX Rcommaaccent V -50 KPX Rcommaaccent W -30 KPX Rcommaaccent Y -50 KPX Rcommaaccent Yacute -50 KPX Rcommaaccent Ydieresis -50 KPX S comma -20 KPX S period -20 KPX Sacute comma -20 KPX Sacute period -20 KPX Scaron comma -20 KPX Scaron period -20 KPX Scedilla comma -20 KPX Scedilla period -20 KPX Scommaaccent comma -20 KPX Scommaaccent period -20 KPX T A -120 KPX T Aacute -120 KPX T Abreve -120 KPX T Acircumflex -120 KPX T Adieresis -120 KPX T Agrave -120 KPX T Amacron -120 KPX T Aogonek -120 KPX T Aring -120 KPX T Atilde -120 KPX T O -40 KPX T Oacute -40 KPX T Ocircumflex -40 KPX T Odieresis -40 KPX T Ograve -40 KPX T Ohungarumlaut -40 KPX T Omacron -40 KPX T Oslash -40 KPX T Otilde -40 KPX T a -120 KPX T aacute -120 KPX T abreve -60 KPX T acircumflex -120 KPX T adieresis -120 KPX T agrave -120 KPX T amacron -60 KPX T aogonek -120 KPX T aring -120 KPX T atilde -60 KPX T colon -20 KPX T comma -120 KPX T e -120 KPX T eacute -120 KPX T ecaron -120 KPX T ecircumflex -120 KPX T edieresis -120 KPX T edotaccent -120 KPX T egrave -60 KPX T emacron -60 KPX T eogonek -120 KPX T hyphen -140 KPX T o -120 KPX T oacute -120 KPX T ocircumflex -120 KPX T odieresis -120 KPX T ograve -120 KPX T ohungarumlaut -120 KPX T omacron -60 KPX T oslash -120 KPX T otilde -60 KPX T period -120 KPX T r -120 KPX T racute -120 KPX T rcaron -120 KPX T rcommaaccent -120 KPX T semicolon -20 KPX T u -120 KPX T uacute -120 KPX T ucircumflex -120 KPX T udieresis -120 KPX T ugrave -120 KPX T uhungarumlaut -120 KPX T umacron -60 KPX T uogonek -120 KPX T uring -120 KPX T w -120 KPX T y -120 KPX T yacute -120 KPX T ydieresis -60 KPX Tcaron A -120 KPX Tcaron Aacute -120 KPX Tcaron Abreve -120 KPX Tcaron Acircumflex -120 KPX Tcaron Adieresis -120 KPX Tcaron Agrave -120 KPX Tcaron Amacron -120 KPX Tcaron Aogonek -120 KPX Tcaron Aring -120 KPX Tcaron Atilde -120 KPX Tcaron O -40 KPX Tcaron Oacute -40 KPX Tcaron Ocircumflex -40 KPX Tcaron Odieresis -40 KPX Tcaron Ograve -40 KPX Tcaron Ohungarumlaut -40 KPX Tcaron Omacron -40 KPX Tcaron Oslash -40 KPX Tcaron Otilde -40 KPX Tcaron a -120 KPX Tcaron aacute -120 KPX Tcaron abreve -60 KPX Tcaron acircumflex -120 KPX Tcaron adieresis -120 KPX Tcaron agrave -120 KPX Tcaron amacron -60 KPX Tcaron aogonek -120 KPX Tcaron aring -120 KPX Tcaron atilde -60 KPX Tcaron colon -20 KPX Tcaron comma -120 KPX Tcaron e -120 KPX Tcaron eacute -120 KPX Tcaron ecaron -120 KPX Tcaron ecircumflex -120 KPX Tcaron edieresis -120 KPX Tcaron edotaccent -120 KPX Tcaron egrave -60 KPX Tcaron emacron -60 KPX Tcaron eogonek -120 KPX Tcaron hyphen -140 KPX Tcaron o -120 KPX Tcaron oacute -120 KPX Tcaron ocircumflex -120 KPX Tcaron odieresis -120 KPX Tcaron ograve -120 KPX Tcaron ohungarumlaut -120 KPX Tcaron omacron -60 KPX Tcaron oslash -120 KPX Tcaron otilde -60 KPX Tcaron period -120 KPX Tcaron r -120 KPX Tcaron racute -120 KPX Tcaron rcaron -120 KPX Tcaron rcommaaccent -120 KPX Tcaron semicolon -20 KPX Tcaron u -120 KPX Tcaron uacute -120 KPX Tcaron ucircumflex -120 KPX Tcaron udieresis -120 KPX Tcaron ugrave -120 KPX Tcaron uhungarumlaut -120 KPX Tcaron umacron -60 KPX Tcaron uogonek -120 KPX Tcaron uring -120 KPX Tcaron w -120 KPX Tcaron y -120 KPX Tcaron yacute -120 KPX Tcaron ydieresis -60 KPX Tcommaaccent A -120 KPX Tcommaaccent Aacute -120 KPX Tcommaaccent Abreve -120 KPX Tcommaaccent Acircumflex -120 KPX Tcommaaccent Adieresis -120 KPX Tcommaaccent Agrave -120 KPX Tcommaaccent Amacron -120 KPX Tcommaaccent Aogonek -120 KPX Tcommaaccent Aring -120 KPX Tcommaaccent Atilde -120 KPX Tcommaaccent O -40 KPX Tcommaaccent Oacute -40 KPX Tcommaaccent Ocircumflex -40 KPX Tcommaaccent Odieresis -40 KPX Tcommaaccent Ograve -40 KPX Tcommaaccent Ohungarumlaut -40 KPX Tcommaaccent Omacron -40 KPX Tcommaaccent Oslash -40 KPX Tcommaaccent Otilde -40 KPX Tcommaaccent a -120 KPX Tcommaaccent aacute -120 KPX Tcommaaccent abreve -60 KPX Tcommaaccent acircumflex -120 KPX Tcommaaccent adieresis -120 KPX Tcommaaccent agrave -120 KPX Tcommaaccent amacron -60 KPX Tcommaaccent aogonek -120 KPX Tcommaaccent aring -120 KPX Tcommaaccent atilde -60 KPX Tcommaaccent colon -20 KPX Tcommaaccent comma -120 KPX Tcommaaccent e -120 KPX Tcommaaccent eacute -120 KPX Tcommaaccent ecaron -120 KPX Tcommaaccent ecircumflex -120 KPX Tcommaaccent edieresis -120 KPX Tcommaaccent edotaccent -120 KPX Tcommaaccent egrave -60 KPX Tcommaaccent emacron -60 KPX Tcommaaccent eogonek -120 KPX Tcommaaccent hyphen -140 KPX Tcommaaccent o -120 KPX Tcommaaccent oacute -120 KPX Tcommaaccent ocircumflex -120 KPX Tcommaaccent odieresis -120 KPX Tcommaaccent ograve -120 KPX Tcommaaccent ohungarumlaut -120 KPX Tcommaaccent omacron -60 KPX Tcommaaccent oslash -120 KPX Tcommaaccent otilde -60 KPX Tcommaaccent period -120 KPX Tcommaaccent r -120 KPX Tcommaaccent racute -120 KPX Tcommaaccent rcaron -120 KPX Tcommaaccent rcommaaccent -120 KPX Tcommaaccent semicolon -20 KPX Tcommaaccent u -120 KPX Tcommaaccent uacute -120 KPX Tcommaaccent ucircumflex -120 KPX Tcommaaccent udieresis -120 KPX Tcommaaccent ugrave -120 KPX Tcommaaccent uhungarumlaut -120 KPX Tcommaaccent umacron -60 KPX Tcommaaccent uogonek -120 KPX Tcommaaccent uring -120 KPX Tcommaaccent w -120 KPX Tcommaaccent y -120 KPX Tcommaaccent yacute -120 KPX Tcommaaccent ydieresis -60 KPX U A -40 KPX U Aacute -40 KPX U Abreve -40 KPX U Acircumflex -40 KPX U Adieresis -40 KPX U Agrave -40 KPX U Amacron -40 KPX U Aogonek -40 KPX U Aring -40 KPX U Atilde -40 KPX U comma -40 KPX U period -40 KPX Uacute A -40 KPX Uacute Aacute -40 KPX Uacute Abreve -40 KPX Uacute Acircumflex -40 KPX Uacute Adieresis -40 KPX Uacute Agrave -40 KPX Uacute Amacron -40 KPX Uacute Aogonek -40 KPX Uacute Aring -40 KPX Uacute Atilde -40 KPX Uacute comma -40 KPX Uacute period -40 KPX Ucircumflex A -40 KPX Ucircumflex Aacute -40 KPX Ucircumflex Abreve -40 KPX Ucircumflex Acircumflex -40 KPX Ucircumflex Adieresis -40 KPX Ucircumflex Agrave -40 KPX Ucircumflex Amacron -40 KPX Ucircumflex Aogonek -40 KPX Ucircumflex Aring -40 KPX Ucircumflex Atilde -40 KPX Ucircumflex comma -40 KPX Ucircumflex period -40 KPX Udieresis A -40 KPX Udieresis Aacute -40 KPX Udieresis Abreve -40 KPX Udieresis Acircumflex -40 KPX Udieresis Adieresis -40 KPX Udieresis Agrave -40 KPX Udieresis Amacron -40 KPX Udieresis Aogonek -40 KPX Udieresis Aring -40 KPX Udieresis Atilde -40 KPX Udieresis comma -40 KPX Udieresis period -40 KPX Ugrave A -40 KPX Ugrave Aacute -40 KPX Ugrave Abreve -40 KPX Ugrave Acircumflex -40 KPX Ugrave Adieresis -40 KPX Ugrave Agrave -40 KPX Ugrave Amacron -40 KPX Ugrave Aogonek -40 KPX Ugrave Aring -40 KPX Ugrave Atilde -40 KPX Ugrave comma -40 KPX Ugrave period -40 KPX Uhungarumlaut A -40 KPX Uhungarumlaut Aacute -40 KPX Uhungarumlaut Abreve -40 KPX Uhungarumlaut Acircumflex -40 KPX Uhungarumlaut Adieresis -40 KPX Uhungarumlaut Agrave -40 KPX Uhungarumlaut Amacron -40 KPX Uhungarumlaut Aogonek -40 KPX Uhungarumlaut Aring -40 KPX Uhungarumlaut Atilde -40 KPX Uhungarumlaut comma -40 KPX Uhungarumlaut period -40 KPX Umacron A -40 KPX Umacron Aacute -40 KPX Umacron Abreve -40 KPX Umacron Acircumflex -40 KPX Umacron Adieresis -40 KPX Umacron Agrave -40 KPX Umacron Amacron -40 KPX Umacron Aogonek -40 KPX Umacron Aring -40 KPX Umacron Atilde -40 KPX Umacron comma -40 KPX Umacron period -40 KPX Uogonek A -40 KPX Uogonek Aacute -40 KPX Uogonek Abreve -40 KPX Uogonek Acircumflex -40 KPX Uogonek Adieresis -40 KPX Uogonek Agrave -40 KPX Uogonek Amacron -40 KPX Uogonek Aogonek -40 KPX Uogonek Aring -40 KPX Uogonek Atilde -40 KPX Uogonek comma -40 KPX Uogonek period -40 KPX Uring A -40 KPX Uring Aacute -40 KPX Uring Abreve -40 KPX Uring Acircumflex -40 KPX Uring Adieresis -40 KPX Uring Agrave -40 KPX Uring Amacron -40 KPX Uring Aogonek -40 KPX Uring Aring -40 KPX Uring Atilde -40 KPX Uring comma -40 KPX Uring period -40 KPX V A -80 KPX V Aacute -80 KPX V Abreve -80 KPX V Acircumflex -80 KPX V Adieresis -80 KPX V Agrave -80 KPX V Amacron -80 KPX V Aogonek -80 KPX V Aring -80 KPX V Atilde -80 KPX V G -40 KPX V Gbreve -40 KPX V Gcommaaccent -40 KPX V O -40 KPX V Oacute -40 KPX V Ocircumflex -40 KPX V Odieresis -40 KPX V Ograve -40 KPX V Ohungarumlaut -40 KPX V Omacron -40 KPX V Oslash -40 KPX V Otilde -40 KPX V a -70 KPX V aacute -70 KPX V abreve -70 KPX V acircumflex -70 KPX V adieresis -70 KPX V agrave -70 KPX V amacron -70 KPX V aogonek -70 KPX V aring -70 KPX V atilde -70 KPX V colon -40 KPX V comma -125 KPX V e -80 KPX V eacute -80 KPX V ecaron -80 KPX V ecircumflex -80 KPX V edieresis -80 KPX V edotaccent -80 KPX V egrave -80 KPX V emacron -80 KPX V eogonek -80 KPX V hyphen -80 KPX V o -80 KPX V oacute -80 KPX V ocircumflex -80 KPX V odieresis -80 KPX V ograve -80 KPX V ohungarumlaut -80 KPX V omacron -80 KPX V oslash -80 KPX V otilde -80 KPX V period -125 KPX V semicolon -40 KPX V u -70 KPX V uacute -70 KPX V ucircumflex -70 KPX V udieresis -70 KPX V ugrave -70 KPX V uhungarumlaut -70 KPX V umacron -70 KPX V uogonek -70 KPX V uring -70 KPX W A -50 KPX W Aacute -50 KPX W Abreve -50 KPX W Acircumflex -50 KPX W Adieresis -50 KPX W Agrave -50 KPX W Amacron -50 KPX W Aogonek -50 KPX W Aring -50 KPX W Atilde -50 KPX W O -20 KPX W Oacute -20 KPX W Ocircumflex -20 KPX W Odieresis -20 KPX W Ograve -20 KPX W Ohungarumlaut -20 KPX W Omacron -20 KPX W Oslash -20 KPX W Otilde -20 KPX W a -40 KPX W aacute -40 KPX W abreve -40 KPX W acircumflex -40 KPX W adieresis -40 KPX W agrave -40 KPX W amacron -40 KPX W aogonek -40 KPX W aring -40 KPX W atilde -40 KPX W comma -80 KPX W e -30 KPX W eacute -30 KPX W ecaron -30 KPX W ecircumflex -30 KPX W edieresis -30 KPX W edotaccent -30 KPX W egrave -30 KPX W emacron -30 KPX W eogonek -30 KPX W hyphen -40 KPX W o -30 KPX W oacute -30 KPX W ocircumflex -30 KPX W odieresis -30 KPX W ograve -30 KPX W ohungarumlaut -30 KPX W omacron -30 KPX W oslash -30 KPX W otilde -30 KPX W period -80 KPX W u -30 KPX W uacute -30 KPX W ucircumflex -30 KPX W udieresis -30 KPX W ugrave -30 KPX W uhungarumlaut -30 KPX W umacron -30 KPX W uogonek -30 KPX W uring -30 KPX W y -20 KPX W yacute -20 KPX W ydieresis -20 KPX Y A -110 KPX Y Aacute -110 KPX Y Abreve -110 KPX Y Acircumflex -110 KPX Y Adieresis -110 KPX Y Agrave -110 KPX Y Amacron -110 KPX Y Aogonek -110 KPX Y Aring -110 KPX Y Atilde -110 KPX Y O -85 KPX Y Oacute -85 KPX Y Ocircumflex -85 KPX Y Odieresis -85 KPX Y Ograve -85 KPX Y Ohungarumlaut -85 KPX Y Omacron -85 KPX Y Oslash -85 KPX Y Otilde -85 KPX Y a -140 KPX Y aacute -140 KPX Y abreve -70 KPX Y acircumflex -140 KPX Y adieresis -140 KPX Y agrave -140 KPX Y amacron -70 KPX Y aogonek -140 KPX Y aring -140 KPX Y atilde -140 KPX Y colon -60 KPX Y comma -140 KPX Y e -140 KPX Y eacute -140 KPX Y ecaron -140 KPX Y ecircumflex -140 KPX Y edieresis -140 KPX Y edotaccent -140 KPX Y egrave -140 KPX Y emacron -70 KPX Y eogonek -140 KPX Y hyphen -140 KPX Y i -20 KPX Y iacute -20 KPX Y iogonek -20 KPX Y o -140 KPX Y oacute -140 KPX Y ocircumflex -140 KPX Y odieresis -140 KPX Y ograve -140 KPX Y ohungarumlaut -140 KPX Y omacron -140 KPX Y oslash -140 KPX Y otilde -140 KPX Y period -140 KPX Y semicolon -60 KPX Y u -110 KPX Y uacute -110 KPX Y ucircumflex -110 KPX Y udieresis -110 KPX Y ugrave -110 KPX Y uhungarumlaut -110 KPX Y umacron -110 KPX Y uogonek -110 KPX Y uring -110 KPX Yacute A -110 KPX Yacute Aacute -110 KPX Yacute Abreve -110 KPX Yacute Acircumflex -110 KPX Yacute Adieresis -110 KPX Yacute Agrave -110 KPX Yacute Amacron -110 KPX Yacute Aogonek -110 KPX Yacute Aring -110 KPX Yacute Atilde -110 KPX Yacute O -85 KPX Yacute Oacute -85 KPX Yacute Ocircumflex -85 KPX Yacute Odieresis -85 KPX Yacute Ograve -85 KPX Yacute Ohungarumlaut -85 KPX Yacute Omacron -85 KPX Yacute Oslash -85 KPX Yacute Otilde -85 KPX Yacute a -140 KPX Yacute aacute -140 KPX Yacute abreve -70 KPX Yacute acircumflex -140 KPX Yacute adieresis -140 KPX Yacute agrave -140 KPX Yacute amacron -70 KPX Yacute aogonek -140 KPX Yacute aring -140 KPX Yacute atilde -70 KPX Yacute colon -60 KPX Yacute comma -140 KPX Yacute e -140 KPX Yacute eacute -140 KPX Yacute ecaron -140 KPX Yacute ecircumflex -140 KPX Yacute edieresis -140 KPX Yacute edotaccent -140 KPX Yacute egrave -140 KPX Yacute emacron -70 KPX Yacute eogonek -140 KPX Yacute hyphen -140 KPX Yacute i -20 KPX Yacute iacute -20 KPX Yacute iogonek -20 KPX Yacute o -140 KPX Yacute oacute -140 KPX Yacute ocircumflex -140 KPX Yacute odieresis -140 KPX Yacute ograve -140 KPX Yacute ohungarumlaut -140 KPX Yacute omacron -70 KPX Yacute oslash -140 KPX Yacute otilde -140 KPX Yacute period -140 KPX Yacute semicolon -60 KPX Yacute u -110 KPX Yacute uacute -110 KPX Yacute ucircumflex -110 KPX Yacute udieresis -110 KPX Yacute ugrave -110 KPX Yacute uhungarumlaut -110 KPX Yacute umacron -110 KPX Yacute uogonek -110 KPX Yacute uring -110 KPX Ydieresis A -110 KPX Ydieresis Aacute -110 KPX Ydieresis Abreve -110 KPX Ydieresis Acircumflex -110 KPX Ydieresis Adieresis -110 KPX Ydieresis Agrave -110 KPX Ydieresis Amacron -110 KPX Ydieresis Aogonek -110 KPX Ydieresis Aring -110 KPX Ydieresis Atilde -110 KPX Ydieresis O -85 KPX Ydieresis Oacute -85 KPX Ydieresis Ocircumflex -85 KPX Ydieresis Odieresis -85 KPX Ydieresis Ograve -85 KPX Ydieresis Ohungarumlaut -85 KPX Ydieresis Omacron -85 KPX Ydieresis Oslash -85 KPX Ydieresis Otilde -85 KPX Ydieresis a -140 KPX Ydieresis aacute -140 KPX Ydieresis abreve -70 KPX Ydieresis acircumflex -140 KPX Ydieresis adieresis -140 KPX Ydieresis agrave -140 KPX Ydieresis amacron -70 KPX Ydieresis aogonek -140 KPX Ydieresis aring -140 KPX Ydieresis atilde -70 KPX Ydieresis colon -60 KPX Ydieresis comma -140 KPX Ydieresis e -140 KPX Ydieresis eacute -140 KPX Ydieresis ecaron -140 KPX Ydieresis ecircumflex -140 KPX Ydieresis edieresis -140 KPX Ydieresis edotaccent -140 KPX Ydieresis egrave -140 KPX Ydieresis emacron -70 KPX Ydieresis eogonek -140 KPX Ydieresis hyphen -140 KPX Ydieresis i -20 KPX Ydieresis iacute -20 KPX Ydieresis iogonek -20 KPX Ydieresis o -140 KPX Ydieresis oacute -140 KPX Ydieresis ocircumflex -140 KPX Ydieresis odieresis -140 KPX Ydieresis ograve -140 KPX Ydieresis ohungarumlaut -140 KPX Ydieresis omacron -140 KPX Ydieresis oslash -140 KPX Ydieresis otilde -140 KPX Ydieresis period -140 KPX Ydieresis semicolon -60 KPX Ydieresis u -110 KPX Ydieresis uacute -110 KPX Ydieresis ucircumflex -110 KPX Ydieresis udieresis -110 KPX Ydieresis ugrave -110 KPX Ydieresis uhungarumlaut -110 KPX Ydieresis umacron -110 KPX Ydieresis uogonek -110 KPX Ydieresis uring -110 KPX a v -20 KPX a w -20 KPX a y -30 KPX a yacute -30 KPX a ydieresis -30 KPX aacute v -20 KPX aacute w -20 KPX aacute y -30 KPX aacute yacute -30 KPX aacute ydieresis -30 KPX abreve v -20 KPX abreve w -20 KPX abreve y -30 KPX abreve yacute -30 KPX abreve ydieresis -30 KPX acircumflex v -20 KPX acircumflex w -20 KPX acircumflex y -30 KPX acircumflex yacute -30 KPX acircumflex ydieresis -30 KPX adieresis v -20 KPX adieresis w -20 KPX adieresis y -30 KPX adieresis yacute -30 KPX adieresis ydieresis -30 KPX agrave v -20 KPX agrave w -20 KPX agrave y -30 KPX agrave yacute -30 KPX agrave ydieresis -30 KPX amacron v -20 KPX amacron w -20 KPX amacron y -30 KPX amacron yacute -30 KPX amacron ydieresis -30 KPX aogonek v -20 KPX aogonek w -20 KPX aogonek y -30 KPX aogonek yacute -30 KPX aogonek ydieresis -30 KPX aring v -20 KPX aring w -20 KPX aring y -30 KPX aring yacute -30 KPX aring ydieresis -30 KPX atilde v -20 KPX atilde w -20 KPX atilde y -30 KPX atilde yacute -30 KPX atilde ydieresis -30 KPX b b -10 KPX b comma -40 KPX b l -20 KPX b lacute -20 KPX b lcommaaccent -20 KPX b lslash -20 KPX b period -40 KPX b u -20 KPX b uacute -20 KPX b ucircumflex -20 KPX b udieresis -20 KPX b ugrave -20 KPX b uhungarumlaut -20 KPX b umacron -20 KPX b uogonek -20 KPX b uring -20 KPX b v -20 KPX b y -20 KPX b yacute -20 KPX b ydieresis -20 KPX c comma -15 KPX c k -20 KPX c kcommaaccent -20 KPX cacute comma -15 KPX cacute k -20 KPX cacute kcommaaccent -20 KPX ccaron comma -15 KPX ccaron k -20 KPX ccaron kcommaaccent -20 KPX ccedilla comma -15 KPX ccedilla k -20 KPX ccedilla kcommaaccent -20 KPX colon space -50 KPX comma quotedblright -100 KPX comma quoteright -100 KPX e comma -15 KPX e period -15 KPX e v -30 KPX e w -20 KPX e x -30 KPX e y -20 KPX e yacute -20 KPX e ydieresis -20 KPX eacute comma -15 KPX eacute period -15 KPX eacute v -30 KPX eacute w -20 KPX eacute x -30 KPX eacute y -20 KPX eacute yacute -20 KPX eacute ydieresis -20 KPX ecaron comma -15 KPX ecaron period -15 KPX ecaron v -30 KPX ecaron w -20 KPX ecaron x -30 KPX ecaron y -20 KPX ecaron yacute -20 KPX ecaron ydieresis -20 KPX ecircumflex comma -15 KPX ecircumflex period -15 KPX ecircumflex v -30 KPX ecircumflex w -20 KPX ecircumflex x -30 KPX ecircumflex y -20 KPX ecircumflex yacute -20 KPX ecircumflex ydieresis -20 KPX edieresis comma -15 KPX edieresis period -15 KPX edieresis v -30 KPX edieresis w -20 KPX edieresis x -30 KPX edieresis y -20 KPX edieresis yacute -20 KPX edieresis ydieresis -20 KPX edotaccent comma -15 KPX edotaccent period -15 KPX edotaccent v -30 KPX edotaccent w -20 KPX edotaccent x -30 KPX edotaccent y -20 KPX edotaccent yacute -20 KPX edotaccent ydieresis -20 KPX egrave comma -15 KPX egrave period -15 KPX egrave v -30 KPX egrave w -20 KPX egrave x -30 KPX egrave y -20 KPX egrave yacute -20 KPX egrave ydieresis -20 KPX emacron comma -15 KPX emacron period -15 KPX emacron v -30 KPX emacron w -20 KPX emacron x -30 KPX emacron y -20 KPX emacron yacute -20 KPX emacron ydieresis -20 KPX eogonek comma -15 KPX eogonek period -15 KPX eogonek v -30 KPX eogonek w -20 KPX eogonek x -30 KPX eogonek y -20 KPX eogonek yacute -20 KPX eogonek ydieresis -20 KPX f a -30 KPX f aacute -30 KPX f abreve -30 KPX f acircumflex -30 KPX f adieresis -30 KPX f agrave -30 KPX f amacron -30 KPX f aogonek -30 KPX f aring -30 KPX f atilde -30 KPX f comma -30 KPX f dotlessi -28 KPX f e -30 KPX f eacute -30 KPX f ecaron -30 KPX f ecircumflex -30 KPX f edieresis -30 KPX f edotaccent -30 KPX f egrave -30 KPX f emacron -30 KPX f eogonek -30 KPX f o -30 KPX f oacute -30 KPX f ocircumflex -30 KPX f odieresis -30 KPX f ograve -30 KPX f ohungarumlaut -30 KPX f omacron -30 KPX f oslash -30 KPX f otilde -30 KPX f period -30 KPX f quotedblright 60 KPX f quoteright 50 KPX g r -10 KPX g racute -10 KPX g rcaron -10 KPX g rcommaaccent -10 KPX gbreve r -10 KPX gbreve racute -10 KPX gbreve rcaron -10 KPX gbreve rcommaaccent -10 KPX gcommaaccent r -10 KPX gcommaaccent racute -10 KPX gcommaaccent rcaron -10 KPX gcommaaccent rcommaaccent -10 KPX h y -30 KPX h yacute -30 KPX h ydieresis -30 KPX k e -20 KPX k eacute -20 KPX k ecaron -20 KPX k ecircumflex -20 KPX k edieresis -20 KPX k edotaccent -20 KPX k egrave -20 KPX k emacron -20 KPX k eogonek -20 KPX k o -20 KPX k oacute -20 KPX k ocircumflex -20 KPX k odieresis -20 KPX k ograve -20 KPX k ohungarumlaut -20 KPX k omacron -20 KPX k oslash -20 KPX k otilde -20 KPX kcommaaccent e -20 KPX kcommaaccent eacute -20 KPX kcommaaccent ecaron -20 KPX kcommaaccent ecircumflex -20 KPX kcommaaccent edieresis -20 KPX kcommaaccent edotaccent -20 KPX kcommaaccent egrave -20 KPX kcommaaccent emacron -20 KPX kcommaaccent eogonek -20 KPX kcommaaccent o -20 KPX kcommaaccent oacute -20 KPX kcommaaccent ocircumflex -20 KPX kcommaaccent odieresis -20 KPX kcommaaccent ograve -20 KPX kcommaaccent ohungarumlaut -20 KPX kcommaaccent omacron -20 KPX kcommaaccent oslash -20 KPX kcommaaccent otilde -20 KPX m u -10 KPX m uacute -10 KPX m ucircumflex -10 KPX m udieresis -10 KPX m ugrave -10 KPX m uhungarumlaut -10 KPX m umacron -10 KPX m uogonek -10 KPX m uring -10 KPX m y -15 KPX m yacute -15 KPX m ydieresis -15 KPX n u -10 KPX n uacute -10 KPX n ucircumflex -10 KPX n udieresis -10 KPX n ugrave -10 KPX n uhungarumlaut -10 KPX n umacron -10 KPX n uogonek -10 KPX n uring -10 KPX n v -20 KPX n y -15 KPX n yacute -15 KPX n ydieresis -15 KPX nacute u -10 KPX nacute uacute -10 KPX nacute ucircumflex -10 KPX nacute udieresis -10 KPX nacute ugrave -10 KPX nacute uhungarumlaut -10 KPX nacute umacron -10 KPX nacute uogonek -10 KPX nacute uring -10 KPX nacute v -20 KPX nacute y -15 KPX nacute yacute -15 KPX nacute ydieresis -15 KPX ncaron u -10 KPX ncaron uacute -10 KPX ncaron ucircumflex -10 KPX ncaron udieresis -10 KPX ncaron ugrave -10 KPX ncaron uhungarumlaut -10 KPX ncaron umacron -10 KPX ncaron uogonek -10 KPX ncaron uring -10 KPX ncaron v -20 KPX ncaron y -15 KPX ncaron yacute -15 KPX ncaron ydieresis -15 KPX ncommaaccent u -10 KPX ncommaaccent uacute -10 KPX ncommaaccent ucircumflex -10 KPX ncommaaccent udieresis -10 KPX ncommaaccent ugrave -10 KPX ncommaaccent uhungarumlaut -10 KPX ncommaaccent umacron -10 KPX ncommaaccent uogonek -10 KPX ncommaaccent uring -10 KPX ncommaaccent v -20 KPX ncommaaccent y -15 KPX ncommaaccent yacute -15 KPX ncommaaccent ydieresis -15 KPX ntilde u -10 KPX ntilde uacute -10 KPX ntilde ucircumflex -10 KPX ntilde udieresis -10 KPX ntilde ugrave -10 KPX ntilde uhungarumlaut -10 KPX ntilde umacron -10 KPX ntilde uogonek -10 KPX ntilde uring -10 KPX ntilde v -20 KPX ntilde y -15 KPX ntilde yacute -15 KPX ntilde ydieresis -15 KPX o comma -40 KPX o period -40 KPX o v -15 KPX o w -15 KPX o x -30 KPX o y -30 KPX o yacute -30 KPX o ydieresis -30 KPX oacute comma -40 KPX oacute period -40 KPX oacute v -15 KPX oacute w -15 KPX oacute x -30 KPX oacute y -30 KPX oacute yacute -30 KPX oacute ydieresis -30 KPX ocircumflex comma -40 KPX ocircumflex period -40 KPX ocircumflex v -15 KPX ocircumflex w -15 KPX ocircumflex x -30 KPX ocircumflex y -30 KPX ocircumflex yacute -30 KPX ocircumflex ydieresis -30 KPX odieresis comma -40 KPX odieresis period -40 KPX odieresis v -15 KPX odieresis w -15 KPX odieresis x -30 KPX odieresis y -30 KPX odieresis yacute -30 KPX odieresis ydieresis -30 KPX ograve comma -40 KPX ograve period -40 KPX ograve v -15 KPX ograve w -15 KPX ograve x -30 KPX ograve y -30 KPX ograve yacute -30 KPX ograve ydieresis -30 KPX ohungarumlaut comma -40 KPX ohungarumlaut period -40 KPX ohungarumlaut v -15 KPX ohungarumlaut w -15 KPX ohungarumlaut x -30 KPX ohungarumlaut y -30 KPX ohungarumlaut yacute -30 KPX ohungarumlaut ydieresis -30 KPX omacron comma -40 KPX omacron period -40 KPX omacron v -15 KPX omacron w -15 KPX omacron x -30 KPX omacron y -30 KPX omacron yacute -30 KPX omacron ydieresis -30 KPX oslash a -55 KPX oslash aacute -55 KPX oslash abreve -55 KPX oslash acircumflex -55 KPX oslash adieresis -55 KPX oslash agrave -55 KPX oslash amacron -55 KPX oslash aogonek -55 KPX oslash aring -55 KPX oslash atilde -55 KPX oslash b -55 KPX oslash c -55 KPX oslash cacute -55 KPX oslash ccaron -55 KPX oslash ccedilla -55 KPX oslash comma -95 KPX oslash d -55 KPX oslash dcroat -55 KPX oslash e -55 KPX oslash eacute -55 KPX oslash ecaron -55 KPX oslash ecircumflex -55 KPX oslash edieresis -55 KPX oslash edotaccent -55 KPX oslash egrave -55 KPX oslash emacron -55 KPX oslash eogonek -55 KPX oslash f -55 KPX oslash g -55 KPX oslash gbreve -55 KPX oslash gcommaaccent -55 KPX oslash h -55 KPX oslash i -55 KPX oslash iacute -55 KPX oslash icircumflex -55 KPX oslash idieresis -55 KPX oslash igrave -55 KPX oslash imacron -55 KPX oslash iogonek -55 KPX oslash j -55 KPX oslash k -55 KPX oslash kcommaaccent -55 KPX oslash l -55 KPX oslash lacute -55 KPX oslash lcommaaccent -55 KPX oslash lslash -55 KPX oslash m -55 KPX oslash n -55 KPX oslash nacute -55 KPX oslash ncaron -55 KPX oslash ncommaaccent -55 KPX oslash ntilde -55 KPX oslash o -55 KPX oslash oacute -55 KPX oslash ocircumflex -55 KPX oslash odieresis -55 KPX oslash ograve -55 KPX oslash ohungarumlaut -55 KPX oslash omacron -55 KPX oslash oslash -55 KPX oslash otilde -55 KPX oslash p -55 KPX oslash period -95 KPX oslash q -55 KPX oslash r -55 KPX oslash racute -55 KPX oslash rcaron -55 KPX oslash rcommaaccent -55 KPX oslash s -55 KPX oslash sacute -55 KPX oslash scaron -55 KPX oslash scedilla -55 KPX oslash scommaaccent -55 KPX oslash t -55 KPX oslash tcommaaccent -55 KPX oslash u -55 KPX oslash uacute -55 KPX oslash ucircumflex -55 KPX oslash udieresis -55 KPX oslash ugrave -55 KPX oslash uhungarumlaut -55 KPX oslash umacron -55 KPX oslash uogonek -55 KPX oslash uring -55 KPX oslash v -70 KPX oslash w -70 KPX oslash x -85 KPX oslash y -70 KPX oslash yacute -70 KPX oslash ydieresis -70 KPX oslash z -55 KPX oslash zacute -55 KPX oslash zcaron -55 KPX oslash zdotaccent -55 KPX otilde comma -40 KPX otilde period -40 KPX otilde v -15 KPX otilde w -15 KPX otilde x -30 KPX otilde y -30 KPX otilde yacute -30 KPX otilde ydieresis -30 KPX p comma -35 KPX p period -35 KPX p y -30 KPX p yacute -30 KPX p ydieresis -30 KPX period quotedblright -100 KPX period quoteright -100 KPX period space -60 KPX quotedblright space -40 KPX quoteleft quoteleft -57 KPX quoteright d -50 KPX quoteright dcroat -50 KPX quoteright quoteright -57 KPX quoteright r -50 KPX quoteright racute -50 KPX quoteright rcaron -50 KPX quoteright rcommaaccent -50 KPX quoteright s -50 KPX quoteright sacute -50 KPX quoteright scaron -50 KPX quoteright scedilla -50 KPX quoteright scommaaccent -50 KPX quoteright space -70 KPX r a -10 KPX r aacute -10 KPX r abreve -10 KPX r acircumflex -10 KPX r adieresis -10 KPX r agrave -10 KPX r amacron -10 KPX r aogonek -10 KPX r aring -10 KPX r atilde -10 KPX r colon 30 KPX r comma -50 KPX r i 15 KPX r iacute 15 KPX r icircumflex 15 KPX r idieresis 15 KPX r igrave 15 KPX r imacron 15 KPX r iogonek 15 KPX r k 15 KPX r kcommaaccent 15 KPX r l 15 KPX r lacute 15 KPX r lcommaaccent 15 KPX r lslash 15 KPX r m 25 KPX r n 25 KPX r nacute 25 KPX r ncaron 25 KPX r ncommaaccent 25 KPX r ntilde 25 KPX r p 30 KPX r period -50 KPX r semicolon 30 KPX r t 40 KPX r tcommaaccent 40 KPX r u 15 KPX r uacute 15 KPX r ucircumflex 15 KPX r udieresis 15 KPX r ugrave 15 KPX r uhungarumlaut 15 KPX r umacron 15 KPX r uogonek 15 KPX r uring 15 KPX r v 30 KPX r y 30 KPX r yacute 30 KPX r ydieresis 30 KPX racute a -10 KPX racute aacute -10 KPX racute abreve -10 KPX racute acircumflex -10 KPX racute adieresis -10 KPX racute agrave -10 KPX racute amacron -10 KPX racute aogonek -10 KPX racute aring -10 KPX racute atilde -10 KPX racute colon 30 KPX racute comma -50 KPX racute i 15 KPX racute iacute 15 KPX racute icircumflex 15 KPX racute idieresis 15 KPX racute igrave 15 KPX racute imacron 15 KPX racute iogonek 15 KPX racute k 15 KPX racute kcommaaccent 15 KPX racute l 15 KPX racute lacute 15 KPX racute lcommaaccent 15 KPX racute lslash 15 KPX racute m 25 KPX racute n 25 KPX racute nacute 25 KPX racute ncaron 25 KPX racute ncommaaccent 25 KPX racute ntilde 25 KPX racute p 30 KPX racute period -50 KPX racute semicolon 30 KPX racute t 40 KPX racute tcommaaccent 40 KPX racute u 15 KPX racute uacute 15 KPX racute ucircumflex 15 KPX racute udieresis 15 KPX racute ugrave 15 KPX racute uhungarumlaut 15 KPX racute umacron 15 KPX racute uogonek 15 KPX racute uring 15 KPX racute v 30 KPX racute y 30 KPX racute yacute 30 KPX racute ydieresis 30 KPX rcaron a -10 KPX rcaron aacute -10 KPX rcaron abreve -10 KPX rcaron acircumflex -10 KPX rcaron adieresis -10 KPX rcaron agrave -10 KPX rcaron amacron -10 KPX rcaron aogonek -10 KPX rcaron aring -10 KPX rcaron atilde -10 KPX rcaron colon 30 KPX rcaron comma -50 KPX rcaron i 15 KPX rcaron iacute 15 KPX rcaron icircumflex 15 KPX rcaron idieresis 15 KPX rcaron igrave 15 KPX rcaron imacron 15 KPX rcaron iogonek 15 KPX rcaron k 15 KPX rcaron kcommaaccent 15 KPX rcaron l 15 KPX rcaron lacute 15 KPX rcaron lcommaaccent 15 KPX rcaron lslash 15 KPX rcaron m 25 KPX rcaron n 25 KPX rcaron nacute 25 KPX rcaron ncaron 25 KPX rcaron ncommaaccent 25 KPX rcaron ntilde 25 KPX rcaron p 30 KPX rcaron period -50 KPX rcaron semicolon 30 KPX rcaron t 40 KPX rcaron tcommaaccent 40 KPX rcaron u 15 KPX rcaron uacute 15 KPX rcaron ucircumflex 15 KPX rcaron udieresis 15 KPX rcaron ugrave 15 KPX rcaron uhungarumlaut 15 KPX rcaron umacron 15 KPX rcaron uogonek 15 KPX rcaron uring 15 KPX rcaron v 30 KPX rcaron y 30 KPX rcaron yacute 30 KPX rcaron ydieresis 30 KPX rcommaaccent a -10 KPX rcommaaccent aacute -10 KPX rcommaaccent abreve -10 KPX rcommaaccent acircumflex -10 KPX rcommaaccent adieresis -10 KPX rcommaaccent agrave -10 KPX rcommaaccent amacron -10 KPX rcommaaccent aogonek -10 KPX rcommaaccent aring -10 KPX rcommaaccent atilde -10 KPX rcommaaccent colon 30 KPX rcommaaccent comma -50 KPX rcommaaccent i 15 KPX rcommaaccent iacute 15 KPX rcommaaccent icircumflex 15 KPX rcommaaccent idieresis 15 KPX rcommaaccent igrave 15 KPX rcommaaccent imacron 15 KPX rcommaaccent iogonek 15 KPX rcommaaccent k 15 KPX rcommaaccent kcommaaccent 15 KPX rcommaaccent l 15 KPX rcommaaccent lacute 15 KPX rcommaaccent lcommaaccent 15 KPX rcommaaccent lslash 15 KPX rcommaaccent m 25 KPX rcommaaccent n 25 KPX rcommaaccent nacute 25 KPX rcommaaccent ncaron 25 KPX rcommaaccent ncommaaccent 25 KPX rcommaaccent ntilde 25 KPX rcommaaccent p 30 KPX rcommaaccent period -50 KPX rcommaaccent semicolon 30 KPX rcommaaccent t 40 KPX rcommaaccent tcommaaccent 40 KPX rcommaaccent u 15 KPX rcommaaccent uacute 15 KPX rcommaaccent ucircumflex 15 KPX rcommaaccent udieresis 15 KPX rcommaaccent ugrave 15 KPX rcommaaccent uhungarumlaut 15 KPX rcommaaccent umacron 15 KPX rcommaaccent uogonek 15 KPX rcommaaccent uring 15 KPX rcommaaccent v 30 KPX rcommaaccent y 30 KPX rcommaaccent yacute 30 KPX rcommaaccent ydieresis 30 KPX s comma -15 KPX s period -15 KPX s w -30 KPX sacute comma -15 KPX sacute period -15 KPX sacute w -30 KPX scaron comma -15 KPX scaron period -15 KPX scaron w -30 KPX scedilla comma -15 KPX scedilla period -15 KPX scedilla w -30 KPX scommaaccent comma -15 KPX scommaaccent period -15 KPX scommaaccent w -30 KPX semicolon space -50 KPX space T -50 KPX space Tcaron -50 KPX space Tcommaaccent -50 KPX space V -50 KPX space W -40 KPX space Y -90 KPX space Yacute -90 KPX space Ydieresis -90 KPX space quotedblleft -30 KPX space quoteleft -60 KPX v a -25 KPX v aacute -25 KPX v abreve -25 KPX v acircumflex -25 KPX v adieresis -25 KPX v agrave -25 KPX v amacron -25 KPX v aogonek -25 KPX v aring -25 KPX v atilde -25 KPX v comma -80 KPX v e -25 KPX v eacute -25 KPX v ecaron -25 KPX v ecircumflex -25 KPX v edieresis -25 KPX v edotaccent -25 KPX v egrave -25 KPX v emacron -25 KPX v eogonek -25 KPX v o -25 KPX v oacute -25 KPX v ocircumflex -25 KPX v odieresis -25 KPX v ograve -25 KPX v ohungarumlaut -25 KPX v omacron -25 KPX v oslash -25 KPX v otilde -25 KPX v period -80 KPX w a -15 KPX w aacute -15 KPX w abreve -15 KPX w acircumflex -15 KPX w adieresis -15 KPX w agrave -15 KPX w amacron -15 KPX w aogonek -15 KPX w aring -15 KPX w atilde -15 KPX w comma -60 KPX w e -10 KPX w eacute -10 KPX w ecaron -10 KPX w ecircumflex -10 KPX w edieresis -10 KPX w edotaccent -10 KPX w egrave -10 KPX w emacron -10 KPX w eogonek -10 KPX w o -10 KPX w oacute -10 KPX w ocircumflex -10 KPX w odieresis -10 KPX w ograve -10 KPX w ohungarumlaut -10 KPX w omacron -10 KPX w oslash -10 KPX w otilde -10 KPX w period -60 KPX x e -30 KPX x eacute -30 KPX x ecaron -30 KPX x ecircumflex -30 KPX x edieresis -30 KPX x edotaccent -30 KPX x egrave -30 KPX x emacron -30 KPX x eogonek -30 KPX y a -20 KPX y aacute -20 KPX y abreve -20 KPX y acircumflex -20 KPX y adieresis -20 KPX y agrave -20 KPX y amacron -20 KPX y aogonek -20 KPX y aring -20 KPX y atilde -20 KPX y comma -100 KPX y e -20 KPX y eacute -20 KPX y ecaron -20 KPX y ecircumflex -20 KPX y edieresis -20 KPX y edotaccent -20 KPX y egrave -20 KPX y emacron -20 KPX y eogonek -20 KPX y o -20 KPX y oacute -20 KPX y ocircumflex -20 KPX y odieresis -20 KPX y ograve -20 KPX y ohungarumlaut -20 KPX y omacron -20 KPX y oslash -20 KPX y otilde -20 KPX y period -100 KPX yacute a -20 KPX yacute aacute -20 KPX yacute abreve -20 KPX yacute acircumflex -20 KPX yacute adieresis -20 KPX yacute agrave -20 KPX yacute amacron -20 KPX yacute aogonek -20 KPX yacute aring -20 KPX yacute atilde -20 KPX yacute comma -100 KPX yacute e -20 KPX yacute eacute -20 KPX yacute ecaron -20 KPX yacute ecircumflex -20 KPX yacute edieresis -20 KPX yacute edotaccent -20 KPX yacute egrave -20 KPX yacute emacron -20 KPX yacute eogonek -20 KPX yacute o -20 KPX yacute oacute -20 KPX yacute ocircumflex -20 KPX yacute odieresis -20 KPX yacute ograve -20 KPX yacute ohungarumlaut -20 KPX yacute omacron -20 KPX yacute oslash -20 KPX yacute otilde -20 KPX yacute period -100 KPX ydieresis a -20 KPX ydieresis aacute -20 KPX ydieresis abreve -20 KPX ydieresis acircumflex -20 KPX ydieresis adieresis -20 KPX ydieresis agrave -20 KPX ydieresis amacron -20 KPX ydieresis aogonek -20 KPX ydieresis aring -20 KPX ydieresis atilde -20 KPX ydieresis comma -100 KPX ydieresis e -20 KPX ydieresis eacute -20 KPX ydieresis ecaron -20 KPX ydieresis ecircumflex -20 KPX ydieresis edieresis -20 KPX ydieresis edotaccent -20 KPX ydieresis egrave -20 KPX ydieresis emacron -20 KPX ydieresis eogonek -20 KPX ydieresis o -20 KPX ydieresis oacute -20 KPX ydieresis ocircumflex -20 KPX ydieresis odieresis -20 KPX ydieresis ograve -20 KPX ydieresis ohungarumlaut -20 KPX ydieresis omacron -20 KPX ydieresis oslash -20 KPX ydieresis otilde -20 KPX ydieresis period -100 KPX z e -15 KPX z eacute -15 KPX z ecaron -15 KPX z ecircumflex -15 KPX z edieresis -15 KPX z edotaccent -15 KPX z egrave -15 KPX z emacron -15 KPX z eogonek -15 KPX z o -15 KPX z oacute -15 KPX z ocircumflex -15 KPX z odieresis -15 KPX z ograve -15 KPX z ohungarumlaut -15 KPX z omacron -15 KPX z oslash -15 KPX z otilde -15 KPX zacute e -15 KPX zacute eacute -15 KPX zacute ecaron -15 KPX zacute ecircumflex -15 KPX zacute edieresis -15 KPX zacute edotaccent -15 KPX zacute egrave -15 KPX zacute emacron -15 KPX zacute eogonek -15 KPX zacute o -15 KPX zacute oacute -15 KPX zacute ocircumflex -15 KPX zacute odieresis -15 KPX zacute ograve -15 KPX zacute ohungarumlaut -15 KPX zacute omacron -15 KPX zacute oslash -15 KPX zacute otilde -15 KPX zcaron e -15 KPX zcaron eacute -15 KPX zcaron ecaron -15 KPX zcaron ecircumflex -15 KPX zcaron edieresis -15 KPX zcaron edotaccent -15 KPX zcaron egrave -15 KPX zcaron emacron -15 KPX zcaron eogonek -15 KPX zcaron o -15 KPX zcaron oacute -15 KPX zcaron ocircumflex -15 KPX zcaron odieresis -15 KPX zcaron ograve -15 KPX zcaron ohungarumlaut -15 KPX zcaron omacron -15 KPX zcaron oslash -15 KPX zcaron otilde -15 KPX zdotaccent e -15 KPX zdotaccent eacute -15 KPX zdotaccent ecaron -15 KPX zdotaccent ecircumflex -15 KPX zdotaccent edieresis -15 KPX zdotaccent edotaccent -15 KPX zdotaccent egrave -15 KPX zdotaccent emacron -15 KPX zdotaccent eogonek -15 KPX zdotaccent o -15 KPX zdotaccent oacute -15 KPX zdotaccent ocircumflex -15 KPX zdotaccent odieresis -15 KPX zdotaccent ograve -15 KPX zdotaccent ohungarumlaut -15 KPX zdotaccent omacron -15 KPX zdotaccent oslash -15 KPX zdotaccent otilde -15 EndKernPairs EndKernData EndFontMetrics a2ps-4.14/afm/pcrr.afm0000644000175000017500000003564710674334152014047 0ustar mhattamhattaStartFontMetrics 4.1 Comment Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Thu May 1 17:27:09 1997 Comment UniqueID 43050 Comment VMusage 39754 50779 FontName Courier FullName Courier FamilyName Courier Weight Medium ItalicAngle 0 IsFixedPitch true FontBBox -23 -250 715 805 UnderlinePosition -100 UnderlineThickness 50 Version 003.000 Notice Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved. EncodingScheme AdobeStandardEncoding CapHeight 562 XHeight 426 Ascender 629 Descender -157 StdHW 51 StdVW 51 StartCharMetrics 314 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 537 352 640 ; C 200 ; WX 600 ; N dieresis ; B 148 537 453 640 ; 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 211 -172 407 4 ; 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 Idieresis ; B 96 0 504 753 ; C -1 ; WX 600 ; N eacute ; B 66 -15 548 672 ; C -1 ; WX 600 ; N abreve ; B 53 -15 559 609 ; C -1 ; WX 600 ; N uhungarumlaut ; B 21 -15 580 672 ; C -1 ; WX 600 ; N ecaron ; B 66 -15 548 669 ; C -1 ; WX 600 ; N Ydieresis ; B 24 0 576 753 ; C -1 ; WX 600 ; N divide ; B 87 48 513 467 ; C -1 ; WX 600 ; N Yacute ; B 24 0 576 805 ; C -1 ; WX 600 ; N Acircumflex ; B 3 0 597 787 ; C -1 ; WX 600 ; N aacute ; B 53 -15 559 672 ; C -1 ; WX 600 ; N Ucircumflex ; B 17 -18 583 787 ; C -1 ; WX 600 ; N yacute ; B 7 -157 592 672 ; C -1 ; WX 600 ; N scommaaccent ; B 80 -250 513 441 ; C -1 ; WX 600 ; N ecircumflex ; B 66 -15 548 654 ; C -1 ; WX 600 ; N Uring ; B 17 -18 583 760 ; C -1 ; WX 600 ; N Udieresis ; B 17 -18 583 753 ; C -1 ; WX 600 ; N aogonek ; B 53 -172 587 441 ; C -1 ; WX 600 ; N Uacute ; B 17 -18 583 805 ; C -1 ; WX 600 ; N uogonek ; B 21 -172 590 426 ; C -1 ; WX 600 ; N Edieresis ; B 53 0 550 753 ; C -1 ; WX 600 ; N Dcroat ; B 30 0 574 562 ; C -1 ; WX 600 ; N commaaccent ; B 198 -250 335 -58 ; C -1 ; WX 600 ; N copyright ; B 0 -18 600 580 ; C -1 ; WX 600 ; N Emacron ; B 53 0 550 698 ; C -1 ; WX 600 ; N ccaron ; B 66 -15 529 669 ; C -1 ; WX 600 ; N aring ; B 53 -15 559 627 ; C -1 ; WX 600 ; N Ncommaaccent ; B 7 -250 593 562 ; C -1 ; WX 600 ; N lacute ; B 95 0 505 805 ; C -1 ; WX 600 ; N agrave ; B 53 -15 559 672 ; C -1 ; WX 600 ; N Tcommaaccent ; B 38 -250 563 562 ; C -1 ; WX 600 ; N Cacute ; B 41 -18 540 805 ; C -1 ; WX 600 ; N atilde ; B 53 -15 559 606 ; C -1 ; WX 600 ; N Edotaccent ; B 53 0 550 753 ; C -1 ; WX 600 ; N scaron ; B 80 -15 513 669 ; C -1 ; WX 600 ; N scedilla ; B 80 -151 513 441 ; C -1 ; WX 600 ; N iacute ; B 95 0 505 672 ; C -1 ; WX 600 ; N lozenge ; B 18 0 443 706 ; C -1 ; WX 600 ; N Rcaron ; B 38 0 588 802 ; C -1 ; WX 600 ; N Gcommaaccent ; B 31 -250 575 580 ; C -1 ; WX 600 ; N ucircumflex ; B 21 -15 562 654 ; C -1 ; WX 600 ; N acircumflex ; B 53 -15 559 654 ; C -1 ; WX 600 ; N Amacron ; B 3 0 597 698 ; C -1 ; WX 600 ; N rcaron ; B 60 0 559 669 ; C -1 ; WX 600 ; N ccedilla ; B 66 -151 529 441 ; C -1 ; WX 600 ; N Zdotaccent ; B 86 0 514 753 ; C -1 ; WX 600 ; N Thorn ; B 79 0 538 562 ; C -1 ; WX 600 ; N Omacron ; B 43 -18 557 698 ; C -1 ; WX 600 ; N Racute ; B 38 0 588 805 ; C -1 ; WX 600 ; N Sacute ; B 72 -20 529 805 ; C -1 ; WX 600 ; N dcaron ; B 45 -15 715 629 ; C -1 ; WX 600 ; N Umacron ; B 17 -18 583 698 ; C -1 ; WX 600 ; N uring ; B 21 -15 562 627 ; C -1 ; WX 600 ; N threesuperior ; B 155 240 406 622 ; C -1 ; WX 600 ; N Ograve ; B 43 -18 557 805 ; C -1 ; WX 600 ; N Agrave ; B 3 0 597 805 ; C -1 ; WX 600 ; N Abreve ; B 3 0 597 732 ; C -1 ; WX 600 ; N multiply ; B 87 43 515 470 ; C -1 ; WX 600 ; N uacute ; B 21 -15 562 672 ; C -1 ; WX 600 ; N Tcaron ; B 38 0 563 802 ; C -1 ; WX 600 ; N partialdiff ; B 17 -38 459 710 ; C -1 ; WX 600 ; N ydieresis ; B 7 -157 592 620 ; C -1 ; WX 600 ; N Nacute ; B 7 -13 593 805 ; C -1 ; WX 600 ; N icircumflex ; B 94 0 505 654 ; C -1 ; WX 600 ; N Ecircumflex ; B 53 0 550 787 ; C -1 ; WX 600 ; N adieresis ; B 53 -15 559 620 ; C -1 ; WX 600 ; N edieresis ; B 66 -15 548 620 ; C -1 ; WX 600 ; N cacute ; B 66 -15 529 672 ; C -1 ; WX 600 ; N nacute ; B 26 0 575 672 ; C -1 ; WX 600 ; N umacron ; B 21 -15 562 565 ; C -1 ; WX 600 ; N Ncaron ; B 7 -13 593 802 ; C -1 ; WX 600 ; N Iacute ; B 96 0 504 805 ; C -1 ; WX 600 ; N plusminus ; B 87 44 513 558 ; C -1 ; WX 600 ; N brokenbar ; B 275 -175 326 675 ; C -1 ; WX 600 ; N registered ; B 0 -18 600 580 ; C -1 ; WX 600 ; N Gbreve ; B 31 -18 575 732 ; C -1 ; WX 600 ; N Idotaccent ; B 96 0 504 753 ; C -1 ; WX 600 ; N summation ; B 15 -10 585 706 ; C -1 ; WX 600 ; N Egrave ; B 53 0 550 805 ; C -1 ; WX 600 ; N racute ; B 60 0 559 672 ; C -1 ; WX 600 ; N omacron ; B 62 -15 538 565 ; C -1 ; WX 600 ; N Zacute ; B 86 0 514 805 ; C -1 ; WX 600 ; N Zcaron ; B 86 0 514 802 ; C -1 ; WX 600 ; N greaterequal ; B 98 0 502 710 ; C -1 ; WX 600 ; N Eth ; B 30 0 574 562 ; C -1 ; WX 600 ; N Ccedilla ; B 41 -151 540 580 ; C -1 ; WX 600 ; N lcommaaccent ; B 95 -250 505 629 ; C -1 ; WX 600 ; N tcaron ; B 87 -15 530 717 ; C -1 ; WX 600 ; N eogonek ; B 66 -172 548 441 ; C -1 ; WX 600 ; N Uogonek ; B 17 -172 583 562 ; C -1 ; WX 600 ; N Aacute ; B 3 0 597 805 ; C -1 ; WX 600 ; N Adieresis ; B 3 0 597 753 ; C -1 ; WX 600 ; N egrave ; B 66 -15 548 672 ; C -1 ; WX 600 ; N zacute ; B 99 0 502 672 ; C -1 ; WX 600 ; N iogonek ; B 95 -172 505 657 ; C -1 ; WX 600 ; N Oacute ; B 43 -18 557 805 ; C -1 ; WX 600 ; N oacute ; B 62 -15 538 672 ; C -1 ; WX 600 ; N amacron ; B 53 -15 559 565 ; C -1 ; WX 600 ; N sacute ; B 80 -15 513 672 ; C -1 ; WX 600 ; N idieresis ; B 95 0 505 620 ; C -1 ; WX 600 ; N Ocircumflex ; B 43 -18 557 787 ; C -1 ; WX 600 ; N Ugrave ; B 17 -18 583 805 ; C -1 ; WX 600 ; N Delta ; B 6 0 598 688 ; C -1 ; WX 600 ; N thorn ; B -6 -157 555 629 ; C -1 ; WX 600 ; N twosuperior ; B 177 249 424 622 ; C -1 ; WX 600 ; N Odieresis ; B 43 -18 557 753 ; C -1 ; WX 600 ; N mu ; B 21 -157 562 426 ; C -1 ; WX 600 ; N igrave ; B 95 0 505 672 ; C -1 ; WX 600 ; N ohungarumlaut ; B 62 -15 580 672 ; C -1 ; WX 600 ; N Eogonek ; B 53 -172 561 562 ; C -1 ; WX 600 ; N dcroat ; B 45 -15 591 629 ; C -1 ; WX 600 ; N threequarters ; B 8 -56 593 666 ; C -1 ; WX 600 ; N Scedilla ; B 72 -151 529 580 ; C -1 ; WX 600 ; N lcaron ; B 95 0 533 629 ; C -1 ; WX 600 ; N Kcommaaccent ; B 38 -250 582 562 ; C -1 ; WX 600 ; N Lacute ; B 47 0 554 805 ; C -1 ; WX 600 ; N trademark ; B -23 263 623 562 ; C -1 ; WX 600 ; N edotaccent ; B 66 -15 548 620 ; C -1 ; WX 600 ; N Igrave ; B 96 0 504 805 ; C -1 ; WX 600 ; N Imacron ; B 96 0 504 698 ; C -1 ; WX 600 ; N Lcaron ; B 47 0 554 562 ; C -1 ; WX 600 ; N onehalf ; B 0 -57 611 665 ; C -1 ; WX 600 ; N lessequal ; B 98 0 502 710 ; C -1 ; WX 600 ; N ocircumflex ; B 62 -15 538 654 ; C -1 ; WX 600 ; N ntilde ; B 26 0 575 606 ; C -1 ; WX 600 ; N Uhungarumlaut ; B 17 -18 590 805 ; C -1 ; WX 600 ; N Eacute ; B 53 0 550 805 ; C -1 ; WX 600 ; N emacron ; B 66 -15 548 565 ; C -1 ; WX 600 ; N gbreve ; B 45 -157 566 609 ; C -1 ; WX 600 ; N onequarter ; B 0 -57 600 665 ; C -1 ; WX 600 ; N Scaron ; B 72 -20 529 802 ; C -1 ; WX 600 ; N Scommaaccent ; B 72 -250 529 580 ; C -1 ; WX 600 ; N Ohungarumlaut ; B 43 -18 580 805 ; C -1 ; WX 600 ; N degree ; B 123 269 477 622 ; C -1 ; WX 600 ; N ograve ; B 62 -15 538 672 ; C -1 ; WX 600 ; N Ccaron ; B 41 -18 540 802 ; C -1 ; WX 600 ; N ugrave ; B 21 -15 562 672 ; C -1 ; WX 600 ; N radical ; B 3 -15 597 792 ; C -1 ; WX 600 ; N Dcaron ; B 43 0 574 802 ; C -1 ; WX 600 ; N rcommaaccent ; B 60 -250 559 441 ; C -1 ; WX 600 ; N Ntilde ; B 7 -13 593 729 ; C -1 ; WX 600 ; N otilde ; B 62 -15 538 606 ; C -1 ; WX 600 ; N Rcommaaccent ; B 38 -250 588 562 ; C -1 ; WX 600 ; N Lcommaaccent ; B 47 -250 554 562 ; C -1 ; WX 600 ; N Atilde ; B 3 0 597 729 ; C -1 ; WX 600 ; N Aogonek ; B 3 -172 608 562 ; C -1 ; WX 600 ; N Aring ; B 3 0 597 750 ; C -1 ; WX 600 ; N Otilde ; B 43 -18 557 729 ; C -1 ; WX 600 ; N zdotaccent ; B 99 0 502 620 ; C -1 ; WX 600 ; N Ecaron ; B 53 0 550 802 ; C -1 ; WX 600 ; N Iogonek ; B 96 -172 504 562 ; C -1 ; WX 600 ; N kcommaaccent ; B 43 -250 580 629 ; C -1 ; WX 600 ; N minus ; B 80 232 520 283 ; C -1 ; WX 600 ; N Icircumflex ; B 96 0 504 787 ; C -1 ; WX 600 ; N ncaron ; B 26 0 575 669 ; C -1 ; WX 600 ; N tcommaaccent ; B 87 -250 530 561 ; C -1 ; WX 600 ; N logicalnot ; B 87 108 513 369 ; C -1 ; WX 600 ; N odieresis ; B 62 -15 538 620 ; C -1 ; WX 600 ; N udieresis ; B 21 -15 562 620 ; C -1 ; WX 600 ; N notequal ; B 15 -16 540 529 ; C -1 ; WX 600 ; N gcommaaccent ; B 45 -157 566 708 ; C -1 ; WX 600 ; N eth ; B 62 -15 538 629 ; C -1 ; WX 600 ; N zcaron ; B 99 0 502 669 ; C -1 ; WX 600 ; N ncommaaccent ; B 26 -250 575 441 ; C -1 ; WX 600 ; N onesuperior ; B 172 249 428 622 ; C -1 ; WX 600 ; N imacron ; B 95 0 505 565 ; EndCharMetrics EndFontMetrics a2ps-4.14/afm/pzdr.afm0000644000175000017500000002244710674334154014054 0ustar mhattamhattaStartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1988, 1989, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Thu May 1 15:14:13 1997 Comment UniqueID 43082 Comment VMusage 45775 55535 FontName ZapfDingbats FullName ITC Zapf Dingbats FamilyName ITC Zapf Dingbats Weight Medium ItalicAngle 0 IsFixedPitch false FontBBox -1 -143 981 820 UnderlinePosition -100 UnderlineThickness 50 Version 002.000 Notice Copyright (c) 1985, 1987, 1988, 1989, 1997 Adobe Systems Incorporated. All Rights Reserved.ITC Zapf Dingbats is a registered trademark of International Typeface Corporation. EncodingScheme FontSpecific StdHW 28 StdVW 90 StartCharMetrics 202 C 32 ; WX 278 ; N space ; B 0 0 0 0 ; C 33 ; WX 974 ; N a1 ; B 35 72 939 621 ; C 34 ; WX 961 ; N a2 ; B 35 81 927 611 ; C 35 ; WX 974 ; N a202 ; B 35 72 939 621 ; C 36 ; WX 980 ; N a3 ; B 35 0 945 692 ; C 37 ; WX 719 ; N a4 ; B 34 139 685 566 ; C 38 ; WX 789 ; N a5 ; B 35 -14 755 705 ; C 39 ; WX 790 ; N a119 ; B 35 -14 755 705 ; C 40 ; WX 791 ; N a118 ; B 35 -13 761 705 ; C 41 ; WX 690 ; N a117 ; B 34 138 655 553 ; C 42 ; WX 960 ; N a11 ; B 35 123 925 568 ; C 43 ; WX 939 ; N a12 ; B 35 134 904 559 ; C 44 ; WX 549 ; N a13 ; B 29 -11 516 705 ; C 45 ; WX 855 ; N a14 ; B 34 59 820 632 ; C 46 ; WX 911 ; N a15 ; B 35 50 876 642 ; C 47 ; WX 933 ; N a16 ; B 35 139 899 550 ; C 48 ; WX 911 ; N a105 ; B 35 50 876 642 ; C 49 ; WX 945 ; N a17 ; B 35 139 909 553 ; C 50 ; WX 974 ; N a18 ; B 35 104 938 587 ; C 51 ; WX 755 ; N a19 ; B 34 -13 721 705 ; C 52 ; WX 846 ; N a20 ; B 36 -14 811 705 ; C 53 ; WX 762 ; N a21 ; B 35 0 727 692 ; C 54 ; WX 761 ; N a22 ; B 35 0 727 692 ; C 55 ; WX 571 ; N a23 ; B -1 -68 571 661 ; C 56 ; WX 677 ; N a24 ; B 36 -13 642 705 ; C 57 ; WX 763 ; N a25 ; B 35 0 728 692 ; C 58 ; WX 760 ; N a26 ; B 35 0 726 692 ; C 59 ; WX 759 ; N a27 ; B 35 0 725 692 ; C 60 ; WX 754 ; N a28 ; B 35 0 720 692 ; C 61 ; WX 494 ; N a6 ; B 35 0 460 692 ; C 62 ; WX 552 ; N a7 ; B 35 0 517 692 ; C 63 ; WX 537 ; N a8 ; B 35 0 503 692 ; C 64 ; WX 577 ; N a9 ; B 35 96 542 596 ; C 65 ; WX 692 ; N a10 ; B 35 -14 657 705 ; C 66 ; WX 786 ; N a29 ; B 35 -14 751 705 ; C 67 ; WX 788 ; N a30 ; B 35 -14 752 705 ; C 68 ; WX 788 ; N a31 ; B 35 -14 753 705 ; C 69 ; WX 790 ; N a32 ; B 35 -14 756 705 ; C 70 ; WX 793 ; N a33 ; B 35 -13 759 705 ; C 71 ; WX 794 ; N a34 ; B 35 -13 759 705 ; C 72 ; WX 816 ; N a35 ; B 35 -14 782 705 ; C 73 ; WX 823 ; N a36 ; B 35 -14 787 705 ; C 74 ; WX 789 ; N a37 ; B 35 -14 754 705 ; C 75 ; WX 841 ; N a38 ; B 35 -14 807 705 ; C 76 ; WX 823 ; N a39 ; B 35 -14 789 705 ; C 77 ; WX 833 ; N a40 ; B 35 -14 798 705 ; C 78 ; WX 816 ; N a41 ; B 35 -13 782 705 ; C 79 ; WX 831 ; N a42 ; B 35 -14 796 705 ; C 80 ; WX 923 ; N a43 ; B 35 -14 888 705 ; C 81 ; WX 744 ; N a44 ; B 35 0 710 692 ; C 82 ; WX 723 ; N a45 ; B 35 0 688 692 ; C 83 ; WX 749 ; N a46 ; B 35 0 714 692 ; C 84 ; WX 790 ; N a47 ; B 34 -14 756 705 ; C 85 ; WX 792 ; N a48 ; B 35 -14 758 705 ; C 86 ; WX 695 ; N a49 ; B 35 -14 661 706 ; C 87 ; WX 776 ; N a50 ; B 35 -6 741 699 ; C 88 ; WX 768 ; N a51 ; B 35 -7 734 699 ; C 89 ; WX 792 ; N a52 ; B 35 -14 757 705 ; C 90 ; WX 759 ; N a53 ; B 35 0 725 692 ; C 91 ; WX 707 ; N a54 ; B 35 -13 672 704 ; C 92 ; WX 708 ; N a55 ; B 35 -14 672 705 ; C 93 ; WX 682 ; N a56 ; B 35 -14 647 705 ; C 94 ; WX 701 ; N a57 ; B 35 -14 666 705 ; C 95 ; WX 826 ; N a58 ; B 35 -14 791 705 ; C 96 ; WX 815 ; N a59 ; B 35 -14 780 705 ; C 97 ; WX 789 ; N a60 ; B 35 -14 754 705 ; C 98 ; WX 789 ; N a61 ; B 35 -14 754 705 ; C 99 ; WX 707 ; N a62 ; B 34 -14 673 705 ; C 100 ; WX 687 ; N a63 ; B 36 0 651 692 ; C 101 ; WX 696 ; N a64 ; B 35 0 661 691 ; C 102 ; WX 689 ; N a65 ; B 35 0 655 692 ; C 103 ; WX 786 ; N a66 ; B 34 -14 751 705 ; C 104 ; WX 787 ; N a67 ; B 35 -14 752 705 ; C 105 ; WX 713 ; N a68 ; B 35 -14 678 705 ; C 106 ; WX 791 ; N a69 ; B 35 -14 756 705 ; C 107 ; WX 785 ; N a70 ; B 36 -14 751 705 ; C 108 ; WX 791 ; N a71 ; B 35 -14 757 705 ; C 109 ; WX 873 ; N a72 ; B 35 -14 838 705 ; C 110 ; WX 761 ; N a73 ; B 35 0 726 692 ; C 111 ; WX 762 ; N a74 ; B 35 0 727 692 ; C 112 ; WX 762 ; N a203 ; B 35 0 727 692 ; C 113 ; WX 759 ; N a75 ; B 35 0 725 692 ; C 114 ; WX 759 ; N a204 ; B 35 0 725 692 ; C 115 ; WX 892 ; N a76 ; B 35 0 858 705 ; C 116 ; WX 892 ; N a77 ; B 35 -14 858 692 ; C 117 ; WX 788 ; N a78 ; B 35 -14 754 705 ; C 118 ; WX 784 ; N a79 ; B 35 -14 749 705 ; C 119 ; WX 438 ; N a81 ; B 35 -14 403 705 ; C 120 ; WX 138 ; N a82 ; B 35 0 104 692 ; C 121 ; WX 277 ; N a83 ; B 35 0 242 692 ; C 122 ; WX 415 ; N a84 ; B 35 0 380 692 ; C 123 ; WX 392 ; N a97 ; B 35 263 357 705 ; C 124 ; WX 392 ; N a98 ; B 34 263 357 705 ; C 125 ; WX 668 ; N a99 ; B 35 263 633 705 ; C 126 ; WX 668 ; N a100 ; B 36 263 634 705 ; C 128 ; WX 390 ; N a89 ; B 35 -14 356 705 ; C 129 ; WX 390 ; N a90 ; B 35 -14 355 705 ; C 130 ; WX 317 ; N a93 ; B 35 0 283 692 ; C 131 ; WX 317 ; N a94 ; B 35 0 283 692 ; C 132 ; WX 276 ; N a91 ; B 35 0 242 692 ; C 133 ; WX 276 ; N a92 ; B 35 0 242 692 ; C 134 ; WX 509 ; N a205 ; B 35 0 475 692 ; C 135 ; WX 509 ; N a85 ; B 35 0 475 692 ; C 136 ; WX 410 ; N a206 ; B 35 0 375 692 ; C 137 ; WX 410 ; N a86 ; B 35 0 375 692 ; C 138 ; WX 234 ; N a87 ; B 35 -14 199 705 ; C 139 ; WX 234 ; N a88 ; B 35 -14 199 705 ; C 140 ; WX 334 ; N a95 ; B 35 0 299 692 ; C 141 ; WX 334 ; N a96 ; B 35 0 299 692 ; C 161 ; WX 732 ; N a101 ; B 35 -143 697 806 ; C 162 ; WX 544 ; N a102 ; B 56 -14 488 706 ; C 163 ; WX 544 ; N a103 ; B 34 -14 508 705 ; C 164 ; WX 910 ; N a104 ; B 35 40 875 651 ; C 165 ; WX 667 ; N a106 ; B 35 -14 633 705 ; C 166 ; WX 760 ; N a107 ; B 35 -14 726 705 ; C 167 ; WX 760 ; N a108 ; B 0 121 758 569 ; C 168 ; WX 776 ; N a112 ; B 35 0 741 705 ; C 169 ; WX 595 ; N a111 ; B 34 -14 560 705 ; C 170 ; WX 694 ; N a110 ; B 35 -14 659 705 ; C 171 ; WX 626 ; N a109 ; B 34 0 591 705 ; C 172 ; WX 788 ; N a120 ; B 35 -14 754 705 ; C 173 ; WX 788 ; N a121 ; B 35 -14 754 705 ; C 174 ; WX 788 ; N a122 ; B 35 -14 754 705 ; C 175 ; WX 788 ; N a123 ; B 35 -14 754 705 ; C 176 ; WX 788 ; N a124 ; B 35 -14 754 705 ; C 177 ; WX 788 ; N a125 ; B 35 -14 754 705 ; C 178 ; WX 788 ; N a126 ; B 35 -14 754 705 ; C 179 ; WX 788 ; N a127 ; B 35 -14 754 705 ; C 180 ; WX 788 ; N a128 ; B 35 -14 754 705 ; C 181 ; WX 788 ; N a129 ; B 35 -14 754 705 ; C 182 ; WX 788 ; N a130 ; B 35 -14 754 705 ; C 183 ; WX 788 ; N a131 ; B 35 -14 754 705 ; C 184 ; WX 788 ; N a132 ; B 35 -14 754 705 ; C 185 ; WX 788 ; N a133 ; B 35 -14 754 705 ; C 186 ; WX 788 ; N a134 ; B 35 -14 754 705 ; C 187 ; WX 788 ; N a135 ; B 35 -14 754 705 ; C 188 ; WX 788 ; N a136 ; B 35 -14 754 705 ; C 189 ; WX 788 ; N a137 ; B 35 -14 754 705 ; C 190 ; WX 788 ; N a138 ; B 35 -14 754 705 ; C 191 ; WX 788 ; N a139 ; B 35 -14 754 705 ; C 192 ; WX 788 ; N a140 ; B 35 -14 754 705 ; C 193 ; WX 788 ; N a141 ; B 35 -14 754 705 ; C 194 ; WX 788 ; N a142 ; B 35 -14 754 705 ; C 195 ; WX 788 ; N a143 ; B 35 -14 754 705 ; C 196 ; WX 788 ; N a144 ; B 35 -14 754 705 ; C 197 ; WX 788 ; N a145 ; B 35 -14 754 705 ; C 198 ; WX 788 ; N a146 ; B 35 -14 754 705 ; C 199 ; WX 788 ; N a147 ; B 35 -14 754 705 ; C 200 ; WX 788 ; N a148 ; B 35 -14 754 705 ; C 201 ; WX 788 ; N a149 ; B 35 -14 754 705 ; C 202 ; WX 788 ; N a150 ; B 35 -14 754 705 ; C 203 ; WX 788 ; N a151 ; B 35 -14 754 705 ; C 204 ; WX 788 ; N a152 ; B 35 -14 754 705 ; C 205 ; WX 788 ; N a153 ; B 35 -14 754 705 ; C 206 ; WX 788 ; N a154 ; B 35 -14 754 705 ; C 207 ; WX 788 ; N a155 ; B 35 -14 754 705 ; C 208 ; WX 788 ; N a156 ; B 35 -14 754 705 ; C 209 ; WX 788 ; N a157 ; B 35 -14 754 705 ; C 210 ; WX 788 ; N a158 ; B 35 -14 754 705 ; C 211 ; WX 788 ; N a159 ; B 35 -14 754 705 ; C 212 ; WX 894 ; N a160 ; B 35 58 860 634 ; C 213 ; WX 838 ; N a161 ; B 35 152 803 540 ; C 214 ; WX 1016 ; N a163 ; B 34 152 981 540 ; C 215 ; WX 458 ; N a164 ; B 35 -127 422 820 ; C 216 ; WX 748 ; N a196 ; B 35 94 698 597 ; C 217 ; WX 924 ; N a165 ; B 35 140 890 552 ; C 218 ; WX 748 ; N a192 ; B 35 94 698 597 ; C 219 ; WX 918 ; N a166 ; B 35 166 884 526 ; C 220 ; WX 927 ; N a167 ; B 35 32 892 660 ; C 221 ; WX 928 ; N a168 ; B 35 129 891 562 ; C 222 ; WX 928 ; N a169 ; B 35 128 893 563 ; C 223 ; WX 834 ; N a170 ; B 35 155 799 537 ; C 224 ; WX 873 ; N a171 ; B 35 93 838 599 ; C 225 ; WX 828 ; N a172 ; B 35 104 791 588 ; C 226 ; WX 924 ; N a173 ; B 35 98 889 594 ; C 227 ; WX 924 ; N a162 ; B 35 98 889 594 ; C 228 ; WX 917 ; N a174 ; B 35 0 882 692 ; C 229 ; WX 930 ; N a175 ; B 35 84 896 608 ; C 230 ; WX 931 ; N a176 ; B 35 84 896 608 ; C 231 ; WX 463 ; N a177 ; B 35 -99 429 791 ; C 232 ; WX 883 ; N a178 ; B 35 71 848 623 ; C 233 ; WX 836 ; N a179 ; B 35 44 802 648 ; C 234 ; WX 836 ; N a193 ; B 35 44 802 648 ; C 235 ; WX 867 ; N a180 ; B 35 101 832 591 ; C 236 ; WX 867 ; N a199 ; B 35 101 832 591 ; C 237 ; WX 696 ; N a181 ; B 35 44 661 648 ; C 238 ; WX 696 ; N a200 ; B 35 44 661 648 ; C 239 ; WX 874 ; N a182 ; B 35 77 840 619 ; C 241 ; WX 874 ; N a201 ; B 35 73 840 615 ; C 242 ; WX 760 ; N a183 ; B 35 0 725 692 ; C 243 ; WX 946 ; N a184 ; B 35 160 911 533 ; C 244 ; WX 771 ; N a197 ; B 34 37 736 655 ; C 245 ; WX 865 ; N a185 ; B 35 207 830 481 ; C 246 ; WX 771 ; N a194 ; B 34 37 736 655 ; C 247 ; WX 888 ; N a198 ; B 34 -19 853 712 ; C 248 ; WX 967 ; N a186 ; B 35 124 932 568 ; C 249 ; WX 888 ; N a195 ; B 34 -19 853 712 ; C 250 ; WX 831 ; N a187 ; B 35 113 796 579 ; C 251 ; WX 873 ; N a188 ; B 36 118 838 578 ; C 252 ; WX 927 ; N a189 ; B 35 150 891 542 ; C 253 ; WX 970 ; N a190 ; B 35 76 931 616 ; C 254 ; WX 918 ; N a191 ; B 34 99 884 593 ; EndCharMetrics EndFontMetrics a2ps-4.14/afm/pcrb.afm0000644000175000017500000003564510674334152014025 0ustar mhattamhattaStartFontMetrics 4.1 Comment Copyright (c) 1989, 1990, 1991, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Mon Jun 23 16:28:00 1997 Comment UniqueID 43048 Comment VMusage 41139 52164 FontName Courier-Bold FullName Courier Bold FamilyName Courier Weight Bold ItalicAngle 0 IsFixedPitch true FontBBox -113 -250 749 801 UnderlinePosition -100 UnderlineThickness 50 Version 003.000 Notice Copyright (c) 1989, 1990, 1991, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved. EncodingScheme AdobeStandardEncoding CapHeight 562 XHeight 439 Ascender 629 Descender -157 StdHW 84 StdVW 106 StartCharMetrics 314 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 498 370 638 ; C 200 ; WX 600 ; N dieresis ; B 128 498 472 638 ; 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 400 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 Idieresis ; B 77 0 523 761 ; C -1 ; WX 600 ; N eacute ; B 40 -15 563 661 ; C -1 ; WX 600 ; N abreve ; B 35 -15 570 661 ; C -1 ; WX 600 ; N uhungarumlaut ; B -1 -15 628 661 ; C -1 ; WX 600 ; N ecaron ; B 40 -15 563 667 ; C -1 ; WX 600 ; N Ydieresis ; B 12 0 589 761 ; C -1 ; WX 600 ; N divide ; B 71 16 529 500 ; C -1 ; WX 600 ; N Yacute ; B 12 0 589 784 ; C -1 ; WX 600 ; N Acircumflex ; B -9 0 609 780 ; C -1 ; WX 600 ; N aacute ; B 35 -15 570 661 ; C -1 ; WX 600 ; N Ucircumflex ; B 4 -18 596 780 ; C -1 ; WX 600 ; N yacute ; B -4 -142 601 661 ; C -1 ; WX 600 ; N scommaaccent ; B 68 -250 535 459 ; C -1 ; WX 600 ; N ecircumflex ; B 40 -15 563 657 ; C -1 ; WX 600 ; N Uring ; B 4 -18 596 801 ; C -1 ; WX 600 ; N Udieresis ; B 4 -18 596 761 ; C -1 ; WX 600 ; N aogonek ; B 35 -199 586 454 ; C -1 ; WX 600 ; N Uacute ; B 4 -18 596 784 ; C -1 ; WX 600 ; N uogonek ; B -1 -199 585 439 ; C -1 ; WX 600 ; N Edieresis ; B 25 0 560 761 ; C -1 ; WX 600 ; N Dcroat ; B 30 0 594 562 ; C -1 ; WX 600 ; N commaaccent ; B 205 -250 397 -57 ; C -1 ; WX 600 ; N copyright ; B 0 -18 600 580 ; C -1 ; WX 600 ; N Emacron ; B 25 0 560 708 ; C -1 ; WX 600 ; N ccaron ; B 40 -15 545 667 ; C -1 ; WX 600 ; N aring ; B 35 -15 570 678 ; C -1 ; WX 600 ; N Ncommaaccent ; B 8 -250 610 562 ; C -1 ; WX 600 ; N lacute ; B 77 0 523 801 ; C -1 ; WX 600 ; N agrave ; B 35 -15 570 661 ; C -1 ; WX 600 ; N Tcommaaccent ; B 21 -250 579 562 ; C -1 ; WX 600 ; N Cacute ; B 22 -18 560 784 ; C -1 ; WX 600 ; N atilde ; B 35 -15 570 636 ; C -1 ; WX 600 ; N Edotaccent ; B 25 0 560 761 ; C -1 ; WX 600 ; N scaron ; B 68 -17 535 667 ; C -1 ; WX 600 ; N scedilla ; B 68 -206 535 459 ; C -1 ; WX 600 ; N iacute ; B 77 0 523 661 ; C -1 ; WX 600 ; N lozenge ; B 66 0 534 740 ; C -1 ; WX 600 ; N Rcaron ; B 24 0 599 790 ; C -1 ; WX 600 ; N Gcommaaccent ; B 22 -250 594 580 ; C -1 ; WX 600 ; N ucircumflex ; B -1 -15 569 657 ; C -1 ; WX 600 ; N acircumflex ; B 35 -15 570 657 ; C -1 ; WX 600 ; N Amacron ; B -9 0 609 708 ; C -1 ; WX 600 ; N rcaron ; B 47 0 580 667 ; C -1 ; WX 600 ; N ccedilla ; B 40 -206 545 459 ; C -1 ; WX 600 ; N Zdotaccent ; B 62 0 539 761 ; C -1 ; WX 600 ; N Thorn ; B 48 0 557 562 ; C -1 ; WX 600 ; N Omacron ; B 22 -18 578 708 ; C -1 ; WX 600 ; N Racute ; B 24 0 599 784 ; C -1 ; WX 600 ; N Sacute ; B 47 -22 553 784 ; C -1 ; WX 600 ; N dcaron ; B 20 -15 727 626 ; C -1 ; WX 600 ; N Umacron ; B 4 -18 596 708 ; C -1 ; WX 600 ; N uring ; B -1 -15 569 678 ; C -1 ; WX 600 ; N threesuperior ; B 138 222 433 616 ; C -1 ; WX 600 ; N Ograve ; B 22 -18 578 784 ; C -1 ; WX 600 ; N Agrave ; B -9 0 609 784 ; C -1 ; WX 600 ; N Abreve ; B -9 0 609 784 ; C -1 ; WX 600 ; N multiply ; B 81 39 520 478 ; C -1 ; WX 600 ; N uacute ; B -1 -15 569 661 ; C -1 ; WX 600 ; N Tcaron ; B 21 0 579 790 ; C -1 ; WX 600 ; N partialdiff ; B 63 -38 537 728 ; C -1 ; WX 600 ; N ydieresis ; B -4 -142 601 638 ; C -1 ; WX 600 ; N Nacute ; B 8 -12 610 784 ; C -1 ; WX 600 ; N icircumflex ; B 73 0 523 657 ; C -1 ; WX 600 ; N Ecircumflex ; B 25 0 560 780 ; C -1 ; WX 600 ; N adieresis ; B 35 -15 570 638 ; C -1 ; WX 600 ; N edieresis ; B 40 -15 563 638 ; C -1 ; WX 600 ; N cacute ; B 40 -15 545 661 ; C -1 ; WX 600 ; N nacute ; B 18 0 592 661 ; C -1 ; WX 600 ; N umacron ; B -1 -15 569 585 ; C -1 ; WX 600 ; N Ncaron ; B 8 -12 610 790 ; C -1 ; WX 600 ; N Iacute ; B 77 0 523 784 ; C -1 ; WX 600 ; N plusminus ; B 71 24 529 515 ; C -1 ; WX 600 ; N brokenbar ; B 255 -175 345 675 ; C -1 ; WX 600 ; N registered ; B 0 -18 600 580 ; C -1 ; WX 600 ; N Gbreve ; B 22 -18 594 784 ; C -1 ; WX 600 ; N Idotaccent ; B 77 0 523 761 ; C -1 ; WX 600 ; N summation ; B 15 -10 586 706 ; C -1 ; WX 600 ; N Egrave ; B 25 0 560 784 ; C -1 ; WX 600 ; N racute ; B 47 0 580 661 ; C -1 ; WX 600 ; N omacron ; B 30 -15 570 585 ; C -1 ; WX 600 ; N Zacute ; B 62 0 539 784 ; C -1 ; WX 600 ; N Zcaron ; B 62 0 539 790 ; C -1 ; WX 600 ; N greaterequal ; B 26 0 523 696 ; C -1 ; WX 600 ; N Eth ; B 30 0 594 562 ; C -1 ; WX 600 ; N Ccedilla ; B 22 -206 560 580 ; C -1 ; WX 600 ; N lcommaaccent ; B 77 -250 523 626 ; C -1 ; WX 600 ; N tcaron ; B 47 -15 532 703 ; C -1 ; WX 600 ; N eogonek ; B 40 -199 563 454 ; C -1 ; WX 600 ; N Uogonek ; B 4 -199 596 562 ; C -1 ; WX 600 ; N Aacute ; B -9 0 609 784 ; C -1 ; WX 600 ; N Adieresis ; B -9 0 609 761 ; C -1 ; WX 600 ; N egrave ; B 40 -15 563 661 ; C -1 ; WX 600 ; N zacute ; B 81 0 520 661 ; C -1 ; WX 600 ; N iogonek ; B 77 -199 523 658 ; C -1 ; WX 600 ; N Oacute ; B 22 -18 578 784 ; C -1 ; WX 600 ; N oacute ; B 30 -15 570 661 ; C -1 ; WX 600 ; N amacron ; B 35 -15 570 585 ; C -1 ; WX 600 ; N sacute ; B 68 -17 535 661 ; C -1 ; WX 600 ; N idieresis ; B 77 0 523 618 ; C -1 ; WX 600 ; N Ocircumflex ; B 22 -18 578 780 ; C -1 ; WX 600 ; N Ugrave ; B 4 -18 596 784 ; C -1 ; WX 600 ; N Delta ; B 6 0 594 688 ; C -1 ; WX 600 ; N thorn ; B -14 -142 570 626 ; C -1 ; WX 600 ; N twosuperior ; B 143 230 436 616 ; C -1 ; WX 600 ; N Odieresis ; B 22 -18 578 761 ; C -1 ; WX 600 ; N mu ; B -1 -142 569 439 ; C -1 ; WX 600 ; N igrave ; B 77 0 523 661 ; C -1 ; WX 600 ; N ohungarumlaut ; B 30 -15 668 661 ; C -1 ; WX 600 ; N Eogonek ; B 25 -199 576 562 ; C -1 ; WX 600 ; N dcroat ; B 20 -15 591 626 ; C -1 ; WX 600 ; N threequarters ; B -47 -60 648 661 ; C -1 ; WX 600 ; N Scedilla ; B 47 -206 553 582 ; C -1 ; WX 600 ; N lcaron ; B 77 0 597 626 ; C -1 ; WX 600 ; N Kcommaaccent ; B 21 -250 599 562 ; C -1 ; WX 600 ; N Lacute ; B 39 0 578 784 ; C -1 ; WX 600 ; N trademark ; B -9 230 749 562 ; C -1 ; WX 600 ; N edotaccent ; B 40 -15 563 638 ; C -1 ; WX 600 ; N Igrave ; B 77 0 523 784 ; C -1 ; WX 600 ; N Imacron ; B 77 0 523 708 ; C -1 ; WX 600 ; N Lcaron ; B 39 0 637 562 ; C -1 ; WX 600 ; N onehalf ; B -47 -60 648 661 ; C -1 ; WX 600 ; N lessequal ; B 26 0 523 696 ; C -1 ; WX 600 ; N ocircumflex ; B 30 -15 570 657 ; C -1 ; WX 600 ; N ntilde ; B 18 0 592 636 ; C -1 ; WX 600 ; N Uhungarumlaut ; B 4 -18 638 784 ; C -1 ; WX 600 ; N Eacute ; B 25 0 560 784 ; C -1 ; WX 600 ; N emacron ; B 40 -15 563 585 ; C -1 ; WX 600 ; N gbreve ; B 30 -146 580 661 ; C -1 ; WX 600 ; N onequarter ; B -56 -60 656 661 ; C -1 ; WX 600 ; N Scaron ; B 47 -22 553 790 ; C -1 ; WX 600 ; N Scommaaccent ; B 47 -250 553 582 ; C -1 ; WX 600 ; N Ohungarumlaut ; B 22 -18 628 784 ; C -1 ; WX 600 ; N degree ; B 86 243 474 616 ; C -1 ; WX 600 ; N ograve ; B 30 -15 570 661 ; C -1 ; WX 600 ; N Ccaron ; B 22 -18 560 790 ; C -1 ; WX 600 ; N ugrave ; B -1 -15 569 661 ; C -1 ; WX 600 ; N radical ; B -19 -104 473 778 ; C -1 ; WX 600 ; N Dcaron ; B 30 0 594 790 ; C -1 ; WX 600 ; N rcommaaccent ; B 47 -250 580 454 ; C -1 ; WX 600 ; N Ntilde ; B 8 -12 610 759 ; C -1 ; WX 600 ; N otilde ; B 30 -15 570 636 ; C -1 ; WX 600 ; N Rcommaaccent ; B 24 -250 599 562 ; C -1 ; WX 600 ; N Lcommaaccent ; B 39 -250 578 562 ; C -1 ; WX 600 ; N Atilde ; B -9 0 609 759 ; C -1 ; WX 600 ; N Aogonek ; B -9 -199 625 562 ; C -1 ; WX 600 ; N Aring ; B -9 0 609 801 ; C -1 ; WX 600 ; N Otilde ; B 22 -18 578 759 ; C -1 ; WX 600 ; N zdotaccent ; B 81 0 520 638 ; C -1 ; WX 600 ; N Ecaron ; B 25 0 560 790 ; C -1 ; WX 600 ; N Iogonek ; B 77 -199 523 562 ; C -1 ; WX 600 ; N kcommaaccent ; B 20 -250 585 626 ; C -1 ; WX 600 ; N minus ; B 71 203 529 313 ; C -1 ; WX 600 ; N Icircumflex ; B 77 0 523 780 ; C -1 ; WX 600 ; N ncaron ; B 18 0 592 667 ; C -1 ; WX 600 ; N tcommaaccent ; B 47 -250 532 562 ; C -1 ; WX 600 ; N logicalnot ; B 71 103 529 413 ; C -1 ; WX 600 ; N odieresis ; B 30 -15 570 638 ; C -1 ; WX 600 ; N udieresis ; B -1 -15 569 638 ; C -1 ; WX 600 ; N notequal ; B 12 -47 537 563 ; C -1 ; WX 600 ; N gcommaaccent ; B 30 -146 580 714 ; C -1 ; WX 600 ; N eth ; B 58 -27 543 626 ; C -1 ; WX 600 ; N zcaron ; B 81 0 520 667 ; C -1 ; WX 600 ; N ncommaaccent ; B 18 -250 592 454 ; C -1 ; WX 600 ; N onesuperior ; B 153 230 447 616 ; C -1 ; WX 600 ; N imacron ; B 77 0 523 585 ; EndCharMetrics EndFontMetrics a2ps-4.14/afm/pplbi.afm0000644000175000017500000010713510674334153014200 0ustar mhattamhattaStartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1989, 1990, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Thu May 1 13:37:00 1997 Comment UniqueID 43076 Comment VMusage 51697 66722 FontName Palatino-BoldItalic FullName Palatino Bold Italic FamilyName Palatino Weight Bold ItalicAngle -10 IsFixedPitch false FontBBox -170 -271 1073 926 UnderlinePosition -100 UnderlineThickness 50 Version 002.000 Notice Copyright (c) 1985, 1987, 1989, 1990, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.Palatino is a trademark of Linotype-Hell AG and/or its subsidiaries. EncodingScheme AdobeStandardEncoding CapHeight 681 XHeight 469 Ascender 726 Descender -281 StdHW 55 StdVW 122 StartCharMetrics 314 C 32 ; WX 250 ; N space ; B 0 0 0 0 ; C 33 ; WX 333 ; N exclam ; B 58 -17 322 695 ; C 34 ; WX 500 ; N quotedbl ; B 137 467 493 720 ; C 35 ; WX 500 ; N numbersign ; B 4 0 496 673 ; C 36 ; WX 500 ; N dollar ; B 20 -108 477 737 ; C 37 ; WX 889 ; N percent ; B 56 -17 790 697 ; C 38 ; WX 833 ; N ampersand ; B 74 -17 811 695 ; C 39 ; WX 278 ; N quoteright ; B 76 431 302 720 ; C 40 ; WX 333 ; N parenleft ; B 58 -129 368 723 ; C 41 ; WX 333 ; N parenright ; B -12 -129 298 723 ; C 42 ; WX 444 ; N asterisk ; B 84 332 439 695 ; C 43 ; WX 606 ; N plus ; B 50 -5 556 501 ; C 44 ; WX 250 ; N comma ; B -33 -164 208 147 ; C 45 ; WX 389 ; N hyphen ; B 37 198 362 300 ; C 46 ; WX 250 ; N period ; B 48 -17 187 135 ; C 47 ; WX 315 ; N slash ; B 1 -17 315 720 ; C 48 ; WX 500 ; N zero ; B 42 -17 490 683 ; C 49 ; WX 500 ; N one ; B 41 -3 434 678 ; C 50 ; WX 500 ; N two ; B 1 -3 454 683 ; C 51 ; WX 500 ; N three ; B 8 -17 450 683 ; C 52 ; WX 500 ; N four ; B 3 -3 487 683 ; C 53 ; WX 500 ; N five ; B 14 -17 481 675 ; C 54 ; WX 500 ; N six ; B 39 -17 488 683 ; C 55 ; WX 500 ; N seven ; B 69 -3 544 674 ; C 56 ; WX 500 ; N eight ; B 26 -17 484 683 ; C 57 ; WX 500 ; N nine ; B 27 -17 491 683 ; C 58 ; WX 250 ; N colon ; B 38 -17 236 452 ; C 59 ; WX 250 ; N semicolon ; B -33 -164 247 452 ; C 60 ; WX 606 ; N less ; B 49 -21 558 517 ; C 61 ; WX 606 ; N equal ; B 51 106 555 390 ; C 62 ; WX 606 ; N greater ; B 48 -21 557 517 ; C 63 ; WX 444 ; N question ; B 91 -17 450 695 ; C 64 ; WX 833 ; N at ; B 82 -12 744 681 ; C 65 ; WX 722 ; N A ; B -35 -3 685 683 ; C 66 ; WX 667 ; N B ; B 8 -3 629 681 ; C 67 ; WX 685 ; N C ; B 69 -17 695 695 ; C 68 ; WX 778 ; N D ; B 0 -3 747 682 ; C 69 ; WX 611 ; N E ; B 11 -3 606 681 ; C 70 ; WX 556 ; N F ; B -6 -3 593 681 ; C 71 ; WX 778 ; N G ; B 72 -17 750 695 ; C 72 ; WX 778 ; N H ; B -12 -3 826 681 ; C 73 ; WX 389 ; N I ; B -1 -3 412 681 ; C 74 ; WX 389 ; N J ; B -29 -207 417 681 ; C 75 ; WX 722 ; N K ; B -10 -3 746 681 ; C 76 ; WX 611 ; N L ; B 26 -3 578 681 ; C 77 ; WX 944 ; N M ; B -23 -17 985 681 ; C 78 ; WX 778 ; N N ; B -2 -3 829 681 ; C 79 ; WX 833 ; N O ; B 76 -17 794 695 ; C 80 ; WX 667 ; N P ; B 11 -3 673 681 ; C 81 ; WX 833 ; N Q ; B 76 -222 794 695 ; C 82 ; WX 722 ; N R ; B 4 -3 697 681 ; C 83 ; WX 556 ; N S ; B 50 -17 517 695 ; C 84 ; WX 611 ; N T ; B 56 -3 674 681 ; C 85 ; WX 778 ; N U ; B 83 -17 825 681 ; C 86 ; WX 667 ; N V ; B 67 -3 745 681 ; C 87 ; WX 1000 ; N W ; B 67 -3 1073 689 ; C 88 ; WX 722 ; N X ; B -9 -3 772 681 ; C 89 ; WX 611 ; N Y ; B 54 -3 675 695 ; C 90 ; WX 667 ; N Z ; B 1 -3 676 681 ; C 91 ; WX 333 ; N bracketleft ; B 45 -102 381 723 ; C 92 ; WX 606 ; N backslash ; B 72 0 534 720 ; C 93 ; WX 333 ; N bracketright ; B -21 -102 315 723 ; C 94 ; WX 606 ; N asciicircum ; B 63 275 543 678 ; C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; C 96 ; WX 278 ; N quoteleft ; B 65 431 291 720 ; C 97 ; WX 556 ; N a ; B 44 -17 519 470 ; C 98 ; WX 537 ; N b ; B 44 -17 494 726 ; C 99 ; WX 444 ; N c ; B 32 -17 436 469 ; C 100 ; WX 556 ; N d ; B 38 -17 550 726 ; C 101 ; WX 444 ; N e ; B 28 -17 418 469 ; C 102 ; WX 333 ; N f ; B -130 -271 449 726 ; L i fi ; L l fl ; C 103 ; WX 500 ; N g ; B -50 -271 529 469 ; C 104 ; WX 556 ; N h ; B 22 -17 522 726 ; C 105 ; WX 333 ; N i ; B 26 -17 312 695 ; C 106 ; WX 333 ; N j ; B -64 -271 323 695 ; C 107 ; WX 556 ; N k ; B 34 -17 528 726 ; C 108 ; WX 333 ; N l ; B 64 -17 318 726 ; C 109 ; WX 833 ; N m ; B 19 -17 803 469 ; C 110 ; WX 556 ; N n ; B 17 -17 521 469 ; C 111 ; WX 556 ; N o ; B 48 -17 502 469 ; C 112 ; WX 556 ; N p ; B -21 -271 516 469 ; C 113 ; WX 537 ; N q ; B 32 -271 513 469 ; C 114 ; WX 389 ; N r ; B 20 -17 411 469 ; C 115 ; WX 444 ; N s ; B 25 -17 406 469 ; C 116 ; WX 389 ; N t ; B 42 -17 409 636 ; C 117 ; WX 556 ; N u ; B 22 -17 521 469 ; C 118 ; WX 556 ; N v ; B 19 -17 513 469 ; C 119 ; WX 833 ; N w ; B 27 -17 802 469 ; C 120 ; WX 500 ; N x ; B -8 -17 500 469 ; C 121 ; WX 556 ; N y ; B 13 -271 541 469 ; C 122 ; WX 500 ; N z ; B 31 -17 470 469 ; C 123 ; WX 333 ; N braceleft ; B 18 -105 334 720 ; C 124 ; WX 606 ; N bar ; B 259 -250 347 750 ; C 125 ; WX 333 ; N braceright ; B -1 -105 315 720 ; C 126 ; WX 606 ; N asciitilde ; B 51 151 555 346 ; C 161 ; WX 333 ; N exclamdown ; B 2 -225 259 479 ; C 162 ; WX 500 ; N cent ; B 52 -105 456 547 ; C 163 ; WX 500 ; N sterling ; B 21 -5 501 683 ; C 164 ; WX 167 ; N fraction ; B -170 0 338 683 ; C 165 ; WX 500 ; N yen ; B 11 -3 538 695 ; C 166 ; WX 500 ; N florin ; B 8 -242 479 690 ; C 167 ; WX 556 ; N section ; B 47 -151 497 695 ; C 168 ; WX 500 ; N currency ; B 32 96 468 533 ; C 169 ; WX 250 ; N quotesingle ; B 127 467 293 720 ; C 170 ; WX 500 ; N quotedblleft ; B 65 431 511 720 ; C 171 ; WX 500 ; N guillemotleft ; B 35 43 458 446 ; C 172 ; WX 333 ; N guilsinglleft ; B 60 43 292 446 ; C 173 ; WX 333 ; N guilsinglright ; B 35 40 267 443 ; C 174 ; WX 611 ; N fi ; B -130 -271 588 726 ; C 175 ; WX 611 ; N fl ; B -130 -271 631 726 ; C 177 ; WX 500 ; N endash ; B -12 214 512 282 ; C 178 ; WX 556 ; N dagger ; B 67 -3 499 685 ; C 179 ; WX 556 ; N daggerdbl ; B 33 -153 537 693 ; C 180 ; WX 250 ; N periodcentered ; B 67 172 206 324 ; C 182 ; WX 556 ; N paragraph ; B 14 -204 629 681 ; C 183 ; WX 606 ; N bullet ; B 131 172 475 516 ; C 184 ; WX 250 ; N quotesinglbase ; B -3 -144 220 145 ; C 185 ; WX 500 ; N quotedblbase ; B -18 -144 424 145 ; C 186 ; WX 500 ; N quotedblright ; B 73 431 519 720 ; C 187 ; WX 500 ; N guillemotright ; B 35 40 458 443 ; C 188 ; WX 1000 ; N ellipsis ; B 91 -17 896 135 ; C 189 ; WX 1000 ; N perthousand ; B 65 -17 912 691 ; C 191 ; WX 444 ; N questiondown ; B -12 -226 347 479 ; C 193 ; WX 333 ; N grave ; B 110 518 322 699 ; C 194 ; WX 333 ; N acute ; B 153 518 392 699 ; C 195 ; WX 333 ; N circumflex ; B 88 518 415 692 ; C 196 ; WX 333 ; N tilde ; B 82 537 441 656 ; C 197 ; WX 333 ; N macron ; B 76 538 418 608 ; C 198 ; WX 333 ; N breve ; B 96 518 412 680 ; C 199 ; WX 333 ; N dotaccent ; B 202 564 325 695 ; C 200 ; WX 333 ; N dieresis ; B 90 564 426 695 ; C 202 ; WX 556 ; N ring ; B 277 514 477 714 ; C 203 ; WX 333 ; N cedilla ; B 12 -218 248 5 ; C 205 ; WX 333 ; N hungarumlaut ; B -28 518 409 699 ; C 206 ; WX 333 ; N ogonek ; B 76 -226 260 -18 ; C 207 ; WX 333 ; N caron ; B 113 518 445 692 ; C 208 ; WX 1000 ; N emdash ; B -12 214 1012 282 ; C 225 ; WX 944 ; N AE ; B -29 -3 927 681 ; C 227 ; WX 333 ; N ordfeminine ; B 47 391 355 684 ; C 232 ; WX 611 ; N Lslash ; B 6 -3 578 681 ; C 233 ; WX 833 ; N Oslash ; B 57 -54 797 730 ; C 234 ; WX 944 ; N OE ; B 39 -17 961 695 ; C 235 ; WX 333 ; N ordmasculine ; B 51 391 346 683 ; C 241 ; WX 738 ; N ae ; B 44 -17 711 469 ; C 245 ; WX 333 ; N dotlessi ; B 26 -17 293 469 ; C 248 ; WX 333 ; N lslash ; B 13 -17 365 726 ; C 249 ; WX 556 ; N oslash ; B 14 -50 522 506 ; C 250 ; WX 778 ; N oe ; B 48 -17 755 469 ; C 251 ; WX 556 ; N germandbls ; B -131 -271 549 726 ; C -1 ; WX 389 ; N Idieresis ; B -1 -3 454 880 ; C -1 ; WX 444 ; N eacute ; B 28 -17 448 719 ; C -1 ; WX 556 ; N abreve ; B 44 -17 524 700 ; C -1 ; WX 556 ; N uhungarumlaut ; B 22 -17 621 719 ; C -1 ; WX 444 ; N ecaron ; B 28 -17 501 712 ; C -1 ; WX 611 ; N Ydieresis ; B 54 -3 675 880 ; C -1 ; WX 606 ; N divide ; B 50 -5 556 501 ; C -1 ; WX 611 ; N Yacute ; B 54 -3 675 911 ; C -1 ; WX 722 ; N Acircumflex ; B -35 -3 685 904 ; C -1 ; WX 556 ; N aacute ; B 44 -17 519 719 ; C -1 ; WX 778 ; N Ucircumflex ; B 83 -17 825 904 ; C -1 ; WX 556 ; N yacute ; B 13 -271 541 719 ; C -1 ; WX 444 ; N scommaaccent ; B 25 -271 406 469 ; C -1 ; WX 444 ; N ecircumflex ; B 28 -17 471 712 ; C -1 ; WX 778 ; N Uring ; B 83 -17 825 926 ; C -1 ; WX 778 ; N Udieresis ; B 83 -17 825 880 ; C -1 ; WX 556 ; N aogonek ; B 44 -216 519 470 ; C -1 ; WX 778 ; N Uacute ; B 83 -17 825 911 ; C -1 ; WX 556 ; N uogonek ; B 22 -210 521 469 ; C -1 ; WX 611 ; N Edieresis ; B 11 -3 606 880 ; C -1 ; WX 778 ; N Dcroat ; B 0 -3 747 682 ; C -1 ; WX 250 ; N commaaccent ; B -52 -271 102 -50 ; C -1 ; WX 747 ; N copyright ; B 26 -17 720 695 ; C -1 ; WX 611 ; N Emacron ; B 11 -3 606 820 ; C -1 ; WX 444 ; N ccaron ; B 32 -17 501 712 ; C -1 ; WX 556 ; N aring ; B 44 -17 519 734 ; C -1 ; WX 778 ; N Ncommaaccent ; B -2 -271 829 681 ; C -1 ; WX 333 ; N lacute ; B 64 -17 392 896 ; C -1 ; WX 556 ; N agrave ; B 44 -17 519 719 ; C -1 ; WX 611 ; N Tcommaaccent ; B 56 -271 674 681 ; C -1 ; WX 685 ; N Cacute ; B 69 -17 695 911 ; C -1 ; WX 556 ; N atilde ; B 44 -17 553 676 ; C -1 ; WX 611 ; N Edotaccent ; B 11 -3 606 880 ; C -1 ; WX 444 ; N scaron ; B 25 -17 489 712 ; C -1 ; WX 444 ; N scedilla ; B 25 -218 406 469 ; C -1 ; WX 333 ; N iacute ; B 26 -17 392 719 ; C -1 ; WX 471 ; N lozenge ; B 7 0 465 732 ; C -1 ; WX 722 ; N Rcaron ; B 4 -3 697 904 ; C -1 ; WX 778 ; N Gcommaaccent ; B 72 -271 750 695 ; C -1 ; WX 556 ; N ucircumflex ; B 22 -17 521 712 ; C -1 ; WX 556 ; N acircumflex ; B 44 -17 527 712 ; C -1 ; WX 722 ; N Amacron ; B -35 -3 685 820 ; C -1 ; WX 389 ; N rcaron ; B 20 -17 473 712 ; C -1 ; WX 444 ; N ccedilla ; B 27 -218 436 469 ; C -1 ; WX 667 ; N Zdotaccent ; B 1 -3 676 880 ; C -1 ; WX 667 ; N Thorn ; B 11 -3 644 681 ; C -1 ; WX 833 ; N Omacron ; B 76 -17 794 820 ; C -1 ; WX 722 ; N Racute ; B 4 -3 697 911 ; C -1 ; WX 556 ; N Sacute ; B 50 -17 517 911 ; C -1 ; WX 616 ; N dcaron ; B 38 -17 720 726 ; C -1 ; WX 778 ; N Umacron ; B 83 -17 825 820 ; C -1 ; WX 556 ; N uring ; B 22 -17 521 734 ; C -1 ; WX 300 ; N threesuperior ; B 23 263 310 683 ; C -1 ; WX 833 ; N Ograve ; B 76 -17 794 911 ; C -1 ; WX 722 ; N Agrave ; B -35 -3 685 911 ; C -1 ; WX 722 ; N Abreve ; B -35 -3 685 892 ; C -1 ; WX 606 ; N multiply ; B 72 17 534 479 ; C -1 ; WX 556 ; N uacute ; B 22 -17 521 719 ; C -1 ; WX 611 ; N Tcaron ; B 56 -3 674 904 ; C -1 ; WX 476 ; N partialdiff ; B 9 -38 467 718 ; C -1 ; WX 556 ; N ydieresis ; B 13 -271 541 668 ; C -1 ; WX 778 ; N Nacute ; B -2 -3 829 911 ; C -1 ; WX 333 ; N icircumflex ; B 26 -17 403 712 ; C -1 ; WX 611 ; N Ecircumflex ; B 11 -3 606 904 ; C -1 ; WX 556 ; N adieresis ; B 44 -17 538 688 ; C -1 ; WX 444 ; N edieresis ; B 28 -17 482 668 ; C -1 ; WX 444 ; N cacute ; B 32 -17 448 719 ; C -1 ; WX 556 ; N nacute ; B 17 -17 521 719 ; C -1 ; WX 556 ; N umacron ; B 22 -17 530 628 ; C -1 ; WX 778 ; N Ncaron ; B -2 -3 829 922 ; C -1 ; WX 389 ; N Iacute ; B -1 -3 420 911 ; C -1 ; WX 606 ; N plusminus ; B 50 0 556 501 ; C -1 ; WX 606 ; N brokenbar ; B 259 -175 347 675 ; C -1 ; WX 747 ; N registered ; B 26 -17 720 695 ; C -1 ; WX 778 ; N Gbreve ; B 72 -17 750 892 ; C -1 ; WX 389 ; N Idotaccent ; B -1 -3 412 880 ; C -1 ; WX 600 ; N summation ; B 15 -10 586 706 ; C -1 ; WX 611 ; N Egrave ; B 11 -3 606 911 ; C -1 ; WX 389 ; N racute ; B 20 -17 460 719 ; C -1 ; WX 556 ; N omacron ; B 48 -17 530 628 ; C -1 ; WX 667 ; N Zacute ; B 1 -3 676 911 ; C -1 ; WX 667 ; N Zcaron ; B 1 -3 676 904 ; C -1 ; WX 549 ; N greaterequal ; B 26 0 523 682 ; C -1 ; WX 778 ; N Eth ; B 0 -3 747 682 ; C -1 ; WX 685 ; N Ccedilla ; B 69 -218 695 695 ; C -1 ; WX 333 ; N lcommaaccent ; B 10 -271 318 726 ; C -1 ; WX 389 ; N tcaron ; B 42 -17 507 767 ; C -1 ; WX 444 ; N eogonek ; B 28 -216 418 469 ; C -1 ; WX 778 ; N Uogonek ; B 83 -210 825 681 ; C -1 ; WX 722 ; N Aacute ; B -35 -3 685 911 ; C -1 ; WX 722 ; N Adieresis ; B -35 -3 685 880 ; C -1 ; WX 444 ; N egrave ; B 28 -17 418 719 ; C -1 ; WX 500 ; N zacute ; B 31 -17 476 719 ; C -1 ; WX 333 ; N iogonek ; B 26 -214 312 695 ; C -1 ; WX 833 ; N Oacute ; B 76 -17 794 911 ; C -1 ; WX 556 ; N oacute ; B 48 -17 504 719 ; C -1 ; WX 556 ; N amacron ; B 44 -17 530 628 ; C -1 ; WX 444 ; N sacute ; B 25 -17 448 719 ; C -1 ; WX 333 ; N idieresis ; B 26 -17 426 668 ; C -1 ; WX 833 ; N Ocircumflex ; B 76 -17 794 904 ; C -1 ; WX 778 ; N Ugrave ; B 83 -17 825 911 ; C -1 ; WX 614 ; N Delta ; B 6 0 608 688 ; C -1 ; WX 556 ; N thorn ; B -21 -271 516 726 ; C -1 ; WX 300 ; N twosuperior ; B 26 271 321 683 ; C -1 ; WX 833 ; N Odieresis ; B 76 -17 794 880 ; C -1 ; WX 556 ; N mu ; B -15 -232 521 469 ; C -1 ; WX 333 ; N igrave ; B 26 -17 322 719 ; C -1 ; WX 556 ; N ohungarumlaut ; B 48 -17 631 719 ; C -1 ; WX 611 ; N Eogonek ; B 11 -207 606 681 ; C -1 ; WX 556 ; N dcroat ; B 38 -17 604 726 ; C -1 ; WX 750 ; N threequarters ; B 18 -2 732 683 ; C -1 ; WX 556 ; N Scedilla ; B 50 -218 517 695 ; C -1 ; WX 383 ; N lcaron ; B 64 -17 488 726 ; C -1 ; WX 722 ; N Kcommaaccent ; B -10 -271 746 681 ; C -1 ; WX 611 ; N Lacute ; B 26 -3 578 911 ; C -1 ; WX 1000 ; N trademark ; B 38 274 961 678 ; C -1 ; WX 444 ; N edotaccent ; B 28 -17 418 668 ; C -1 ; WX 389 ; N Igrave ; B -1 -3 412 911 ; C -1 ; WX 389 ; N Imacron ; B -1 -3 446 820 ; C -1 ; WX 611 ; N Lcaron ; B 26 -3 623 695 ; C -1 ; WX 750 ; N onehalf ; B 14 -2 736 683 ; C -1 ; WX 549 ; N lessequal ; B 26 0 523 682 ; C -1 ; WX 556 ; N ocircumflex ; B 48 -17 527 712 ; C -1 ; WX 556 ; N ntilde ; B 17 -17 553 676 ; C -1 ; WX 778 ; N Uhungarumlaut ; B 83 -17 825 911 ; C -1 ; WX 611 ; N Eacute ; B 11 -3 606 911 ; C -1 ; WX 444 ; N emacron ; B 28 -17 474 628 ; C -1 ; WX 500 ; N gbreve ; B -50 -271 529 700 ; C -1 ; WX 750 ; N onequarter ; B 18 -2 732 683 ; C -1 ; WX 556 ; N Scaron ; B 50 -17 557 904 ; C -1 ; WX 556 ; N Scommaaccent ; B 50 -271 517 695 ; C -1 ; WX 833 ; N Ohungarumlaut ; B 76 -17 794 911 ; C -1 ; WX 400 ; N degree ; B 50 383 350 683 ; C -1 ; WX 556 ; N ograve ; B 48 -17 502 719 ; C -1 ; WX 685 ; N Ccaron ; B 69 -17 695 904 ; C -1 ; WX 556 ; N ugrave ; B 22 -17 521 719 ; C -1 ; WX 453 ; N radical ; B -9 -91 463 765 ; C -1 ; WX 778 ; N Dcaron ; B 0 -3 747 904 ; C -1 ; WX 389 ; N rcommaaccent ; B -22 -271 411 469 ; C -1 ; WX 778 ; N Ntilde ; B -2 -3 829 868 ; C -1 ; WX 556 ; N otilde ; B 48 -17 553 676 ; C -1 ; WX 722 ; N Rcommaaccent ; B 4 -271 697 681 ; C -1 ; WX 611 ; N Lcommaaccent ; B 26 -271 578 681 ; C -1 ; WX 722 ; N Atilde ; B -35 -3 685 868 ; C -1 ; WX 722 ; N Aogonek ; B -35 -210 696 683 ; C -1 ; WX 722 ; N Aring ; B -35 -3 685 926 ; C -1 ; WX 833 ; N Otilde ; B 76 -17 794 868 ; C -1 ; WX 500 ; N zdotaccent ; B 31 -17 470 668 ; C -1 ; WX 611 ; N Ecaron ; B 11 -3 606 904 ; C -1 ; WX 389 ; N Iogonek ; B -1 -210 412 681 ; C -1 ; WX 556 ; N kcommaaccent ; B 34 -271 528 726 ; C -1 ; WX 606 ; N minus ; B 51 204 555 292 ; C -1 ; WX 389 ; N Icircumflex ; B -1 -3 443 904 ; C -1 ; WX 556 ; N ncaron ; B 17 -17 557 712 ; C -1 ; WX 389 ; N tcommaaccent ; B 18 -271 409 636 ; C -1 ; WX 606 ; N logicalnot ; B 51 107 555 390 ; C -1 ; WX 556 ; N odieresis ; B 48 -17 538 668 ; C -1 ; WX 556 ; N udieresis ; B 22 -17 538 668 ; C -1 ; WX 549 ; N notequal ; B 12 -40 537 554 ; C -1 ; WX 500 ; N gcommaaccent ; B -50 -271 529 719 ; C -1 ; WX 556 ; N eth ; B 48 -17 546 726 ; C -1 ; WX 500 ; N zcaron ; B 31 -17 517 712 ; C -1 ; WX 556 ; N ncommaaccent ; B 17 -271 521 469 ; C -1 ; WX 300 ; N onesuperior ; B 41 271 298 680 ; C -1 ; WX 333 ; N imacron ; B 26 -17 375 608 ; EndCharMetrics StartKernData StartKernPairs 972 KPX A T -55 KPX A Tcaron -55 KPX A Tcommaaccent -55 KPX A V -74 KPX A W -74 KPX A Y -74 KPX A Yacute -74 KPX A Ydieresis -74 KPX A quoteright -55 KPX A space -55 KPX A v -55 KPX A w -37 KPX A y -55 KPX A yacute -55 KPX A ydieresis -55 KPX Aacute T -55 KPX Aacute Tcaron -55 KPX Aacute Tcommaaccent -55 KPX Aacute V -74 KPX Aacute W -74 KPX Aacute Y -74 KPX Aacute Yacute -74 KPX Aacute Ydieresis -74 KPX Aacute quoteright -55 KPX Aacute space -55 KPX Aacute v -55 KPX Aacute w -37 KPX Aacute y -55 KPX Aacute yacute -55 KPX Aacute ydieresis -55 KPX Abreve T -55 KPX Abreve Tcaron -55 KPX Abreve Tcommaaccent -55 KPX Abreve V -74 KPX Abreve W -74 KPX Abreve Y -74 KPX Abreve Yacute -74 KPX Abreve Ydieresis -74 KPX Abreve quoteright -55 KPX Abreve space -55 KPX Abreve v -55 KPX Abreve w -37 KPX Abreve y -55 KPX Abreve yacute -55 KPX Abreve ydieresis -55 KPX Acircumflex T -55 KPX Acircumflex Tcaron -55 KPX Acircumflex Tcommaaccent -55 KPX Acircumflex V -74 KPX Acircumflex W -74 KPX Acircumflex Y -74 KPX Acircumflex Yacute -74 KPX Acircumflex Ydieresis -74 KPX Acircumflex quoteright -55 KPX Acircumflex space -55 KPX Acircumflex v -55 KPX Acircumflex w -37 KPX Acircumflex y -55 KPX Acircumflex yacute -55 KPX Acircumflex ydieresis -55 KPX Adieresis T -55 KPX Adieresis Tcaron -55 KPX Adieresis Tcommaaccent -55 KPX Adieresis V -74 KPX Adieresis W -74 KPX Adieresis Y -74 KPX Adieresis Yacute -74 KPX Adieresis Ydieresis -74 KPX Adieresis quoteright -55 KPX Adieresis space -55 KPX Adieresis v -55 KPX Adieresis w -37 KPX Adieresis y -55 KPX Adieresis yacute -55 KPX Adieresis ydieresis -55 KPX Agrave T -55 KPX Agrave Tcaron -55 KPX Agrave Tcommaaccent -55 KPX Agrave V -74 KPX Agrave W -74 KPX Agrave Y -74 KPX Agrave Yacute -74 KPX Agrave Ydieresis -74 KPX Agrave quoteright -55 KPX Agrave space -55 KPX Agrave v -55 KPX Agrave w -37 KPX Agrave y -55 KPX Agrave yacute -55 KPX Agrave ydieresis -55 KPX Amacron T -55 KPX Amacron Tcaron -55 KPX Amacron Tcommaaccent -55 KPX Amacron V -74 KPX Amacron W -74 KPX Amacron Y -74 KPX Amacron Yacute -74 KPX Amacron Ydieresis -74 KPX Amacron quoteright -55 KPX Amacron space -55 KPX Amacron v -55 KPX Amacron w -37 KPX Amacron y -55 KPX Amacron yacute -55 KPX Amacron ydieresis -55 KPX Aogonek T -55 KPX Aogonek Tcaron -55 KPX Aogonek Tcommaaccent -55 KPX Aogonek V -74 KPX Aogonek W -74 KPX Aogonek Y -74 KPX Aogonek Yacute -74 KPX Aogonek Ydieresis -74 KPX Aogonek quoteright -55 KPX Aogonek space -55 KPX Aogonek v -55 KPX Aogonek w -37 KPX Aogonek y -55 KPX Aogonek yacute -55 KPX Aogonek ydieresis -55 KPX Aring T -55 KPX Aring Tcaron -55 KPX Aring Tcommaaccent -55 KPX Aring V -74 KPX Aring W -74 KPX Aring Y -74 KPX Aring Yacute -74 KPX Aring Ydieresis -74 KPX Aring quoteright -55 KPX Aring space -55 KPX Aring v -55 KPX Aring w -37 KPX Aring y -55 KPX Aring yacute -55 KPX Aring ydieresis -55 KPX Atilde T -55 KPX Atilde Tcaron -55 KPX Atilde Tcommaaccent -55 KPX Atilde V -74 KPX Atilde W -74 KPX Atilde Y -74 KPX Atilde Yacute -74 KPX Atilde Ydieresis -74 KPX Atilde quoteright -55 KPX Atilde space -55 KPX Atilde v -55 KPX Atilde w -37 KPX Atilde y -55 KPX Atilde yacute -55 KPX Atilde ydieresis -55 KPX F A -74 KPX F Aacute -74 KPX F Abreve -74 KPX F Acircumflex -74 KPX F Adieresis -74 KPX F Agrave -74 KPX F Amacron -74 KPX F Aogonek -74 KPX F Aring -74 KPX F Atilde -74 KPX F comma -111 KPX F period -111 KPX F space -18 KPX L T -74 KPX L Tcaron -74 KPX L Tcommaaccent -74 KPX L V -74 KPX L W -74 KPX L Y -74 KPX L Yacute -74 KPX L Ydieresis -74 KPX L quoteright -55 KPX L space -18 KPX L y -37 KPX L yacute -37 KPX L ydieresis -37 KPX Lacute T -74 KPX Lacute Tcaron -74 KPX Lacute Tcommaaccent -74 KPX Lacute V -74 KPX Lacute W -74 KPX Lacute Y -74 KPX Lacute Yacute -74 KPX Lacute Ydieresis -74 KPX Lacute quoteright -55 KPX Lacute space -18 KPX Lacute y -37 KPX Lacute yacute -37 KPX Lacute ydieresis -37 KPX Lcaron quoteright -55 KPX Lcaron space -18 KPX Lcaron y -37 KPX Lcaron yacute -37 KPX Lcaron ydieresis -37 KPX Lcommaaccent T -74 KPX Lcommaaccent Tcaron -74 KPX Lcommaaccent Tcommaaccent -74 KPX Lcommaaccent V -74 KPX Lcommaaccent W -74 KPX Lcommaaccent Y -74 KPX Lcommaaccent Yacute -74 KPX Lcommaaccent Ydieresis -74 KPX Lcommaaccent quoteright -55 KPX Lcommaaccent space -18 KPX Lcommaaccent y -37 KPX Lcommaaccent yacute -37 KPX Lcommaaccent ydieresis -37 KPX Lslash T -74 KPX Lslash Tcaron -74 KPX Lslash Tcommaaccent -74 KPX Lslash V -74 KPX Lslash W -74 KPX Lslash Y -74 KPX Lslash Yacute -74 KPX Lslash Ydieresis -74 KPX Lslash quoteright -55 KPX Lslash space -18 KPX Lslash y -37 KPX Lslash yacute -37 KPX Lslash ydieresis -37 KPX P A -92 KPX P Aacute -92 KPX P Abreve -92 KPX P Acircumflex -92 KPX P Adieresis -92 KPX P Agrave -92 KPX P Amacron -92 KPX P Aogonek -92 KPX P Aring -92 KPX P Atilde -92 KPX P comma -129 KPX P period -129 KPX P space -55 KPX R T -37 KPX R Tcaron -37 KPX R Tcommaaccent -37 KPX R V -55 KPX R W -55 KPX R Y -37 KPX R Yacute -37 KPX R Ydieresis -37 KPX R y -20 KPX R yacute -20 KPX R ydieresis -20 KPX Racute T -37 KPX Racute Tcaron -37 KPX Racute Tcommaaccent -37 KPX Racute V -55 KPX Racute W -55 KPX Racute Y -37 KPX Racute Yacute -37 KPX Racute Ydieresis -37 KPX Racute y -20 KPX Racute yacute -20 KPX Racute ydieresis -20 KPX Rcaron T -37 KPX Rcaron Tcaron -37 KPX Rcaron Tcommaaccent -37 KPX Rcaron V -55 KPX Rcaron W -55 KPX Rcaron Y -37 KPX Rcaron Yacute -37 KPX Rcaron Ydieresis -37 KPX Rcaron y -20 KPX Rcaron yacute -20 KPX Rcaron ydieresis -20 KPX Rcommaaccent T -37 KPX Rcommaaccent Tcaron -37 KPX Rcommaaccent Tcommaaccent -37 KPX Rcommaaccent V -55 KPX Rcommaaccent W -55 KPX Rcommaaccent Y -37 KPX Rcommaaccent Yacute -37 KPX Rcommaaccent Ydieresis -37 KPX Rcommaaccent y -20 KPX Rcommaaccent yacute -20 KPX Rcommaaccent ydieresis -20 KPX T A -55 KPX T Aacute -55 KPX T Abreve -55 KPX T Acircumflex -55 KPX T Adieresis -55 KPX T Agrave -55 KPX T Amacron -55 KPX T Aogonek -55 KPX T Aring -55 KPX T Atilde -55 KPX T O -18 KPX T Oacute -18 KPX T Ocircumflex -18 KPX T Odieresis -18 KPX T Ograve -18 KPX T Ohungarumlaut -18 KPX T Omacron -18 KPX T Oslash -18 KPX T Otilde -18 KPX T a -111 KPX T aacute -111 KPX T abreve -111 KPX T acircumflex -111 KPX T adieresis -111 KPX T agrave -111 KPX T amacron -111 KPX T aogonek -111 KPX T aring -111 KPX T atilde -111 KPX T c -92 KPX T cacute -92 KPX T ccaron -92 KPX T ccedilla -92 KPX T colon -55 KPX T comma -55 KPX T e -111 KPX T eacute -111 KPX T ecaron -111 KPX T ecircumflex -71 KPX T edieresis -71 KPX T edotaccent -111 KPX T egrave -71 KPX T emacron -71 KPX T eogonek -111 KPX T hyphen -92 KPX T i -74 KPX T iacute -74 KPX T icircumflex -34 KPX T idieresis -34 KPX T igrave -34 KPX T imacron -34 KPX T iogonek -74 KPX T o -111 KPX T oacute -111 KPX T ocircumflex -111 KPX T odieresis -111 KPX T ograve -111 KPX T ohungarumlaut -111 KPX T omacron -111 KPX T oslash -111 KPX T otilde -111 KPX T period -55 KPX T r -92 KPX T racute -92 KPX T rcaron -92 KPX T rcommaaccent -92 KPX T s -92 KPX T sacute -92 KPX T scaron -92 KPX T scedilla -92 KPX T scommaaccent -92 KPX T semicolon -55 KPX T u -92 KPX T uacute -92 KPX T ucircumflex -92 KPX T udieresis -92 KPX T ugrave -92 KPX T uhungarumlaut -92 KPX T umacron -92 KPX T uogonek -92 KPX T uring -92 KPX T w -50 KPX T y -80 KPX T yacute -80 KPX T ydieresis -80 KPX Tcaron A -55 KPX Tcaron Aacute -55 KPX Tcaron Abreve -55 KPX Tcaron Acircumflex -55 KPX Tcaron Adieresis -55 KPX Tcaron Agrave -55 KPX Tcaron Amacron -55 KPX Tcaron Aogonek -55 KPX Tcaron Aring -55 KPX Tcaron Atilde -55 KPX Tcaron O -18 KPX Tcaron Oacute -18 KPX Tcaron Ocircumflex -18 KPX Tcaron Odieresis -18 KPX Tcaron Ograve -18 KPX Tcaron Ohungarumlaut -18 KPX Tcaron Omacron -18 KPX Tcaron Oslash -18 KPX Tcaron Otilde -18 KPX Tcaron a -111 KPX Tcaron aacute -111 KPX Tcaron abreve -111 KPX Tcaron acircumflex -111 KPX Tcaron adieresis -111 KPX Tcaron agrave -111 KPX Tcaron amacron -111 KPX Tcaron aogonek -111 KPX Tcaron aring -111 KPX Tcaron atilde -111 KPX Tcaron c -92 KPX Tcaron cacute -92 KPX Tcaron ccaron -92 KPX Tcaron ccedilla -92 KPX Tcaron colon -55 KPX Tcaron comma -55 KPX Tcaron e -111 KPX Tcaron eacute -111 KPX Tcaron ecaron -111 KPX Tcaron ecircumflex -71 KPX Tcaron edieresis -71 KPX Tcaron edotaccent -111 KPX Tcaron egrave -71 KPX Tcaron emacron -71 KPX Tcaron eogonek -111 KPX Tcaron hyphen -92 KPX Tcaron i -74 KPX Tcaron iacute -74 KPX Tcaron icircumflex -34 KPX Tcaron idieresis -34 KPX Tcaron igrave -34 KPX Tcaron imacron -34 KPX Tcaron iogonek -74 KPX Tcaron o -111 KPX Tcaron oacute -111 KPX Tcaron ocircumflex -111 KPX Tcaron odieresis -111 KPX Tcaron ograve -111 KPX Tcaron ohungarumlaut -111 KPX Tcaron omacron -111 KPX Tcaron oslash -111 KPX Tcaron otilde -111 KPX Tcaron period -55 KPX Tcaron r -92 KPX Tcaron racute -92 KPX Tcaron rcaron -92 KPX Tcaron rcommaaccent -92 KPX Tcaron s -92 KPX Tcaron sacute -92 KPX Tcaron scaron -92 KPX Tcaron scedilla -92 KPX Tcaron scommaaccent -92 KPX Tcaron semicolon -55 KPX Tcaron u -92 KPX Tcaron uacute -92 KPX Tcaron ucircumflex -92 KPX Tcaron udieresis -92 KPX Tcaron ugrave -92 KPX Tcaron uhungarumlaut -92 KPX Tcaron umacron -92 KPX Tcaron uogonek -92 KPX Tcaron uring -92 KPX Tcaron w -50 KPX Tcaron y -80 KPX Tcaron yacute -80 KPX Tcaron ydieresis -80 KPX Tcommaaccent A -55 KPX Tcommaaccent Aacute -55 KPX Tcommaaccent Abreve -55 KPX Tcommaaccent Acircumflex -55 KPX Tcommaaccent Adieresis -55 KPX Tcommaaccent Agrave -55 KPX Tcommaaccent Amacron -55 KPX Tcommaaccent Aogonek -55 KPX Tcommaaccent Aring -55 KPX Tcommaaccent Atilde -55 KPX Tcommaaccent O -18 KPX Tcommaaccent Oacute -18 KPX Tcommaaccent Ocircumflex -18 KPX Tcommaaccent Odieresis -18 KPX Tcommaaccent Ograve -18 KPX Tcommaaccent Ohungarumlaut -18 KPX Tcommaaccent Omacron -18 KPX Tcommaaccent Oslash -18 KPX Tcommaaccent Otilde -18 KPX Tcommaaccent a -111 KPX Tcommaaccent aacute -111 KPX Tcommaaccent abreve -111 KPX Tcommaaccent acircumflex -111 KPX Tcommaaccent adieresis -111 KPX Tcommaaccent agrave -111 KPX Tcommaaccent amacron -111 KPX Tcommaaccent aogonek -111 KPX Tcommaaccent aring -111 KPX Tcommaaccent atilde -111 KPX Tcommaaccent c -92 KPX Tcommaaccent cacute -92 KPX Tcommaaccent ccaron -92 KPX Tcommaaccent ccedilla -92 KPX Tcommaaccent colon -55 KPX Tcommaaccent comma -55 KPX Tcommaaccent e -111 KPX Tcommaaccent eacute -111 KPX Tcommaaccent ecaron -111 KPX Tcommaaccent ecircumflex -71 KPX Tcommaaccent edieresis -71 KPX Tcommaaccent edotaccent -111 KPX Tcommaaccent egrave -71 KPX Tcommaaccent emacron -71 KPX Tcommaaccent eogonek -111 KPX Tcommaaccent hyphen -92 KPX Tcommaaccent i -74 KPX Tcommaaccent iacute -74 KPX Tcommaaccent icircumflex -34 KPX Tcommaaccent idieresis -34 KPX Tcommaaccent igrave -34 KPX Tcommaaccent imacron -34 KPX Tcommaaccent iogonek -74 KPX Tcommaaccent o -111 KPX Tcommaaccent oacute -111 KPX Tcommaaccent ocircumflex -111 KPX Tcommaaccent odieresis -111 KPX Tcommaaccent ograve -111 KPX Tcommaaccent ohungarumlaut -111 KPX Tcommaaccent omacron -111 KPX Tcommaaccent oslash -111 KPX Tcommaaccent otilde -111 KPX Tcommaaccent period -55 KPX Tcommaaccent r -92 KPX Tcommaaccent racute -92 KPX Tcommaaccent rcaron -92 KPX Tcommaaccent rcommaaccent -92 KPX Tcommaaccent s -92 KPX Tcommaaccent sacute -92 KPX Tcommaaccent scaron -92 KPX Tcommaaccent scedilla -92 KPX Tcommaaccent scommaaccent -92 KPX Tcommaaccent semicolon -55 KPX Tcommaaccent u -92 KPX Tcommaaccent uacute -92 KPX Tcommaaccent ucircumflex -92 KPX Tcommaaccent udieresis -92 KPX Tcommaaccent ugrave -92 KPX Tcommaaccent uhungarumlaut -92 KPX Tcommaaccent umacron -92 KPX Tcommaaccent uogonek -92 KPX Tcommaaccent uring -92 KPX Tcommaaccent w -50 KPX Tcommaaccent y -80 KPX Tcommaaccent yacute -80 KPX Tcommaaccent ydieresis -80 KPX V A -74 KPX V Aacute -74 KPX V Abreve -74 KPX V Acircumflex -74 KPX V Adieresis -74 KPX V Agrave -74 KPX V Amacron -74 KPX V Aogonek -74 KPX V Aring -74 KPX V Atilde -74 KPX V a -92 KPX V aacute -92 KPX V abreve -92 KPX V acircumflex -92 KPX V adieresis -92 KPX V agrave -92 KPX V amacron -92 KPX V aogonek -92 KPX V aring -92 KPX V atilde -92 KPX V colon -37 KPX V comma -111 KPX V e -74 KPX V eacute -74 KPX V ecaron -74 KPX V ecircumflex -74 KPX V edieresis -74 KPX V edotaccent -74 KPX V egrave -34 KPX V emacron -34 KPX V eogonek -74 KPX V hyphen -37 KPX V i -50 KPX V iacute -50 KPX V iogonek -50 KPX V o -74 KPX V oacute -74 KPX V ocircumflex -74 KPX V odieresis -74 KPX V ograve -74 KPX V ohungarumlaut -74 KPX V omacron -74 KPX V oslash -74 KPX V otilde -74 KPX V period -111 KPX V r -74 KPX V racute -74 KPX V rcaron -74 KPX V rcommaaccent -74 KPX V semicolon -37 KPX V u -50 KPX V uacute -50 KPX V ucircumflex -50 KPX V udieresis -50 KPX V ugrave -50 KPX V uhungarumlaut -50 KPX V umacron -50 KPX V uogonek -50 KPX V uring -50 KPX V y -50 KPX V yacute -50 KPX V ydieresis -50 KPX W A -74 KPX W Aacute -74 KPX W Abreve -74 KPX W Acircumflex -74 KPX W Adieresis -74 KPX W Agrave -74 KPX W Amacron -74 KPX W Aogonek -74 KPX W Aring -74 KPX W Atilde -74 KPX W a -74 KPX W aacute -74 KPX W abreve -74 KPX W acircumflex -74 KPX W adieresis -74 KPX W agrave -74 KPX W amacron -74 KPX W aogonek -74 KPX W aring -74 KPX W atilde -74 KPX W colon -28 KPX W comma -55 KPX W e -55 KPX W eacute -55 KPX W ecaron -55 KPX W ecircumflex -55 KPX W edieresis -55 KPX W edotaccent -55 KPX W egrave -55 KPX W emacron -55 KPX W eogonek -55 KPX W i -30 KPX W iacute -30 KPX W iogonek -30 KPX W o -55 KPX W oacute -55 KPX W ocircumflex -55 KPX W odieresis -55 KPX W ograve -55 KPX W ohungarumlaut -55 KPX W omacron -55 KPX W oslash -55 KPX W otilde -55 KPX W period -55 KPX W r -30 KPX W racute -30 KPX W rcaron -30 KPX W rcommaaccent -30 KPX W semicolon -18 KPX W u -30 KPX W uacute -30 KPX W ucircumflex -30 KPX W udieresis -30 KPX W ugrave -30 KPX W uhungarumlaut -30 KPX W umacron -30 KPX W uogonek -30 KPX W uring -30 KPX W y -30 KPX W yacute -30 KPX W ydieresis -30 KPX Y A -55 KPX Y Aacute -55 KPX Y Abreve -55 KPX Y Acircumflex -55 KPX Y Adieresis -55 KPX Y Agrave -55 KPX Y Amacron -55 KPX Y Aogonek -55 KPX Y Aring -55 KPX Y Atilde -55 KPX Y a -111 KPX Y aacute -111 KPX Y abreve -111 KPX Y acircumflex -111 KPX Y adieresis -111 KPX Y agrave -111 KPX Y amacron -111 KPX Y aogonek -111 KPX Y aring -111 KPX Y atilde -111 KPX Y colon -55 KPX Y comma -55 KPX Y e -92 KPX Y eacute -92 KPX Y ecaron -92 KPX Y ecircumflex -92 KPX Y edieresis -92 KPX Y edotaccent -92 KPX Y egrave -92 KPX Y emacron -92 KPX Y eogonek -92 KPX Y hyphen -55 KPX Y i -54 KPX Y iacute -54 KPX Y iogonek -54 KPX Y o -111 KPX Y oacute -111 KPX Y ocircumflex -111 KPX Y odieresis -111 KPX Y ograve -111 KPX Y ohungarumlaut -111 KPX Y omacron -111 KPX Y oslash -111 KPX Y otilde -111 KPX Y p -74 KPX Y period -55 KPX Y q -92 KPX Y semicolon -55 KPX Y u -50 KPX Y uacute -50 KPX Y ucircumflex -50 KPX Y udieresis -50 KPX Y ugrave -50 KPX Y uhungarumlaut -50 KPX Y umacron -50 KPX Y uogonek -50 KPX Y uring -50 KPX Y v -30 KPX Yacute A -55 KPX Yacute Aacute -55 KPX Yacute Abreve -55 KPX Yacute Acircumflex -55 KPX Yacute Adieresis -55 KPX Yacute Agrave -55 KPX Yacute Amacron -55 KPX Yacute Aogonek -55 KPX Yacute Aring -55 KPX Yacute Atilde -55 KPX Yacute a -111 KPX Yacute aacute -111 KPX Yacute abreve -111 KPX Yacute acircumflex -111 KPX Yacute adieresis -111 KPX Yacute agrave -111 KPX Yacute amacron -111 KPX Yacute aogonek -111 KPX Yacute aring -111 KPX Yacute atilde -111 KPX Yacute colon -55 KPX Yacute comma -55 KPX Yacute e -92 KPX Yacute eacute -92 KPX Yacute ecaron -92 KPX Yacute ecircumflex -92 KPX Yacute edieresis -92 KPX Yacute edotaccent -92 KPX Yacute egrave -92 KPX Yacute emacron -92 KPX Yacute eogonek -92 KPX Yacute hyphen -55 KPX Yacute i -54 KPX Yacute iacute -54 KPX Yacute iogonek -54 KPX Yacute o -111 KPX Yacute oacute -111 KPX Yacute ocircumflex -111 KPX Yacute odieresis -111 KPX Yacute ograve -111 KPX Yacute ohungarumlaut -111 KPX Yacute omacron -111 KPX Yacute oslash -111 KPX Yacute otilde -111 KPX Yacute p -74 KPX Yacute period -55 KPX Yacute q -92 KPX Yacute semicolon -55 KPX Yacute u -50 KPX Yacute uacute -50 KPX Yacute ucircumflex -50 KPX Yacute udieresis -50 KPX Yacute ugrave -50 KPX Yacute uhungarumlaut -50 KPX Yacute umacron -50 KPX Yacute uogonek -50 KPX Yacute uring -50 KPX Yacute v -30 KPX Ydieresis A -55 KPX Ydieresis Aacute -55 KPX Ydieresis Abreve -55 KPX Ydieresis Acircumflex -55 KPX Ydieresis Adieresis -55 KPX Ydieresis Agrave -55 KPX Ydieresis Amacron -55 KPX Ydieresis Aogonek -55 KPX Ydieresis Aring -55 KPX Ydieresis Atilde -55 KPX Ydieresis a -111 KPX Ydieresis aacute -111 KPX Ydieresis abreve -111 KPX Ydieresis acircumflex -111 KPX Ydieresis adieresis -111 KPX Ydieresis agrave -111 KPX Ydieresis amacron -111 KPX Ydieresis aogonek -111 KPX Ydieresis aring -111 KPX Ydieresis atilde -111 KPX Ydieresis colon -55 KPX Ydieresis comma -55 KPX Ydieresis e -92 KPX Ydieresis eacute -92 KPX Ydieresis ecaron -92 KPX Ydieresis ecircumflex -92 KPX Ydieresis edieresis -92 KPX Ydieresis edotaccent -92 KPX Ydieresis egrave -92 KPX Ydieresis emacron -92 KPX Ydieresis eogonek -92 KPX Ydieresis hyphen -55 KPX Ydieresis i -54 KPX Ydieresis iacute -54 KPX Ydieresis iogonek -54 KPX Ydieresis o -111 KPX Ydieresis oacute -111 KPX Ydieresis ocircumflex -111 KPX Ydieresis odieresis -111 KPX Ydieresis ograve -111 KPX Ydieresis ohungarumlaut -111 KPX Ydieresis omacron -111 KPX Ydieresis oslash -111 KPX Ydieresis otilde -111 KPX Ydieresis p -74 KPX Ydieresis period -55 KPX Ydieresis q -92 KPX Ydieresis semicolon -55 KPX Ydieresis u -50 KPX Ydieresis uacute -50 KPX Ydieresis ucircumflex -50 KPX Ydieresis udieresis -50 KPX Ydieresis ugrave -50 KPX Ydieresis uhungarumlaut -50 KPX Ydieresis umacron -50 KPX Ydieresis uogonek -50 KPX Ydieresis uring -50 KPX Ydieresis v -30 KPX f f -37 KPX f quoteright 37 KPX one one -55 KPX quoteleft quoteleft -55 KPX quoteright quoteright -55 KPX quoteright s -37 KPX quoteright sacute -37 KPX quoteright scaron -37 KPX quoteright scedilla -37 KPX quoteright scommaaccent -37 KPX quoteright space -37 KPX quoteright t -18 KPX quoteright tcommaaccent -18 KPX r c -18 KPX r cacute -18 KPX r ccaron -18 KPX r ccedilla -18 KPX r comma -55 KPX r e -18 KPX r eacute -18 KPX r ecaron -18 KPX r ecircumflex -18 KPX r edieresis -18 KPX r edotaccent -18 KPX r egrave -18 KPX r emacron -18 KPX r eogonek -18 KPX r g -18 KPX r gbreve -18 KPX r gcommaaccent -18 KPX r h -18 KPX r o -18 KPX r oacute -18 KPX r ocircumflex -18 KPX r odieresis -18 KPX r ograve -18 KPX r ohungarumlaut -18 KPX r omacron -18 KPX r oslash -18 KPX r otilde -18 KPX r period -55 KPX r q -18 KPX r quoteright 55 KPX racute c -18 KPX racute cacute -18 KPX racute ccaron -18 KPX racute ccedilla -18 KPX racute comma -55 KPX racute e -18 KPX racute eacute -18 KPX racute ecaron -18 KPX racute ecircumflex -18 KPX racute edieresis -18 KPX racute edotaccent -18 KPX racute egrave -18 KPX racute emacron -18 KPX racute eogonek -18 KPX racute g -18 KPX racute gbreve -18 KPX racute gcommaaccent -18 KPX racute h -18 KPX racute o -18 KPX racute oacute -18 KPX racute ocircumflex -18 KPX racute odieresis -18 KPX racute ograve -18 KPX racute ohungarumlaut -18 KPX racute omacron -18 KPX racute oslash -18 KPX racute otilde -18 KPX racute period -55 KPX racute q -18 KPX racute quoteright 55 KPX rcaron c -18 KPX rcaron cacute -18 KPX rcaron ccaron -18 KPX rcaron ccedilla -18 KPX rcaron comma -55 KPX rcaron e -18 KPX rcaron eacute -18 KPX rcaron ecaron -18 KPX rcaron ecircumflex -18 KPX rcaron edieresis -18 KPX rcaron edotaccent -18 KPX rcaron egrave -18 KPX rcaron emacron -18 KPX rcaron eogonek -18 KPX rcaron g -18 KPX rcaron gbreve -18 KPX rcaron gcommaaccent -18 KPX rcaron h -18 KPX rcaron o -18 KPX rcaron oacute -18 KPX rcaron ocircumflex -18 KPX rcaron odieresis -18 KPX rcaron ograve -18 KPX rcaron ohungarumlaut -18 KPX rcaron omacron -18 KPX rcaron oslash -18 KPX rcaron otilde -18 KPX rcaron period -55 KPX rcaron q -18 KPX rcaron quoteright 55 KPX rcommaaccent c -18 KPX rcommaaccent cacute -18 KPX rcommaaccent ccaron -18 KPX rcommaaccent ccedilla -18 KPX rcommaaccent comma -55 KPX rcommaaccent e -18 KPX rcommaaccent eacute -18 KPX rcommaaccent ecaron -18 KPX rcommaaccent ecircumflex -18 KPX rcommaaccent edieresis -18 KPX rcommaaccent edotaccent -18 KPX rcommaaccent egrave -18 KPX rcommaaccent emacron -18 KPX rcommaaccent eogonek -18 KPX rcommaaccent g -18 KPX rcommaaccent gbreve -18 KPX rcommaaccent gcommaaccent -18 KPX rcommaaccent h -18 KPX rcommaaccent o -18 KPX rcommaaccent oacute -18 KPX rcommaaccent ocircumflex -18 KPX rcommaaccent odieresis -18 KPX rcommaaccent ograve -18 KPX rcommaaccent ohungarumlaut -18 KPX rcommaaccent omacron -18 KPX rcommaaccent oslash -18 KPX rcommaaccent otilde -18 KPX rcommaaccent period -55 KPX rcommaaccent q -18 KPX rcommaaccent quoteright 55 KPX v comma -55 KPX v period -55 KPX w comma -55 KPX w period -55 KPX y comma -37 KPX y period -37 KPX yacute comma -37 KPX yacute period -37 KPX ydieresis comma -37 KPX ydieresis period -37 EndKernPairs EndKernData EndFontMetrics a2ps-4.14/afm/phvron.afm0000644000175000017500000022107510674334153014406 0ustar mhattamhattaStartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Fri May 2 17:03:30 1997 Comment UniqueID 43180 Comment VMusage 14960 69346 FontName Helvetica-Narrow-Oblique FullName Helvetica Narrow Oblique FamilyName Helvetica Weight Medium ItalicAngle -12 IsFixedPitch false FontBBox -139 -225 915 931 UnderlinePosition -100 UnderlineThickness 50 Version 002.000 Notice Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries. EncodingScheme AdobeStandardEncoding CapHeight 718 XHeight 523 Ascender 718 Descender -207 StdHW 76 StdVW 88 StartCharMetrics 314 C 32 ; WX 228 ; N space ; B 0 0 0 0 ; C 33 ; WX 228 ; N exclam ; B 74 0 278 718 ; C 34 ; WX 291 ; N quotedbl ; B 138 463 359 718 ; C 35 ; WX 456 ; N numbersign ; B 60 0 517 688 ; C 36 ; WX 456 ; N dollar ; B 57 -115 506 775 ; C 37 ; WX 729 ; N percent ; B 120 -19 729 703 ; C 38 ; WX 547 ; N ampersand ; B 63 -15 530 718 ; C 39 ; WX 182 ; N quoteright ; B 124 463 254 718 ; C 40 ; WX 273 ; N parenleft ; B 89 -207 372 733 ; C 41 ; WX 273 ; N parenright ; B -7 -207 276 733 ; C 42 ; WX 319 ; N asterisk ; B 135 431 389 718 ; C 43 ; WX 479 ; N plus ; B 70 0 497 505 ; C 44 ; WX 228 ; N comma ; B 46 -147 175 106 ; C 45 ; WX 273 ; N hyphen ; B 77 232 293 322 ; C 46 ; WX 228 ; N period ; B 71 0 175 106 ; C 47 ; WX 228 ; N slash ; B -17 -19 370 737 ; C 48 ; WX 456 ; N zero ; B 77 -19 499 703 ; C 49 ; WX 456 ; N one ; B 170 0 417 703 ; C 50 ; WX 456 ; N two ; B 21 0 506 703 ; C 51 ; WX 456 ; N three ; B 61 -19 500 703 ; C 52 ; WX 456 ; N four ; B 50 0 472 703 ; C 53 ; WX 456 ; N five ; B 55 -19 509 688 ; C 54 ; WX 456 ; N six ; B 74 -19 505 703 ; C 55 ; WX 456 ; N seven ; B 112 0 549 688 ; C 56 ; WX 456 ; N eight ; B 60 -19 497 703 ; C 57 ; WX 456 ; N nine ; B 67 -19 499 703 ; C 58 ; WX 228 ; N colon ; B 71 0 247 516 ; C 59 ; WX 228 ; N semicolon ; B 46 -147 247 516 ; C 60 ; WX 479 ; N less ; B 77 11 526 495 ; C 61 ; WX 479 ; N equal ; B 52 115 515 390 ; C 62 ; WX 479 ; N greater ; B 41 11 490 495 ; C 63 ; WX 456 ; N question ; B 132 0 500 727 ; C 64 ; WX 832 ; N at ; B 176 -19 791 737 ; C 65 ; WX 547 ; N A ; B 11 0 536 718 ; C 66 ; WX 547 ; N B ; B 61 0 583 718 ; C 67 ; WX 592 ; N C ; B 88 -19 640 737 ; C 68 ; WX 592 ; N D ; B 66 0 626 718 ; C 69 ; WX 547 ; N E ; B 71 0 625 718 ; C 70 ; WX 501 ; N F ; B 71 0 603 718 ; C 71 ; WX 638 ; N G ; B 91 -19 655 737 ; C 72 ; WX 592 ; N H ; B 63 0 655 718 ; C 73 ; WX 228 ; N I ; B 75 0 279 718 ; C 74 ; WX 410 ; N J ; B 39 -19 476 718 ; C 75 ; WX 547 ; N K ; B 62 0 662 718 ; C 76 ; WX 456 ; N L ; B 62 0 455 718 ; C 77 ; WX 683 ; N M ; B 60 0 749 718 ; C 78 ; WX 592 ; N N ; B 62 0 655 718 ; C 79 ; WX 638 ; N O ; B 86 -19 677 737 ; C 80 ; WX 547 ; N P ; B 71 0 604 718 ; C 81 ; WX 638 ; N Q ; B 86 -56 677 737 ; C 82 ; WX 592 ; N R ; B 72 0 634 718 ; C 83 ; WX 547 ; N S ; B 74 -19 584 737 ; C 84 ; WX 501 ; N T ; B 122 0 615 718 ; C 85 ; WX 592 ; N U ; B 101 -19 653 718 ; C 86 ; WX 547 ; N V ; B 142 0 656 718 ; C 87 ; WX 774 ; N W ; B 138 0 886 718 ; C 88 ; WX 547 ; N X ; B 16 0 647 718 ; C 89 ; WX 547 ; N Y ; B 137 0 661 718 ; C 90 ; WX 501 ; N Z ; B 19 0 607 718 ; C 91 ; WX 228 ; N bracketleft ; B 17 -196 331 722 ; C 92 ; WX 228 ; N backslash ; B 115 -19 239 737 ; C 93 ; WX 228 ; N bracketright ; B -11 -196 302 722 ; C 94 ; WX 385 ; N asciicircum ; B 35 264 442 688 ; C 95 ; WX 456 ; N underscore ; B -22 -125 443 -75 ; C 96 ; WX 182 ; N quoteleft ; B 135 470 265 725 ; C 97 ; WX 456 ; N a ; B 50 -15 458 538 ; C 98 ; WX 456 ; N b ; B 48 -15 479 718 ; C 99 ; WX 410 ; N c ; B 61 -15 454 538 ; C 100 ; WX 456 ; N d ; B 69 -15 534 718 ; C 101 ; WX 456 ; N e ; B 69 -15 474 538 ; C 102 ; WX 228 ; N f ; B 71 0 341 728 ; L i fi ; L l fl ; C 103 ; WX 456 ; N g ; B 34 -220 500 538 ; C 104 ; WX 456 ; N h ; B 53 0 470 718 ; C 105 ; WX 182 ; N i ; B 55 0 252 718 ; C 106 ; WX 182 ; N j ; B -49 -210 252 718 ; C 107 ; WX 410 ; N k ; B 55 0 492 718 ; C 108 ; WX 182 ; N l ; B 55 0 252 718 ; C 109 ; WX 683 ; N m ; B 53 0 699 538 ; C 110 ; WX 456 ; N n ; B 53 0 470 538 ; C 111 ; WX 456 ; N o ; B 68 -14 479 538 ; C 112 ; WX 456 ; N p ; B 11 -207 479 538 ; C 113 ; WX 456 ; N q ; B 69 -207 496 538 ; C 114 ; WX 273 ; N r ; B 63 0 365 538 ; C 115 ; WX 410 ; N s ; B 52 -15 434 538 ; C 116 ; WX 228 ; N t ; B 84 -7 302 669 ; C 117 ; WX 456 ; N u ; B 77 -15 492 523 ; C 118 ; WX 410 ; N v ; B 98 0 495 523 ; C 119 ; WX 592 ; N w ; B 103 0 673 523 ; C 120 ; WX 410 ; N x ; B 9 0 487 523 ; C 121 ; WX 410 ; N y ; B 12 -214 492 523 ; C 122 ; WX 410 ; N z ; B 25 0 468 523 ; C 123 ; WX 274 ; N braceleft ; B 75 -196 365 722 ; C 124 ; WX 213 ; N bar ; B 38 -225 272 775 ; C 125 ; WX 274 ; N braceright ; B 0 -196 291 722 ; C 126 ; WX 479 ; N asciitilde ; B 91 180 476 326 ; C 161 ; WX 273 ; N exclamdown ; B 63 -195 267 523 ; C 162 ; WX 456 ; N cent ; B 78 -115 479 623 ; C 163 ; WX 456 ; N sterling ; B 40 -16 520 718 ; C 164 ; WX 137 ; N fraction ; B -139 -19 396 703 ; C 165 ; WX 456 ; N yen ; B 67 0 573 688 ; C 166 ; WX 456 ; N florin ; B -43 -207 537 737 ; C 167 ; WX 456 ; N section ; B 63 -191 479 737 ; C 168 ; WX 456 ; N currency ; B 49 99 530 603 ; C 169 ; WX 157 ; N quotesingle ; B 129 463 233 718 ; C 170 ; WX 273 ; N quotedblleft ; B 113 470 378 725 ; C 171 ; WX 456 ; N guillemotleft ; B 120 108 454 446 ; C 172 ; WX 273 ; N guilsinglleft ; B 112 108 279 446 ; C 173 ; WX 273 ; N guilsinglright ; B 91 108 257 446 ; C 174 ; WX 410 ; N fi ; B 71 0 481 728 ; C 175 ; WX 410 ; N fl ; B 71 0 479 728 ; C 177 ; WX 456 ; N endash ; B 42 240 510 313 ; C 178 ; WX 456 ; N dagger ; B 110 -159 510 718 ; C 179 ; WX 456 ; N daggerdbl ; B 43 -159 511 718 ; C 180 ; WX 228 ; N periodcentered ; B 106 190 211 315 ; C 182 ; WX 440 ; N paragraph ; B 103 -173 533 718 ; C 183 ; WX 287 ; N bullet ; B 74 202 339 517 ; C 184 ; WX 182 ; N quotesinglbase ; B 17 -149 147 106 ; C 185 ; WX 273 ; N quotedblbase ; B -5 -149 260 106 ; C 186 ; WX 273 ; N quotedblright ; B 102 463 367 718 ; C 187 ; WX 456 ; N guillemotright ; B 98 108 433 446 ; C 188 ; WX 820 ; N ellipsis ; B 94 0 744 106 ; C 189 ; WX 820 ; N perthousand ; B 72 -19 844 703 ; C 191 ; WX 501 ; N questiondown ; B 70 -201 438 525 ; C 193 ; WX 273 ; N grave ; B 139 593 276 734 ; C 194 ; WX 273 ; N acute ; B 203 593 390 734 ; C 195 ; WX 273 ; N circumflex ; B 121 593 359 734 ; C 196 ; WX 273 ; N tilde ; B 102 606 402 722 ; C 197 ; WX 273 ; N macron ; B 117 627 384 684 ; C 198 ; WX 273 ; N breve ; B 137 595 391 731 ; C 199 ; WX 273 ; N dotaccent ; B 204 604 297 706 ; C 200 ; WX 273 ; N dieresis ; B 138 604 363 706 ; C 202 ; WX 273 ; N ring ; B 175 572 330 756 ; C 203 ; WX 273 ; N cedilla ; B 2 -225 191 0 ; C 205 ; WX 273 ; N hungarumlaut ; B 129 593 463 734 ; C 206 ; WX 273 ; N ogonek ; B 35 -225 204 0 ; C 207 ; WX 273 ; N caron ; B 145 593 384 734 ; C 208 ; WX 820 ; N emdash ; B 42 240 875 313 ; C 225 ; WX 820 ; N AE ; B 7 0 899 718 ; C 227 ; WX 303 ; N ordfeminine ; B 104 405 368 737 ; C 232 ; WX 456 ; N Lslash ; B 34 0 455 718 ; C 233 ; WX 638 ; N Oslash ; B 35 -19 730 737 ; C 234 ; WX 820 ; N OE ; B 80 -19 915 737 ; C 235 ; WX 299 ; N ordmasculine ; B 115 405 384 737 ; C 241 ; WX 729 ; N ae ; B 50 -15 746 538 ; C 245 ; WX 228 ; N dotlessi ; B 78 0 241 523 ; C 248 ; WX 182 ; N lslash ; B 34 0 284 718 ; C 249 ; WX 501 ; N oslash ; B 24 -22 531 545 ; C 250 ; WX 774 ; N oe ; B 68 -15 791 538 ; C 251 ; WX 501 ; N germandbls ; B 55 -15 539 728 ; C -1 ; WX 228 ; N Idieresis ; B 75 0 375 901 ; C -1 ; WX 456 ; N eacute ; B 69 -15 481 734 ; C -1 ; WX 456 ; N abreve ; B 50 -15 474 731 ; C -1 ; WX 456 ; N uhungarumlaut ; B 77 -15 555 734 ; C -1 ; WX 456 ; N ecaron ; B 69 -15 476 734 ; C -1 ; WX 547 ; N Ydieresis ; B 137 0 661 901 ; C -1 ; WX 479 ; N divide ; B 70 -19 497 524 ; C -1 ; WX 547 ; N Yacute ; B 137 0 661 929 ; C -1 ; WX 547 ; N Acircumflex ; B 11 0 536 929 ; C -1 ; WX 456 ; N aacute ; B 50 -15 481 734 ; C -1 ; WX 592 ; N Ucircumflex ; B 101 -19 653 929 ; C -1 ; WX 410 ; N yacute ; B 12 -214 492 734 ; C -1 ; WX 410 ; N scommaaccent ; B 52 -225 434 538 ; C -1 ; WX 456 ; N ecircumflex ; B 69 -15 474 734 ; C -1 ; WX 592 ; N Uring ; B 101 -19 653 931 ; C -1 ; WX 592 ; N Udieresis ; B 101 -19 653 901 ; C -1 ; WX 456 ; N aogonek ; B 50 -220 458 538 ; C -1 ; WX 592 ; N Uacute ; B 101 -19 653 929 ; C -1 ; WX 456 ; N uogonek ; B 77 -225 492 523 ; C -1 ; WX 547 ; N Edieresis ; B 71 0 625 901 ; C -1 ; WX 592 ; N Dcroat ; B 57 0 626 718 ; C -1 ; WX 205 ; N commaaccent ; B 32 -225 141 -40 ; C -1 ; WX 604 ; N copyright ; B 44 -19 687 737 ; C -1 ; WX 547 ; N Emacron ; B 71 0 625 879 ; C -1 ; WX 410 ; N ccaron ; B 61 -15 454 734 ; C -1 ; WX 456 ; N aring ; B 50 -15 458 756 ; C -1 ; WX 592 ; N Ncommaaccent ; B 62 -225 655 718 ; C -1 ; WX 182 ; N lacute ; B 55 0 378 929 ; C -1 ; WX 456 ; N agrave ; B 50 -15 458 734 ; C -1 ; WX 501 ; N Tcommaaccent ; B 122 -225 615 718 ; C -1 ; WX 592 ; N Cacute ; B 88 -19 640 929 ; C -1 ; WX 456 ; N atilde ; B 50 -15 486 722 ; C -1 ; WX 547 ; N Edotaccent ; B 71 0 625 901 ; C -1 ; WX 410 ; N scaron ; B 52 -15 453 734 ; C -1 ; WX 410 ; N scedilla ; B 52 -225 434 538 ; C -1 ; WX 228 ; N iacute ; B 78 0 367 734 ; C -1 ; WX 386 ; N lozenge ; B 72 0 443 728 ; C -1 ; WX 592 ; N Rcaron ; B 72 0 634 929 ; C -1 ; WX 638 ; N Gcommaaccent ; B 91 -225 655 737 ; C -1 ; WX 456 ; N ucircumflex ; B 77 -15 492 734 ; C -1 ; WX 456 ; N acircumflex ; B 50 -15 458 734 ; C -1 ; WX 547 ; N Amacron ; B 11 0 555 879 ; C -1 ; WX 273 ; N rcaron ; B 63 0 417 734 ; C -1 ; WX 410 ; N ccedilla ; B 62 -225 454 538 ; C -1 ; WX 501 ; N Zdotaccent ; B 19 0 607 901 ; C -1 ; WX 547 ; N Thorn ; B 71 0 584 718 ; C -1 ; WX 638 ; N Omacron ; B 86 -19 677 879 ; C -1 ; WX 592 ; N Racute ; B 72 0 634 929 ; C -1 ; WX 547 ; N Sacute ; B 74 -19 584 929 ; C -1 ; WX 527 ; N dcaron ; B 69 -15 662 718 ; C -1 ; WX 592 ; N Umacron ; B 101 -19 653 879 ; C -1 ; WX 456 ; N uring ; B 77 -15 492 756 ; C -1 ; WX 273 ; N threesuperior ; B 74 270 358 703 ; C -1 ; WX 638 ; N Ograve ; B 86 -19 677 929 ; C -1 ; WX 547 ; N Agrave ; B 11 0 536 929 ; C -1 ; WX 547 ; N Abreve ; B 11 0 562 926 ; C -1 ; WX 479 ; N multiply ; B 41 0 526 506 ; C -1 ; WX 456 ; N uacute ; B 77 -15 492 734 ; C -1 ; WX 501 ; N Tcaron ; B 122 0 615 929 ; C -1 ; WX 390 ; N partialdiff ; B 34 -38 451 714 ; C -1 ; WX 410 ; N ydieresis ; B 12 -214 492 706 ; C -1 ; WX 592 ; N Nacute ; B 62 0 655 929 ; C -1 ; WX 228 ; N icircumflex ; B 78 0 337 734 ; C -1 ; WX 547 ; N Ecircumflex ; B 71 0 625 929 ; C -1 ; WX 456 ; N adieresis ; B 50 -15 458 706 ; C -1 ; WX 456 ; N edieresis ; B 69 -15 474 706 ; C -1 ; WX 410 ; N cacute ; B 61 -15 458 734 ; C -1 ; WX 456 ; N nacute ; B 53 0 481 734 ; C -1 ; WX 456 ; N umacron ; B 77 -15 492 684 ; C -1 ; WX 592 ; N Ncaron ; B 62 0 655 929 ; C -1 ; WX 228 ; N Iacute ; B 75 0 401 929 ; C -1 ; WX 479 ; N plusminus ; B 32 0 507 506 ; C -1 ; WX 213 ; N brokenbar ; B 51 -150 259 700 ; C -1 ; WX 604 ; N registered ; B 44 -19 687 737 ; C -1 ; WX 638 ; N Gbreve ; B 91 -19 655 926 ; C -1 ; WX 228 ; N Idotaccent ; B 75 0 309 901 ; C -1 ; WX 492 ; N summation ; B 12 -10 550 706 ; C -1 ; WX 547 ; N Egrave ; B 71 0 625 929 ; C -1 ; WX 273 ; N racute ; B 63 0 390 734 ; C -1 ; WX 456 ; N omacron ; B 68 -14 479 684 ; C -1 ; WX 501 ; N Zacute ; B 19 0 607 929 ; C -1 ; WX 501 ; N Zcaron ; B 19 0 607 929 ; C -1 ; WX 450 ; N greaterequal ; B 21 0 509 674 ; C -1 ; WX 592 ; N Eth ; B 57 0 626 718 ; C -1 ; WX 592 ; N Ccedilla ; B 88 -225 640 737 ; C -1 ; WX 182 ; N lcommaaccent ; B 21 -225 252 718 ; C -1 ; WX 260 ; N tcaron ; B 84 -7 411 808 ; C -1 ; WX 456 ; N eogonek ; B 69 -225 474 538 ; C -1 ; WX 592 ; N Uogonek ; B 101 -225 653 718 ; C -1 ; WX 547 ; N Aacute ; B 11 0 560 929 ; C -1 ; WX 547 ; N Adieresis ; B 11 0 536 901 ; C -1 ; WX 456 ; N egrave ; B 69 -15 474 734 ; C -1 ; WX 410 ; N zacute ; B 25 0 468 734 ; C -1 ; WX 182 ; N iogonek ; B -50 -225 252 718 ; C -1 ; WX 638 ; N Oacute ; B 86 -19 677 929 ; C -1 ; WX 456 ; N oacute ; B 68 -14 481 734 ; C -1 ; WX 456 ; N amacron ; B 50 -15 476 684 ; C -1 ; WX 410 ; N sacute ; B 52 -15 458 734 ; C -1 ; WX 228 ; N idieresis ; B 78 0 341 706 ; C -1 ; WX 638 ; N Ocircumflex ; B 86 -19 677 929 ; C -1 ; WX 592 ; N Ugrave ; B 101 -19 653 929 ; C -1 ; WX 502 ; N Delta ; B 5 0 499 688 ; C -1 ; WX 456 ; N thorn ; B 11 -207 479 718 ; C -1 ; WX 273 ; N twosuperior ; B 52 281 368 703 ; C -1 ; WX 638 ; N Odieresis ; B 86 -19 677 901 ; C -1 ; WX 456 ; N mu ; B 20 -207 492 523 ; C -1 ; WX 228 ; N igrave ; B 78 0 254 734 ; C -1 ; WX 456 ; N ohungarumlaut ; B 68 -14 555 734 ; C -1 ; WX 547 ; N Eogonek ; B 71 -220 625 718 ; C -1 ; WX 456 ; N dcroat ; B 69 -15 565 718 ; C -1 ; WX 684 ; N threequarters ; B 106 -19 706 703 ; C -1 ; WX 547 ; N Scedilla ; B 74 -225 584 737 ; C -1 ; WX 245 ; N lcaron ; B 55 0 380 718 ; C -1 ; WX 547 ; N Kcommaaccent ; B 62 -225 662 718 ; C -1 ; WX 456 ; N Lacute ; B 62 0 455 929 ; C -1 ; WX 820 ; N trademark ; B 152 306 866 718 ; C -1 ; WX 456 ; N edotaccent ; B 69 -15 474 706 ; C -1 ; WX 228 ; N Igrave ; B 75 0 288 929 ; C -1 ; WX 228 ; N Imacron ; B 75 0 396 879 ; C -1 ; WX 456 ; N Lcaron ; B 62 0 467 718 ; C -1 ; WX 684 ; N onehalf ; B 93 -19 688 703 ; C -1 ; WX 450 ; N lessequal ; B 21 0 546 674 ; C -1 ; WX 456 ; N ocircumflex ; B 68 -14 479 734 ; C -1 ; WX 456 ; N ntilde ; B 53 0 486 722 ; C -1 ; WX 592 ; N Uhungarumlaut ; B 101 -19 657 929 ; C -1 ; WX 547 ; N Eacute ; B 71 0 625 929 ; C -1 ; WX 456 ; N emacron ; B 69 -15 476 684 ; C -1 ; WX 456 ; N gbreve ; B 34 -220 500 731 ; C -1 ; WX 684 ; N onequarter ; B 123 -19 658 703 ; C -1 ; WX 547 ; N Scaron ; B 74 -19 584 929 ; C -1 ; WX 547 ; N Scommaaccent ; B 74 -225 584 737 ; C -1 ; WX 638 ; N Ohungarumlaut ; B 86 -19 680 929 ; C -1 ; WX 328 ; N degree ; B 138 411 384 703 ; C -1 ; WX 456 ; N ograve ; B 68 -14 479 734 ; C -1 ; WX 592 ; N Ccaron ; B 88 -19 640 929 ; C -1 ; WX 456 ; N ugrave ; B 77 -15 492 734 ; C -1 ; WX 371 ; N radical ; B 65 -80 506 762 ; C -1 ; WX 592 ; N Dcaron ; B 66 0 626 929 ; C -1 ; WX 273 ; N rcommaaccent ; B 25 -225 365 538 ; C -1 ; WX 592 ; N Ntilde ; B 62 0 655 917 ; C -1 ; WX 456 ; N otilde ; B 68 -14 494 722 ; C -1 ; WX 592 ; N Rcommaaccent ; B 72 -225 634 718 ; C -1 ; WX 456 ; N Lcommaaccent ; B 62 -225 455 718 ; C -1 ; WX 547 ; N Atilde ; B 11 0 573 917 ; C -1 ; WX 547 ; N Aogonek ; B 11 -225 536 718 ; C -1 ; WX 547 ; N Aring ; B 11 0 536 931 ; C -1 ; WX 638 ; N Otilde ; B 86 -19 677 917 ; C -1 ; WX 410 ; N zdotaccent ; B 25 0 468 706 ; C -1 ; WX 547 ; N Ecaron ; B 71 0 625 929 ; C -1 ; WX 228 ; N Iogonek ; B -27 -225 279 718 ; C -1 ; WX 410 ; N kcommaaccent ; B 55 -225 492 718 ; C -1 ; WX 479 ; N minus ; B 70 216 497 289 ; C -1 ; WX 228 ; N Icircumflex ; B 75 0 371 929 ; C -1 ; WX 456 ; N ncaron ; B 53 0 476 734 ; C -1 ; WX 228 ; N tcommaaccent ; B 52 -225 302 669 ; C -1 ; WX 479 ; N logicalnot ; B 87 108 515 390 ; C -1 ; WX 456 ; N odieresis ; B 68 -14 479 706 ; C -1 ; WX 456 ; N udieresis ; B 77 -15 492 706 ; C -1 ; WX 450 ; N notequal ; B 28 -35 511 551 ; C -1 ; WX 456 ; N gcommaaccent ; B 34 -220 500 822 ; C -1 ; WX 456 ; N eth ; B 67 -15 506 737 ; C -1 ; WX 410 ; N zcaron ; B 25 0 468 734 ; C -1 ; WX 456 ; N ncommaaccent ; B 53 -225 470 538 ; C -1 ; WX 273 ; N onesuperior ; B 136 281 305 703 ; C -1 ; WX 228 ; N imacron ; B 78 0 342 684 ; EndCharMetrics StartKernData StartKernPairs 2705 KPX A C -30 KPX A Cacute -30 KPX A Ccaron -30 KPX A Ccedilla -30 KPX A G -30 KPX A Gbreve -30 KPX A Gcommaaccent -30 KPX A O -30 KPX A Oacute -30 KPX A Ocircumflex -30 KPX A Odieresis -30 KPX A Ograve -30 KPX A Ohungarumlaut -30 KPX A Omacron -30 KPX A Oslash -30 KPX A Otilde -30 KPX A Q -30 KPX A T -120 KPX A Tcaron -120 KPX A Tcommaaccent -120 KPX A U -50 KPX A Uacute -50 KPX A Ucircumflex -50 KPX A Udieresis -50 KPX A Ugrave -50 KPX A Uhungarumlaut -50 KPX A Umacron -50 KPX A Uogonek -50 KPX A Uring -50 KPX A V -70 KPX A W -50 KPX A Y -100 KPX A Yacute -100 KPX A Ydieresis -100 KPX A u -30 KPX A uacute -30 KPX A ucircumflex -30 KPX A udieresis -30 KPX A ugrave -30 KPX A uhungarumlaut -30 KPX A umacron -30 KPX A uogonek -30 KPX A uring -30 KPX A v -40 KPX A w -40 KPX A y -40 KPX A yacute -40 KPX A ydieresis -40 KPX Aacute C -30 KPX Aacute Cacute -30 KPX Aacute Ccaron -30 KPX Aacute Ccedilla -30 KPX Aacute G -30 KPX Aacute Gbreve -30 KPX Aacute Gcommaaccent -30 KPX Aacute O -30 KPX Aacute Oacute -30 KPX Aacute Ocircumflex -30 KPX Aacute Odieresis -30 KPX Aacute Ograve -30 KPX Aacute Ohungarumlaut -30 KPX Aacute Omacron -30 KPX Aacute Oslash -30 KPX Aacute Otilde -30 KPX Aacute Q -30 KPX Aacute T -120 KPX Aacute Tcaron -120 KPX Aacute Tcommaaccent -120 KPX Aacute U -50 KPX Aacute Uacute -50 KPX Aacute Ucircumflex -50 KPX Aacute Udieresis -50 KPX Aacute Ugrave -50 KPX Aacute Uhungarumlaut -50 KPX Aacute Umacron -50 KPX Aacute Uogonek -50 KPX Aacute Uring -50 KPX Aacute V -70 KPX Aacute W -50 KPX Aacute Y -100 KPX Aacute Yacute -100 KPX Aacute Ydieresis -100 KPX Aacute u -30 KPX Aacute uacute -30 KPX Aacute ucircumflex -30 KPX Aacute udieresis -30 KPX Aacute ugrave -30 KPX Aacute uhungarumlaut -30 KPX Aacute umacron -30 KPX Aacute uogonek -30 KPX Aacute uring -30 KPX Aacute v -40 KPX Aacute w -40 KPX Aacute y -40 KPX Aacute yacute -40 KPX Aacute ydieresis -40 KPX Abreve C -30 KPX Abreve Cacute -30 KPX Abreve Ccaron -30 KPX Abreve Ccedilla -30 KPX Abreve G -30 KPX Abreve Gbreve -30 KPX Abreve Gcommaaccent -30 KPX Abreve O -30 KPX Abreve Oacute -30 KPX Abreve Ocircumflex -30 KPX Abreve Odieresis -30 KPX Abreve Ograve -30 KPX Abreve Ohungarumlaut -30 KPX Abreve Omacron -30 KPX Abreve Oslash -30 KPX Abreve Otilde -30 KPX Abreve Q -30 KPX Abreve T -120 KPX Abreve Tcaron -120 KPX Abreve Tcommaaccent -120 KPX Abreve U -50 KPX Abreve Uacute -50 KPX Abreve Ucircumflex -50 KPX Abreve Udieresis -50 KPX Abreve Ugrave -50 KPX Abreve Uhungarumlaut -50 KPX Abreve Umacron -50 KPX Abreve Uogonek -50 KPX Abreve Uring -50 KPX Abreve V -70 KPX Abreve W -50 KPX Abreve Y -100 KPX Abreve Yacute -100 KPX Abreve Ydieresis -100 KPX Abreve u -30 KPX Abreve uacute -30 KPX Abreve ucircumflex -30 KPX Abreve udieresis -30 KPX Abreve ugrave -30 KPX Abreve uhungarumlaut -30 KPX Abreve umacron -30 KPX Abreve uogonek -30 KPX Abreve uring -30 KPX Abreve v -40 KPX Abreve w -40 KPX Abreve y -40 KPX Abreve yacute -40 KPX Abreve ydieresis -40 KPX Acircumflex C -30 KPX Acircumflex Cacute -30 KPX Acircumflex Ccaron -30 KPX Acircumflex Ccedilla -30 KPX Acircumflex G -30 KPX Acircumflex Gbreve -30 KPX Acircumflex Gcommaaccent -30 KPX Acircumflex O -30 KPX Acircumflex Oacute -30 KPX Acircumflex Ocircumflex -30 KPX Acircumflex Odieresis -30 KPX Acircumflex Ograve -30 KPX Acircumflex Ohungarumlaut -30 KPX Acircumflex Omacron -30 KPX Acircumflex Oslash -30 KPX Acircumflex Otilde -30 KPX Acircumflex Q -30 KPX Acircumflex T -120 KPX Acircumflex Tcaron -120 KPX Acircumflex Tcommaaccent -120 KPX Acircumflex U -50 KPX Acircumflex Uacute -50 KPX Acircumflex Ucircumflex -50 KPX Acircumflex Udieresis -50 KPX Acircumflex Ugrave -50 KPX Acircumflex Uhungarumlaut -50 KPX Acircumflex Umacron -50 KPX Acircumflex Uogonek -50 KPX Acircumflex Uring -50 KPX Acircumflex V -70 KPX Acircumflex W -50 KPX Acircumflex Y -100 KPX Acircumflex Yacute -100 KPX Acircumflex Ydieresis -100 KPX Acircumflex u -30 KPX Acircumflex uacute -30 KPX Acircumflex ucircumflex -30 KPX Acircumflex udieresis -30 KPX Acircumflex ugrave -30 KPX Acircumflex uhungarumlaut -30 KPX Acircumflex umacron -30 KPX Acircumflex uogonek -30 KPX Acircumflex uring -30 KPX Acircumflex v -40 KPX Acircumflex w -40 KPX Acircumflex y -40 KPX Acircumflex yacute -40 KPX Acircumflex ydieresis -40 KPX Adieresis C -30 KPX Adieresis Cacute -30 KPX Adieresis Ccaron -30 KPX Adieresis Ccedilla -30 KPX Adieresis G -30 KPX Adieresis Gbreve -30 KPX Adieresis Gcommaaccent -30 KPX Adieresis O -30 KPX Adieresis Oacute -30 KPX Adieresis Ocircumflex -30 KPX Adieresis Odieresis -30 KPX Adieresis Ograve -30 KPX Adieresis Ohungarumlaut -30 KPX Adieresis Omacron -30 KPX Adieresis Oslash -30 KPX Adieresis Otilde -30 KPX Adieresis Q -30 KPX Adieresis T -120 KPX Adieresis Tcaron -120 KPX Adieresis Tcommaaccent -120 KPX Adieresis U -50 KPX Adieresis Uacute -50 KPX Adieresis Ucircumflex -50 KPX Adieresis Udieresis -50 KPX Adieresis Ugrave -50 KPX Adieresis Uhungarumlaut -50 KPX Adieresis Umacron -50 KPX Adieresis Uogonek -50 KPX Adieresis Uring -50 KPX Adieresis V -70 KPX Adieresis W -50 KPX Adieresis Y -100 KPX Adieresis Yacute -100 KPX Adieresis Ydieresis -100 KPX Adieresis u -30 KPX Adieresis uacute -30 KPX Adieresis ucircumflex -30 KPX Adieresis udieresis -30 KPX Adieresis ugrave -30 KPX Adieresis uhungarumlaut -30 KPX Adieresis umacron -30 KPX Adieresis uogonek -30 KPX Adieresis uring -30 KPX Adieresis v -40 KPX Adieresis w -40 KPX Adieresis y -40 KPX Adieresis yacute -40 KPX Adieresis ydieresis -40 KPX Agrave C -30 KPX Agrave Cacute -30 KPX Agrave Ccaron -30 KPX Agrave Ccedilla -30 KPX Agrave G -30 KPX Agrave Gbreve -30 KPX Agrave Gcommaaccent -30 KPX Agrave O -30 KPX Agrave Oacute -30 KPX Agrave Ocircumflex -30 KPX Agrave Odieresis -30 KPX Agrave Ograve -30 KPX Agrave Ohungarumlaut -30 KPX Agrave Omacron -30 KPX Agrave Oslash -30 KPX Agrave Otilde -30 KPX Agrave Q -30 KPX Agrave T -120 KPX Agrave Tcaron -120 KPX Agrave Tcommaaccent -120 KPX Agrave U -50 KPX Agrave Uacute -50 KPX Agrave Ucircumflex -50 KPX Agrave Udieresis -50 KPX Agrave Ugrave -50 KPX Agrave Uhungarumlaut -50 KPX Agrave Umacron -50 KPX Agrave Uogonek -50 KPX Agrave Uring -50 KPX Agrave V -70 KPX Agrave W -50 KPX Agrave Y -100 KPX Agrave Yacute -100 KPX Agrave Ydieresis -100 KPX Agrave u -30 KPX Agrave uacute -30 KPX Agrave ucircumflex -30 KPX Agrave udieresis -30 KPX Agrave ugrave -30 KPX Agrave uhungarumlaut -30 KPX Agrave umacron -30 KPX Agrave uogonek -30 KPX Agrave uring -30 KPX Agrave v -40 KPX Agrave w -40 KPX Agrave y -40 KPX Agrave yacute -40 KPX Agrave ydieresis -40 KPX Amacron C -30 KPX Amacron Cacute -30 KPX Amacron Ccaron -30 KPX Amacron Ccedilla -30 KPX Amacron G -30 KPX Amacron Gbreve -30 KPX Amacron Gcommaaccent -30 KPX Amacron O -30 KPX Amacron Oacute -30 KPX Amacron Ocircumflex -30 KPX Amacron Odieresis -30 KPX Amacron Ograve -30 KPX Amacron Ohungarumlaut -30 KPX Amacron Omacron -30 KPX Amacron Oslash -30 KPX Amacron Otilde -30 KPX Amacron Q -30 KPX Amacron T -120 KPX Amacron Tcaron -120 KPX Amacron Tcommaaccent -120 KPX Amacron U -50 KPX Amacron Uacute -50 KPX Amacron Ucircumflex -50 KPX Amacron Udieresis -50 KPX Amacron Ugrave -50 KPX Amacron Uhungarumlaut -50 KPX Amacron Umacron -50 KPX Amacron Uogonek -50 KPX Amacron Uring -50 KPX Amacron V -70 KPX Amacron W -50 KPX Amacron Y -100 KPX Amacron Yacute -100 KPX Amacron Ydieresis -100 KPX Amacron u -30 KPX Amacron uacute -30 KPX Amacron ucircumflex -30 KPX Amacron udieresis -30 KPX Amacron ugrave -30 KPX Amacron uhungarumlaut -30 KPX Amacron umacron -30 KPX Amacron uogonek -30 KPX Amacron uring -30 KPX Amacron v -40 KPX Amacron w -40 KPX Amacron y -40 KPX Amacron yacute -40 KPX Amacron ydieresis -40 KPX Aogonek C -30 KPX Aogonek Cacute -30 KPX Aogonek Ccaron -30 KPX Aogonek Ccedilla -30 KPX Aogonek G -30 KPX Aogonek Gbreve -30 KPX Aogonek Gcommaaccent -30 KPX Aogonek O -30 KPX Aogonek Oacute -30 KPX Aogonek Ocircumflex -30 KPX Aogonek Odieresis -30 KPX Aogonek Ograve -30 KPX Aogonek Ohungarumlaut -30 KPX Aogonek Omacron -30 KPX Aogonek Oslash -30 KPX Aogonek Otilde -30 KPX Aogonek Q -30 KPX Aogonek T -120 KPX Aogonek Tcaron -120 KPX Aogonek Tcommaaccent -120 KPX Aogonek U -50 KPX Aogonek Uacute -50 KPX Aogonek Ucircumflex -50 KPX Aogonek Udieresis -50 KPX Aogonek Ugrave -50 KPX Aogonek Uhungarumlaut -50 KPX Aogonek Umacron -50 KPX Aogonek Uogonek -50 KPX Aogonek Uring -50 KPX Aogonek V -70 KPX Aogonek W -50 KPX Aogonek Y -100 KPX Aogonek Yacute -100 KPX Aogonek Ydieresis -100 KPX Aogonek u -30 KPX Aogonek uacute -30 KPX Aogonek ucircumflex -30 KPX Aogonek udieresis -30 KPX Aogonek ugrave -30 KPX Aogonek uhungarumlaut -30 KPX Aogonek umacron -30 KPX Aogonek uogonek -30 KPX Aogonek uring -30 KPX Aogonek v -40 KPX Aogonek w -40 KPX Aogonek y -40 KPX Aogonek yacute -40 KPX Aogonek ydieresis -40 KPX Aring C -30 KPX Aring Cacute -30 KPX Aring Ccaron -30 KPX Aring Ccedilla -30 KPX Aring G -30 KPX Aring Gbreve -30 KPX Aring Gcommaaccent -30 KPX Aring O -30 KPX Aring Oacute -30 KPX Aring Ocircumflex -30 KPX Aring Odieresis -30 KPX Aring Ograve -30 KPX Aring Ohungarumlaut -30 KPX Aring Omacron -30 KPX Aring Oslash -30 KPX Aring Otilde -30 KPX Aring Q -30 KPX Aring T -120 KPX Aring Tcaron -120 KPX Aring Tcommaaccent -120 KPX Aring U -50 KPX Aring Uacute -50 KPX Aring Ucircumflex -50 KPX Aring Udieresis -50 KPX Aring Ugrave -50 KPX Aring Uhungarumlaut -50 KPX Aring Umacron -50 KPX Aring Uogonek -50 KPX Aring Uring -50 KPX Aring V -70 KPX Aring W -50 KPX Aring Y -100 KPX Aring Yacute -100 KPX Aring Ydieresis -100 KPX Aring u -30 KPX Aring uacute -30 KPX Aring ucircumflex -30 KPX Aring udieresis -30 KPX Aring ugrave -30 KPX Aring uhungarumlaut -30 KPX Aring umacron -30 KPX Aring uogonek -30 KPX Aring uring -30 KPX Aring v -40 KPX Aring w -40 KPX Aring y -40 KPX Aring yacute -40 KPX Aring ydieresis -40 KPX Atilde C -30 KPX Atilde Cacute -30 KPX Atilde Ccaron -30 KPX Atilde Ccedilla -30 KPX Atilde G -30 KPX Atilde Gbreve -30 KPX Atilde Gcommaaccent -30 KPX Atilde O -30 KPX Atilde Oacute -30 KPX Atilde Ocircumflex -30 KPX Atilde Odieresis -30 KPX Atilde Ograve -30 KPX Atilde Ohungarumlaut -30 KPX Atilde Omacron -30 KPX Atilde Oslash -30 KPX Atilde Otilde -30 KPX Atilde Q -30 KPX Atilde T -120 KPX Atilde Tcaron -120 KPX Atilde Tcommaaccent -120 KPX Atilde U -50 KPX Atilde Uacute -50 KPX Atilde Ucircumflex -50 KPX Atilde Udieresis -50 KPX Atilde Ugrave -50 KPX Atilde Uhungarumlaut -50 KPX Atilde Umacron -50 KPX Atilde Uogonek -50 KPX Atilde Uring -50 KPX Atilde V -70 KPX Atilde W -50 KPX Atilde Y -100 KPX Atilde Yacute -100 KPX Atilde Ydieresis -100 KPX Atilde u -30 KPX Atilde uacute -30 KPX Atilde ucircumflex -30 KPX Atilde udieresis -30 KPX Atilde ugrave -30 KPX Atilde uhungarumlaut -30 KPX Atilde umacron -30 KPX Atilde uogonek -30 KPX Atilde uring -30 KPX Atilde v -40 KPX Atilde w -40 KPX Atilde y -40 KPX Atilde yacute -40 KPX Atilde ydieresis -40 KPX B U -10 KPX B Uacute -10 KPX B Ucircumflex -10 KPX B Udieresis -10 KPX B Ugrave -10 KPX B Uhungarumlaut -10 KPX B Umacron -10 KPX B Uogonek -10 KPX B Uring -10 KPX B comma -20 KPX B period -20 KPX C comma -30 KPX C period -30 KPX Cacute comma -30 KPX Cacute period -30 KPX Ccaron comma -30 KPX Ccaron period -30 KPX Ccedilla comma -30 KPX Ccedilla period -30 KPX D A -40 KPX D Aacute -40 KPX D Abreve -40 KPX D Acircumflex -40 KPX D Adieresis -40 KPX D Agrave -40 KPX D Amacron -40 KPX D Aogonek -40 KPX D Aring -40 KPX D Atilde -40 KPX D V -70 KPX D W -40 KPX D Y -90 KPX D Yacute -90 KPX D Ydieresis -90 KPX D comma -70 KPX D period -70 KPX Dcaron A -40 KPX Dcaron Aacute -40 KPX Dcaron Abreve -40 KPX Dcaron Acircumflex -40 KPX Dcaron Adieresis -40 KPX Dcaron Agrave -40 KPX Dcaron Amacron -40 KPX Dcaron Aogonek -40 KPX Dcaron Aring -40 KPX Dcaron Atilde -40 KPX Dcaron V -70 KPX Dcaron W -40 KPX Dcaron Y -90 KPX Dcaron Yacute -90 KPX Dcaron Ydieresis -90 KPX Dcaron comma -70 KPX Dcaron period -70 KPX Dcroat A -40 KPX Dcroat Aacute -40 KPX Dcroat Abreve -40 KPX Dcroat Acircumflex -40 KPX Dcroat Adieresis -40 KPX Dcroat Agrave -40 KPX Dcroat Amacron -40 KPX Dcroat Aogonek -40 KPX Dcroat Aring -40 KPX Dcroat Atilde -40 KPX Dcroat V -70 KPX Dcroat W -40 KPX Dcroat Y -90 KPX Dcroat Yacute -90 KPX Dcroat Ydieresis -90 KPX Dcroat comma -70 KPX Dcroat period -70 KPX F A -80 KPX F Aacute -80 KPX F Abreve -80 KPX F Acircumflex -80 KPX F Adieresis -80 KPX F Agrave -80 KPX F Amacron -80 KPX F Aogonek -80 KPX F Aring -80 KPX F Atilde -80 KPX F a -50 KPX F aacute -50 KPX F abreve -50 KPX F acircumflex -50 KPX F adieresis -50 KPX F agrave -50 KPX F amacron -50 KPX F aogonek -50 KPX F aring -50 KPX F atilde -50 KPX F comma -150 KPX F e -30 KPX F eacute -30 KPX F ecaron -30 KPX F ecircumflex -30 KPX F edieresis -30 KPX F edotaccent -30 KPX F egrave -30 KPX F emacron -30 KPX F eogonek -30 KPX F o -30 KPX F oacute -30 KPX F ocircumflex -30 KPX F odieresis -30 KPX F ograve -30 KPX F ohungarumlaut -30 KPX F omacron -30 KPX F oslash -30 KPX F otilde -30 KPX F period -150 KPX F r -45 KPX F racute -45 KPX F rcaron -45 KPX F rcommaaccent -45 KPX J A -20 KPX J Aacute -20 KPX J Abreve -20 KPX J Acircumflex -20 KPX J Adieresis -20 KPX J Agrave -20 KPX J Amacron -20 KPX J Aogonek -20 KPX J Aring -20 KPX J Atilde -20 KPX J a -20 KPX J aacute -20 KPX J abreve -20 KPX J acircumflex -20 KPX J adieresis -20 KPX J agrave -20 KPX J amacron -20 KPX J aogonek -20 KPX J aring -20 KPX J atilde -20 KPX J comma -30 KPX J period -30 KPX J u -20 KPX J uacute -20 KPX J ucircumflex -20 KPX J udieresis -20 KPX J ugrave -20 KPX J uhungarumlaut -20 KPX J umacron -20 KPX J uogonek -20 KPX J uring -20 KPX K O -50 KPX K Oacute -50 KPX K Ocircumflex -50 KPX K Odieresis -50 KPX K Ograve -50 KPX K Ohungarumlaut -50 KPX K Omacron -50 KPX K Oslash -50 KPX K Otilde -50 KPX K e -40 KPX K eacute -40 KPX K ecaron -40 KPX K ecircumflex -40 KPX K edieresis -40 KPX K edotaccent -40 KPX K egrave -40 KPX K emacron -40 KPX K eogonek -40 KPX K o -40 KPX K oacute -40 KPX K ocircumflex -40 KPX K odieresis -40 KPX K ograve -40 KPX K ohungarumlaut -40 KPX K omacron -40 KPX K oslash -40 KPX K otilde -40 KPX K u -30 KPX K uacute -30 KPX K ucircumflex -30 KPX K udieresis -30 KPX K ugrave -30 KPX K uhungarumlaut -30 KPX K umacron -30 KPX K uogonek -30 KPX K uring -30 KPX K y -50 KPX K yacute -50 KPX K ydieresis -50 KPX Kcommaaccent O -50 KPX Kcommaaccent Oacute -50 KPX Kcommaaccent Ocircumflex -50 KPX Kcommaaccent Odieresis -50 KPX Kcommaaccent Ograve -50 KPX Kcommaaccent Ohungarumlaut -50 KPX Kcommaaccent Omacron -50 KPX Kcommaaccent Oslash -50 KPX Kcommaaccent Otilde -50 KPX Kcommaaccent e -40 KPX Kcommaaccent eacute -40 KPX Kcommaaccent ecaron -40 KPX Kcommaaccent ecircumflex -40 KPX Kcommaaccent edieresis -40 KPX Kcommaaccent edotaccent -40 KPX Kcommaaccent egrave -40 KPX Kcommaaccent emacron -40 KPX Kcommaaccent eogonek -40 KPX Kcommaaccent o -40 KPX Kcommaaccent oacute -40 KPX Kcommaaccent ocircumflex -40 KPX Kcommaaccent odieresis -40 KPX Kcommaaccent ograve -40 KPX Kcommaaccent ohungarumlaut -40 KPX Kcommaaccent omacron -40 KPX Kcommaaccent oslash -40 KPX Kcommaaccent otilde -40 KPX Kcommaaccent u -30 KPX Kcommaaccent uacute -30 KPX Kcommaaccent ucircumflex -30 KPX Kcommaaccent udieresis -30 KPX Kcommaaccent ugrave -30 KPX Kcommaaccent uhungarumlaut -30 KPX Kcommaaccent umacron -30 KPX Kcommaaccent uogonek -30 KPX Kcommaaccent uring -30 KPX Kcommaaccent y -50 KPX Kcommaaccent yacute -50 KPX Kcommaaccent ydieresis -50 KPX L T -110 KPX L Tcaron -110 KPX L Tcommaaccent -110 KPX L V -110 KPX L W -70 KPX L Y -140 KPX L Yacute -140 KPX L Ydieresis -140 KPX L quotedblright -140 KPX L quoteright -160 KPX L y -30 KPX L yacute -30 KPX L ydieresis -30 KPX Lacute T -110 KPX Lacute Tcaron -110 KPX Lacute Tcommaaccent -110 KPX Lacute V -110 KPX Lacute W -70 KPX Lacute Y -140 KPX Lacute Yacute -140 KPX Lacute Ydieresis -140 KPX Lacute quotedblright -140 KPX Lacute quoteright -160 KPX Lacute y -30 KPX Lacute yacute -30 KPX Lacute ydieresis -30 KPX Lcaron T -110 KPX Lcaron Tcaron -110 KPX Lcaron Tcommaaccent -110 KPX Lcaron V -110 KPX Lcaron W -70 KPX Lcaron Y -140 KPX Lcaron Yacute -140 KPX Lcaron Ydieresis -140 KPX Lcaron quotedblright -140 KPX Lcaron quoteright -160 KPX Lcaron y -30 KPX Lcaron yacute -30 KPX Lcaron ydieresis -30 KPX Lcommaaccent T -110 KPX Lcommaaccent Tcaron -110 KPX Lcommaaccent Tcommaaccent -110 KPX Lcommaaccent V -110 KPX Lcommaaccent W -70 KPX Lcommaaccent Y -140 KPX Lcommaaccent Yacute -140 KPX Lcommaaccent Ydieresis -140 KPX Lcommaaccent quotedblright -140 KPX Lcommaaccent quoteright -160 KPX Lcommaaccent y -30 KPX Lcommaaccent yacute -30 KPX Lcommaaccent ydieresis -30 KPX Lslash T -110 KPX Lslash Tcaron -110 KPX Lslash Tcommaaccent -110 KPX Lslash V -110 KPX Lslash W -70 KPX Lslash Y -140 KPX Lslash Yacute -140 KPX Lslash Ydieresis -140 KPX Lslash quotedblright -140 KPX Lslash quoteright -160 KPX Lslash y -30 KPX Lslash yacute -30 KPX Lslash ydieresis -30 KPX O A -20 KPX O Aacute -20 KPX O Abreve -20 KPX O Acircumflex -20 KPX O Adieresis -20 KPX O Agrave -20 KPX O Amacron -20 KPX O Aogonek -20 KPX O Aring -20 KPX O Atilde -20 KPX O T -40 KPX O Tcaron -40 KPX O Tcommaaccent -40 KPX O V -50 KPX O W -30 KPX O X -60 KPX O Y -70 KPX O Yacute -70 KPX O Ydieresis -70 KPX O comma -40 KPX O period -40 KPX Oacute A -20 KPX Oacute Aacute -20 KPX Oacute Abreve -20 KPX Oacute Acircumflex -20 KPX Oacute Adieresis -20 KPX Oacute Agrave -20 KPX Oacute Amacron -20 KPX Oacute Aogonek -20 KPX Oacute Aring -20 KPX Oacute Atilde -20 KPX Oacute T -40 KPX Oacute Tcaron -40 KPX Oacute Tcommaaccent -40 KPX Oacute V -50 KPX Oacute W -30 KPX Oacute X -60 KPX Oacute Y -70 KPX Oacute Yacute -70 KPX Oacute Ydieresis -70 KPX Oacute comma -40 KPX Oacute period -40 KPX Ocircumflex A -20 KPX Ocircumflex Aacute -20 KPX Ocircumflex Abreve -20 KPX Ocircumflex Acircumflex -20 KPX Ocircumflex Adieresis -20 KPX Ocircumflex Agrave -20 KPX Ocircumflex Amacron -20 KPX Ocircumflex Aogonek -20 KPX Ocircumflex Aring -20 KPX Ocircumflex Atilde -20 KPX Ocircumflex T -40 KPX Ocircumflex Tcaron -40 KPX Ocircumflex Tcommaaccent -40 KPX Ocircumflex V -50 KPX Ocircumflex W -30 KPX Ocircumflex X -60 KPX Ocircumflex Y -70 KPX Ocircumflex Yacute -70 KPX Ocircumflex Ydieresis -70 KPX Ocircumflex comma -40 KPX Ocircumflex period -40 KPX Odieresis A -20 KPX Odieresis Aacute -20 KPX Odieresis Abreve -20 KPX Odieresis Acircumflex -20 KPX Odieresis Adieresis -20 KPX Odieresis Agrave -20 KPX Odieresis Amacron -20 KPX Odieresis Aogonek -20 KPX Odieresis Aring -20 KPX Odieresis Atilde -20 KPX Odieresis T -40 KPX Odieresis Tcaron -40 KPX Odieresis Tcommaaccent -40 KPX Odieresis V -50 KPX Odieresis W -30 KPX Odieresis X -60 KPX Odieresis Y -70 KPX Odieresis Yacute -70 KPX Odieresis Ydieresis -70 KPX Odieresis comma -40 KPX Odieresis period -40 KPX Ograve A -20 KPX Ograve Aacute -20 KPX Ograve Abreve -20 KPX Ograve Acircumflex -20 KPX Ograve Adieresis -20 KPX Ograve Agrave -20 KPX Ograve Amacron -20 KPX Ograve Aogonek -20 KPX Ograve Aring -20 KPX Ograve Atilde -20 KPX Ograve T -40 KPX Ograve Tcaron -40 KPX Ograve Tcommaaccent -40 KPX Ograve V -50 KPX Ograve W -30 KPX Ograve X -60 KPX Ograve Y -70 KPX Ograve Yacute -70 KPX Ograve Ydieresis -70 KPX Ograve comma -40 KPX Ograve period -40 KPX Ohungarumlaut A -20 KPX Ohungarumlaut Aacute -20 KPX Ohungarumlaut Abreve -20 KPX Ohungarumlaut Acircumflex -20 KPX Ohungarumlaut Adieresis -20 KPX Ohungarumlaut Agrave -20 KPX Ohungarumlaut Amacron -20 KPX Ohungarumlaut Aogonek -20 KPX Ohungarumlaut Aring -20 KPX Ohungarumlaut Atilde -20 KPX Ohungarumlaut T -40 KPX Ohungarumlaut Tcaron -40 KPX Ohungarumlaut Tcommaaccent -40 KPX Ohungarumlaut V -50 KPX Ohungarumlaut W -30 KPX Ohungarumlaut X -60 KPX Ohungarumlaut Y -70 KPX Ohungarumlaut Yacute -70 KPX Ohungarumlaut Ydieresis -70 KPX Ohungarumlaut comma -40 KPX Ohungarumlaut period -40 KPX Omacron A -20 KPX Omacron Aacute -20 KPX Omacron Abreve -20 KPX Omacron Acircumflex -20 KPX Omacron Adieresis -20 KPX Omacron Agrave -20 KPX Omacron Amacron -20 KPX Omacron Aogonek -20 KPX Omacron Aring -20 KPX Omacron Atilde -20 KPX Omacron T -40 KPX Omacron Tcaron -40 KPX Omacron Tcommaaccent -40 KPX Omacron V -50 KPX Omacron W -30 KPX Omacron X -60 KPX Omacron Y -70 KPX Omacron Yacute -70 KPX Omacron Ydieresis -70 KPX Omacron comma -40 KPX Omacron period -40 KPX Oslash A -20 KPX Oslash Aacute -20 KPX Oslash Abreve -20 KPX Oslash Acircumflex -20 KPX Oslash Adieresis -20 KPX Oslash Agrave -20 KPX Oslash Amacron -20 KPX Oslash Aogonek -20 KPX Oslash Aring -20 KPX Oslash Atilde -20 KPX Oslash T -40 KPX Oslash Tcaron -40 KPX Oslash Tcommaaccent -40 KPX Oslash V -50 KPX Oslash W -30 KPX Oslash X -60 KPX Oslash Y -70 KPX Oslash Yacute -70 KPX Oslash Ydieresis -70 KPX Oslash comma -40 KPX Oslash period -40 KPX Otilde A -20 KPX Otilde Aacute -20 KPX Otilde Abreve -20 KPX Otilde Acircumflex -20 KPX Otilde Adieresis -20 KPX Otilde Agrave -20 KPX Otilde Amacron -20 KPX Otilde Aogonek -20 KPX Otilde Aring -20 KPX Otilde Atilde -20 KPX Otilde T -40 KPX Otilde Tcaron -40 KPX Otilde Tcommaaccent -40 KPX Otilde V -50 KPX Otilde W -30 KPX Otilde X -60 KPX Otilde Y -70 KPX Otilde Yacute -70 KPX Otilde Ydieresis -70 KPX Otilde comma -40 KPX Otilde period -40 KPX P A -120 KPX P Aacute -120 KPX P Abreve -120 KPX P Acircumflex -120 KPX P Adieresis -120 KPX P Agrave -120 KPX P Amacron -120 KPX P Aogonek -120 KPX P Aring -120 KPX P Atilde -120 KPX P a -40 KPX P aacute -40 KPX P abreve -40 KPX P acircumflex -40 KPX P adieresis -40 KPX P agrave -40 KPX P amacron -40 KPX P aogonek -40 KPX P aring -40 KPX P atilde -40 KPX P comma -180 KPX P e -50 KPX P eacute -50 KPX P ecaron -50 KPX P ecircumflex -50 KPX P edieresis -50 KPX P edotaccent -50 KPX P egrave -50 KPX P emacron -50 KPX P eogonek -50 KPX P o -50 KPX P oacute -50 KPX P ocircumflex -50 KPX P odieresis -50 KPX P ograve -50 KPX P ohungarumlaut -50 KPX P omacron -50 KPX P oslash -50 KPX P otilde -50 KPX P period -180 KPX Q U -10 KPX Q Uacute -10 KPX Q Ucircumflex -10 KPX Q Udieresis -10 KPX Q Ugrave -10 KPX Q Uhungarumlaut -10 KPX Q Umacron -10 KPX Q Uogonek -10 KPX Q Uring -10 KPX R O -20 KPX R Oacute -20 KPX R Ocircumflex -20 KPX R Odieresis -20 KPX R Ograve -20 KPX R Ohungarumlaut -20 KPX R Omacron -20 KPX R Oslash -20 KPX R Otilde -20 KPX R T -30 KPX R Tcaron -30 KPX R Tcommaaccent -30 KPX R U -40 KPX R Uacute -40 KPX R Ucircumflex -40 KPX R Udieresis -40 KPX R Ugrave -40 KPX R Uhungarumlaut -40 KPX R Umacron -40 KPX R Uogonek -40 KPX R Uring -40 KPX R V -50 KPX R W -30 KPX R Y -50 KPX R Yacute -50 KPX R Ydieresis -50 KPX Racute O -20 KPX Racute Oacute -20 KPX Racute Ocircumflex -20 KPX Racute Odieresis -20 KPX Racute Ograve -20 KPX Racute Ohungarumlaut -20 KPX Racute Omacron -20 KPX Racute Oslash -20 KPX Racute Otilde -20 KPX Racute T -30 KPX Racute Tcaron -30 KPX Racute Tcommaaccent -30 KPX Racute U -40 KPX Racute Uacute -40 KPX Racute Ucircumflex -40 KPX Racute Udieresis -40 KPX Racute Ugrave -40 KPX Racute Uhungarumlaut -40 KPX Racute Umacron -40 KPX Racute Uogonek -40 KPX Racute Uring -40 KPX Racute V -50 KPX Racute W -30 KPX Racute Y -50 KPX Racute Yacute -50 KPX Racute Ydieresis -50 KPX Rcaron O -20 KPX Rcaron Oacute -20 KPX Rcaron Ocircumflex -20 KPX Rcaron Odieresis -20 KPX Rcaron Ograve -20 KPX Rcaron Ohungarumlaut -20 KPX Rcaron Omacron -20 KPX Rcaron Oslash -20 KPX Rcaron Otilde -20 KPX Rcaron T -30 KPX Rcaron Tcaron -30 KPX Rcaron Tcommaaccent -30 KPX Rcaron U -40 KPX Rcaron Uacute -40 KPX Rcaron Ucircumflex -40 KPX Rcaron Udieresis -40 KPX Rcaron Ugrave -40 KPX Rcaron Uhungarumlaut -40 KPX Rcaron Umacron -40 KPX Rcaron Uogonek -40 KPX Rcaron Uring -40 KPX Rcaron V -50 KPX Rcaron W -30 KPX Rcaron Y -50 KPX Rcaron Yacute -50 KPX Rcaron Ydieresis -50 KPX Rcommaaccent O -20 KPX Rcommaaccent Oacute -20 KPX Rcommaaccent Ocircumflex -20 KPX Rcommaaccent Odieresis -20 KPX Rcommaaccent Ograve -20 KPX Rcommaaccent Ohungarumlaut -20 KPX Rcommaaccent Omacron -20 KPX Rcommaaccent Oslash -20 KPX Rcommaaccent Otilde -20 KPX Rcommaaccent T -30 KPX Rcommaaccent Tcaron -30 KPX Rcommaaccent Tcommaaccent -30 KPX Rcommaaccent U -40 KPX Rcommaaccent Uacute -40 KPX Rcommaaccent Ucircumflex -40 KPX Rcommaaccent Udieresis -40 KPX Rcommaaccent Ugrave -40 KPX Rcommaaccent Uhungarumlaut -40 KPX Rcommaaccent Umacron -40 KPX Rcommaaccent Uogonek -40 KPX Rcommaaccent Uring -40 KPX Rcommaaccent V -50 KPX Rcommaaccent W -30 KPX Rcommaaccent Y -50 KPX Rcommaaccent Yacute -50 KPX Rcommaaccent Ydieresis -50 KPX S comma -20 KPX S period -20 KPX Sacute comma -20 KPX Sacute period -20 KPX Scaron comma -20 KPX Scaron period -20 KPX Scedilla comma -20 KPX Scedilla period -20 KPX Scommaaccent comma -20 KPX Scommaaccent period -20 KPX T A -120 KPX T Aacute -120 KPX T Abreve -120 KPX T Acircumflex -120 KPX T Adieresis -120 KPX T Agrave -120 KPX T Amacron -120 KPX T Aogonek -120 KPX T Aring -120 KPX T Atilde -120 KPX T O -40 KPX T Oacute -40 KPX T Ocircumflex -40 KPX T Odieresis -40 KPX T Ograve -40 KPX T Ohungarumlaut -40 KPX T Omacron -40 KPX T Oslash -40 KPX T Otilde -40 KPX T a -120 KPX T aacute -120 KPX T abreve -60 KPX T acircumflex -120 KPX T adieresis -120 KPX T agrave -120 KPX T amacron -60 KPX T aogonek -120 KPX T aring -120 KPX T atilde -60 KPX T colon -20 KPX T comma -120 KPX T e -120 KPX T eacute -120 KPX T ecaron -120 KPX T ecircumflex -120 KPX T edieresis -120 KPX T edotaccent -120 KPX T egrave -60 KPX T emacron -60 KPX T eogonek -120 KPX T hyphen -140 KPX T o -120 KPX T oacute -120 KPX T ocircumflex -120 KPX T odieresis -120 KPX T ograve -120 KPX T ohungarumlaut -120 KPX T omacron -60 KPX T oslash -120 KPX T otilde -60 KPX T period -120 KPX T r -120 KPX T racute -120 KPX T rcaron -120 KPX T rcommaaccent -120 KPX T semicolon -20 KPX T u -120 KPX T uacute -120 KPX T ucircumflex -120 KPX T udieresis -120 KPX T ugrave -120 KPX T uhungarumlaut -120 KPX T umacron -60 KPX T uogonek -120 KPX T uring -120 KPX T w -120 KPX T y -120 KPX T yacute -120 KPX T ydieresis -60 KPX Tcaron A -120 KPX Tcaron Aacute -120 KPX Tcaron Abreve -120 KPX Tcaron Acircumflex -120 KPX Tcaron Adieresis -120 KPX Tcaron Agrave -120 KPX Tcaron Amacron -120 KPX Tcaron Aogonek -120 KPX Tcaron Aring -120 KPX Tcaron Atilde -120 KPX Tcaron O -40 KPX Tcaron Oacute -40 KPX Tcaron Ocircumflex -40 KPX Tcaron Odieresis -40 KPX Tcaron Ograve -40 KPX Tcaron Ohungarumlaut -40 KPX Tcaron Omacron -40 KPX Tcaron Oslash -40 KPX Tcaron Otilde -40 KPX Tcaron a -120 KPX Tcaron aacute -120 KPX Tcaron abreve -60 KPX Tcaron acircumflex -120 KPX Tcaron adieresis -120 KPX Tcaron agrave -120 KPX Tcaron amacron -60 KPX Tcaron aogonek -120 KPX Tcaron aring -120 KPX Tcaron atilde -60 KPX Tcaron colon -20 KPX Tcaron comma -120 KPX Tcaron e -120 KPX Tcaron eacute -120 KPX Tcaron ecaron -120 KPX Tcaron ecircumflex -120 KPX Tcaron edieresis -120 KPX Tcaron edotaccent -120 KPX Tcaron egrave -60 KPX Tcaron emacron -60 KPX Tcaron eogonek -120 KPX Tcaron hyphen -140 KPX Tcaron o -120 KPX Tcaron oacute -120 KPX Tcaron ocircumflex -120 KPX Tcaron odieresis -120 KPX Tcaron ograve -120 KPX Tcaron ohungarumlaut -120 KPX Tcaron omacron -60 KPX Tcaron oslash -120 KPX Tcaron otilde -60 KPX Tcaron period -120 KPX Tcaron r -120 KPX Tcaron racute -120 KPX Tcaron rcaron -120 KPX Tcaron rcommaaccent -120 KPX Tcaron semicolon -20 KPX Tcaron u -120 KPX Tcaron uacute -120 KPX Tcaron ucircumflex -120 KPX Tcaron udieresis -120 KPX Tcaron ugrave -120 KPX Tcaron uhungarumlaut -120 KPX Tcaron umacron -60 KPX Tcaron uogonek -120 KPX Tcaron uring -120 KPX Tcaron w -120 KPX Tcaron y -120 KPX Tcaron yacute -120 KPX Tcaron ydieresis -60 KPX Tcommaaccent A -120 KPX Tcommaaccent Aacute -120 KPX Tcommaaccent Abreve -120 KPX Tcommaaccent Acircumflex -120 KPX Tcommaaccent Adieresis -120 KPX Tcommaaccent Agrave -120 KPX Tcommaaccent Amacron -120 KPX Tcommaaccent Aogonek -120 KPX Tcommaaccent Aring -120 KPX Tcommaaccent Atilde -120 KPX Tcommaaccent O -40 KPX Tcommaaccent Oacute -40 KPX Tcommaaccent Ocircumflex -40 KPX Tcommaaccent Odieresis -40 KPX Tcommaaccent Ograve -40 KPX Tcommaaccent Ohungarumlaut -40 KPX Tcommaaccent Omacron -40 KPX Tcommaaccent Oslash -40 KPX Tcommaaccent Otilde -40 KPX Tcommaaccent a -120 KPX Tcommaaccent aacute -120 KPX Tcommaaccent abreve -60 KPX Tcommaaccent acircumflex -120 KPX Tcommaaccent adieresis -120 KPX Tcommaaccent agrave -120 KPX Tcommaaccent amacron -60 KPX Tcommaaccent aogonek -120 KPX Tcommaaccent aring -120 KPX Tcommaaccent atilde -60 KPX Tcommaaccent colon -20 KPX Tcommaaccent comma -120 KPX Tcommaaccent e -120 KPX Tcommaaccent eacute -120 KPX Tcommaaccent ecaron -120 KPX Tcommaaccent ecircumflex -120 KPX Tcommaaccent edieresis -120 KPX Tcommaaccent edotaccent -120 KPX Tcommaaccent egrave -60 KPX Tcommaaccent emacron -60 KPX Tcommaaccent eogonek -120 KPX Tcommaaccent hyphen -140 KPX Tcommaaccent o -120 KPX Tcommaaccent oacute -120 KPX Tcommaaccent ocircumflex -120 KPX Tcommaaccent odieresis -120 KPX Tcommaaccent ograve -120 KPX Tcommaaccent ohungarumlaut -120 KPX Tcommaaccent omacron -60 KPX Tcommaaccent oslash -120 KPX Tcommaaccent otilde -60 KPX Tcommaaccent period -120 KPX Tcommaaccent r -120 KPX Tcommaaccent racute -120 KPX Tcommaaccent rcaron -120 KPX Tcommaaccent rcommaaccent -120 KPX Tcommaaccent semicolon -20 KPX Tcommaaccent u -120 KPX Tcommaaccent uacute -120 KPX Tcommaaccent ucircumflex -120 KPX Tcommaaccent udieresis -120 KPX Tcommaaccent ugrave -120 KPX Tcommaaccent uhungarumlaut -120 KPX Tcommaaccent umacron -60 KPX Tcommaaccent uogonek -120 KPX Tcommaaccent uring -120 KPX Tcommaaccent w -120 KPX Tcommaaccent y -120 KPX Tcommaaccent yacute -120 KPX Tcommaaccent ydieresis -60 KPX U A -40 KPX U Aacute -40 KPX U Abreve -40 KPX U Acircumflex -40 KPX U Adieresis -40 KPX U Agrave -40 KPX U Amacron -40 KPX U Aogonek -40 KPX U Aring -40 KPX U Atilde -40 KPX U comma -40 KPX U period -40 KPX Uacute A -40 KPX Uacute Aacute -40 KPX Uacute Abreve -40 KPX Uacute Acircumflex -40 KPX Uacute Adieresis -40 KPX Uacute Agrave -40 KPX Uacute Amacron -40 KPX Uacute Aogonek -40 KPX Uacute Aring -40 KPX Uacute Atilde -40 KPX Uacute comma -40 KPX Uacute period -40 KPX Ucircumflex A -40 KPX Ucircumflex Aacute -40 KPX Ucircumflex Abreve -40 KPX Ucircumflex Acircumflex -40 KPX Ucircumflex Adieresis -40 KPX Ucircumflex Agrave -40 KPX Ucircumflex Amacron -40 KPX Ucircumflex Aogonek -40 KPX Ucircumflex Aring -40 KPX Ucircumflex Atilde -40 KPX Ucircumflex comma -40 KPX Ucircumflex period -40 KPX Udieresis A -40 KPX Udieresis Aacute -40 KPX Udieresis Abreve -40 KPX Udieresis Acircumflex -40 KPX Udieresis Adieresis -40 KPX Udieresis Agrave -40 KPX Udieresis Amacron -40 KPX Udieresis Aogonek -40 KPX Udieresis Aring -40 KPX Udieresis Atilde -40 KPX Udieresis comma -40 KPX Udieresis period -40 KPX Ugrave A -40 KPX Ugrave Aacute -40 KPX Ugrave Abreve -40 KPX Ugrave Acircumflex -40 KPX Ugrave Adieresis -40 KPX Ugrave Agrave -40 KPX Ugrave Amacron -40 KPX Ugrave Aogonek -40 KPX Ugrave Aring -40 KPX Ugrave Atilde -40 KPX Ugrave comma -40 KPX Ugrave period -40 KPX Uhungarumlaut A -40 KPX Uhungarumlaut Aacute -40 KPX Uhungarumlaut Abreve -40 KPX Uhungarumlaut Acircumflex -40 KPX Uhungarumlaut Adieresis -40 KPX Uhungarumlaut Agrave -40 KPX Uhungarumlaut Amacron -40 KPX Uhungarumlaut Aogonek -40 KPX Uhungarumlaut Aring -40 KPX Uhungarumlaut Atilde -40 KPX Uhungarumlaut comma -40 KPX Uhungarumlaut period -40 KPX Umacron A -40 KPX Umacron Aacute -40 KPX Umacron Abreve -40 KPX Umacron Acircumflex -40 KPX Umacron Adieresis -40 KPX Umacron Agrave -40 KPX Umacron Amacron -40 KPX Umacron Aogonek -40 KPX Umacron Aring -40 KPX Umacron Atilde -40 KPX Umacron comma -40 KPX Umacron period -40 KPX Uogonek A -40 KPX Uogonek Aacute -40 KPX Uogonek Abreve -40 KPX Uogonek Acircumflex -40 KPX Uogonek Adieresis -40 KPX Uogonek Agrave -40 KPX Uogonek Amacron -40 KPX Uogonek Aogonek -40 KPX Uogonek Aring -40 KPX Uogonek Atilde -40 KPX Uogonek comma -40 KPX Uogonek period -40 KPX Uring A -40 KPX Uring Aacute -40 KPX Uring Abreve -40 KPX Uring Acircumflex -40 KPX Uring Adieresis -40 KPX Uring Agrave -40 KPX Uring Amacron -40 KPX Uring Aogonek -40 KPX Uring Aring -40 KPX Uring Atilde -40 KPX Uring comma -40 KPX Uring period -40 KPX V A -80 KPX V Aacute -80 KPX V Abreve -80 KPX V Acircumflex -80 KPX V Adieresis -80 KPX V Agrave -80 KPX V Amacron -80 KPX V Aogonek -80 KPX V Aring -80 KPX V Atilde -80 KPX V G -40 KPX V Gbreve -40 KPX V Gcommaaccent -40 KPX V O -40 KPX V Oacute -40 KPX V Ocircumflex -40 KPX V Odieresis -40 KPX V Ograve -40 KPX V Ohungarumlaut -40 KPX V Omacron -40 KPX V Oslash -40 KPX V Otilde -40 KPX V a -70 KPX V aacute -70 KPX V abreve -70 KPX V acircumflex -70 KPX V adieresis -70 KPX V agrave -70 KPX V amacron -70 KPX V aogonek -70 KPX V aring -70 KPX V atilde -70 KPX V colon -40 KPX V comma -125 KPX V e -80 KPX V eacute -80 KPX V ecaron -80 KPX V ecircumflex -80 KPX V edieresis -80 KPX V edotaccent -80 KPX V egrave -80 KPX V emacron -80 KPX V eogonek -80 KPX V hyphen -80 KPX V o -80 KPX V oacute -80 KPX V ocircumflex -80 KPX V odieresis -80 KPX V ograve -80 KPX V ohungarumlaut -80 KPX V omacron -80 KPX V oslash -80 KPX V otilde -80 KPX V period -125 KPX V semicolon -40 KPX V u -70 KPX V uacute -70 KPX V ucircumflex -70 KPX V udieresis -70 KPX V ugrave -70 KPX V uhungarumlaut -70 KPX V umacron -70 KPX V uogonek -70 KPX V uring -70 KPX W A -50 KPX W Aacute -50 KPX W Abreve -50 KPX W Acircumflex -50 KPX W Adieresis -50 KPX W Agrave -50 KPX W Amacron -50 KPX W Aogonek -50 KPX W Aring -50 KPX W Atilde -50 KPX W O -20 KPX W Oacute -20 KPX W Ocircumflex -20 KPX W Odieresis -20 KPX W Ograve -20 KPX W Ohungarumlaut -20 KPX W Omacron -20 KPX W Oslash -20 KPX W Otilde -20 KPX W a -40 KPX W aacute -40 KPX W abreve -40 KPX W acircumflex -40 KPX W adieresis -40 KPX W agrave -40 KPX W amacron -40 KPX W aogonek -40 KPX W aring -40 KPX W atilde -40 KPX W comma -80 KPX W e -30 KPX W eacute -30 KPX W ecaron -30 KPX W ecircumflex -30 KPX W edieresis -30 KPX W edotaccent -30 KPX W egrave -30 KPX W emacron -30 KPX W eogonek -30 KPX W hyphen -40 KPX W o -30 KPX W oacute -30 KPX W ocircumflex -30 KPX W odieresis -30 KPX W ograve -30 KPX W ohungarumlaut -30 KPX W omacron -30 KPX W oslash -30 KPX W otilde -30 KPX W period -80 KPX W u -30 KPX W uacute -30 KPX W ucircumflex -30 KPX W udieresis -30 KPX W ugrave -30 KPX W uhungarumlaut -30 KPX W umacron -30 KPX W uogonek -30 KPX W uring -30 KPX W y -20 KPX W yacute -20 KPX W ydieresis -20 KPX Y A -110 KPX Y Aacute -110 KPX Y Abreve -110 KPX Y Acircumflex -110 KPX Y Adieresis -110 KPX Y Agrave -110 KPX Y Amacron -110 KPX Y Aogonek -110 KPX Y Aring -110 KPX Y Atilde -110 KPX Y O -85 KPX Y Oacute -85 KPX Y Ocircumflex -85 KPX Y Odieresis -85 KPX Y Ograve -85 KPX Y Ohungarumlaut -85 KPX Y Omacron -85 KPX Y Oslash -85 KPX Y Otilde -85 KPX Y a -140 KPX Y aacute -140 KPX Y abreve -70 KPX Y acircumflex -140 KPX Y adieresis -140 KPX Y agrave -140 KPX Y amacron -70 KPX Y aogonek -140 KPX Y aring -140 KPX Y atilde -140 KPX Y colon -60 KPX Y comma -140 KPX Y e -140 KPX Y eacute -140 KPX Y ecaron -140 KPX Y ecircumflex -140 KPX Y edieresis -140 KPX Y edotaccent -140 KPX Y egrave -140 KPX Y emacron -70 KPX Y eogonek -140 KPX Y hyphen -140 KPX Y i -20 KPX Y iacute -20 KPX Y iogonek -20 KPX Y o -140 KPX Y oacute -140 KPX Y ocircumflex -140 KPX Y odieresis -140 KPX Y ograve -140 KPX Y ohungarumlaut -140 KPX Y omacron -140 KPX Y oslash -140 KPX Y otilde -140 KPX Y period -140 KPX Y semicolon -60 KPX Y u -110 KPX Y uacute -110 KPX Y ucircumflex -110 KPX Y udieresis -110 KPX Y ugrave -110 KPX Y uhungarumlaut -110 KPX Y umacron -110 KPX Y uogonek -110 KPX Y uring -110 KPX Yacute A -110 KPX Yacute Aacute -110 KPX Yacute Abreve -110 KPX Yacute Acircumflex -110 KPX Yacute Adieresis -110 KPX Yacute Agrave -110 KPX Yacute Amacron -110 KPX Yacute Aogonek -110 KPX Yacute Aring -110 KPX Yacute Atilde -110 KPX Yacute O -85 KPX Yacute Oacute -85 KPX Yacute Ocircumflex -85 KPX Yacute Odieresis -85 KPX Yacute Ograve -85 KPX Yacute Ohungarumlaut -85 KPX Yacute Omacron -85 KPX Yacute Oslash -85 KPX Yacute Otilde -85 KPX Yacute a -140 KPX Yacute aacute -140 KPX Yacute abreve -70 KPX Yacute acircumflex -140 KPX Yacute adieresis -140 KPX Yacute agrave -140 KPX Yacute amacron -70 KPX Yacute aogonek -140 KPX Yacute aring -140 KPX Yacute atilde -70 KPX Yacute colon -60 KPX Yacute comma -140 KPX Yacute e -140 KPX Yacute eacute -140 KPX Yacute ecaron -140 KPX Yacute ecircumflex -140 KPX Yacute edieresis -140 KPX Yacute edotaccent -140 KPX Yacute egrave -140 KPX Yacute emacron -70 KPX Yacute eogonek -140 KPX Yacute hyphen -140 KPX Yacute i -20 KPX Yacute iacute -20 KPX Yacute iogonek -20 KPX Yacute o -140 KPX Yacute oacute -140 KPX Yacute ocircumflex -140 KPX Yacute odieresis -140 KPX Yacute ograve -140 KPX Yacute ohungarumlaut -140 KPX Yacute omacron -70 KPX Yacute oslash -140 KPX Yacute otilde -140 KPX Yacute period -140 KPX Yacute semicolon -60 KPX Yacute u -110 KPX Yacute uacute -110 KPX Yacute ucircumflex -110 KPX Yacute udieresis -110 KPX Yacute ugrave -110 KPX Yacute uhungarumlaut -110 KPX Yacute umacron -110 KPX Yacute uogonek -110 KPX Yacute uring -110 KPX Ydieresis A -110 KPX Ydieresis Aacute -110 KPX Ydieresis Abreve -110 KPX Ydieresis Acircumflex -110 KPX Ydieresis Adieresis -110 KPX Ydieresis Agrave -110 KPX Ydieresis Amacron -110 KPX Ydieresis Aogonek -110 KPX Ydieresis Aring -110 KPX Ydieresis Atilde -110 KPX Ydieresis O -85 KPX Ydieresis Oacute -85 KPX Ydieresis Ocircumflex -85 KPX Ydieresis Odieresis -85 KPX Ydieresis Ograve -85 KPX Ydieresis Ohungarumlaut -85 KPX Ydieresis Omacron -85 KPX Ydieresis Oslash -85 KPX Ydieresis Otilde -85 KPX Ydieresis a -140 KPX Ydieresis aacute -140 KPX Ydieresis abreve -70 KPX Ydieresis acircumflex -140 KPX Ydieresis adieresis -140 KPX Ydieresis agrave -140 KPX Ydieresis amacron -70 KPX Ydieresis aogonek -140 KPX Ydieresis aring -140 KPX Ydieresis atilde -70 KPX Ydieresis colon -60 KPX Ydieresis comma -140 KPX Ydieresis e -140 KPX Ydieresis eacute -140 KPX Ydieresis ecaron -140 KPX Ydieresis ecircumflex -140 KPX Ydieresis edieresis -140 KPX Ydieresis edotaccent -140 KPX Ydieresis egrave -140 KPX Ydieresis emacron -70 KPX Ydieresis eogonek -140 KPX Ydieresis hyphen -140 KPX Ydieresis i -20 KPX Ydieresis iacute -20 KPX Ydieresis iogonek -20 KPX Ydieresis o -140 KPX Ydieresis oacute -140 KPX Ydieresis ocircumflex -140 KPX Ydieresis odieresis -140 KPX Ydieresis ograve -140 KPX Ydieresis ohungarumlaut -140 KPX Ydieresis omacron -140 KPX Ydieresis oslash -140 KPX Ydieresis otilde -140 KPX Ydieresis period -140 KPX Ydieresis semicolon -60 KPX Ydieresis u -110 KPX Ydieresis uacute -110 KPX Ydieresis ucircumflex -110 KPX Ydieresis udieresis -110 KPX Ydieresis ugrave -110 KPX Ydieresis uhungarumlaut -110 KPX Ydieresis umacron -110 KPX Ydieresis uogonek -110 KPX Ydieresis uring -110 KPX a v -20 KPX a w -20 KPX a y -30 KPX a yacute -30 KPX a ydieresis -30 KPX aacute v -20 KPX aacute w -20 KPX aacute y -30 KPX aacute yacute -30 KPX aacute ydieresis -30 KPX abreve v -20 KPX abreve w -20 KPX abreve y -30 KPX abreve yacute -30 KPX abreve ydieresis -30 KPX acircumflex v -20 KPX acircumflex w -20 KPX acircumflex y -30 KPX acircumflex yacute -30 KPX acircumflex ydieresis -30 KPX adieresis v -20 KPX adieresis w -20 KPX adieresis y -30 KPX adieresis yacute -30 KPX adieresis ydieresis -30 KPX agrave v -20 KPX agrave w -20 KPX agrave y -30 KPX agrave yacute -30 KPX agrave ydieresis -30 KPX amacron v -20 KPX amacron w -20 KPX amacron y -30 KPX amacron yacute -30 KPX amacron ydieresis -30 KPX aogonek v -20 KPX aogonek w -20 KPX aogonek y -30 KPX aogonek yacute -30 KPX aogonek ydieresis -30 KPX aring v -20 KPX aring w -20 KPX aring y -30 KPX aring yacute -30 KPX aring ydieresis -30 KPX atilde v -20 KPX atilde w -20 KPX atilde y -30 KPX atilde yacute -30 KPX atilde ydieresis -30 KPX b b -10 KPX b comma -40 KPX b l -20 KPX b lacute -20 KPX b lcommaaccent -20 KPX b lslash -20 KPX b period -40 KPX b u -20 KPX b uacute -20 KPX b ucircumflex -20 KPX b udieresis -20 KPX b ugrave -20 KPX b uhungarumlaut -20 KPX b umacron -20 KPX b uogonek -20 KPX b uring -20 KPX b v -20 KPX b y -20 KPX b yacute -20 KPX b ydieresis -20 KPX c comma -15 KPX c k -20 KPX c kcommaaccent -20 KPX cacute comma -15 KPX cacute k -20 KPX cacute kcommaaccent -20 KPX ccaron comma -15 KPX ccaron k -20 KPX ccaron kcommaaccent -20 KPX ccedilla comma -15 KPX ccedilla k -20 KPX ccedilla kcommaaccent -20 KPX colon space -50 KPX comma quotedblright -100 KPX comma quoteright -100 KPX e comma -15 KPX e period -15 KPX e v -30 KPX e w -20 KPX e x -30 KPX e y -20 KPX e yacute -20 KPX e ydieresis -20 KPX eacute comma -15 KPX eacute period -15 KPX eacute v -30 KPX eacute w -20 KPX eacute x -30 KPX eacute y -20 KPX eacute yacute -20 KPX eacute ydieresis -20 KPX ecaron comma -15 KPX ecaron period -15 KPX ecaron v -30 KPX ecaron w -20 KPX ecaron x -30 KPX ecaron y -20 KPX ecaron yacute -20 KPX ecaron ydieresis -20 KPX ecircumflex comma -15 KPX ecircumflex period -15 KPX ecircumflex v -30 KPX ecircumflex w -20 KPX ecircumflex x -30 KPX ecircumflex y -20 KPX ecircumflex yacute -20 KPX ecircumflex ydieresis -20 KPX edieresis comma -15 KPX edieresis period -15 KPX edieresis v -30 KPX edieresis w -20 KPX edieresis x -30 KPX edieresis y -20 KPX edieresis yacute -20 KPX edieresis ydieresis -20 KPX edotaccent comma -15 KPX edotaccent period -15 KPX edotaccent v -30 KPX edotaccent w -20 KPX edotaccent x -30 KPX edotaccent y -20 KPX edotaccent yacute -20 KPX edotaccent ydieresis -20 KPX egrave comma -15 KPX egrave period -15 KPX egrave v -30 KPX egrave w -20 KPX egrave x -30 KPX egrave y -20 KPX egrave yacute -20 KPX egrave ydieresis -20 KPX emacron comma -15 KPX emacron period -15 KPX emacron v -30 KPX emacron w -20 KPX emacron x -30 KPX emacron y -20 KPX emacron yacute -20 KPX emacron ydieresis -20 KPX eogonek comma -15 KPX eogonek period -15 KPX eogonek v -30 KPX eogonek w -20 KPX eogonek x -30 KPX eogonek y -20 KPX eogonek yacute -20 KPX eogonek ydieresis -20 KPX f a -30 KPX f aacute -30 KPX f abreve -30 KPX f acircumflex -30 KPX f adieresis -30 KPX f agrave -30 KPX f amacron -30 KPX f aogonek -30 KPX f aring -30 KPX f atilde -30 KPX f comma -30 KPX f dotlessi -28 KPX f e -30 KPX f eacute -30 KPX f ecaron -30 KPX f ecircumflex -30 KPX f edieresis -30 KPX f edotaccent -30 KPX f egrave -30 KPX f emacron -30 KPX f eogonek -30 KPX f o -30 KPX f oacute -30 KPX f ocircumflex -30 KPX f odieresis -30 KPX f ograve -30 KPX f ohungarumlaut -30 KPX f omacron -30 KPX f oslash -30 KPX f otilde -30 KPX f period -30 KPX f quotedblright 60 KPX f quoteright 50 KPX g r -10 KPX g racute -10 KPX g rcaron -10 KPX g rcommaaccent -10 KPX gbreve r -10 KPX gbreve racute -10 KPX gbreve rcaron -10 KPX gbreve rcommaaccent -10 KPX gcommaaccent r -10 KPX gcommaaccent racute -10 KPX gcommaaccent rcaron -10 KPX gcommaaccent rcommaaccent -10 KPX h y -30 KPX h yacute -30 KPX h ydieresis -30 KPX k e -20 KPX k eacute -20 KPX k ecaron -20 KPX k ecircumflex -20 KPX k edieresis -20 KPX k edotaccent -20 KPX k egrave -20 KPX k emacron -20 KPX k eogonek -20 KPX k o -20 KPX k oacute -20 KPX k ocircumflex -20 KPX k odieresis -20 KPX k ograve -20 KPX k ohungarumlaut -20 KPX k omacron -20 KPX k oslash -20 KPX k otilde -20 KPX kcommaaccent e -20 KPX kcommaaccent eacute -20 KPX kcommaaccent ecaron -20 KPX kcommaaccent ecircumflex -20 KPX kcommaaccent edieresis -20 KPX kcommaaccent edotaccent -20 KPX kcommaaccent egrave -20 KPX kcommaaccent emacron -20 KPX kcommaaccent eogonek -20 KPX kcommaaccent o -20 KPX kcommaaccent oacute -20 KPX kcommaaccent ocircumflex -20 KPX kcommaaccent odieresis -20 KPX kcommaaccent ograve -20 KPX kcommaaccent ohungarumlaut -20 KPX kcommaaccent omacron -20 KPX kcommaaccent oslash -20 KPX kcommaaccent otilde -20 KPX m u -10 KPX m uacute -10 KPX m ucircumflex -10 KPX m udieresis -10 KPX m ugrave -10 KPX m uhungarumlaut -10 KPX m umacron -10 KPX m uogonek -10 KPX m uring -10 KPX m y -15 KPX m yacute -15 KPX m ydieresis -15 KPX n u -10 KPX n uacute -10 KPX n ucircumflex -10 KPX n udieresis -10 KPX n ugrave -10 KPX n uhungarumlaut -10 KPX n umacron -10 KPX n uogonek -10 KPX n uring -10 KPX n v -20 KPX n y -15 KPX n yacute -15 KPX n ydieresis -15 KPX nacute u -10 KPX nacute uacute -10 KPX nacute ucircumflex -10 KPX nacute udieresis -10 KPX nacute ugrave -10 KPX nacute uhungarumlaut -10 KPX nacute umacron -10 KPX nacute uogonek -10 KPX nacute uring -10 KPX nacute v -20 KPX nacute y -15 KPX nacute yacute -15 KPX nacute ydieresis -15 KPX ncaron u -10 KPX ncaron uacute -10 KPX ncaron ucircumflex -10 KPX ncaron udieresis -10 KPX ncaron ugrave -10 KPX ncaron uhungarumlaut -10 KPX ncaron umacron -10 KPX ncaron uogonek -10 KPX ncaron uring -10 KPX ncaron v -20 KPX ncaron y -15 KPX ncaron yacute -15 KPX ncaron ydieresis -15 KPX ncommaaccent u -10 KPX ncommaaccent uacute -10 KPX ncommaaccent ucircumflex -10 KPX ncommaaccent udieresis -10 KPX ncommaaccent ugrave -10 KPX ncommaaccent uhungarumlaut -10 KPX ncommaaccent umacron -10 KPX ncommaaccent uogonek -10 KPX ncommaaccent uring -10 KPX ncommaaccent v -20 KPX ncommaaccent y -15 KPX ncommaaccent yacute -15 KPX ncommaaccent ydieresis -15 KPX ntilde u -10 KPX ntilde uacute -10 KPX ntilde ucircumflex -10 KPX ntilde udieresis -10 KPX ntilde ugrave -10 KPX ntilde uhungarumlaut -10 KPX ntilde umacron -10 KPX ntilde uogonek -10 KPX ntilde uring -10 KPX ntilde v -20 KPX ntilde y -15 KPX ntilde yacute -15 KPX ntilde ydieresis -15 KPX o comma -40 KPX o period -40 KPX o v -15 KPX o w -15 KPX o x -30 KPX o y -30 KPX o yacute -30 KPX o ydieresis -30 KPX oacute comma -40 KPX oacute period -40 KPX oacute v -15 KPX oacute w -15 KPX oacute x -30 KPX oacute y -30 KPX oacute yacute -30 KPX oacute ydieresis -30 KPX ocircumflex comma -40 KPX ocircumflex period -40 KPX ocircumflex v -15 KPX ocircumflex w -15 KPX ocircumflex x -30 KPX ocircumflex y -30 KPX ocircumflex yacute -30 KPX ocircumflex ydieresis -30 KPX odieresis comma -40 KPX odieresis period -40 KPX odieresis v -15 KPX odieresis w -15 KPX odieresis x -30 KPX odieresis y -30 KPX odieresis yacute -30 KPX odieresis ydieresis -30 KPX ograve comma -40 KPX ograve period -40 KPX ograve v -15 KPX ograve w -15 KPX ograve x -30 KPX ograve y -30 KPX ograve yacute -30 KPX ograve ydieresis -30 KPX ohungarumlaut comma -40 KPX ohungarumlaut period -40 KPX ohungarumlaut v -15 KPX ohungarumlaut w -15 KPX ohungarumlaut x -30 KPX ohungarumlaut y -30 KPX ohungarumlaut yacute -30 KPX ohungarumlaut ydieresis -30 KPX omacron comma -40 KPX omacron period -40 KPX omacron v -15 KPX omacron w -15 KPX omacron x -30 KPX omacron y -30 KPX omacron yacute -30 KPX omacron ydieresis -30 KPX oslash a -55 KPX oslash aacute -55 KPX oslash abreve -55 KPX oslash acircumflex -55 KPX oslash adieresis -55 KPX oslash agrave -55 KPX oslash amacron -55 KPX oslash aogonek -55 KPX oslash aring -55 KPX oslash atilde -55 KPX oslash b -55 KPX oslash c -55 KPX oslash cacute -55 KPX oslash ccaron -55 KPX oslash ccedilla -55 KPX oslash comma -95 KPX oslash d -55 KPX oslash dcroat -55 KPX oslash e -55 KPX oslash eacute -55 KPX oslash ecaron -55 KPX oslash ecircumflex -55 KPX oslash edieresis -55 KPX oslash edotaccent -55 KPX oslash egrave -55 KPX oslash emacron -55 KPX oslash eogonek -55 KPX oslash f -55 KPX oslash g -55 KPX oslash gbreve -55 KPX oslash gcommaaccent -55 KPX oslash h -55 KPX oslash i -55 KPX oslash iacute -55 KPX oslash icircumflex -55 KPX oslash idieresis -55 KPX oslash igrave -55 KPX oslash imacron -55 KPX oslash iogonek -55 KPX oslash j -55 KPX oslash k -55 KPX oslash kcommaaccent -55 KPX oslash l -55 KPX oslash lacute -55 KPX oslash lcommaaccent -55 KPX oslash lslash -55 KPX oslash m -55 KPX oslash n -55 KPX oslash nacute -55 KPX oslash ncaron -55 KPX oslash ncommaaccent -55 KPX oslash ntilde -55 KPX oslash o -55 KPX oslash oacute -55 KPX oslash ocircumflex -55 KPX oslash odieresis -55 KPX oslash ograve -55 KPX oslash ohungarumlaut -55 KPX oslash omacron -55 KPX oslash oslash -55 KPX oslash otilde -55 KPX oslash p -55 KPX oslash period -95 KPX oslash q -55 KPX oslash r -55 KPX oslash racute -55 KPX oslash rcaron -55 KPX oslash rcommaaccent -55 KPX oslash s -55 KPX oslash sacute -55 KPX oslash scaron -55 KPX oslash scedilla -55 KPX oslash scommaaccent -55 KPX oslash t -55 KPX oslash tcommaaccent -55 KPX oslash u -55 KPX oslash uacute -55 KPX oslash ucircumflex -55 KPX oslash udieresis -55 KPX oslash ugrave -55 KPX oslash uhungarumlaut -55 KPX oslash umacron -55 KPX oslash uogonek -55 KPX oslash uring -55 KPX oslash v -70 KPX oslash w -70 KPX oslash x -85 KPX oslash y -70 KPX oslash yacute -70 KPX oslash ydieresis -70 KPX oslash z -55 KPX oslash zacute -55 KPX oslash zcaron -55 KPX oslash zdotaccent -55 KPX otilde comma -40 KPX otilde period -40 KPX otilde v -15 KPX otilde w -15 KPX otilde x -30 KPX otilde y -30 KPX otilde yacute -30 KPX otilde ydieresis -30 KPX p comma -35 KPX p period -35 KPX p y -30 KPX p yacute -30 KPX p ydieresis -30 KPX period quotedblright -100 KPX period quoteright -100 KPX period space -60 KPX quotedblright space -40 KPX quoteleft quoteleft -57 KPX quoteright d -50 KPX quoteright dcroat -50 KPX quoteright quoteright -57 KPX quoteright r -50 KPX quoteright racute -50 KPX quoteright rcaron -50 KPX quoteright rcommaaccent -50 KPX quoteright s -50 KPX quoteright sacute -50 KPX quoteright scaron -50 KPX quoteright scedilla -50 KPX quoteright scommaaccent -50 KPX quoteright space -70 KPX r a -10 KPX r aacute -10 KPX r abreve -10 KPX r acircumflex -10 KPX r adieresis -10 KPX r agrave -10 KPX r amacron -10 KPX r aogonek -10 KPX r aring -10 KPX r atilde -10 KPX r colon 30 KPX r comma -50 KPX r i 15 KPX r iacute 15 KPX r icircumflex 15 KPX r idieresis 15 KPX r igrave 15 KPX r imacron 15 KPX r iogonek 15 KPX r k 15 KPX r kcommaaccent 15 KPX r l 15 KPX r lacute 15 KPX r lcommaaccent 15 KPX r lslash 15 KPX r m 25 KPX r n 25 KPX r nacute 25 KPX r ncaron 25 KPX r ncommaaccent 25 KPX r ntilde 25 KPX r p 30 KPX r period -50 KPX r semicolon 30 KPX r t 40 KPX r tcommaaccent 40 KPX r u 15 KPX r uacute 15 KPX r ucircumflex 15 KPX r udieresis 15 KPX r ugrave 15 KPX r uhungarumlaut 15 KPX r umacron 15 KPX r uogonek 15 KPX r uring 15 KPX r v 30 KPX r y 30 KPX r yacute 30 KPX r ydieresis 30 KPX racute a -10 KPX racute aacute -10 KPX racute abreve -10 KPX racute acircumflex -10 KPX racute adieresis -10 KPX racute agrave -10 KPX racute amacron -10 KPX racute aogonek -10 KPX racute aring -10 KPX racute atilde -10 KPX racute colon 30 KPX racute comma -50 KPX racute i 15 KPX racute iacute 15 KPX racute icircumflex 15 KPX racute idieresis 15 KPX racute igrave 15 KPX racute imacron 15 KPX racute iogonek 15 KPX racute k 15 KPX racute kcommaaccent 15 KPX racute l 15 KPX racute lacute 15 KPX racute lcommaaccent 15 KPX racute lslash 15 KPX racute m 25 KPX racute n 25 KPX racute nacute 25 KPX racute ncaron 25 KPX racute ncommaaccent 25 KPX racute ntilde 25 KPX racute p 30 KPX racute period -50 KPX racute semicolon 30 KPX racute t 40 KPX racute tcommaaccent 40 KPX racute u 15 KPX racute uacute 15 KPX racute ucircumflex 15 KPX racute udieresis 15 KPX racute ugrave 15 KPX racute uhungarumlaut 15 KPX racute umacron 15 KPX racute uogonek 15 KPX racute uring 15 KPX racute v 30 KPX racute y 30 KPX racute yacute 30 KPX racute ydieresis 30 KPX rcaron a -10 KPX rcaron aacute -10 KPX rcaron abreve -10 KPX rcaron acircumflex -10 KPX rcaron adieresis -10 KPX rcaron agrave -10 KPX rcaron amacron -10 KPX rcaron aogonek -10 KPX rcaron aring -10 KPX rcaron atilde -10 KPX rcaron colon 30 KPX rcaron comma -50 KPX rcaron i 15 KPX rcaron iacute 15 KPX rcaron icircumflex 15 KPX rcaron idieresis 15 KPX rcaron igrave 15 KPX rcaron imacron 15 KPX rcaron iogonek 15 KPX rcaron k 15 KPX rcaron kcommaaccent 15 KPX rcaron l 15 KPX rcaron lacute 15 KPX rcaron lcommaaccent 15 KPX rcaron lslash 15 KPX rcaron m 25 KPX rcaron n 25 KPX rcaron nacute 25 KPX rcaron ncaron 25 KPX rcaron ncommaaccent 25 KPX rcaron ntilde 25 KPX rcaron p 30 KPX rcaron period -50 KPX rcaron semicolon 30 KPX rcaron t 40 KPX rcaron tcommaaccent 40 KPX rcaron u 15 KPX rcaron uacute 15 KPX rcaron ucircumflex 15 KPX rcaron udieresis 15 KPX rcaron ugrave 15 KPX rcaron uhungarumlaut 15 KPX rcaron umacron 15 KPX rcaron uogonek 15 KPX rcaron uring 15 KPX rcaron v 30 KPX rcaron y 30 KPX rcaron yacute 30 KPX rcaron ydieresis 30 KPX rcommaaccent a -10 KPX rcommaaccent aacute -10 KPX rcommaaccent abreve -10 KPX rcommaaccent acircumflex -10 KPX rcommaaccent adieresis -10 KPX rcommaaccent agrave -10 KPX rcommaaccent amacron -10 KPX rcommaaccent aogonek -10 KPX rcommaaccent aring -10 KPX rcommaaccent atilde -10 KPX rcommaaccent colon 30 KPX rcommaaccent comma -50 KPX rcommaaccent i 15 KPX rcommaaccent iacute 15 KPX rcommaaccent icircumflex 15 KPX rcommaaccent idieresis 15 KPX rcommaaccent igrave 15 KPX rcommaaccent imacron 15 KPX rcommaaccent iogonek 15 KPX rcommaaccent k 15 KPX rcommaaccent kcommaaccent 15 KPX rcommaaccent l 15 KPX rcommaaccent lacute 15 KPX rcommaaccent lcommaaccent 15 KPX rcommaaccent lslash 15 KPX rcommaaccent m 25 KPX rcommaaccent n 25 KPX rcommaaccent nacute 25 KPX rcommaaccent ncaron 25 KPX rcommaaccent ncommaaccent 25 KPX rcommaaccent ntilde 25 KPX rcommaaccent p 30 KPX rcommaaccent period -50 KPX rcommaaccent semicolon 30 KPX rcommaaccent t 40 KPX rcommaaccent tcommaaccent 40 KPX rcommaaccent u 15 KPX rcommaaccent uacute 15 KPX rcommaaccent ucircumflex 15 KPX rcommaaccent udieresis 15 KPX rcommaaccent ugrave 15 KPX rcommaaccent uhungarumlaut 15 KPX rcommaaccent umacron 15 KPX rcommaaccent uogonek 15 KPX rcommaaccent uring 15 KPX rcommaaccent v 30 KPX rcommaaccent y 30 KPX rcommaaccent yacute 30 KPX rcommaaccent ydieresis 30 KPX s comma -15 KPX s period -15 KPX s w -30 KPX sacute comma -15 KPX sacute period -15 KPX sacute w -30 KPX scaron comma -15 KPX scaron period -15 KPX scaron w -30 KPX scedilla comma -15 KPX scedilla period -15 KPX scedilla w -30 KPX scommaaccent comma -15 KPX scommaaccent period -15 KPX scommaaccent w -30 KPX semicolon space -50 KPX space T -50 KPX space Tcaron -50 KPX space Tcommaaccent -50 KPX space V -50 KPX space W -40 KPX space Y -90 KPX space Yacute -90 KPX space Ydieresis -90 KPX space quotedblleft -30 KPX space quoteleft -60 KPX v a -25 KPX v aacute -25 KPX v abreve -25 KPX v acircumflex -25 KPX v adieresis -25 KPX v agrave -25 KPX v amacron -25 KPX v aogonek -25 KPX v aring -25 KPX v atilde -25 KPX v comma -80 KPX v e -25 KPX v eacute -25 KPX v ecaron -25 KPX v ecircumflex -25 KPX v edieresis -25 KPX v edotaccent -25 KPX v egrave -25 KPX v emacron -25 KPX v eogonek -25 KPX v o -25 KPX v oacute -25 KPX v ocircumflex -25 KPX v odieresis -25 KPX v ograve -25 KPX v ohungarumlaut -25 KPX v omacron -25 KPX v oslash -25 KPX v otilde -25 KPX v period -80 KPX w a -15 KPX w aacute -15 KPX w abreve -15 KPX w acircumflex -15 KPX w adieresis -15 KPX w agrave -15 KPX w amacron -15 KPX w aogonek -15 KPX w aring -15 KPX w atilde -15 KPX w comma -60 KPX w e -10 KPX w eacute -10 KPX w ecaron -10 KPX w ecircumflex -10 KPX w edieresis -10 KPX w edotaccent -10 KPX w egrave -10 KPX w emacron -10 KPX w eogonek -10 KPX w o -10 KPX w oacute -10 KPX w ocircumflex -10 KPX w odieresis -10 KPX w ograve -10 KPX w ohungarumlaut -10 KPX w omacron -10 KPX w oslash -10 KPX w otilde -10 KPX w period -60 KPX x e -30 KPX x eacute -30 KPX x ecaron -30 KPX x ecircumflex -30 KPX x edieresis -30 KPX x edotaccent -30 KPX x egrave -30 KPX x emacron -30 KPX x eogonek -30 KPX y a -20 KPX y aacute -20 KPX y abreve -20 KPX y acircumflex -20 KPX y adieresis -20 KPX y agrave -20 KPX y amacron -20 KPX y aogonek -20 KPX y aring -20 KPX y atilde -20 KPX y comma -100 KPX y e -20 KPX y eacute -20 KPX y ecaron -20 KPX y ecircumflex -20 KPX y edieresis -20 KPX y edotaccent -20 KPX y egrave -20 KPX y emacron -20 KPX y eogonek -20 KPX y o -20 KPX y oacute -20 KPX y ocircumflex -20 KPX y odieresis -20 KPX y ograve -20 KPX y ohungarumlaut -20 KPX y omacron -20 KPX y oslash -20 KPX y otilde -20 KPX y period -100 KPX yacute a -20 KPX yacute aacute -20 KPX yacute abreve -20 KPX yacute acircumflex -20 KPX yacute adieresis -20 KPX yacute agrave -20 KPX yacute amacron -20 KPX yacute aogonek -20 KPX yacute aring -20 KPX yacute atilde -20 KPX yacute comma -100 KPX yacute e -20 KPX yacute eacute -20 KPX yacute ecaron -20 KPX yacute ecircumflex -20 KPX yacute edieresis -20 KPX yacute edotaccent -20 KPX yacute egrave -20 KPX yacute emacron -20 KPX yacute eogonek -20 KPX yacute o -20 KPX yacute oacute -20 KPX yacute ocircumflex -20 KPX yacute odieresis -20 KPX yacute ograve -20 KPX yacute ohungarumlaut -20 KPX yacute omacron -20 KPX yacute oslash -20 KPX yacute otilde -20 KPX yacute period -100 KPX ydieresis a -20 KPX ydieresis aacute -20 KPX ydieresis abreve -20 KPX ydieresis acircumflex -20 KPX ydieresis adieresis -20 KPX ydieresis agrave -20 KPX ydieresis amacron -20 KPX ydieresis aogonek -20 KPX ydieresis aring -20 KPX ydieresis atilde -20 KPX ydieresis comma -100 KPX ydieresis e -20 KPX ydieresis eacute -20 KPX ydieresis ecaron -20 KPX ydieresis ecircumflex -20 KPX ydieresis edieresis -20 KPX ydieresis edotaccent -20 KPX ydieresis egrave -20 KPX ydieresis emacron -20 KPX ydieresis eogonek -20 KPX ydieresis o -20 KPX ydieresis oacute -20 KPX ydieresis ocircumflex -20 KPX ydieresis odieresis -20 KPX ydieresis ograve -20 KPX ydieresis ohungarumlaut -20 KPX ydieresis omacron -20 KPX ydieresis oslash -20 KPX ydieresis otilde -20 KPX ydieresis period -100 KPX z e -15 KPX z eacute -15 KPX z ecaron -15 KPX z ecircumflex -15 KPX z edieresis -15 KPX z edotaccent -15 KPX z egrave -15 KPX z emacron -15 KPX z eogonek -15 KPX z o -15 KPX z oacute -15 KPX z ocircumflex -15 KPX z odieresis -15 KPX z ograve -15 KPX z ohungarumlaut -15 KPX z omacron -15 KPX z oslash -15 KPX z otilde -15 KPX zacute e -15 KPX zacute eacute -15 KPX zacute ecaron -15 KPX zacute ecircumflex -15 KPX zacute edieresis -15 KPX zacute edotaccent -15 KPX zacute egrave -15 KPX zacute emacron -15 KPX zacute eogonek -15 KPX zacute o -15 KPX zacute oacute -15 KPX zacute ocircumflex -15 KPX zacute odieresis -15 KPX zacute ograve -15 KPX zacute ohungarumlaut -15 KPX zacute omacron -15 KPX zacute oslash -15 KPX zacute otilde -15 KPX zcaron e -15 KPX zcaron eacute -15 KPX zcaron ecaron -15 KPX zcaron ecircumflex -15 KPX zcaron edieresis -15 KPX zcaron edotaccent -15 KPX zcaron egrave -15 KPX zcaron emacron -15 KPX zcaron eogonek -15 KPX zcaron o -15 KPX zcaron oacute -15 KPX zcaron ocircumflex -15 KPX zcaron odieresis -15 KPX zcaron ograve -15 KPX zcaron ohungarumlaut -15 KPX zcaron omacron -15 KPX zcaron oslash -15 KPX zcaron otilde -15 KPX zdotaccent e -15 KPX zdotaccent eacute -15 KPX zdotaccent ecaron -15 KPX zdotaccent ecircumflex -15 KPX zdotaccent edieresis -15 KPX zdotaccent edotaccent -15 KPX zdotaccent egrave -15 KPX zdotaccent emacron -15 KPX zdotaccent eogonek -15 KPX zdotaccent o -15 KPX zdotaccent oacute -15 KPX zdotaccent ocircumflex -15 KPX zdotaccent odieresis -15 KPX zdotaccent ograve -15 KPX zdotaccent ohungarumlaut -15 KPX zdotaccent omacron -15 KPX zdotaccent oslash -15 KPX zdotaccent otilde -15 EndKernPairs EndKernData EndFontMetrics a2ps-4.14/afm/fontsmap0000644000175000017500000000613010735324162014145 0ustar mhattamhatta# -*- 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.14/afm/pagd.afm0000644000175000017500000010454410674335051014004 0ustar mhattamhattaStartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1989, 1990, 1991, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Mon Jun 23 16:39:17 1997 Comment UniqueID 43085 Comment VMusage 35038 46063 FontName AvantGarde-Demi FullName ITC Avant Garde Gothic Demi FamilyName ITC Avant Garde Gothic Weight Demi ItalicAngle 0 IsFixedPitch false FontBBox -123 -251 1222 1021 UnderlinePosition -100 UnderlineThickness 50 Version 002.000 Notice Copyright (c) 1985, 1987, 1989, 1990, 1991, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.ITC Avant Garde Gothic is a registered trademark of International Typeface Corporation. EncodingScheme AdobeStandardEncoding CapHeight 740 XHeight 555 Ascender 740 Descender -192 StdHW 122 StdVW 133 StartCharMetrics 314 C 32 ; WX 280 ; N space ; B 0 0 0 0 ; C 33 ; WX 280 ; N exclam ; B 73 0 206 740 ; C 34 ; WX 360 ; N quotedbl ; B 19 444 341 740 ; C 35 ; WX 560 ; N numbersign ; B 29 0 525 700 ; C 36 ; WX 560 ; N dollar ; B 58 -86 501 857 ; C 37 ; WX 860 ; N percent ; B 36 -15 822 755 ; C 38 ; WX 680 ; N ampersand ; B 34 -15 665 755 ; C 39 ; WX 280 ; N quoteright ; B 72 466 205 740 ; C 40 ; WX 380 ; N parenleft ; B 74 -157 350 754 ; C 41 ; WX 380 ; N parenright ; B 37 -157 313 754 ; C 42 ; WX 440 ; N asterisk ; B 67 457 374 755 ; C 43 ; WX 600 ; N plus ; B 48 0 552 506 ; C 44 ; WX 280 ; N comma ; B 73 -141 206 133 ; C 45 ; WX 420 ; N hyphen ; B 71 230 349 348 ; C 46 ; WX 280 ; N period ; B 73 0 206 133 ; C 47 ; WX 460 ; N slash ; B 6 -100 454 740 ; C 48 ; WX 560 ; N zero ; B 32 -15 529 755 ; C 49 ; WX 560 ; N one ; B 137 0 363 740 ; C 50 ; WX 560 ; N two ; B 36 0 523 755 ; C 51 ; WX 560 ; N three ; B 28 -15 532 755 ; C 52 ; WX 560 ; N four ; B 15 0 545 740 ; C 53 ; WX 560 ; N five ; B 25 -15 535 740 ; C 54 ; WX 560 ; N six ; B 23 -15 536 739 ; C 55 ; WX 560 ; N seven ; B 62 0 498 740 ; C 56 ; WX 560 ; N eight ; B 33 -15 527 755 ; C 57 ; WX 560 ; N nine ; B 24 0 537 754 ; C 58 ; WX 280 ; N colon ; B 73 0 206 555 ; C 59 ; WX 280 ; N semicolon ; B 73 -141 206 555 ; C 60 ; WX 600 ; N less ; B 46 -8 554 514 ; C 61 ; WX 600 ; N equal ; B 48 81 552 425 ; C 62 ; WX 600 ; N greater ; B 46 -8 554 514 ; C 63 ; WX 560 ; N question ; B 38 0 491 755 ; C 64 ; WX 740 ; N at ; B 50 -12 750 712 ; C 65 ; WX 740 ; N A ; B 7 0 732 740 ; C 66 ; WX 580 ; N B ; B 70 0 551 740 ; C 67 ; WX 780 ; N C ; B 34 -15 766 755 ; C 68 ; WX 700 ; N D ; B 63 0 657 740 ; C 69 ; WX 520 ; N E ; B 61 0 459 740 ; C 70 ; WX 480 ; N F ; B 61 0 438 740 ; C 71 ; WX 840 ; N G ; B 27 -15 817 755 ; C 72 ; WX 680 ; N H ; B 71 0 610 740 ; C 73 ; WX 280 ; N I ; B 72 0 209 740 ; C 74 ; WX 480 ; N J ; B 2 -15 409 740 ; C 75 ; WX 620 ; N K ; B 89 0 620 740 ; C 76 ; WX 440 ; N L ; B 72 0 435 740 ; C 77 ; WX 900 ; N M ; B 63 0 837 740 ; C 78 ; WX 740 ; N N ; B 70 0 671 740 ; C 79 ; WX 840 ; N O ; B 33 -15 807 755 ; C 80 ; WX 560 ; N P ; B 72 0 545 740 ; C 81 ; WX 840 ; N Q ; B 32 -15 824 755 ; C 82 ; WX 580 ; N R ; B 64 0 565 740 ; C 83 ; WX 520 ; N S ; B 12 -15 493 755 ; C 84 ; WX 420 ; N T ; B 6 0 418 740 ; C 85 ; WX 640 ; N U ; B 55 -15 585 740 ; C 86 ; WX 700 ; N V ; B 8 0 695 740 ; C 87 ; WX 900 ; N W ; B 7 0 899 740 ; C 88 ; WX 680 ; N X ; B 4 0 676 740 ; C 89 ; WX 620 ; N Y ; B -2 0 622 740 ; C 90 ; WX 500 ; N Z ; B 19 0 481 740 ; C 91 ; WX 320 ; N bracketleft ; B 66 -157 284 754 ; C 92 ; WX 640 ; N backslash ; B 96 -100 544 740 ; C 93 ; WX 320 ; N bracketright ; B 36 -157 254 754 ; C 94 ; WX 600 ; N asciicircum ; B 73 375 527 740 ; C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; C 96 ; WX 280 ; N quoteleft ; B 72 466 205 740 ; C 97 ; WX 660 ; N a ; B 27 -18 613 574 ; C 98 ; WX 660 ; N b ; B 47 -18 632 740 ; C 99 ; WX 640 ; N c ; B 37 -18 610 574 ; C 100 ; WX 660 ; N d ; B 34 -18 618 740 ; C 101 ; WX 640 ; N e ; B 31 -18 610 574 ; C 102 ; WX 280 ; N f ; B 15 0 280 755 ; L i fi ; L l fl ; C 103 ; WX 660 ; N g ; B 32 -226 623 574 ; C 104 ; WX 600 ; N h ; B 54 0 546 740 ; C 105 ; WX 240 ; N i ; B 53 0 186 740 ; C 106 ; WX 260 ; N j ; B 16 -185 205 740 ; C 107 ; WX 580 ; N k ; B 80 0 571 740 ; C 108 ; WX 240 ; N l ; B 54 0 187 740 ; C 109 ; WX 940 ; N m ; B 54 0 887 574 ; C 110 ; WX 600 ; N n ; B 54 0 547 574 ; C 111 ; WX 640 ; N o ; B 25 -18 615 574 ; C 112 ; WX 660 ; N p ; B 47 -185 629 574 ; C 113 ; WX 660 ; N q ; B 31 -185 613 574 ; C 114 ; WX 320 ; N r ; B 63 0 317 574 ; C 115 ; WX 440 ; N s ; B 19 -18 421 574 ; C 116 ; WX 300 ; N t ; B 21 0 299 740 ; C 117 ; WX 600 ; N u ; B 50 -18 544 555 ; C 118 ; WX 560 ; N v ; B 3 0 556 555 ; C 119 ; WX 800 ; N w ; B 11 0 789 555 ; C 120 ; WX 560 ; N x ; B 3 0 556 555 ; C 121 ; WX 580 ; N y ; B 8 -185 571 555 ; C 122 ; WX 460 ; N z ; B 20 0 442 555 ; C 123 ; WX 340 ; N braceleft ; B -3 -191 317 747 ; C 124 ; WX 600 ; N bar ; B 233 -250 366 750 ; C 125 ; WX 340 ; N braceright ; B 23 -191 343 747 ; C 126 ; WX 600 ; N asciitilde ; B 67 160 533 347 ; C 161 ; WX 280 ; N exclamdown ; B 74 -185 207 555 ; C 162 ; WX 560 ; N cent ; B 43 39 517 715 ; C 163 ; WX 560 ; N sterling ; B -2 0 562 755 ; C 164 ; WX 160 ; N fraction ; B -123 0 282 740 ; C 165 ; WX 560 ; N yen ; B -10 0 570 740 ; C 166 ; WX 560 ; N florin ; B 0 -151 512 824 ; C 167 ; WX 560 ; N section ; B 28 -158 530 755 ; C 168 ; WX 560 ; N currency ; B 27 69 534 577 ; C 169 ; WX 220 ; N quotesingle ; B 44 444 177 740 ; C 170 ; WX 480 ; N quotedblleft ; B 70 466 410 740 ; C 171 ; WX 460 ; N guillemotleft ; B 61 108 400 469 ; C 172 ; WX 240 ; N guilsinglleft ; B 50 108 190 469 ; C 173 ; WX 240 ; N guilsinglright ; B 50 108 190 469 ; C 174 ; WX 520 ; N fi ; B 25 0 461 755 ; C 175 ; WX 520 ; N fl ; B 25 0 461 755 ; C 177 ; WX 500 ; N endash ; B 35 230 465 348 ; C 178 ; WX 560 ; N dagger ; B 51 -142 509 740 ; C 179 ; WX 560 ; N daggerdbl ; B 51 -142 509 740 ; C 180 ; WX 280 ; N periodcentered ; B 73 187 206 320 ; C 182 ; WX 600 ; N paragraph ; B -7 -103 607 740 ; C 183 ; WX 600 ; N bullet ; B 148 222 453 532 ; C 184 ; WX 280 ; N quotesinglbase ; B 72 -141 205 133 ; C 185 ; WX 480 ; N quotedblbase ; B 70 -141 410 133 ; C 186 ; WX 480 ; N quotedblright ; B 70 466 410 740 ; C 187 ; WX 460 ; N guillemotright ; B 61 108 400 469 ; C 188 ; WX 1000 ; N ellipsis ; B 100 0 899 133 ; C 189 ; WX 1280 ; N perthousand ; B 36 -15 1222 755 ; C 191 ; WX 560 ; N questiondown ; B 68 -200 521 555 ; C 193 ; WX 420 ; N grave ; B 50 624 329 851 ; C 194 ; WX 420 ; N acute ; B 89 624 368 851 ; C 195 ; WX 540 ; N circumflex ; B 71 636 470 774 ; C 196 ; WX 480 ; N tilde ; B 44 636 437 767 ; C 197 ; WX 420 ; N macron ; B 72 648 349 759 ; C 198 ; WX 480 ; N breve ; B 42 633 439 770 ; C 199 ; WX 280 ; N dotaccent ; B 74 636 207 769 ; C 200 ; WX 500 ; N dieresis ; B 78 636 422 769 ; C 202 ; WX 360 ; N ring ; B 73 619 288 834 ; C 203 ; WX 340 ; N cedilla ; B 98 -251 298 6 ; C 205 ; WX 700 ; N hungarumlaut ; B 120 610 626 849 ; C 206 ; WX 340 ; N ogonek ; B 79 -195 262 9 ; C 207 ; WX 540 ; N caron ; B 71 636 470 774 ; C 208 ; WX 1000 ; N emdash ; B 35 230 965 348 ; C 225 ; WX 900 ; N AE ; B -5 0 824 740 ; C 227 ; WX 360 ; N ordfeminine ; B 19 438 334 755 ; C 232 ; WX 480 ; N Lslash ; B 26 0 460 740 ; C 233 ; WX 840 ; N Oslash ; B 33 -71 807 814 ; C 234 ; WX 1060 ; N OE ; B 37 -15 1007 755 ; C 235 ; WX 360 ; N ordmasculine ; B 23 438 338 755 ; C 241 ; WX 1080 ; N ae ; B 29 -18 1049 574 ; C 245 ; WX 240 ; N dotlessi ; B 53 0 186 555 ; C 248 ; WX 320 ; N lslash ; B 34 0 305 740 ; C 249 ; WX 660 ; N oslash ; B 35 -50 625 608 ; C 250 ; WX 1080 ; N oe ; B 30 -18 1050 574 ; C 251 ; WX 600 ; N germandbls ; B 51 -18 585 755 ; C -1 ; WX 280 ; N Idieresis ; B -32 0 312 939 ; C -1 ; WX 640 ; N eacute ; B 31 -18 610 851 ; C -1 ; WX 660 ; N abreve ; B 27 -18 613 770 ; C -1 ; WX 600 ; N uhungarumlaut ; B 50 -18 576 849 ; C -1 ; WX 640 ; N ecaron ; B 31 -18 610 774 ; C -1 ; WX 620 ; N Ydieresis ; B -2 0 622 939 ; C -1 ; WX 600 ; N divide ; B 48 -20 552 526 ; C -1 ; WX 620 ; N Yacute ; B -2 0 622 1021 ; C -1 ; WX 740 ; N Acircumflex ; B 7 0 732 944 ; C -1 ; WX 660 ; N aacute ; B 27 -18 613 851 ; C -1 ; WX 640 ; N Ucircumflex ; B 55 -15 585 944 ; C -1 ; WX 580 ; N yacute ; B 8 -185 571 851 ; C -1 ; WX 440 ; N scommaaccent ; B 19 -229 421 574 ; C -1 ; WX 640 ; N ecircumflex ; B 31 -18 610 774 ; C -1 ; WX 640 ; N Uring ; B 55 -15 585 969 ; C -1 ; WX 640 ; N Udieresis ; B 55 -15 585 939 ; C -1 ; WX 660 ; N aogonek ; B 27 -195 613 574 ; C -1 ; WX 640 ; N Uacute ; B 55 -15 585 1021 ; C -1 ; WX 600 ; N uogonek ; B 50 -195 544 555 ; C -1 ; WX 520 ; N Edieresis ; B 61 0 459 939 ; C -1 ; WX 742 ; N Dcroat ; B 25 0 691 740 ; C -1 ; WX 351 ; N commaaccent ; B 48 -229 223 -54 ; C -1 ; WX 740 ; N copyright ; B -12 -12 752 752 ; C -1 ; WX 520 ; N Emacron ; B 61 0 459 944 ; C -1 ; WX 640 ; N ccaron ; B 37 -18 610 774 ; C -1 ; WX 660 ; N aring ; B 27 -18 613 834 ; C -1 ; WX 740 ; N Ncommaaccent ; B 70 -209 671 740 ; C -1 ; WX 240 ; N lacute ; B -1 0 278 1011 ; C -1 ; WX 660 ; N agrave ; B 27 -18 613 851 ; C -1 ; WX 420 ; N Tcommaaccent ; B 6 -229 418 740 ; C -1 ; WX 780 ; N Cacute ; B 34 -15 766 1021 ; C -1 ; WX 660 ; N atilde ; B 27 -18 613 767 ; C -1 ; WX 520 ; N Edotaccent ; B 61 0 459 954 ; C -1 ; WX 440 ; N scaron ; B 19 -18 421 774 ; C -1 ; WX 440 ; N scedilla ; B 19 -251 421 574 ; C -1 ; WX 240 ; N iacute ; B 24 0 303 851 ; C -1 ; WX 494 ; N lozenge ; B 10 0 484 745 ; C -1 ; WX 580 ; N Rcaron ; B 64 0 565 959 ; C -1 ; WX 840 ; N Gcommaaccent ; B 27 -229 817 755 ; C -1 ; WX 600 ; N ucircumflex ; B 50 -18 544 774 ; C -1 ; WX 660 ; N acircumflex ; B 27 -18 613 774 ; C -1 ; WX 740 ; N Amacron ; B 7 0 732 944 ; C -1 ; WX 320 ; N rcaron ; B -39 0 360 774 ; C -1 ; WX 640 ; N ccedilla ; B 37 -251 610 574 ; C -1 ; WX 500 ; N Zdotaccent ; B 19 0 481 954 ; C -1 ; WX 560 ; N Thorn ; B 72 0 545 740 ; C -1 ; WX 840 ; N Omacron ; B 33 -15 807 944 ; C -1 ; WX 580 ; N Racute ; B 64 0 565 1021 ; C -1 ; WX 520 ; N Sacute ; B 12 -15 493 1021 ; C -1 ; WX 800 ; N dcaron ; B 34 -18 828 740 ; C -1 ; WX 640 ; N Umacron ; B 55 -15 585 944 ; C -1 ; WX 600 ; N uring ; B 50 -18 544 834 ; C -1 ; WX 336 ; N threesuperior ; B 8 287 328 749 ; C -1 ; WX 840 ; N Ograve ; B 33 -15 807 1021 ; C -1 ; WX 740 ; N Agrave ; B 7 0 732 1021 ; C -1 ; WX 740 ; N Abreve ; B 7 0 732 955 ; C -1 ; WX 600 ; N multiply ; B 59 12 541 494 ; C -1 ; WX 600 ; N uacute ; B 50 -18 544 851 ; C -1 ; WX 420 ; N Tcaron ; B 6 0 418 959 ; C -1 ; WX 494 ; N partialdiff ; B 11 -21 494 750 ; C -1 ; WX 580 ; N ydieresis ; B 8 -185 571 769 ; C -1 ; WX 740 ; N Nacute ; B 70 0 671 1021 ; C -1 ; WX 240 ; N icircumflex ; B -79 0 320 774 ; C -1 ; WX 520 ; N Ecircumflex ; B 61 0 460 944 ; C -1 ; WX 660 ; N adieresis ; B 27 -18 613 769 ; C -1 ; WX 640 ; N edieresis ; B 31 -18 610 769 ; C -1 ; WX 640 ; N cacute ; B 37 -18 610 851 ; C -1 ; WX 600 ; N nacute ; B 54 0 547 851 ; C -1 ; WX 600 ; N umacron ; B 50 -18 544 759 ; C -1 ; WX 740 ; N Ncaron ; B 70 0 671 959 ; C -1 ; WX 280 ; N Iacute ; B 44 0 323 1021 ; C -1 ; WX 600 ; N plusminus ; B 48 -62 552 556 ; C -1 ; WX 600 ; N brokenbar ; B 233 -175 366 675 ; C -1 ; WX 740 ; N registered ; B -12 -12 752 752 ; C -1 ; WX 840 ; N Gbreve ; B 27 -15 817 955 ; C -1 ; WX 280 ; N Idotaccent ; B 72 0 209 954 ; C -1 ; WX 713 ; N summation ; B 14 -108 695 752 ; C -1 ; WX 520 ; N Egrave ; B 61 0 459 1021 ; C -1 ; WX 320 ; N racute ; B 63 0 348 851 ; C -1 ; WX 640 ; N omacron ; B 25 -18 615 759 ; C -1 ; WX 500 ; N Zacute ; B 19 0 481 1021 ; C -1 ; WX 500 ; N Zcaron ; B 19 0 481 944 ; C -1 ; WX 549 ; N greaterequal ; B 26 0 523 704 ; C -1 ; WX 742 ; N Eth ; B 25 0 691 740 ; C -1 ; WX 780 ; N Ccedilla ; B 34 -251 766 755 ; C -1 ; WX 240 ; N lcommaaccent ; B -7 -229 187 740 ; C -1 ; WX 400 ; N tcaron ; B 21 0 438 786 ; C -1 ; WX 640 ; N eogonek ; B 31 -195 610 574 ; C -1 ; WX 640 ; N Uogonek ; B 55 -195 585 740 ; C -1 ; WX 740 ; N Aacute ; B 7 0 732 1021 ; C -1 ; WX 740 ; N Adieresis ; B 7 0 732 939 ; C -1 ; WX 640 ; N egrave ; B 31 -18 610 851 ; C -1 ; WX 460 ; N zacute ; B 20 0 442 851 ; C -1 ; WX 240 ; N iogonek ; B -14 -195 186 740 ; C -1 ; WX 840 ; N Oacute ; B 33 -15 807 1021 ; C -1 ; WX 640 ; N oacute ; B 25 -18 615 851 ; C -1 ; WX 660 ; N amacron ; B 27 -18 613 759 ; C -1 ; WX 440 ; N sacute ; B 19 -18 421 851 ; C -1 ; WX 240 ; N idieresis ; B -52 0 292 769 ; C -1 ; WX 840 ; N Ocircumflex ; B 33 -15 807 944 ; C -1 ; WX 640 ; N Ugrave ; B 55 -15 585 1021 ; C -1 ; WX 612 ; N Delta ; B 2 0 612 692 ; C -1 ; WX 660 ; N thorn ; B 47 -185 629 740 ; C -1 ; WX 336 ; N twosuperior ; B 13 296 322 749 ; C -1 ; WX 840 ; N Odieresis ; B 33 -15 807 939 ; C -1 ; WX 576 ; N mu ; B 38 -187 539 555 ; C -1 ; WX 240 ; N igrave ; B -65 0 214 851 ; C -1 ; WX 640 ; N ohungarumlaut ; B 25 -18 615 849 ; C -1 ; WX 520 ; N Eogonek ; B 61 -195 459 740 ; C -1 ; WX 660 ; N dcroat ; B 34 -18 700 740 ; C -1 ; WX 840 ; N threequarters ; B 18 0 803 749 ; C -1 ; WX 520 ; N Scedilla ; B 12 -251 493 755 ; C -1 ; WX 380 ; N lcaron ; B 54 0 398 740 ; C -1 ; WX 620 ; N Kcommaaccent ; B 89 -209 620 740 ; C -1 ; WX 440 ; N Lacute ; B 72 0 435 1021 ; C -1 ; WX 1000 ; N trademark ; B 9 296 821 740 ; C -1 ; WX 640 ; N edotaccent ; B 31 -18 610 769 ; C -1 ; WX 280 ; N Igrave ; B -45 0 234 1021 ; C -1 ; WX 280 ; N Imacron ; B 2 0 279 944 ; C -1 ; WX 440 ; N Lcaron ; B 72 0 488 740 ; C -1 ; WX 840 ; N onehalf ; B 62 0 771 740 ; C -1 ; WX 549 ; N lessequal ; B 29 0 526 704 ; C -1 ; WX 640 ; N ocircumflex ; B 25 -18 615 774 ; C -1 ; WX 600 ; N ntilde ; B 54 0 547 767 ; C -1 ; WX 640 ; N Uhungarumlaut ; B 55 -15 596 1019 ; C -1 ; WX 520 ; N Eacute ; B 61 0 459 1021 ; C -1 ; WX 640 ; N emacron ; B 31 -18 610 759 ; C -1 ; WX 660 ; N gbreve ; B 32 -226 623 770 ; C -1 ; WX 840 ; N onequarter ; B 92 0 746 740 ; C -1 ; WX 520 ; N Scaron ; B 12 -15 493 944 ; C -1 ; WX 520 ; N Scommaaccent ; B 12 -229 493 755 ; C -1 ; WX 840 ; N Ohungarumlaut ; B 33 -15 807 1019 ; C -1 ; WX 400 ; N degree ; B 57 426 343 712 ; C -1 ; WX 640 ; N ograve ; B 25 -18 615 851 ; C -1 ; WX 780 ; N Ccaron ; B 34 -15 766 959 ; C -1 ; WX 600 ; N ugrave ; B 50 -18 544 851 ; C -1 ; WX 549 ; N radical ; B 10 -46 512 850 ; C -1 ; WX 700 ; N Dcaron ; B 63 0 657 959 ; C -1 ; WX 320 ; N rcommaaccent ; B -8 -229 317 574 ; C -1 ; WX 740 ; N Ntilde ; B 70 0 671 937 ; C -1 ; WX 640 ; N otilde ; B 25 -18 615 767 ; C -1 ; WX 580 ; N Rcommaaccent ; B 64 -209 565 740 ; C -1 ; WX 440 ; N Lcommaaccent ; B 72 -229 435 740 ; C -1 ; WX 740 ; N Atilde ; B 7 0 732 937 ; C -1 ; WX 740 ; N Aogonek ; B 7 -195 732 740 ; C -1 ; WX 740 ; N Aring ; B 7 0 732 969 ; C -1 ; WX 840 ; N Otilde ; B 33 -15 807 937 ; C -1 ; WX 460 ; N zdotaccent ; B 20 0 442 769 ; C -1 ; WX 520 ; N Ecaron ; B 61 0 460 959 ; C -1 ; WX 280 ; N Iogonek ; B 11 -195 209 740 ; C -1 ; WX 580 ; N kcommaaccent ; B 80 -209 571 740 ; C -1 ; WX 600 ; N minus ; B 48 193 552 313 ; C -1 ; WX 280 ; N Icircumflex ; B -59 0 340 944 ; C -1 ; WX 600 ; N ncaron ; B 54 0 547 774 ; C -1 ; WX 300 ; N tcommaaccent ; B 21 -229 299 740 ; C -1 ; WX 600 ; N logicalnot ; B 48 108 552 425 ; C -1 ; WX 640 ; N odieresis ; B 25 -18 615 769 ; C -1 ; WX 600 ; N udieresis ; B 50 -18 544 769 ; C -1 ; WX 549 ; N notequal ; B 15 -49 540 570 ; C -1 ; WX 660 ; N gcommaaccent ; B 32 -226 623 800 ; C -1 ; WX 640 ; N eth ; B 27 -18 616 754 ; C -1 ; WX 460 ; N zcaron ; B 20 0 455 774 ; C -1 ; WX 600 ; N ncommaaccent ; B 54 -209 547 574 ; C -1 ; WX 336 ; N onesuperior ; B 72 296 223 740 ; C -1 ; WX 240 ; N imacron ; B -18 0 259 759 ; EndCharMetrics StartKernData StartKernPairs 933 KPX A T -73 KPX A Tcaron -73 KPX A Tcommaaccent -73 KPX A V -127 KPX A W -96 KPX A Y -139 KPX A Yacute -139 KPX A Ydieresis -139 KPX A v -50 KPX A w -50 KPX A y -50 KPX A yacute -50 KPX A ydieresis -50 KPX Aacute T -73 KPX Aacute Tcaron -73 KPX Aacute Tcommaaccent -73 KPX Aacute V -127 KPX Aacute W -96 KPX Aacute Y -139 KPX Aacute Yacute -139 KPX Aacute Ydieresis -139 KPX Aacute v -50 KPX Aacute w -50 KPX Aacute y -50 KPX Aacute yacute -50 KPX Aacute ydieresis -50 KPX Abreve T -73 KPX Abreve Tcaron -73 KPX Abreve Tcommaaccent -73 KPX Abreve V -127 KPX Abreve W -96 KPX Abreve Y -139 KPX Abreve Yacute -139 KPX Abreve Ydieresis -139 KPX Abreve v -50 KPX Abreve w -50 KPX Abreve y -50 KPX Abreve yacute -50 KPX Abreve ydieresis -50 KPX Acircumflex T -73 KPX Acircumflex Tcaron -73 KPX Acircumflex Tcommaaccent -73 KPX Acircumflex V -127 KPX Acircumflex W -96 KPX Acircumflex Y -139 KPX Acircumflex Yacute -139 KPX Acircumflex Ydieresis -139 KPX Acircumflex v -50 KPX Acircumflex w -50 KPX Acircumflex y -50 KPX Acircumflex yacute -50 KPX Acircumflex ydieresis -50 KPX Adieresis T -73 KPX Adieresis Tcaron -73 KPX Adieresis Tcommaaccent -73 KPX Adieresis V -127 KPX Adieresis W -96 KPX Adieresis Y -139 KPX Adieresis Yacute -139 KPX Adieresis Ydieresis -139 KPX Adieresis v -50 KPX Adieresis w -50 KPX Adieresis y -50 KPX Adieresis yacute -50 KPX Adieresis ydieresis -50 KPX Agrave T -73 KPX Agrave Tcaron -73 KPX Agrave Tcommaaccent -73 KPX Agrave V -127 KPX Agrave W -96 KPX Agrave Y -139 KPX Agrave Yacute -139 KPX Agrave Ydieresis -139 KPX Agrave v -50 KPX Agrave w -50 KPX Agrave y -50 KPX Agrave yacute -50 KPX Agrave ydieresis -50 KPX Amacron T -73 KPX Amacron Tcaron -73 KPX Amacron Tcommaaccent -73 KPX Amacron V -127 KPX Amacron W -96 KPX Amacron Y -139 KPX Amacron Yacute -139 KPX Amacron Ydieresis -139 KPX Amacron v -50 KPX Amacron w -50 KPX Amacron y -50 KPX Amacron yacute -50 KPX Amacron ydieresis -50 KPX Aogonek T -73 KPX Aogonek Tcaron -73 KPX Aogonek Tcommaaccent -73 KPX Aogonek V -127 KPX Aogonek W -96 KPX Aogonek Y -139 KPX Aogonek Yacute -139 KPX Aogonek Ydieresis -139 KPX Aogonek v -50 KPX Aogonek w -50 KPX Aogonek y -50 KPX Aogonek yacute -50 KPX Aogonek ydieresis -50 KPX Aring T -73 KPX Aring Tcaron -73 KPX Aring Tcommaaccent -73 KPX Aring V -127 KPX Aring W -96 KPX Aring Y -139 KPX Aring Yacute -139 KPX Aring Ydieresis -139 KPX Aring v -50 KPX Aring w -50 KPX Aring y -50 KPX Aring yacute -50 KPX Aring ydieresis -50 KPX Atilde T -73 KPX Atilde Tcaron -73 KPX Atilde Tcommaaccent -73 KPX Atilde V -127 KPX Atilde W -96 KPX Atilde Y -139 KPX Atilde Yacute -139 KPX Atilde Ydieresis -139 KPX Atilde v -50 KPX Atilde w -50 KPX Atilde y -50 KPX Atilde yacute -50 KPX Atilde ydieresis -50 KPX F A -95 KPX F Aacute -95 KPX F Abreve -95 KPX F Acircumflex -95 KPX F Adieresis -95 KPX F Agrave -95 KPX F Amacron -95 KPX F Aogonek -95 KPX F Aring -95 KPX F Atilde -95 KPX F comma -42 KPX F period -42 KPX L T -50 KPX L Tcaron -50 KPX L Tcommaaccent -50 KPX L V -90 KPX L W -90 KPX L Y -90 KPX L Yacute -90 KPX L Ydieresis -90 KPX L y -75 KPX L yacute -75 KPX L ydieresis -75 KPX Lacute T -50 KPX Lacute Tcaron -50 KPX Lacute Tcommaaccent -50 KPX Lacute V -90 KPX Lacute W -90 KPX Lacute Y -90 KPX Lacute Yacute -90 KPX Lacute Ydieresis -90 KPX Lacute y -75 KPX Lacute yacute -75 KPX Lacute ydieresis -75 KPX Lcommaaccent T -50 KPX Lcommaaccent Tcaron -50 KPX Lcommaaccent Tcommaaccent -50 KPX Lcommaaccent V -90 KPX Lcommaaccent W -90 KPX Lcommaaccent Y -90 KPX Lcommaaccent Yacute -90 KPX Lcommaaccent Ydieresis -90 KPX Lcommaaccent y -75 KPX Lcommaaccent yacute -75 KPX Lcommaaccent ydieresis -75 KPX Lslash T -50 KPX Lslash Tcaron -50 KPX Lslash Tcommaaccent -50 KPX Lslash V -90 KPX Lslash W -90 KPX Lslash Y -90 KPX Lslash Yacute -90 KPX Lslash Ydieresis -90 KPX Lslash y -75 KPX Lslash yacute -75 KPX Lslash ydieresis -75 KPX P A -100 KPX P Aacute -100 KPX P Abreve -100 KPX P Acircumflex -100 KPX P Adieresis -100 KPX P Agrave -100 KPX P Amacron -100 KPX P Aogonek -100 KPX P Aring -100 KPX P Atilde -100 KPX P comma -16 KPX P period -16 KPX R T 16 KPX R Tcaron 16 KPX R Tcommaaccent 16 KPX R V -26 KPX R W -20 KPX R Y -20 KPX R Yacute -20 KPX R Ydieresis -20 KPX R y 31 KPX R yacute 31 KPX R ydieresis 31 KPX Racute T 16 KPX Racute Tcaron 16 KPX Racute Tcommaaccent 16 KPX Racute V -26 KPX Racute W -20 KPX Racute Y -20 KPX Racute Yacute -20 KPX Racute Ydieresis -20 KPX Racute y 31 KPX Racute yacute 31 KPX Racute ydieresis 31 KPX Rcaron T 16 KPX Rcaron Tcaron 16 KPX Rcaron Tcommaaccent 16 KPX Rcaron V -26 KPX Rcaron W -20 KPX Rcaron Y -20 KPX Rcaron Yacute -20 KPX Rcaron Ydieresis -20 KPX Rcaron y 31 KPX Rcaron yacute 31 KPX Rcaron ydieresis 31 KPX Rcommaaccent T 16 KPX Rcommaaccent Tcaron 16 KPX Rcommaaccent Tcommaaccent 16 KPX Rcommaaccent V -26 KPX Rcommaaccent W -20 KPX Rcommaaccent Y -20 KPX Rcommaaccent Yacute -20 KPX Rcommaaccent Ydieresis -20 KPX Rcommaaccent y 31 KPX Rcommaaccent yacute 31 KPX Rcommaaccent ydieresis 31 KPX T A -70 KPX T Aacute -70 KPX T Abreve -70 KPX T Acircumflex -70 KPX T Adieresis -70 KPX T Agrave -70 KPX T Amacron -70 KPX T Aogonek -70 KPX T Aring -70 KPX T Atilde -70 KPX T a -40 KPX T aacute -40 KPX T abreve -40 KPX T acircumflex -40 KPX T adieresis -40 KPX T agrave -40 KPX T amacron -40 KPX T aogonek -40 KPX T aring -40 KPX T atilde -40 KPX T c -50 KPX T cacute -50 KPX T ccaron -50 KPX T ccedilla -50 KPX T colon -12 KPX T comma 4 KPX T e -50 KPX T eacute -50 KPX T ecaron -50 KPX T ecircumflex -50 KPX T edieresis -50 KPX T edotaccent -50 KPX T egrave -50 KPX T emacron -50 KPX T eogonek -50 KPX T hyphen -10 KPX T i -5 KPX T iacute 10 KPX T icircumflex 10 KPX T idieresis 10 KPX T igrave 10 KPX T imacron 10 KPX T iogonek -5 KPX T o -50 KPX T oacute -50 KPX T ocircumflex -50 KPX T odieresis -50 KPX T ograve -50 KPX T ohungarumlaut -50 KPX T omacron -50 KPX T oslash -50 KPX T otilde -50 KPX T period 4 KPX T r -42 KPX T rcommaaccent -42 KPX T s -43 KPX T sacute -43 KPX T scedilla -43 KPX T scommaaccent -43 KPX T semicolon -12 KPX T u -56 KPX T uacute -56 KPX T ucircumflex -56 KPX T udieresis -56 KPX T ugrave -56 KPX T uhungarumlaut -56 KPX T umacron -56 KPX T uogonek -56 KPX T uring -56 KPX T w -15 KPX T y -12 KPX T yacute -12 KPX T ydieresis -12 KPX Tcaron A -70 KPX Tcaron Aacute -70 KPX Tcaron Abreve -70 KPX Tcaron Acircumflex -70 KPX Tcaron Adieresis -70 KPX Tcaron Agrave -70 KPX Tcaron Amacron -70 KPX Tcaron Aogonek -70 KPX Tcaron Aring -70 KPX Tcaron Atilde -70 KPX Tcaron a -40 KPX Tcaron aacute -40 KPX Tcaron abreve -40 KPX Tcaron acircumflex -40 KPX Tcaron adieresis -40 KPX Tcaron agrave -40 KPX Tcaron amacron -40 KPX Tcaron aogonek -40 KPX Tcaron aring -40 KPX Tcaron atilde -40 KPX Tcaron c -50 KPX Tcaron cacute -50 KPX Tcaron ccaron -50 KPX Tcaron ccedilla -50 KPX Tcaron colon -12 KPX Tcaron comma 4 KPX Tcaron e -50 KPX Tcaron eacute -50 KPX Tcaron ecaron -50 KPX Tcaron ecircumflex -50 KPX Tcaron edieresis -50 KPX Tcaron edotaccent -50 KPX Tcaron egrave -50 KPX Tcaron emacron -50 KPX Tcaron eogonek -50 KPX Tcaron hyphen -10 KPX Tcaron i -5 KPX Tcaron iacute 10 KPX Tcaron icircumflex 10 KPX Tcaron idieresis 10 KPX Tcaron igrave 10 KPX Tcaron imacron 10 KPX Tcaron iogonek -5 KPX Tcaron o -50 KPX Tcaron oacute -50 KPX Tcaron ocircumflex -50 KPX Tcaron odieresis -50 KPX Tcaron ograve -50 KPX Tcaron ohungarumlaut -50 KPX Tcaron omacron -50 KPX Tcaron oslash -50 KPX Tcaron otilde -50 KPX Tcaron period 4 KPX Tcaron r -42 KPX Tcaron racute -42 KPX Tcaron rcaron -42 KPX Tcaron rcommaaccent -42 KPX Tcaron s -43 KPX Tcaron sacute -43 KPX Tcaron scaron -43 KPX Tcaron scedilla -43 KPX Tcaron scommaaccent -43 KPX Tcaron semicolon -12 KPX Tcaron u -56 KPX Tcaron uacute -56 KPX Tcaron ucircumflex -56 KPX Tcaron udieresis -56 KPX Tcaron ugrave -56 KPX Tcaron uhungarumlaut -56 KPX Tcaron umacron -56 KPX Tcaron uogonek -56 KPX Tcaron uring -56 KPX Tcaron w -15 KPX Tcaron y -12 KPX Tcaron yacute -12 KPX Tcaron ydieresis -12 KPX Tcommaaccent A -70 KPX Tcommaaccent Aacute -70 KPX Tcommaaccent Abreve -70 KPX Tcommaaccent Acircumflex -70 KPX Tcommaaccent Adieresis -70 KPX Tcommaaccent Agrave -70 KPX Tcommaaccent Amacron -70 KPX Tcommaaccent Aogonek -70 KPX Tcommaaccent Aring -70 KPX Tcommaaccent Atilde -70 KPX Tcommaaccent a -40 KPX Tcommaaccent aacute -40 KPX Tcommaaccent abreve -40 KPX Tcommaaccent acircumflex -40 KPX Tcommaaccent adieresis -40 KPX Tcommaaccent agrave -40 KPX Tcommaaccent amacron -40 KPX Tcommaaccent aogonek -40 KPX Tcommaaccent aring -40 KPX Tcommaaccent atilde -40 KPX Tcommaaccent c -50 KPX Tcommaaccent cacute -50 KPX Tcommaaccent ccaron -50 KPX Tcommaaccent ccedilla -50 KPX Tcommaaccent colon -12 KPX Tcommaaccent comma 4 KPX Tcommaaccent e -50 KPX Tcommaaccent eacute -50 KPX Tcommaaccent ecaron -50 KPX Tcommaaccent ecircumflex -50 KPX Tcommaaccent edieresis -50 KPX Tcommaaccent edotaccent -50 KPX Tcommaaccent egrave -50 KPX Tcommaaccent emacron -50 KPX Tcommaaccent eogonek -50 KPX Tcommaaccent hyphen -10 KPX Tcommaaccent i -5 KPX Tcommaaccent iacute 10 KPX Tcommaaccent icircumflex 10 KPX Tcommaaccent idieresis 10 KPX Tcommaaccent igrave 10 KPX Tcommaaccent imacron 10 KPX Tcommaaccent iogonek -5 KPX Tcommaaccent o -50 KPX Tcommaaccent oacute -50 KPX Tcommaaccent ocircumflex -50 KPX Tcommaaccent odieresis -50 KPX Tcommaaccent ograve -50 KPX Tcommaaccent ohungarumlaut -50 KPX Tcommaaccent omacron -50 KPX Tcommaaccent oslash -50 KPX Tcommaaccent otilde -50 KPX Tcommaaccent period 4 KPX Tcommaaccent r -42 KPX Tcommaaccent racute -42 KPX Tcommaaccent rcaron -42 KPX Tcommaaccent rcommaaccent -42 KPX Tcommaaccent s -43 KPX Tcommaaccent sacute -43 KPX Tcommaaccent scaron -43 KPX Tcommaaccent scedilla -43 KPX Tcommaaccent scommaaccent -43 KPX Tcommaaccent semicolon -12 KPX Tcommaaccent u -56 KPX Tcommaaccent uacute -56 KPX Tcommaaccent ucircumflex -56 KPX Tcommaaccent udieresis -56 KPX Tcommaaccent ugrave -56 KPX Tcommaaccent uhungarumlaut -56 KPX Tcommaaccent umacron -56 KPX Tcommaaccent uogonek -56 KPX Tcommaaccent uring -56 KPX Tcommaaccent w -15 KPX Tcommaaccent y -12 KPX Tcommaaccent yacute -12 KPX Tcommaaccent ydieresis -12 KPX V A -125 KPX V Aacute -125 KPX V Abreve -125 KPX V Acircumflex -125 KPX V Adieresis -125 KPX V Agrave -125 KPX V Amacron -125 KPX V Aogonek -125 KPX V Aring -125 KPX V Atilde -125 KPX V a -80 KPX V aacute -80 KPX V abreve -80 KPX V acircumflex -80 KPX V adieresis -80 KPX V agrave -80 KPX V amacron -80 KPX V aogonek -80 KPX V aring -80 KPX V atilde -80 KPX V colon -13 KPX V comma -13 KPX V e -80 KPX V eacute -80 KPX V ecaron -80 KPX V ecircumflex -80 KPX V edieresis -80 KPX V edotaccent -80 KPX V egrave -80 KPX V emacron -80 KPX V eogonek -80 KPX V hyphen -20 KPX V i -9 KPX V iacute -9 KPX V iogonek -9 KPX V o -80 KPX V oacute -80 KPX V ocircumflex -80 KPX V odieresis -80 KPX V ograve -80 KPX V ohungarumlaut -80 KPX V omacron -80 KPX V oslash -80 KPX V otilde -80 KPX V period -13 KPX V r -40 KPX V racute -40 KPX V rcaron -40 KPX V rcommaaccent -40 KPX V semicolon -13 KPX V u -68 KPX V uacute -68 KPX V ucircumflex -68 KPX V udieresis -68 KPX V ugrave -68 KPX V uhungarumlaut -68 KPX V umacron -68 KPX V uogonek -68 KPX V uring -68 KPX V y -15 KPX V yacute -15 KPX V ydieresis -15 KPX W A -94 KPX W Aacute -94 KPX W Abreve -94 KPX W Acircumflex -94 KPX W Adieresis -94 KPX W Agrave -94 KPX W Amacron -94 KPX W Aogonek -94 KPX W Aring -94 KPX W Atilde -94 KPX W a -50 KPX W aacute -50 KPX W abreve -50 KPX W acircumflex -50 KPX W adieresis -50 KPX W agrave -50 KPX W amacron -50 KPX W aogonek -50 KPX W aring -50 KPX W atilde -50 KPX W colon -12 KPX W comma -12 KPX W e -50 KPX W eacute -50 KPX W ecaron -50 KPX W ecircumflex -50 KPX W edieresis -50 KPX W edotaccent -50 KPX W egrave -50 KPX W emacron -50 KPX W eogonek -50 KPX W hyphen -10 KPX W i -7 KPX W iacute 10 KPX W icircumflex 10 KPX W idieresis 10 KPX W igrave 10 KPX W imacron 10 KPX W iogonek -7 KPX W o -50 KPX W oacute -50 KPX W ocircumflex -50 KPX W odieresis -50 KPX W ograve -50 KPX W ohungarumlaut -50 KPX W omacron -50 KPX W oslash -50 KPX W otilde -50 KPX W period -12 KPX W r -39 KPX W racute -39 KPX W rcommaaccent -39 KPX W semicolon -12 KPX W u -40 KPX W uacute -40 KPX W ucircumflex -40 KPX W udieresis -40 KPX W ugrave -40 KPX W uhungarumlaut -40 KPX W umacron -40 KPX W uogonek -40 KPX W uring -40 KPX W y 1 KPX W yacute 1 KPX W ydieresis 1 KPX Y A -138 KPX Y Aacute -138 KPX Y Abreve -138 KPX Y Acircumflex -138 KPX Y Adieresis -138 KPX Y Agrave -138 KPX Y Amacron -138 KPX Y Aogonek -138 KPX Y Aring -138 KPX Y Atilde -138 KPX Y a -100 KPX Y aacute -100 KPX Y abreve -100 KPX Y acircumflex -100 KPX Y adieresis -100 KPX Y agrave -100 KPX Y amacron -100 KPX Y aogonek -100 KPX Y aring -100 KPX Y atilde -100 KPX Y colon -8 KPX Y comma -8 KPX Y e -100 KPX Y eacute -100 KPX Y ecaron -100 KPX Y ecircumflex -100 KPX Y edieresis -100 KPX Y edotaccent -100 KPX Y egrave -100 KPX Y emacron -100 KPX Y eogonek -100 KPX Y hyphen -60 KPX Y i -5 KPX Y iacute -5 KPX Y icircumflex 10 KPX Y idieresis 10 KPX Y igrave 10 KPX Y imacron 10 KPX Y iogonek -5 KPX Y o -100 KPX Y oacute -100 KPX Y ocircumflex -100 KPX Y odieresis -100 KPX Y ograve -100 KPX Y ohungarumlaut -100 KPX Y omacron -100 KPX Y oslash -100 KPX Y otilde -100 KPX Y p -60 KPX Y period -8 KPX Y q -100 KPX Y semicolon -8 KPX Y u -82 KPX Y uacute -82 KPX Y ucircumflex -82 KPX Y udieresis -82 KPX Y ugrave -82 KPX Y uhungarumlaut -82 KPX Y umacron -82 KPX Y uogonek -82 KPX Y uring -82 KPX Y v -25 KPX Yacute A -138 KPX Yacute Aacute -138 KPX Yacute Abreve -138 KPX Yacute Acircumflex -138 KPX Yacute Adieresis -138 KPX Yacute Agrave -138 KPX Yacute Amacron -138 KPX Yacute Aogonek -138 KPX Yacute Aring -138 KPX Yacute Atilde -138 KPX Yacute a -100 KPX Yacute aacute -100 KPX Yacute abreve -100 KPX Yacute acircumflex -100 KPX Yacute adieresis -100 KPX Yacute agrave -100 KPX Yacute amacron -100 KPX Yacute aogonek -100 KPX Yacute aring -100 KPX Yacute atilde -100 KPX Yacute colon -8 KPX Yacute comma -8 KPX Yacute e -100 KPX Yacute eacute -100 KPX Yacute ecaron -100 KPX Yacute ecircumflex -100 KPX Yacute edieresis -100 KPX Yacute edotaccent -100 KPX Yacute egrave -100 KPX Yacute emacron -100 KPX Yacute eogonek -100 KPX Yacute hyphen -60 KPX Yacute i -5 KPX Yacute iacute -5 KPX Yacute icircumflex 10 KPX Yacute idieresis 10 KPX Yacute igrave 10 KPX Yacute imacron 10 KPX Yacute iogonek -5 KPX Yacute o -100 KPX Yacute oacute -100 KPX Yacute ocircumflex -100 KPX Yacute odieresis -100 KPX Yacute ograve -100 KPX Yacute ohungarumlaut -100 KPX Yacute omacron -100 KPX Yacute oslash -100 KPX Yacute otilde -100 KPX Yacute p -60 KPX Yacute period -8 KPX Yacute q -100 KPX Yacute semicolon -8 KPX Yacute u -82 KPX Yacute uacute -82 KPX Yacute ucircumflex -82 KPX Yacute udieresis -82 KPX Yacute ugrave -82 KPX Yacute uhungarumlaut -82 KPX Yacute umacron -82 KPX Yacute uogonek -82 KPX Yacute uring -82 KPX Yacute v -25 KPX Ydieresis A -138 KPX Ydieresis Aacute -138 KPX Ydieresis Abreve -138 KPX Ydieresis Acircumflex -138 KPX Ydieresis Adieresis -138 KPX Ydieresis Agrave -138 KPX Ydieresis Amacron -138 KPX Ydieresis Aogonek -138 KPX Ydieresis Aring -138 KPX Ydieresis Atilde -138 KPX Ydieresis a -100 KPX Ydieresis aacute -100 KPX Ydieresis abreve -100 KPX Ydieresis acircumflex -100 KPX Ydieresis adieresis -100 KPX Ydieresis agrave -100 KPX Ydieresis amacron -100 KPX Ydieresis aogonek -100 KPX Ydieresis aring -100 KPX Ydieresis atilde -100 KPX Ydieresis colon -8 KPX Ydieresis comma -8 KPX Ydieresis e -100 KPX Ydieresis eacute -100 KPX Ydieresis ecaron -100 KPX Ydieresis ecircumflex -100 KPX Ydieresis edieresis -100 KPX Ydieresis edotaccent -100 KPX Ydieresis egrave -100 KPX Ydieresis emacron -100 KPX Ydieresis eogonek -100 KPX Ydieresis hyphen -60 KPX Ydieresis i -5 KPX Ydieresis iacute -5 KPX Ydieresis icircumflex 10 KPX Ydieresis idieresis 10 KPX Ydieresis igrave 10 KPX Ydieresis imacron 10 KPX Ydieresis iogonek -5 KPX Ydieresis o -100 KPX Ydieresis oacute -100 KPX Ydieresis ocircumflex -100 KPX Ydieresis odieresis -100 KPX Ydieresis ograve -100 KPX Ydieresis ohungarumlaut -100 KPX Ydieresis omacron -100 KPX Ydieresis oslash -100 KPX Ydieresis otilde -100 KPX Ydieresis p -60 KPX Ydieresis period -8 KPX Ydieresis q -100 KPX Ydieresis semicolon -8 KPX Ydieresis u -82 KPX Ydieresis uacute -82 KPX Ydieresis ucircumflex -82 KPX Ydieresis udieresis -82 KPX Ydieresis ugrave -82 KPX Ydieresis uhungarumlaut -82 KPX Ydieresis umacron -82 KPX Ydieresis uogonek -82 KPX Ydieresis uring -82 KPX Ydieresis v -25 KPX f f 38 KPX r c -27 KPX r cacute -27 KPX r ccaron -27 KPX r ccedilla -27 KPX r comma 9 KPX r d -8 KPX r dcroat -8 KPX r e -8 KPX r eacute -8 KPX r ecaron -8 KPX r ecircumflex -8 KPX r edieresis -8 KPX r edotaccent -8 KPX r egrave -8 KPX r emacron -8 KPX r eogonek -8 KPX r f 38 KPX r g -8 KPX r gbreve -8 KPX r gcommaaccent -8 KPX r hyphen -10 KPX r m 5 KPX r n 5 KPX r nacute 5 KPX r ncaron 5 KPX r ncommaaccent 5 KPX r ntilde 5 KPX r o -18 KPX r oacute -18 KPX r ocircumflex -18 KPX r odieresis -18 KPX r ograve -18 KPX r ohungarumlaut -18 KPX r omacron -18 KPX r oslash -18 KPX r otilde -18 KPX r period 9 KPX r q -18 KPX racute c -27 KPX racute cacute -27 KPX racute ccaron -27 KPX racute ccedilla -27 KPX racute comma 9 KPX racute d -8 KPX racute dcroat -8 KPX racute e -8 KPX racute eacute -8 KPX racute ecaron -8 KPX racute ecircumflex -8 KPX racute edieresis -8 KPX racute edotaccent -8 KPX racute egrave -8 KPX racute emacron -8 KPX racute eogonek -8 KPX racute f 38 KPX racute g -8 KPX racute gbreve -8 KPX racute gcommaaccent -8 KPX racute hyphen -10 KPX racute m 5 KPX racute n 5 KPX racute nacute 5 KPX racute ncaron 5 KPX racute ncommaaccent 5 KPX racute ntilde 5 KPX racute o -18 KPX racute oacute -18 KPX racute ocircumflex -18 KPX racute odieresis -18 KPX racute ograve -18 KPX racute ohungarumlaut -18 KPX racute omacron -18 KPX racute oslash -18 KPX racute otilde -18 KPX racute period 9 KPX racute q -18 KPX rcaron c -27 KPX rcaron cacute -27 KPX rcaron ccaron -27 KPX rcaron ccedilla -27 KPX rcaron comma 9 KPX rcaron d -8 KPX rcaron dcroat -8 KPX rcaron e -8 KPX rcaron eacute -8 KPX rcaron ecaron -8 KPX rcaron ecircumflex -8 KPX rcaron edieresis -8 KPX rcaron edotaccent -8 KPX rcaron egrave -8 KPX rcaron emacron -8 KPX rcaron eogonek -8 KPX rcaron f 38 KPX rcaron g -8 KPX rcaron gbreve -8 KPX rcaron gcommaaccent -8 KPX rcaron hyphen -10 KPX rcaron m 5 KPX rcaron n 5 KPX rcaron nacute 5 KPX rcaron ncaron 5 KPX rcaron ncommaaccent 5 KPX rcaron ntilde 5 KPX rcaron o -18 KPX rcaron oacute -18 KPX rcaron ocircumflex -18 KPX rcaron odieresis -18 KPX rcaron ograve -18 KPX rcaron ohungarumlaut -18 KPX rcaron omacron -18 KPX rcaron oslash -18 KPX rcaron otilde -18 KPX rcaron period 9 KPX rcaron q -18 KPX rcommaaccent c -27 KPX rcommaaccent cacute -27 KPX rcommaaccent ccaron -27 KPX rcommaaccent ccedilla -27 KPX rcommaaccent comma 9 KPX rcommaaccent d -8 KPX rcommaaccent dcroat -8 KPX rcommaaccent e -8 KPX rcommaaccent eacute -8 KPX rcommaaccent ecaron -8 KPX rcommaaccent ecircumflex -8 KPX rcommaaccent edieresis -8 KPX rcommaaccent edotaccent -8 KPX rcommaaccent egrave -8 KPX rcommaaccent emacron -8 KPX rcommaaccent eogonek -8 KPX rcommaaccent f 38 KPX rcommaaccent g -8 KPX rcommaaccent gbreve -8 KPX rcommaaccent gcommaaccent -8 KPX rcommaaccent hyphen -10 KPX rcommaaccent m 5 KPX rcommaaccent n 5 KPX rcommaaccent nacute 5 KPX rcommaaccent ncaron 5 KPX rcommaaccent ncommaaccent 5 KPX rcommaaccent ntilde 5 KPX rcommaaccent o -18 KPX rcommaaccent oacute -18 KPX rcommaaccent ocircumflex -18 KPX rcommaaccent odieresis -18 KPX rcommaaccent ograve -18 KPX rcommaaccent ohungarumlaut -18 KPX rcommaaccent omacron -18 KPX rcommaaccent oslash -18 KPX rcommaaccent otilde -18 KPX rcommaaccent period 9 KPX rcommaaccent q -18 EndKernPairs EndKernData EndFontMetrics a2ps-4.14/afm/pncr.afm0000644000175000017500000013402310674334153014030 0ustar mhattamhattaStartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1989, 1991, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Mon Jun 23 16:42:59 1997 Comment UniqueID 43091 Comment VMusage 42481 53506 FontName NewCenturySchlbk-Roman FullName New Century Schoolbook Roman FamilyName New Century Schoolbook Weight Medium ItalicAngle 0 IsFixedPitch false FontBBox -195 -250 1000 965 UnderlinePosition -100 UnderlineThickness 50 Version 002.000 Notice Copyright (c) 1985, 1987, 1989, 1991, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved. EncodingScheme AdobeStandardEncoding CapHeight 722 XHeight 464 Ascender 737 Descender -205 StdHW 45 StdVW 92 StartCharMetrics 314 C 32 ; WX 278 ; N space ; B 0 0 0 0 ; C 33 ; WX 296 ; N exclam ; B 86 -15 210 737 ; C 34 ; WX 389 ; N quotedbl ; B 61 443 328 737 ; C 35 ; WX 556 ; N numbersign ; B 28 0 528 690 ; C 36 ; WX 556 ; N dollar ; B 45 -138 511 813 ; C 37 ; WX 833 ; N percent ; B 43 -15 790 705 ; C 38 ; WX 815 ; N ampersand ; B 51 -15 775 737 ; C 39 ; WX 204 ; N quoteright ; B 25 443 179 737 ; C 40 ; WX 333 ; N parenleft ; B 40 -117 279 745 ; C 41 ; WX 333 ; N parenright ; B 54 -117 293 745 ; C 42 ; WX 500 ; N asterisk ; B 57 306 443 737 ; C 43 ; WX 606 ; N plus ; B 50 0 556 506 ; C 44 ; WX 278 ; N comma ; B 62 -185 216 109 ; C 45 ; WX 333 ; N hyphen ; B 42 199 291 277 ; C 46 ; WX 278 ; N period ; B 77 -15 201 109 ; C 47 ; WX 278 ; N slash ; B -32 -15 310 737 ; C 48 ; WX 556 ; N zero ; B 42 -15 514 705 ; C 49 ; WX 556 ; N one ; B 100 0 496 705 ; C 50 ; WX 556 ; N two ; B 35 0 505 705 ; C 51 ; WX 556 ; N three ; B 42 -15 498 705 ; C 52 ; WX 556 ; N four ; B 28 0 528 705 ; C 53 ; WX 556 ; N five ; B 46 -15 502 705 ; C 54 ; WX 556 ; N six ; B 41 -15 515 705 ; C 55 ; WX 556 ; N seven ; B 59 -15 508 705 ; C 56 ; WX 556 ; N eight ; B 42 -15 514 705 ; C 57 ; WX 556 ; N nine ; B 41 -15 515 705 ; C 58 ; WX 278 ; N colon ; B 77 -15 201 474 ; C 59 ; WX 278 ; N semicolon ; B 62 -185 216 474 ; C 60 ; WX 606 ; N less ; B 50 -8 556 514 ; C 61 ; WX 606 ; N equal ; B 50 117 556 389 ; C 62 ; WX 606 ; N greater ; B 50 -8 556 514 ; C 63 ; WX 444 ; N question ; B 29 -15 415 737 ; C 64 ; WX 737 ; N at ; B -8 -15 744 737 ; C 65 ; WX 722 ; N A ; B -8 0 730 737 ; C 66 ; WX 722 ; N B ; B 29 0 669 722 ; C 67 ; WX 722 ; N C ; B 45 -15 668 737 ; C 68 ; WX 778 ; N D ; B 29 0 733 722 ; C 69 ; WX 722 ; N E ; B 29 0 663 722 ; C 70 ; WX 667 ; N F ; B 29 0 638 722 ; C 71 ; WX 778 ; N G ; B 45 -15 775 737 ; C 72 ; WX 833 ; N H ; B 29 0 804 722 ; C 73 ; WX 407 ; N I ; B 38 0 369 722 ; C 74 ; WX 556 ; N J ; B 5 -15 540 722 ; C 75 ; WX 778 ; N K ; B 29 0 803 722 ; C 76 ; WX 667 ; N L ; B 29 0 644 722 ; C 77 ; WX 944 ; N M ; B 29 0 915 722 ; C 78 ; WX 815 ; N N ; B 24 -15 791 722 ; C 79 ; WX 778 ; N O ; B 45 -15 733 737 ; C 80 ; WX 667 ; N P ; B 29 0 650 722 ; C 81 ; WX 778 ; N Q ; B 45 -190 748 737 ; C 82 ; WX 722 ; N R ; B 29 -15 713 722 ; C 83 ; WX 630 ; N S ; B 47 -15 583 737 ; C 84 ; WX 667 ; N T ; B 19 0 648 722 ; C 85 ; WX 815 ; N U ; B 16 -15 799 722 ; C 86 ; WX 722 ; N V ; B -8 -10 730 722 ; C 87 ; WX 981 ; N W ; B 5 -10 976 722 ; C 88 ; WX 704 ; N X ; B -8 0 712 722 ; C 89 ; WX 704 ; N Y ; B -11 0 715 722 ; C 90 ; WX 611 ; N Z ; B 24 0 576 722 ; C 91 ; WX 333 ; N bracketleft ; B 126 -109 315 737 ; C 92 ; WX 606 ; N backslash ; B 132 -15 474 737 ; C 93 ; WX 333 ; N bracketright ; B 18 -109 207 737 ; C 94 ; WX 606 ; N asciicircum ; B 89 325 517 690 ; C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; C 96 ; WX 204 ; N quoteleft ; B 25 443 179 737 ; C 97 ; WX 556 ; N a ; B 44 -15 542 479 ; C 98 ; WX 556 ; N b ; B 10 -15 522 737 ; C 99 ; WX 444 ; N c ; B 34 -15 426 479 ; C 100 ; WX 574 ; N d ; B 34 -15 552 737 ; C 101 ; WX 500 ; N e ; B 34 -15 466 479 ; C 102 ; WX 333 ; N f ; B 18 0 437 737 ; L i fi ; L l fl ; C 103 ; WX 537 ; N g ; B 23 -205 542 494 ; C 104 ; WX 611 ; N h ; B 7 0 592 737 ; C 105 ; WX 315 ; N i ; B 18 0 286 722 ; C 106 ; WX 296 ; N j ; B -86 -205 216 722 ; C 107 ; WX 593 ; N k ; B 10 0 589 737 ; C 108 ; WX 315 ; N l ; B 18 0 286 737 ; C 109 ; WX 889 ; N m ; B 26 0 863 479 ; C 110 ; WX 611 ; N n ; B 22 0 589 479 ; C 111 ; WX 500 ; N o ; B 34 -15 466 479 ; C 112 ; WX 574 ; N p ; B 22 -205 540 479 ; C 113 ; WX 556 ; N q ; B 34 -205 552 479 ; C 114 ; WX 444 ; N r ; B 18 0 434 479 ; C 115 ; WX 463 ; N s ; B 46 -15 417 479 ; C 116 ; WX 389 ; N t ; B 18 -15 371 666 ; C 117 ; WX 611 ; N u ; B 22 -15 589 464 ; C 118 ; WX 537 ; N v ; B -6 -10 515 464 ; C 119 ; WX 778 ; N w ; B 1 -10 749 464 ; C 120 ; WX 537 ; N x ; B 8 0 529 464 ; C 121 ; WX 537 ; N y ; B 4 -205 533 464 ; C 122 ; WX 481 ; N z ; B 42 0 439 464 ; C 123 ; WX 333 ; N braceleft ; B 54 -109 279 737 ; C 124 ; WX 606 ; N bar ; B 267 -250 339 750 ; C 125 ; WX 333 ; N braceright ; B 54 -109 279 737 ; C 126 ; WX 606 ; N asciitilde ; B 72 184 534 322 ; C 161 ; WX 296 ; N exclamdown ; B 86 -205 210 547 ; C 162 ; WX 556 ; N cent ; B 74 -141 482 584 ; C 163 ; WX 556 ; N sterling ; B 18 -15 538 705 ; C 164 ; WX 167 ; N fraction ; B -195 -15 362 705 ; C 165 ; WX 556 ; N yen ; B -1 0 557 690 ; C 166 ; WX 556 ; N florin ; B 0 -205 538 737 ; C 167 ; WX 500 ; N section ; B 55 -147 445 737 ; C 168 ; WX 556 ; N currency ; B 26 93 530 597 ; C 169 ; WX 204 ; N quotesingle ; B 59 443 145 737 ; C 170 ; WX 389 ; N quotedblleft ; B 25 443 364 737 ; C 171 ; WX 426 ; N guillemotleft ; B 39 78 387 398 ; C 172 ; WX 259 ; N guilsinglleft ; B 39 78 220 398 ; C 173 ; WX 259 ; N guilsinglright ; B 39 78 220 398 ; C 174 ; WX 611 ; N fi ; B 18 0 582 737 ; C 175 ; WX 611 ; N fl ; B 18 0 582 737 ; C 177 ; WX 556 ; N endash ; B 0 208 556 268 ; C 178 ; WX 500 ; N dagger ; B 42 -147 458 737 ; C 179 ; WX 500 ; N daggerdbl ; B 42 -149 458 737 ; C 180 ; WX 278 ; N periodcentered ; B 71 238 207 374 ; C 182 ; WX 606 ; N paragraph ; B 60 -132 546 722 ; C 183 ; WX 606 ; N bullet ; B 122 180 484 542 ; C 184 ; WX 204 ; N quotesinglbase ; B 25 -185 179 109 ; C 185 ; WX 389 ; N quotedblbase ; B 25 -185 364 109 ; C 186 ; WX 389 ; N quotedblright ; B 25 443 364 737 ; C 187 ; WX 426 ; N guillemotright ; B 39 78 387 398 ; C 188 ; WX 1000 ; N ellipsis ; B 105 -15 895 109 ; C 189 ; WX 1000 ; N perthousand ; B 6 -15 994 705 ; C 191 ; WX 444 ; N questiondown ; B 29 -205 415 547 ; C 193 ; WX 333 ; N grave ; B 17 528 242 699 ; C 194 ; WX 333 ; N acute ; B 91 528 316 699 ; C 195 ; WX 333 ; N circumflex ; B 10 528 323 695 ; C 196 ; WX 333 ; N tilde ; B 1 553 332 655 ; C 197 ; WX 333 ; N macron ; B 10 568 323 623 ; C 198 ; WX 333 ; N breve ; B 25 528 308 685 ; C 199 ; WX 333 ; N dotaccent ; B 116 602 218 704 ; C 200 ; WX 333 ; N dieresis ; B 16 602 317 704 ; C 202 ; WX 333 ; N ring ; B 66 522 266 722 ; C 203 ; WX 333 ; N cedilla ; B 29 -215 237 0 ; C 205 ; WX 333 ; N hungarumlaut ; B -9 528 416 699 ; C 206 ; WX 333 ; N ogonek ; B 81 -220 317 4 ; C 207 ; WX 333 ; N caron ; B 10 528 323 695 ; C 208 ; WX 1000 ; N emdash ; B 0 208 1000 268 ; C 225 ; WX 1000 ; N AE ; B 0 0 962 722 ; C 227 ; WX 334 ; N ordfeminine ; B -4 407 338 705 ; C 232 ; WX 667 ; N Lslash ; B 29 0 644 722 ; C 233 ; WX 778 ; N Oslash ; B 45 -56 733 778 ; C 234 ; WX 1000 ; N OE ; B 21 0 979 722 ; C 235 ; WX 300 ; N ordmasculine ; B 4 407 296 705 ; C 241 ; WX 796 ; N ae ; B 34 -15 762 479 ; C 245 ; WX 315 ; N dotlessi ; B 18 0 286 464 ; C 248 ; WX 315 ; N lslash ; B 18 0 294 737 ; C 249 ; WX 500 ; N oslash ; B 34 -97 466 561 ; C 250 ; WX 833 ; N oe ; B 34 -15 799 479 ; C 251 ; WX 574 ; N germandbls ; B 30 -15 537 737 ; C -1 ; WX 407 ; N Idieresis ; B 38 0 369 883 ; C -1 ; WX 500 ; N eacute ; B 34 -15 466 699 ; C -1 ; WX 556 ; N abreve ; B 44 -15 542 685 ; C -1 ; WX 611 ; N uhungarumlaut ; B 22 -15 595 699 ; C -1 ; WX 500 ; N ecaron ; B 34 -15 466 695 ; C -1 ; WX 704 ; N Ydieresis ; B -11 0 715 883 ; C -1 ; WX 606 ; N divide ; B 50 -22 556 528 ; C -1 ; WX 704 ; N Yacute ; B -11 0 715 937 ; C -1 ; WX 722 ; N Acircumflex ; B -8 0 730 933 ; C -1 ; WX 556 ; N aacute ; B 44 -15 542 699 ; C -1 ; WX 815 ; N Ucircumflex ; B 16 -15 799 933 ; C -1 ; WX 537 ; N yacute ; B 4 -205 533 699 ; C -1 ; WX 463 ; N scommaaccent ; B 46 -250 417 479 ; C -1 ; WX 500 ; N ecircumflex ; B 34 -15 466 695 ; C -1 ; WX 815 ; N Uring ; B 16 -15 799 965 ; C -1 ; WX 815 ; N Udieresis ; B 16 -15 799 883 ; C -1 ; WX 556 ; N aogonek ; B 44 -220 565 479 ; C -1 ; WX 815 ; N Uacute ; B 16 -15 799 937 ; C -1 ; WX 611 ; N uogonek ; B 22 -220 589 464 ; C -1 ; WX 722 ; N Edieresis ; B 29 0 663 883 ; C -1 ; WX 778 ; N Dcroat ; B 29 0 733 722 ; C -1 ; WX 250 ; N commaaccent ; B 66 -250 204 -50 ; C -1 ; WX 737 ; N copyright ; B -8 -15 744 737 ; C -1 ; WX 722 ; N Emacron ; B 29 0 663 861 ; C -1 ; WX 444 ; N ccaron ; B 34 -15 426 695 ; C -1 ; WX 556 ; N aring ; B 44 -15 542 732 ; C -1 ; WX 815 ; N Ncommaaccent ; B 24 -250 791 722 ; C -1 ; WX 315 ; N lacute ; B 18 0 297 957 ; C -1 ; WX 556 ; N agrave ; B 44 -15 542 699 ; C -1 ; WX 667 ; N Tcommaaccent ; B 19 -250 648 722 ; C -1 ; WX 722 ; N Cacute ; B 45 -15 668 937 ; C -1 ; WX 556 ; N atilde ; B 44 -15 542 655 ; C -1 ; WX 722 ; N Edotaccent ; B 29 0 663 883 ; C -1 ; WX 463 ; N scaron ; B 46 -15 417 695 ; C -1 ; WX 463 ; N scedilla ; B 46 -215 417 479 ; C -1 ; WX 315 ; N iacute ; B 18 0 307 699 ; C -1 ; WX 471 ; N lozenge ; B 10 0 462 728 ; C -1 ; WX 722 ; N Rcaron ; B 29 -15 713 933 ; C -1 ; WX 778 ; N Gcommaaccent ; B 45 -250 775 737 ; C -1 ; WX 611 ; N ucircumflex ; B 22 -15 589 695 ; C -1 ; WX 556 ; N acircumflex ; B 44 -15 542 695 ; C -1 ; WX 722 ; N Amacron ; B -8 0 730 861 ; C -1 ; WX 444 ; N rcaron ; B 18 0 434 695 ; C -1 ; WX 444 ; N ccedilla ; B 34 -215 426 479 ; C -1 ; WX 611 ; N Zdotaccent ; B 24 0 576 883 ; C -1 ; WX 667 ; N Thorn ; B 29 0 650 722 ; C -1 ; WX 778 ; N Omacron ; B 45 -15 733 861 ; C -1 ; WX 722 ; N Racute ; B 29 -15 713 937 ; C -1 ; WX 630 ; N Sacute ; B 47 -15 583 937 ; C -1 ; WX 639 ; N dcaron ; B 34 -15 643 737 ; C -1 ; WX 815 ; N Umacron ; B 16 -15 799 861 ; C -1 ; WX 611 ; N uring ; B 22 -15 589 722 ; C -1 ; WX 333 ; N threesuperior ; B 18 273 315 705 ; C -1 ; WX 778 ; N Ograve ; B 45 -15 733 937 ; C -1 ; WX 722 ; N Agrave ; B -8 0 730 937 ; C -1 ; WX 722 ; N Abreve ; B -8 0 730 923 ; C -1 ; WX 606 ; N multiply ; B 74 24 532 482 ; C -1 ; WX 611 ; N uacute ; B 22 -15 589 699 ; C -1 ; WX 667 ; N Tcaron ; B 19 0 648 933 ; C -1 ; WX 476 ; N partialdiff ; B 13 -38 463 714 ; C -1 ; WX 537 ; N ydieresis ; B 4 -205 533 645 ; C -1 ; WX 815 ; N Nacute ; B 24 -15 791 937 ; C -1 ; WX 315 ; N icircumflex ; B 1 0 314 695 ; C -1 ; WX 722 ; N Ecircumflex ; B 29 0 663 933 ; C -1 ; WX 556 ; N adieresis ; B 44 -15 542 645 ; C -1 ; WX 500 ; N edieresis ; B 34 -15 466 645 ; C -1 ; WX 444 ; N cacute ; B 34 -15 426 699 ; C -1 ; WX 611 ; N nacute ; B 22 0 589 699 ; C -1 ; WX 611 ; N umacron ; B 22 -15 589 623 ; C -1 ; WX 815 ; N Ncaron ; B 24 -15 791 933 ; C -1 ; WX 407 ; N Iacute ; B 38 0 369 937 ; C -1 ; WX 606 ; N plusminus ; B 50 0 556 506 ; C -1 ; WX 606 ; N brokenbar ; B 267 -175 339 675 ; C -1 ; WX 737 ; N registered ; B -8 -15 744 737 ; C -1 ; WX 778 ; N Gbreve ; B 45 -15 775 923 ; C -1 ; WX 407 ; N Idotaccent ; B 38 0 369 883 ; C -1 ; WX 600 ; N summation ; B 15 -10 586 706 ; C -1 ; WX 722 ; N Egrave ; B 29 0 663 937 ; C -1 ; WX 444 ; N racute ; B 18 0 434 699 ; C -1 ; WX 500 ; N omacron ; B 34 -15 466 623 ; C -1 ; WX 611 ; N Zacute ; B 24 0 576 937 ; C -1 ; WX 611 ; N Zcaron ; B 24 0 576 933 ; C -1 ; WX 549 ; N greaterequal ; B 26 0 523 674 ; C -1 ; WX 778 ; N Eth ; B 29 0 733 722 ; C -1 ; WX 722 ; N Ccedilla ; B 45 -215 668 737 ; C -1 ; WX 315 ; N lcommaaccent ; B 18 -250 286 737 ; C -1 ; WX 389 ; N tcaron ; B 18 -15 394 777 ; C -1 ; WX 500 ; N eogonek ; B 34 -220 466 479 ; C -1 ; WX 815 ; N Uogonek ; B 16 -220 799 722 ; C -1 ; WX 722 ; N Aacute ; B -8 0 730 937 ; C -1 ; WX 722 ; N Adieresis ; B -8 0 730 883 ; C -1 ; WX 500 ; N egrave ; B 34 -15 466 699 ; C -1 ; WX 481 ; N zacute ; B 42 0 439 699 ; C -1 ; WX 315 ; N iogonek ; B 18 -220 296 722 ; C -1 ; WX 778 ; N Oacute ; B 45 -15 733 937 ; C -1 ; WX 500 ; N oacute ; B 34 -15 466 699 ; C -1 ; WX 556 ; N amacron ; B 44 -15 542 623 ; C -1 ; WX 463 ; N sacute ; B 46 -15 417 699 ; C -1 ; WX 315 ; N idieresis ; B 7 0 308 645 ; C -1 ; WX 778 ; N Ocircumflex ; B 45 -15 733 933 ; C -1 ; WX 815 ; N Ugrave ; B 16 -15 799 937 ; C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ; C -1 ; WX 574 ; N thorn ; B 22 -205 540 737 ; C -1 ; WX 333 ; N twosuperior ; B 14 282 319 705 ; C -1 ; WX 778 ; N Odieresis ; B 45 -15 733 883 ; C -1 ; WX 611 ; N mu ; B 22 -205 589 464 ; C -1 ; WX 315 ; N igrave ; B 8 0 286 699 ; C -1 ; WX 500 ; N ohungarumlaut ; B 34 -15 540 699 ; C -1 ; WX 722 ; N Eogonek ; B 29 -220 663 722 ; C -1 ; WX 574 ; N dcroat ; B 34 -15 552 737 ; C -1 ; WX 834 ; N threequarters ; B 28 -15 795 705 ; C -1 ; WX 630 ; N Scedilla ; B 47 -215 583 737 ; C -1 ; WX 365 ; N lcaron ; B 18 0 377 737 ; C -1 ; WX 778 ; N Kcommaaccent ; B 29 -250 803 722 ; C -1 ; WX 667 ; N Lacute ; B 29 0 644 937 ; C -1 ; WX 1000 ; N trademark ; B 32 318 968 722 ; C -1 ; WX 500 ; N edotaccent ; B 34 -15 466 645 ; C -1 ; WX 407 ; N Igrave ; B 38 0 369 937 ; C -1 ; WX 407 ; N Imacron ; B 38 0 369 861 ; C -1 ; WX 667 ; N Lcaron ; B 29 0 644 737 ; C -1 ; WX 834 ; N onehalf ; B 39 -15 820 705 ; C -1 ; WX 549 ; N lessequal ; B 26 0 523 674 ; C -1 ; WX 500 ; N ocircumflex ; B 34 -15 466 695 ; C -1 ; WX 611 ; N ntilde ; B 22 0 589 655 ; C -1 ; WX 815 ; N Uhungarumlaut ; B 16 -15 799 937 ; C -1 ; WX 722 ; N Eacute ; B 29 0 663 937 ; C -1 ; WX 500 ; N emacron ; B 34 -15 466 623 ; C -1 ; WX 537 ; N gbreve ; B 23 -205 542 685 ; C -1 ; WX 834 ; N onequarter ; B 39 -15 795 705 ; C -1 ; WX 630 ; N Scaron ; B 47 -15 583 933 ; C -1 ; WX 630 ; N Scommaaccent ; B 47 -250 583 737 ; C -1 ; WX 778 ; N Ohungarumlaut ; B 45 -15 733 937 ; C -1 ; WX 400 ; N degree ; B 57 419 343 705 ; C -1 ; WX 500 ; N ograve ; B 34 -15 466 699 ; C -1 ; WX 722 ; N Ccaron ; B 45 -15 668 933 ; C -1 ; WX 611 ; N ugrave ; B 22 -15 589 699 ; C -1 ; WX 453 ; N radical ; B -4 -80 458 762 ; C -1 ; WX 778 ; N Dcaron ; B 29 0 733 933 ; C -1 ; WX 444 ; N rcommaaccent ; B 18 -250 434 479 ; C -1 ; WX 815 ; N Ntilde ; B 24 -15 791 893 ; C -1 ; WX 500 ; N otilde ; B 34 -15 466 655 ; C -1 ; WX 722 ; N Rcommaaccent ; B 29 -250 713 722 ; C -1 ; WX 667 ; N Lcommaaccent ; B 29 -250 644 722 ; C -1 ; WX 722 ; N Atilde ; B -8 0 730 893 ; C -1 ; WX 722 ; N Aogonek ; B -8 -220 730 737 ; C -1 ; WX 722 ; N Aring ; B -8 0 730 965 ; C -1 ; WX 778 ; N Otilde ; B 45 -15 733 893 ; C -1 ; WX 481 ; N zdotaccent ; B 42 0 439 645 ; C -1 ; WX 722 ; N Ecaron ; B 29 0 663 933 ; C -1 ; WX 407 ; N Iogonek ; B 38 -220 369 722 ; C -1 ; WX 593 ; N kcommaaccent ; B 10 -250 589 737 ; C -1 ; WX 606 ; N minus ; B 50 217 556 289 ; C -1 ; WX 407 ; N Icircumflex ; B 38 0 369 933 ; C -1 ; WX 611 ; N ncaron ; B 22 0 589 695 ; C -1 ; WX 389 ; N tcommaaccent ; B 18 -250 371 666 ; C -1 ; WX 606 ; N logicalnot ; B 50 108 556 389 ; C -1 ; WX 500 ; N odieresis ; B 34 -15 466 645 ; C -1 ; WX 611 ; N udieresis ; B 22 -15 589 645 ; C -1 ; WX 549 ; N notequal ; B 12 -35 537 551 ; C -1 ; WX 537 ; N gcommaaccent ; B 23 -205 542 807 ; C -1 ; WX 500 ; N eth ; B 34 -15 466 737 ; C -1 ; WX 481 ; N zcaron ; B 42 0 439 695 ; C -1 ; WX 611 ; N ncommaaccent ; B 22 -250 589 479 ; C -1 ; WX 333 ; N onesuperior ; B 39 282 294 705 ; C -1 ; WX 315 ; N imacron ; B 18 0 291 623 ; EndCharMetrics StartKernData StartKernPairs 1480 KPX A T -18 KPX A Tcaron -18 KPX A Tcommaaccent -18 KPX A U -30 KPX A Uacute -30 KPX A Ucircumflex -30 KPX A Udieresis -30 KPX A Ugrave -30 KPX A Uhungarumlaut -30 KPX A Umacron -30 KPX A Uogonek -30 KPX A Uring -30 KPX A V -75 KPX A W -50 KPX A Y -75 KPX A Yacute -75 KPX A Ydieresis -75 KPX A quotedblright -74 KPX A quoteright -74 KPX A v -37 KPX A w -25 KPX A y -37 KPX A yacute -37 KPX A ydieresis -37 KPX Aacute T -18 KPX Aacute Tcaron -18 KPX Aacute Tcommaaccent -18 KPX Aacute U -30 KPX Aacute Uacute -30 KPX Aacute Ucircumflex -30 KPX Aacute Udieresis -30 KPX Aacute Ugrave -30 KPX Aacute Uhungarumlaut -30 KPX Aacute Umacron -30 KPX Aacute Uogonek -30 KPX Aacute Uring -30 KPX Aacute V -75 KPX Aacute W -50 KPX Aacute Y -75 KPX Aacute Yacute -75 KPX Aacute Ydieresis -75 KPX Aacute quotedblright -74 KPX Aacute quoteright -74 KPX Aacute v -37 KPX Aacute w -25 KPX Aacute y -37 KPX Aacute yacute -37 KPX Aacute ydieresis -37 KPX Abreve T -18 KPX Abreve Tcaron -18 KPX Abreve Tcommaaccent -18 KPX Abreve U -30 KPX Abreve Uacute -30 KPX Abreve Ucircumflex -30 KPX Abreve Udieresis -30 KPX Abreve Ugrave -30 KPX Abreve Uhungarumlaut -30 KPX Abreve Umacron -30 KPX Abreve Uogonek -30 KPX Abreve Uring -30 KPX Abreve V -75 KPX Abreve W -50 KPX Abreve Y -75 KPX Abreve Yacute -75 KPX Abreve Ydieresis -75 KPX Abreve quotedblright -74 KPX Abreve quoteright -74 KPX Abreve v -37 KPX Abreve w -25 KPX Abreve y -37 KPX Abreve yacute -37 KPX Abreve ydieresis -37 KPX Acircumflex T -18 KPX Acircumflex Tcaron -18 KPX Acircumflex Tcommaaccent -18 KPX Acircumflex U -30 KPX Acircumflex Uacute -30 KPX Acircumflex Ucircumflex -30 KPX Acircumflex Udieresis -30 KPX Acircumflex Ugrave -30 KPX Acircumflex Uhungarumlaut -30 KPX Acircumflex Umacron -30 KPX Acircumflex Uogonek -30 KPX Acircumflex Uring -30 KPX Acircumflex V -75 KPX Acircumflex W -50 KPX Acircumflex Y -75 KPX Acircumflex Yacute -75 KPX Acircumflex Ydieresis -75 KPX Acircumflex quotedblright -74 KPX Acircumflex quoteright -74 KPX Acircumflex v -37 KPX Acircumflex w -25 KPX Acircumflex y -37 KPX Acircumflex yacute -37 KPX Acircumflex ydieresis -37 KPX Adieresis T -18 KPX Adieresis Tcaron -18 KPX Adieresis Tcommaaccent -18 KPX Adieresis U -30 KPX Adieresis Uacute -30 KPX Adieresis Ucircumflex -30 KPX Adieresis Udieresis -30 KPX Adieresis Ugrave -30 KPX Adieresis Uhungarumlaut -30 KPX Adieresis Umacron -30 KPX Adieresis Uogonek -30 KPX Adieresis Uring -30 KPX Adieresis V -75 KPX Adieresis W -50 KPX Adieresis Y -75 KPX Adieresis Yacute -75 KPX Adieresis Ydieresis -75 KPX Adieresis quotedblright -74 KPX Adieresis quoteright -74 KPX Adieresis v -37 KPX Adieresis w -25 KPX Adieresis y -37 KPX Adieresis yacute -37 KPX Adieresis ydieresis -37 KPX Agrave T -18 KPX Agrave Tcaron -18 KPX Agrave Tcommaaccent -18 KPX Agrave U -30 KPX Agrave Uacute -30 KPX Agrave Ucircumflex -30 KPX Agrave Udieresis -30 KPX Agrave Ugrave -30 KPX Agrave Uhungarumlaut -30 KPX Agrave Umacron -30 KPX Agrave Uogonek -30 KPX Agrave Uring -30 KPX Agrave V -75 KPX Agrave W -50 KPX Agrave Y -75 KPX Agrave Yacute -75 KPX Agrave Ydieresis -75 KPX Agrave quotedblright -74 KPX Agrave quoteright -74 KPX Agrave v -37 KPX Agrave w -25 KPX Agrave y -37 KPX Agrave yacute -37 KPX Agrave ydieresis -37 KPX Amacron T -18 KPX Amacron Tcaron -18 KPX Amacron Tcommaaccent -18 KPX Amacron U -30 KPX Amacron Uacute -30 KPX Amacron Ucircumflex -30 KPX Amacron Udieresis -30 KPX Amacron Ugrave -30 KPX Amacron Uhungarumlaut -30 KPX Amacron Umacron -30 KPX Amacron Uogonek -30 KPX Amacron Uring -30 KPX Amacron V -75 KPX Amacron W -50 KPX Amacron Y -75 KPX Amacron Yacute -75 KPX Amacron Ydieresis -75 KPX Amacron quotedblright -74 KPX Amacron quoteright -74 KPX Amacron v -37 KPX Amacron w -25 KPX Amacron y -37 KPX Amacron yacute -37 KPX Amacron ydieresis -37 KPX Aogonek T -18 KPX Aogonek Tcaron -18 KPX Aogonek Tcommaaccent -18 KPX Aogonek U -30 KPX Aogonek Uacute -30 KPX Aogonek Ucircumflex -30 KPX Aogonek Udieresis -30 KPX Aogonek Ugrave -30 KPX Aogonek Uhungarumlaut -30 KPX Aogonek Umacron -30 KPX Aogonek Uogonek -30 KPX Aogonek Uring -30 KPX Aogonek V -75 KPX Aogonek W -50 KPX Aogonek Y -75 KPX Aogonek Yacute -75 KPX Aogonek Ydieresis -75 KPX Aogonek quotedblright -74 KPX Aogonek quoteright -74 KPX Aogonek v -37 KPX Aogonek w -25 KPX Aogonek y -17 KPX Aogonek yacute -17 KPX Aogonek ydieresis -17 KPX Aring T -18 KPX Aring Tcaron -18 KPX Aring Tcommaaccent -18 KPX Aring U -30 KPX Aring Uacute -30 KPX Aring Ucircumflex -30 KPX Aring Udieresis -30 KPX Aring Ugrave -30 KPX Aring Uhungarumlaut -30 KPX Aring Umacron -30 KPX Aring Uogonek -30 KPX Aring Uring -30 KPX Aring V -75 KPX Aring W -50 KPX Aring Y -75 KPX Aring Yacute -75 KPX Aring Ydieresis -75 KPX Aring quotedblright -74 KPX Aring quoteright -74 KPX Aring v -37 KPX Aring w -25 KPX Aring y -37 KPX Aring yacute -37 KPX Aring ydieresis -37 KPX Atilde T -18 KPX Atilde Tcaron -18 KPX Atilde Tcommaaccent -18 KPX Atilde U -30 KPX Atilde Uacute -30 KPX Atilde Ucircumflex -30 KPX Atilde Udieresis -30 KPX Atilde Ugrave -30 KPX Atilde Uhungarumlaut -30 KPX Atilde Umacron -30 KPX Atilde Uogonek -30 KPX Atilde Uring -30 KPX Atilde V -75 KPX Atilde W -50 KPX Atilde Y -75 KPX Atilde Yacute -75 KPX Atilde Ydieresis -75 KPX Atilde quotedblright -74 KPX Atilde quoteright -74 KPX Atilde v -37 KPX Atilde w -25 KPX Atilde y -37 KPX Atilde yacute -37 KPX Atilde ydieresis -37 KPX B A -18 KPX B Aacute -18 KPX B Abreve -18 KPX B Acircumflex -18 KPX B Adieresis -18 KPX B Agrave -18 KPX B Amacron -18 KPX B Aogonek -18 KPX B Aring -18 KPX B Atilde -18 KPX B comma -37 KPX B period -37 KPX C A -18 KPX C Aacute -18 KPX C Abreve -18 KPX C Acircumflex -18 KPX C Adieresis -18 KPX C Agrave -18 KPX C Amacron -18 KPX C Aogonek -18 KPX C Aring -18 KPX C Atilde -18 KPX C comma -37 KPX C period -37 KPX Cacute A -18 KPX Cacute Aacute -18 KPX Cacute Abreve -18 KPX Cacute Acircumflex -18 KPX Cacute Adieresis -18 KPX Cacute Agrave -18 KPX Cacute Amacron -18 KPX Cacute Aogonek -18 KPX Cacute Aring -18 KPX Cacute Atilde -18 KPX Cacute comma -37 KPX Cacute period -37 KPX Ccaron A -18 KPX Ccaron Aacute -18 KPX Ccaron Abreve -18 KPX Ccaron Acircumflex -18 KPX Ccaron Adieresis -18 KPX Ccaron Agrave -18 KPX Ccaron Amacron -18 KPX Ccaron Aogonek -18 KPX Ccaron Aring -18 KPX Ccaron Atilde -18 KPX Ccaron comma -37 KPX Ccaron period -37 KPX Ccedilla A -18 KPX Ccedilla Aacute -18 KPX Ccedilla Abreve -18 KPX Ccedilla Acircumflex -18 KPX Ccedilla Adieresis -18 KPX Ccedilla Agrave -18 KPX Ccedilla Amacron -18 KPX Ccedilla Aogonek -18 KPX Ccedilla Aring -18 KPX Ccedilla Atilde -18 KPX Ccedilla comma -37 KPX Ccedilla period -37 KPX D V -18 KPX D Y -18 KPX D Yacute -18 KPX D Ydieresis -18 KPX D comma -37 KPX D period -37 KPX Dcaron V -18 KPX Dcaron Y -18 KPX Dcaron Yacute -18 KPX Dcaron Ydieresis -18 KPX Dcaron comma -37 KPX Dcaron period -37 KPX Dcroat V -18 KPX Dcroat Y -18 KPX Dcroat Yacute -18 KPX Dcroat Ydieresis -18 KPX Dcroat comma -37 KPX Dcroat period -37 KPX F A -50 KPX F Aacute -50 KPX F Abreve -50 KPX F Acircumflex -50 KPX F Adieresis -50 KPX F Agrave -50 KPX F Amacron -50 KPX F Aogonek -50 KPX F Aring -50 KPX F Atilde -50 KPX F a -65 KPX F aacute -65 KPX F abreve -65 KPX F acircumflex -65 KPX F adieresis -65 KPX F agrave -65 KPX F amacron -65 KPX F aogonek -65 KPX F aring -65 KPX F atilde -65 KPX F comma -125 KPX F e -55 KPX F eacute -55 KPX F ecaron -55 KPX F ecircumflex -55 KPX F edieresis -55 KPX F edotaccent -55 KPX F egrave -55 KPX F emacron -55 KPX F eogonek -55 KPX F i -10 KPX F iacute -10 KPX F icircumflex -10 KPX F idieresis -10 KPX F igrave -10 KPX F imacron -10 KPX F iogonek -10 KPX F o -55 KPX F oacute -55 KPX F ocircumflex -55 KPX F odieresis -55 KPX F ograve -55 KPX F ohungarumlaut -55 KPX F omacron -55 KPX F oslash -55 KPX F otilde -55 KPX F period -125 KPX F r -10 KPX F racute -10 KPX F rcaron -10 KPX F rcommaaccent -10 KPX G comma -37 KPX G period -37 KPX Gbreve comma -37 KPX Gbreve period -37 KPX Gcommaaccent comma -37 KPX Gcommaaccent period -37 KPX J A -18 KPX J Aacute -18 KPX J Abreve -18 KPX J Acircumflex -18 KPX J Adieresis -18 KPX J Agrave -18 KPX J Amacron -18 KPX J Aogonek -18 KPX J Aring -18 KPX J Atilde -18 KPX J a -25 KPX J aacute -25 KPX J abreve -25 KPX J acircumflex -25 KPX J adieresis -25 KPX J agrave -25 KPX J amacron -25 KPX J aogonek -25 KPX J aring -25 KPX J atilde -25 KPX J comma -74 KPX J e -25 KPX J eacute -25 KPX J ecaron -25 KPX J ecircumflex -25 KPX J edieresis -25 KPX J edotaccent -25 KPX J egrave -25 KPX J emacron -25 KPX J eogonek -25 KPX J o -25 KPX J oacute -25 KPX J ocircumflex -25 KPX J odieresis -25 KPX J ograve -25 KPX J ohungarumlaut -25 KPX J omacron -25 KPX J oslash -25 KPX J otilde -25 KPX J period -74 KPX J u -25 KPX J uacute -25 KPX J ucircumflex -25 KPX J udieresis -25 KPX J ugrave -25 KPX J uhungarumlaut -25 KPX J umacron -25 KPX J uogonek -25 KPX J uring -25 KPX K e 10 KPX K eacute 10 KPX K ecaron 10 KPX K ecircumflex 10 KPX K edieresis 10 KPX K edotaccent 10 KPX K egrave 10 KPX K emacron 10 KPX K eogonek 10 KPX K o 10 KPX K oacute 10 KPX K ocircumflex 10 KPX K odieresis 10 KPX K ograve 10 KPX K ohungarumlaut 10 KPX K omacron 10 KPX K oslash 10 KPX K otilde 10 KPX K y -25 KPX K yacute -25 KPX K ydieresis -25 KPX Kcommaaccent e 10 KPX Kcommaaccent eacute 10 KPX Kcommaaccent ecaron 10 KPX Kcommaaccent ecircumflex 10 KPX Kcommaaccent edieresis 10 KPX Kcommaaccent edotaccent 10 KPX Kcommaaccent egrave 10 KPX Kcommaaccent emacron 10 KPX Kcommaaccent eogonek 10 KPX Kcommaaccent o 10 KPX Kcommaaccent oacute 10 KPX Kcommaaccent ocircumflex 10 KPX Kcommaaccent odieresis 10 KPX Kcommaaccent ograve 10 KPX Kcommaaccent ohungarumlaut 10 KPX Kcommaaccent omacron 10 KPX Kcommaaccent oslash 10 KPX Kcommaaccent otilde 10 KPX Kcommaaccent y -25 KPX Kcommaaccent yacute -25 KPX Kcommaaccent ydieresis -25 KPX L T -75 KPX L Tcaron -75 KPX L Tcommaaccent -75 KPX L V -91 KPX L W -74 KPX L Y -74 KPX L Yacute -74 KPX L Ydieresis -74 KPX L quotedblright -100 KPX L quoteright -100 KPX L y -25 KPX L yacute -25 KPX L ydieresis -25 KPX Lacute T -75 KPX Lacute Tcaron -75 KPX Lacute Tcommaaccent -75 KPX Lacute V -91 KPX Lacute W -74 KPX Lacute Y -74 KPX Lacute Yacute -74 KPX Lacute Ydieresis -74 KPX Lacute quotedblright -100 KPX Lacute quoteright -100 KPX Lacute y -25 KPX Lacute yacute -25 KPX Lacute ydieresis -25 KPX Lcommaaccent T -75 KPX Lcommaaccent Tcaron -75 KPX Lcommaaccent Tcommaaccent -75 KPX Lcommaaccent V -91 KPX Lcommaaccent W -74 KPX Lcommaaccent Y -74 KPX Lcommaaccent Yacute -74 KPX Lcommaaccent Ydieresis -74 KPX Lcommaaccent quotedblright -100 KPX Lcommaaccent quoteright -100 KPX Lcommaaccent y -25 KPX Lcommaaccent yacute -25 KPX Lcommaaccent ydieresis -25 KPX Lslash T -75 KPX Lslash Tcaron -75 KPX Lslash Tcommaaccent -75 KPX Lslash V -91 KPX Lslash W -74 KPX Lslash Y -74 KPX Lslash Yacute -74 KPX Lslash Ydieresis -74 KPX Lslash quotedblright -100 KPX Lslash quoteright -100 KPX Lslash y -25 KPX Lslash yacute -25 KPX Lslash ydieresis -25 KPX N comma -55 KPX N period -55 KPX Nacute comma -55 KPX Nacute period -55 KPX Ncaron comma -55 KPX Ncaron period -55 KPX Ncommaaccent comma -55 KPX Ncommaaccent period -55 KPX Ntilde comma -55 KPX Ntilde period -55 KPX O T 10 KPX O Tcaron 10 KPX O Tcommaaccent 10 KPX O V -18 KPX O Y -18 KPX O Yacute -18 KPX O Ydieresis -18 KPX O comma -37 KPX O period -37 KPX Oacute T 10 KPX Oacute Tcaron 10 KPX Oacute Tcommaaccent 10 KPX Oacute V -18 KPX Oacute Y -18 KPX Oacute Yacute -18 KPX Oacute Ydieresis -18 KPX Oacute comma -37 KPX Oacute period -37 KPX Ocircumflex T 10 KPX Ocircumflex Tcaron 10 KPX Ocircumflex Tcommaaccent 10 KPX Ocircumflex V -18 KPX Ocircumflex Y -18 KPX Ocircumflex Yacute -18 KPX Ocircumflex Ydieresis -18 KPX Ocircumflex comma -37 KPX Ocircumflex period -37 KPX Odieresis T 10 KPX Odieresis Tcaron 10 KPX Odieresis Tcommaaccent 10 KPX Odieresis V -18 KPX Odieresis Y -18 KPX Odieresis Yacute -18 KPX Odieresis Ydieresis -18 KPX Odieresis comma -37 KPX Odieresis period -37 KPX Ograve T 10 KPX Ograve Tcaron 10 KPX Ograve Tcommaaccent 10 KPX Ograve V -18 KPX Ograve Y -18 KPX Ograve Yacute -18 KPX Ograve Ydieresis -18 KPX Ograve comma -37 KPX Ograve period -37 KPX Ohungarumlaut T 10 KPX Ohungarumlaut Tcaron 10 KPX Ohungarumlaut Tcommaaccent 10 KPX Ohungarumlaut V -18 KPX Ohungarumlaut Y -18 KPX Ohungarumlaut Yacute -18 KPX Ohungarumlaut Ydieresis -18 KPX Ohungarumlaut comma -37 KPX Ohungarumlaut period -37 KPX Omacron T 10 KPX Omacron Tcaron 10 KPX Omacron Tcommaaccent 10 KPX Omacron V -18 KPX Omacron Y -18 KPX Omacron Yacute -18 KPX Omacron Ydieresis -18 KPX Omacron comma -37 KPX Omacron period -37 KPX Oslash T 10 KPX Oslash Tcaron 10 KPX Oslash Tcommaaccent 10 KPX Oslash V -18 KPX Oslash Y -18 KPX Oslash Yacute -18 KPX Oslash Ydieresis -18 KPX Oslash comma -37 KPX Oslash period -37 KPX Otilde T 10 KPX Otilde Tcaron 10 KPX Otilde Tcommaaccent 10 KPX Otilde V -18 KPX Otilde Y -18 KPX Otilde Yacute -18 KPX Otilde Ydieresis -18 KPX Otilde comma -37 KPX Otilde period -37 KPX P A -55 KPX P Aacute -55 KPX P Abreve -55 KPX P Acircumflex -55 KPX P Adieresis -55 KPX P Agrave -55 KPX P Amacron -55 KPX P Aogonek -55 KPX P Aring -55 KPX P Atilde -55 KPX P a -37 KPX P aacute -37 KPX P abreve -37 KPX P acircumflex -37 KPX P adieresis -37 KPX P agrave -37 KPX P amacron -37 KPX P aogonek -37 KPX P aring -37 KPX P atilde -37 KPX P comma -125 KPX P e -37 KPX P eacute -37 KPX P ecaron -37 KPX P ecircumflex -37 KPX P edieresis -37 KPX P edotaccent -37 KPX P egrave -37 KPX P emacron -37 KPX P eogonek -37 KPX P o -37 KPX P oacute -37 KPX P ocircumflex -37 KPX P odieresis -37 KPX P ograve -37 KPX P ohungarumlaut -37 KPX P omacron -37 KPX P oslash -37 KPX P otilde -37 KPX P period -125 KPX Q comma -25 KPX Q period -25 KPX S comma -37 KPX S period -37 KPX Sacute comma -37 KPX Sacute period -37 KPX Scaron comma -37 KPX Scaron period -37 KPX Scedilla comma -37 KPX Scedilla period -37 KPX Scommaaccent comma -37 KPX Scommaaccent period -37 KPX T A -18 KPX T Aacute -18 KPX T Abreve -18 KPX T Acircumflex -18 KPX T Adieresis -18 KPX T Agrave -18 KPX T Amacron -18 KPX T Aogonek -18 KPX T Aring -18 KPX T Atilde -18 KPX T O 10 KPX T Oacute 10 KPX T Ocircumflex 10 KPX T Odieresis 10 KPX T Ograve 10 KPX T Ohungarumlaut 10 KPX T Omacron 10 KPX T Oslash 10 KPX T Otilde 10 KPX T a -55 KPX T aacute -55 KPX T abreve -55 KPX T acircumflex -55 KPX T adieresis -55 KPX T agrave -55 KPX T amacron -55 KPX T aogonek -55 KPX T aring -55 KPX T atilde -55 KPX T colon -37 KPX T comma -125 KPX T e -55 KPX T eacute -55 KPX T ecaron -55 KPX T ecircumflex -55 KPX T edieresis -55 KPX T edotaccent -55 KPX T egrave -55 KPX T emacron -55 KPX T eogonek -55 KPX T hyphen -100 KPX T o -55 KPX T oacute -55 KPX T ocircumflex -55 KPX T odieresis -55 KPX T ograve -55 KPX T ohungarumlaut -55 KPX T omacron -55 KPX T oslash -55 KPX T otilde -55 KPX T period -125 KPX T semicolon -37 KPX Tcaron A -18 KPX Tcaron Aacute -18 KPX Tcaron Abreve -18 KPX Tcaron Acircumflex -18 KPX Tcaron Adieresis -18 KPX Tcaron Agrave -18 KPX Tcaron Amacron -18 KPX Tcaron Aogonek -18 KPX Tcaron Aring -18 KPX Tcaron Atilde -18 KPX Tcaron O 10 KPX Tcaron Oacute 10 KPX Tcaron Ocircumflex 10 KPX Tcaron Odieresis 10 KPX Tcaron Ograve 10 KPX Tcaron Ohungarumlaut 10 KPX Tcaron Omacron 10 KPX Tcaron Oslash 10 KPX Tcaron Otilde 10 KPX Tcaron a -55 KPX Tcaron aacute -55 KPX Tcaron abreve -55 KPX Tcaron acircumflex -55 KPX Tcaron adieresis -55 KPX Tcaron agrave -55 KPX Tcaron amacron -55 KPX Tcaron aogonek -55 KPX Tcaron aring -55 KPX Tcaron atilde -55 KPX Tcaron colon -37 KPX Tcaron comma -125 KPX Tcaron e -55 KPX Tcaron eacute -55 KPX Tcaron ecaron -55 KPX Tcaron ecircumflex -55 KPX Tcaron edieresis -55 KPX Tcaron edotaccent -55 KPX Tcaron egrave -55 KPX Tcaron emacron -55 KPX Tcaron eogonek -55 KPX Tcaron hyphen -100 KPX Tcaron o -55 KPX Tcaron oacute -55 KPX Tcaron ocircumflex -55 KPX Tcaron odieresis -55 KPX Tcaron ograve -55 KPX Tcaron ohungarumlaut -55 KPX Tcaron omacron -55 KPX Tcaron oslash -55 KPX Tcaron otilde -55 KPX Tcaron period -125 KPX Tcaron semicolon -37 KPX Tcommaaccent A -18 KPX Tcommaaccent Aacute -18 KPX Tcommaaccent Abreve -18 KPX Tcommaaccent Acircumflex -18 KPX Tcommaaccent Adieresis -18 KPX Tcommaaccent Agrave -18 KPX Tcommaaccent Amacron -18 KPX Tcommaaccent Aogonek -18 KPX Tcommaaccent Aring -18 KPX Tcommaaccent Atilde -18 KPX Tcommaaccent O 10 KPX Tcommaaccent Oacute 10 KPX Tcommaaccent Ocircumflex 10 KPX Tcommaaccent Odieresis 10 KPX Tcommaaccent Ograve 10 KPX Tcommaaccent Ohungarumlaut 10 KPX Tcommaaccent Omacron 10 KPX Tcommaaccent Oslash 10 KPX Tcommaaccent Otilde 10 KPX Tcommaaccent a -55 KPX Tcommaaccent aacute -55 KPX Tcommaaccent abreve -55 KPX Tcommaaccent acircumflex -55 KPX Tcommaaccent adieresis -55 KPX Tcommaaccent agrave -55 KPX Tcommaaccent amacron -55 KPX Tcommaaccent aogonek -55 KPX Tcommaaccent aring -55 KPX Tcommaaccent atilde -55 KPX Tcommaaccent colon -37 KPX Tcommaaccent comma -125 KPX Tcommaaccent e -55 KPX Tcommaaccent eacute -55 KPX Tcommaaccent ecaron -55 KPX Tcommaaccent ecircumflex -55 KPX Tcommaaccent edieresis -55 KPX Tcommaaccent edotaccent -55 KPX Tcommaaccent egrave -55 KPX Tcommaaccent emacron -55 KPX Tcommaaccent eogonek -55 KPX Tcommaaccent hyphen -100 KPX Tcommaaccent o -55 KPX Tcommaaccent oacute -55 KPX Tcommaaccent ocircumflex -55 KPX Tcommaaccent odieresis -55 KPX Tcommaaccent ograve -55 KPX Tcommaaccent ohungarumlaut -55 KPX Tcommaaccent omacron -55 KPX Tcommaaccent oslash -55 KPX Tcommaaccent otilde -55 KPX Tcommaaccent period -125 KPX Tcommaaccent semicolon -37 KPX U A -30 KPX U Aacute -30 KPX U Abreve -30 KPX U Acircumflex -30 KPX U Adieresis -30 KPX U Agrave -30 KPX U Amacron -30 KPX U Aogonek -30 KPX U Aring -30 KPX U Atilde -30 KPX U comma -100 KPX U period -100 KPX Uacute A -30 KPX Uacute Aacute -30 KPX Uacute Abreve -30 KPX Uacute Acircumflex -30 KPX Uacute Adieresis -30 KPX Uacute Agrave -30 KPX Uacute Amacron -30 KPX Uacute Aogonek -30 KPX Uacute Aring -30 KPX Uacute Atilde -30 KPX Uacute comma -100 KPX Uacute period -100 KPX Ucircumflex A -30 KPX Ucircumflex Aacute -30 KPX Ucircumflex Abreve -30 KPX Ucircumflex Acircumflex -30 KPX Ucircumflex Adieresis -30 KPX Ucircumflex Agrave -30 KPX Ucircumflex Amacron -30 KPX Ucircumflex Aogonek -30 KPX Ucircumflex Aring -30 KPX Ucircumflex Atilde -30 KPX Ucircumflex comma -100 KPX Ucircumflex period -100 KPX Udieresis A -30 KPX Udieresis Aacute -30 KPX Udieresis Abreve -30 KPX Udieresis Acircumflex -30 KPX Udieresis Adieresis -30 KPX Udieresis Agrave -30 KPX Udieresis Amacron -30 KPX Udieresis Aogonek -30 KPX Udieresis Aring -30 KPX Udieresis Atilde -30 KPX Udieresis comma -100 KPX Udieresis period -100 KPX Ugrave A -30 KPX Ugrave Aacute -30 KPX Ugrave Abreve -30 KPX Ugrave Acircumflex -30 KPX Ugrave Adieresis -30 KPX Ugrave Agrave -30 KPX Ugrave Amacron -30 KPX Ugrave Aogonek -30 KPX Ugrave Aring -30 KPX Ugrave Atilde -30 KPX Ugrave comma -100 KPX Ugrave period -100 KPX Uhungarumlaut A -30 KPX Uhungarumlaut Aacute -30 KPX Uhungarumlaut Abreve -30 KPX Uhungarumlaut Acircumflex -30 KPX Uhungarumlaut Adieresis -30 KPX Uhungarumlaut Agrave -30 KPX Uhungarumlaut Amacron -30 KPX Uhungarumlaut Aogonek -30 KPX Uhungarumlaut Aring -30 KPX Uhungarumlaut Atilde -30 KPX Uhungarumlaut comma -100 KPX Uhungarumlaut period -100 KPX Umacron A -30 KPX Umacron Aacute -30 KPX Umacron Abreve -30 KPX Umacron Acircumflex -30 KPX Umacron Adieresis -30 KPX Umacron Agrave -30 KPX Umacron Amacron -30 KPX Umacron Aogonek -30 KPX Umacron Aring -30 KPX Umacron Atilde -30 KPX Umacron comma -100 KPX Umacron period -100 KPX Uogonek A -30 KPX Uogonek Aacute -30 KPX Uogonek Abreve -30 KPX Uogonek Acircumflex -30 KPX Uogonek Adieresis -30 KPX Uogonek Agrave -30 KPX Uogonek Amacron -30 KPX Uogonek Aogonek -30 KPX Uogonek Aring -30 KPX Uogonek Atilde -30 KPX Uogonek comma -100 KPX Uogonek period -100 KPX Uring A -30 KPX Uring Aacute -30 KPX Uring Abreve -30 KPX Uring Acircumflex -30 KPX Uring Adieresis -30 KPX Uring Agrave -30 KPX Uring Amacron -30 KPX Uring Aogonek -30 KPX Uring Aring -30 KPX Uring Atilde -30 KPX Uring comma -100 KPX Uring period -100 KPX V A -74 KPX V Aacute -74 KPX V Abreve -74 KPX V Acircumflex -74 KPX V Adieresis -74 KPX V Agrave -74 KPX V Amacron -74 KPX V Aogonek -74 KPX V Aring -74 KPX V Atilde -74 KPX V O -18 KPX V Oacute -18 KPX V Ocircumflex -18 KPX V Odieresis -18 KPX V Ograve -18 KPX V Ohungarumlaut -18 KPX V Omacron -18 KPX V Oslash -18 KPX V Otilde -18 KPX V a -85 KPX V aacute -85 KPX V abreve -85 KPX V acircumflex -85 KPX V adieresis -85 KPX V agrave -85 KPX V amacron -85 KPX V aogonek -85 KPX V aring -85 KPX V atilde -85 KPX V colon -75 KPX V comma -125 KPX V e -75 KPX V eacute -75 KPX V ecaron -75 KPX V ecircumflex -75 KPX V edieresis -75 KPX V edotaccent -75 KPX V egrave -75 KPX V emacron -75 KPX V eogonek -75 KPX V hyphen -100 KPX V i -18 KPX V iacute -18 KPX V icircumflex -18 KPX V iogonek -18 KPX V o -75 KPX V oacute -75 KPX V ocircumflex -75 KPX V odieresis -75 KPX V ograve -75 KPX V ohungarumlaut -75 KPX V omacron -75 KPX V oslash -75 KPX V otilde -75 KPX V period -125 KPX V semicolon -75 KPX V u -75 KPX V uacute -75 KPX V ucircumflex -75 KPX V udieresis -75 KPX V ugrave -75 KPX V uhungarumlaut -75 KPX V umacron -75 KPX V uogonek -75 KPX V uring -75 KPX W A -50 KPX W Aacute -50 KPX W Abreve -50 KPX W Acircumflex -50 KPX W Adieresis -50 KPX W Agrave -50 KPX W Amacron -50 KPX W Aogonek -50 KPX W Aring -50 KPX W Atilde -50 KPX W a -75 KPX W aacute -75 KPX W abreve -75 KPX W acircumflex -75 KPX W adieresis -75 KPX W agrave -75 KPX W amacron -75 KPX W aogonek -75 KPX W aring -75 KPX W atilde -75 KPX W colon -100 KPX W comma -125 KPX W e -60 KPX W eacute -60 KPX W ecaron -60 KPX W ecircumflex -60 KPX W edieresis -60 KPX W edotaccent -60 KPX W egrave -60 KPX W emacron -60 KPX W eogonek -60 KPX W hyphen -100 KPX W i -18 KPX W iacute -18 KPX W icircumflex -18 KPX W iogonek -18 KPX W o -60 KPX W oacute -60 KPX W ocircumflex -60 KPX W odieresis -60 KPX W ograve -60 KPX W ohungarumlaut -60 KPX W omacron -60 KPX W oslash -60 KPX W otilde -60 KPX W period -125 KPX W semicolon -100 KPX W u -55 KPX W uacute -55 KPX W ucircumflex -55 KPX W udieresis -55 KPX W ugrave -55 KPX W uhungarumlaut -55 KPX W umacron -55 KPX W uogonek -55 KPX W uring -55 KPX W y -55 KPX W yacute -55 KPX W ydieresis -55 KPX Y A -75 KPX Y Aacute -75 KPX Y Abreve -75 KPX Y Acircumflex -75 KPX Y Adieresis -75 KPX Y Agrave -75 KPX Y Amacron -75 KPX Y Aogonek -75 KPX Y Aring -75 KPX Y Atilde -75 KPX Y O -18 KPX Y Oacute -18 KPX Y Ocircumflex -18 KPX Y Odieresis -18 KPX Y Ograve -18 KPX Y Ohungarumlaut -18 KPX Y Omacron -18 KPX Y Oslash -18 KPX Y Otilde -18 KPX Y a -100 KPX Y aacute -100 KPX Y abreve -60 KPX Y acircumflex -100 KPX Y adieresis -100 KPX Y agrave -60 KPX Y amacron -100 KPX Y aogonek -100 KPX Y aring -100 KPX Y atilde -100 KPX Y colon -75 KPX Y comma -100 KPX Y e -100 KPX Y eacute -100 KPX Y ecaron -60 KPX Y ecircumflex -100 KPX Y edieresis -60 KPX Y edotaccent -100 KPX Y egrave -60 KPX Y emacron -100 KPX Y eogonek -100 KPX Y hyphen -125 KPX Y i -18 KPX Y iacute -18 KPX Y icircumflex -18 KPX Y imacron -18 KPX Y iogonek -18 KPX Y o -100 KPX Y oacute -100 KPX Y ocircumflex -100 KPX Y odieresis -60 KPX Y ograve -60 KPX Y ohungarumlaut -100 KPX Y omacron -100 KPX Y oslash -100 KPX Y otilde -100 KPX Y period -100 KPX Y semicolon -75 KPX Y u -91 KPX Y uacute -91 KPX Y ucircumflex -91 KPX Y udieresis -91 KPX Y ugrave -91 KPX Y uhungarumlaut -91 KPX Y umacron -91 KPX Y uogonek -91 KPX Y uring -91 KPX Yacute A -75 KPX Yacute Aacute -75 KPX Yacute Abreve -75 KPX Yacute Acircumflex -75 KPX Yacute Adieresis -75 KPX Yacute Agrave -75 KPX Yacute Amacron -75 KPX Yacute Aogonek -75 KPX Yacute Aring -75 KPX Yacute Atilde -75 KPX Yacute O -18 KPX Yacute Oacute -18 KPX Yacute Ocircumflex -18 KPX Yacute Odieresis -18 KPX Yacute Ograve -18 KPX Yacute Ohungarumlaut -18 KPX Yacute Omacron -18 KPX Yacute Oslash -18 KPX Yacute Otilde -18 KPX Yacute a -100 KPX Yacute aacute -100 KPX Yacute abreve -60 KPX Yacute acircumflex -100 KPX Yacute adieresis -100 KPX Yacute agrave -60 KPX Yacute amacron -100 KPX Yacute aogonek -100 KPX Yacute aring -100 KPX Yacute atilde -100 KPX Yacute colon -75 KPX Yacute comma -100 KPX Yacute e -100 KPX Yacute eacute -100 KPX Yacute ecaron -60 KPX Yacute ecircumflex -100 KPX Yacute edieresis -60 KPX Yacute edotaccent -100 KPX Yacute egrave -60 KPX Yacute emacron -100 KPX Yacute eogonek -100 KPX Yacute hyphen -125 KPX Yacute i -18 KPX Yacute iacute -18 KPX Yacute icircumflex -18 KPX Yacute imacron -18 KPX Yacute iogonek -18 KPX Yacute o -100 KPX Yacute oacute -100 KPX Yacute ocircumflex -100 KPX Yacute odieresis -60 KPX Yacute ograve -60 KPX Yacute ohungarumlaut -100 KPX Yacute omacron -100 KPX Yacute oslash -100 KPX Yacute otilde -100 KPX Yacute period -100 KPX Yacute semicolon -75 KPX Yacute u -91 KPX Yacute uacute -91 KPX Yacute ucircumflex -91 KPX Yacute udieresis -91 KPX Yacute ugrave -91 KPX Yacute uhungarumlaut -91 KPX Yacute umacron -91 KPX Yacute uogonek -91 KPX Yacute uring -91 KPX Ydieresis A -75 KPX Ydieresis Aacute -75 KPX Ydieresis Abreve -75 KPX Ydieresis Acircumflex -75 KPX Ydieresis Adieresis -75 KPX Ydieresis Agrave -75 KPX Ydieresis Amacron -75 KPX Ydieresis Aogonek -75 KPX Ydieresis Aring -75 KPX Ydieresis Atilde -75 KPX Ydieresis O -18 KPX Ydieresis Oacute -18 KPX Ydieresis Ocircumflex -18 KPX Ydieresis Odieresis -18 KPX Ydieresis Ograve -18 KPX Ydieresis Ohungarumlaut -18 KPX Ydieresis Omacron -18 KPX Ydieresis Oslash -18 KPX Ydieresis Otilde -18 KPX Ydieresis a -100 KPX Ydieresis aacute -100 KPX Ydieresis abreve -60 KPX Ydieresis acircumflex -100 KPX Ydieresis adieresis -100 KPX Ydieresis agrave -60 KPX Ydieresis amacron -100 KPX Ydieresis aogonek -100 KPX Ydieresis aring -100 KPX Ydieresis atilde -100 KPX Ydieresis colon -75 KPX Ydieresis comma -100 KPX Ydieresis e -100 KPX Ydieresis eacute -100 KPX Ydieresis ecaron -60 KPX Ydieresis ecircumflex -100 KPX Ydieresis edieresis -60 KPX Ydieresis edotaccent -100 KPX Ydieresis egrave -60 KPX Ydieresis emacron -100 KPX Ydieresis eogonek -100 KPX Ydieresis hyphen -125 KPX Ydieresis i -18 KPX Ydieresis iacute -18 KPX Ydieresis icircumflex -18 KPX Ydieresis imacron -18 KPX Ydieresis iogonek -18 KPX Ydieresis o -100 KPX Ydieresis oacute -100 KPX Ydieresis ocircumflex -100 KPX Ydieresis odieresis -60 KPX Ydieresis ograve -60 KPX Ydieresis ohungarumlaut -100 KPX Ydieresis omacron -100 KPX Ydieresis oslash -100 KPX Ydieresis otilde -100 KPX Ydieresis period -100 KPX Ydieresis semicolon -75 KPX Ydieresis u -91 KPX Ydieresis uacute -91 KPX Ydieresis ucircumflex -91 KPX Ydieresis udieresis -91 KPX Ydieresis ugrave -91 KPX Ydieresis uhungarumlaut -91 KPX Ydieresis umacron -91 KPX Ydieresis uogonek -91 KPX Ydieresis uring -91 KPX a v -10 KPX a w -10 KPX a y -10 KPX a yacute -10 KPX a ydieresis -10 KPX aacute v -10 KPX aacute w -10 KPX aacute y -10 KPX aacute yacute -10 KPX aacute ydieresis -10 KPX abreve v -10 KPX abreve w -10 KPX abreve y -10 KPX abreve yacute -10 KPX abreve ydieresis -10 KPX acircumflex v -10 KPX acircumflex w -10 KPX acircumflex y -10 KPX acircumflex yacute -10 KPX acircumflex ydieresis -10 KPX adieresis v -10 KPX adieresis w -10 KPX adieresis y -10 KPX adieresis yacute -10 KPX adieresis ydieresis -10 KPX agrave v -10 KPX agrave w -10 KPX agrave y -10 KPX agrave yacute -10 KPX agrave ydieresis -10 KPX amacron v -10 KPX amacron w -10 KPX amacron y -10 KPX amacron yacute -10 KPX amacron ydieresis -10 KPX aogonek v -10 KPX aogonek w -10 KPX aring v -10 KPX aring w -10 KPX aring y -10 KPX aring yacute -10 KPX aring ydieresis -10 KPX atilde v -10 KPX atilde w -10 KPX atilde y -10 KPX atilde yacute -10 KPX atilde ydieresis -10 KPX b comma -18 KPX b period -18 KPX c comma -18 KPX c h -7 KPX c k -7 KPX c kcommaaccent -7 KPX c l -7 KPX c lacute -7 KPX c lcommaaccent -7 KPX c lslash -7 KPX c period -18 KPX cacute comma -18 KPX cacute h -7 KPX cacute k -7 KPX cacute kcommaaccent -7 KPX cacute l -7 KPX cacute lacute -7 KPX cacute lcommaaccent -7 KPX cacute lslash -7 KPX cacute period -18 KPX ccaron comma -18 KPX ccaron h -7 KPX ccaron k -7 KPX ccaron kcommaaccent -7 KPX ccaron l -7 KPX ccaron lacute -7 KPX ccaron lcommaaccent -7 KPX ccaron lslash -7 KPX ccaron period -18 KPX ccedilla comma -18 KPX ccedilla h -7 KPX ccedilla k -7 KPX ccedilla kcommaaccent -7 KPX ccedilla l -7 KPX ccedilla lacute -7 KPX ccedilla lcommaaccent -7 KPX ccedilla lslash -7 KPX ccedilla period -18 KPX colon space -37 KPX comma quotedblright -37 KPX comma quoteright -37 KPX comma space -37 KPX e comma -18 KPX e period -18 KPX eacute comma -18 KPX eacute period -18 KPX ecaron comma -18 KPX ecaron period -18 KPX ecircumflex comma -18 KPX ecircumflex period -18 KPX edieresis comma -18 KPX edieresis period -18 KPX edotaccent comma -18 KPX edotaccent period -18 KPX egrave comma -18 KPX egrave period -18 KPX emacron comma -18 KPX emacron period -18 KPX eogonek comma -18 KPX eogonek period -18 KPX f comma -37 KPX f period -37 KPX f quotedblright 100 KPX f quoteright 100 KPX g comma -25 KPX g period -25 KPX gbreve comma -25 KPX gbreve period -25 KPX gcommaaccent comma -25 KPX gcommaaccent period -25 KPX o comma -18 KPX o period -18 KPX oacute comma -18 KPX oacute period -18 KPX ocircumflex comma -18 KPX ocircumflex period -18 KPX odieresis comma -18 KPX odieresis period -18 KPX ograve comma -18 KPX ograve period -18 KPX ohungarumlaut comma -18 KPX ohungarumlaut period -18 KPX omacron comma -18 KPX omacron period -18 KPX oslash comma -18 KPX oslash period -18 KPX otilde comma -18 KPX otilde period -18 KPX p comma -18 KPX p period -18 KPX period quotedblright -37 KPX period quoteright -37 KPX period space -37 KPX quotedblleft A -74 KPX quotedblleft Aacute -74 KPX quotedblleft Abreve -74 KPX quotedblleft Acircumflex -74 KPX quotedblleft Adieresis -74 KPX quotedblleft Agrave -74 KPX quotedblleft Amacron -74 KPX quotedblleft Aogonek -74 KPX quotedblleft Aring -74 KPX quotedblleft Atilde -74 KPX quotedblright space -37 KPX quoteleft A -74 KPX quoteleft Aacute -74 KPX quoteleft Abreve -74 KPX quoteleft Acircumflex -74 KPX quoteleft Adieresis -74 KPX quoteleft Agrave -74 KPX quoteleft Amacron -74 KPX quoteleft Aogonek -74 KPX quoteleft Aring -74 KPX quoteleft Atilde -74 KPX quoteleft quoteleft -25 KPX quoteright d -37 KPX quoteright dcroat -37 KPX quoteright quoteright -25 KPX quoteright s -25 KPX quoteright sacute -25 KPX quoteright scaron -25 KPX quoteright scedilla -25 KPX quoteright scommaaccent -25 KPX r comma -100 KPX r hyphen -37 KPX r period -100 KPX racute comma -100 KPX racute hyphen -37 KPX racute period -100 KPX rcaron comma -100 KPX rcaron hyphen -37 KPX rcaron period -100 KPX rcommaaccent comma -100 KPX rcommaaccent hyphen -37 KPX rcommaaccent period -100 KPX s comma -25 KPX s period -25 KPX sacute comma -25 KPX sacute period -25 KPX scaron comma -25 KPX scaron period -25 KPX scedilla comma -25 KPX scedilla period -25 KPX scommaaccent comma -25 KPX scommaaccent period -25 KPX semicolon space -37 KPX space A -37 KPX space Aacute -37 KPX space Abreve -37 KPX space Acircumflex -37 KPX space Adieresis -37 KPX space Agrave -37 KPX space Amacron -37 KPX space Aogonek -37 KPX space Aring -37 KPX space Atilde -37 KPX space T -37 KPX space Tcaron -37 KPX space Tcommaaccent -37 KPX space V -37 KPX space W -37 KPX space Y -37 KPX space Yacute -37 KPX space Ydieresis -37 KPX space quotedblleft -37 KPX space quoteleft -37 KPX v comma -125 KPX v period -125 KPX w a -18 KPX w aacute -18 KPX w abreve -18 KPX w acircumflex -18 KPX w adieresis -18 KPX w agrave -18 KPX w amacron -18 KPX w aogonek -18 KPX w aring -18 KPX w atilde -18 KPX w comma -125 KPX w period -125 KPX y comma -125 KPX y period -125 KPX yacute comma -125 KPX yacute period -125 KPX ydieresis comma -125 KPX ydieresis period -125 EndKernPairs EndKernData EndFontMetrics a2ps-4.14/afm/pplri.afm0000644000175000017500000010652510674334154014223 0ustar mhattamhattaStartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1989, 1990, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Thu May 1 13:32:34 1997 Comment UniqueID 43074 Comment VMusage 54574 69599 FontName Palatino-Italic FullName Palatino Italic FamilyName Palatino Weight Medium ItalicAngle -10 IsFixedPitch false FontBBox -170 -276 1010 918 UnderlinePosition -100 UnderlineThickness 50 Version 002.000 Notice Copyright (c) 1985, 1987, 1989, 1990, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.Palatino is a trademark of Linotype-Hell AG and/or its subsidiaries. EncodingScheme AdobeStandardEncoding CapHeight 692 XHeight 482 Ascender 726 Descender -281 StdHW 42 StdVW 84 StartCharMetrics 314 C 32 ; WX 250 ; N space ; B 0 0 0 0 ; C 33 ; WX 333 ; N exclam ; B 76 -8 292 733 ; C 34 ; WX 500 ; N quotedbl ; B 140 508 455 733 ; C 35 ; WX 500 ; N numbersign ; B 4 0 495 692 ; C 36 ; WX 500 ; N dollar ; B 15 -113 452 733 ; C 37 ; WX 889 ; N percent ; B 74 -7 809 710 ; C 38 ; WX 778 ; N ampersand ; B 47 -18 766 692 ; C 39 ; WX 278 ; N quoteright ; B 78 488 258 733 ; C 40 ; WX 333 ; N parenleft ; B 54 -106 331 733 ; C 41 ; WX 333 ; N parenright ; B 2 -106 279 733 ; C 42 ; WX 389 ; N asterisk ; B 76 368 400 706 ; C 43 ; WX 606 ; N plus ; B 51 0 555 504 ; C 44 ; WX 250 ; N comma ; B 8 -143 203 123 ; C 45 ; WX 333 ; N hyphen ; B 19 223 304 281 ; C 46 ; WX 250 ; N period ; B 53 -5 158 112 ; C 47 ; WX 296 ; N slash ; B -40 -119 392 733 ; C 48 ; WX 500 ; N zero ; B 36 -11 480 699 ; C 49 ; WX 500 ; N one ; B 54 -3 398 699 ; C 50 ; WX 500 ; N two ; B 12 -3 437 699 ; C 51 ; WX 500 ; N three ; B 22 -11 447 699 ; C 52 ; WX 500 ; N four ; B 15 -3 478 699 ; C 53 ; WX 500 ; N five ; B 14 -11 491 693 ; C 54 ; WX 500 ; N six ; B 49 -11 469 699 ; C 55 ; WX 500 ; N seven ; B 53 -3 502 692 ; C 56 ; WX 500 ; N eight ; B 36 -11 469 699 ; C 57 ; WX 500 ; N nine ; B 32 -11 468 699 ; C 58 ; WX 250 ; N colon ; B 44 -5 207 458 ; C 59 ; WX 250 ; N semicolon ; B -9 -146 219 456 ; C 60 ; WX 606 ; N less ; B 53 -6 554 516 ; C 61 ; WX 606 ; N equal ; B 51 126 555 378 ; C 62 ; WX 606 ; N greater ; B 53 -6 554 516 ; C 63 ; WX 500 ; N question ; B 114 -8 427 706 ; C 64 ; WX 747 ; N at ; B 27 -18 718 706 ; C 65 ; WX 722 ; N A ; B -19 -3 677 705 ; C 66 ; WX 611 ; N B ; B 26 -6 559 692 ; C 67 ; WX 667 ; N C ; B 45 -18 651 706 ; C 68 ; WX 778 ; N D ; B 28 -3 741 692 ; C 69 ; WX 611 ; N E ; B 30 -3 570 692 ; C 70 ; WX 556 ; N F ; B 0 -3 548 692 ; C 71 ; WX 722 ; N G ; B 50 -18 694 706 ; C 72 ; WX 778 ; N H ; B -3 -3 800 692 ; C 73 ; WX 333 ; N I ; B 7 -3 354 692 ; C 74 ; WX 333 ; N J ; B -35 -206 358 692 ; C 75 ; WX 667 ; N K ; B 13 -3 683 692 ; C 76 ; WX 556 ; N L ; B 16 -3 523 692 ; C 77 ; WX 944 ; N M ; B -19 -18 940 692 ; C 78 ; WX 778 ; N N ; B 2 -11 804 692 ; C 79 ; WX 778 ; N O ; B 53 -18 748 706 ; C 80 ; WX 611 ; N P ; B 9 -3 594 692 ; C 81 ; WX 778 ; N Q ; B 53 -201 748 706 ; C 82 ; WX 667 ; N R ; B 9 -3 639 692 ; C 83 ; WX 556 ; N S ; B 42 -18 506 706 ; C 84 ; WX 611 ; N T ; B 53 -3 635 692 ; C 85 ; WX 778 ; N U ; B 88 -18 798 692 ; C 86 ; WX 722 ; N V ; B 75 -8 754 692 ; C 87 ; WX 944 ; N W ; B 71 -8 980 700 ; C 88 ; WX 722 ; N X ; B 20 -3 734 692 ; C 89 ; WX 667 ; N Y ; B 52 -3 675 705 ; C 90 ; WX 667 ; N Z ; B 20 -3 637 692 ; C 91 ; WX 333 ; N bracketleft ; B 18 -100 326 733 ; C 92 ; WX 606 ; N backslash ; B 81 0 513 733 ; C 93 ; WX 333 ; N bracketright ; B 7 -100 315 733 ; C 94 ; WX 606 ; N asciicircum ; B 51 283 554 689 ; C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; C 96 ; WX 278 ; N quoteleft ; B 78 488 258 733 ; C 97 ; WX 444 ; N a ; B 4 -11 406 482 ; C 98 ; WX 463 ; N b ; B 37 -11 433 733 ; C 99 ; WX 407 ; N c ; B 25 -11 389 482 ; C 100 ; WX 500 ; N d ; B 17 -11 483 733 ; C 101 ; WX 389 ; N e ; B 15 -11 374 482 ; C 102 ; WX 278 ; N f ; B -162 -276 413 733 ; L i fi ; L l fl ; C 103 ; WX 500 ; N g ; B -37 -276 498 482 ; C 104 ; WX 500 ; N h ; B 10 -9 471 733 ; C 105 ; WX 278 ; N i ; B 34 -9 264 712 ; C 106 ; WX 278 ; N j ; B -70 -276 265 712 ; C 107 ; WX 444 ; N k ; B 8 -9 449 733 ; C 108 ; WX 278 ; N l ; B 36 -9 251 733 ; C 109 ; WX 778 ; N m ; B 24 -9 740 482 ; C 110 ; WX 556 ; N n ; B 24 -9 514 482 ; C 111 ; WX 444 ; N o ; B 17 -11 411 482 ; C 112 ; WX 500 ; N p ; B -7 -276 465 482 ; C 113 ; WX 463 ; N q ; B 24 -276 432 482 ; C 114 ; WX 389 ; N r ; B 26 -9 384 482 ; C 115 ; WX 389 ; N s ; B 9 -11 345 482 ; C 116 ; WX 333 ; N t ; B 41 -9 310 646 ; C 117 ; WX 556 ; N u ; B 32 -11 512 482 ; C 118 ; WX 500 ; N v ; B 21 -11 477 482 ; C 119 ; WX 722 ; N w ; B 21 -11 699 482 ; C 120 ; WX 500 ; N x ; B 9 -11 484 482 ; C 121 ; WX 500 ; N y ; B -8 -276 490 482 ; C 122 ; WX 444 ; N z ; B -1 -11 416 482 ; C 123 ; WX 333 ; N braceleft ; B 15 -100 319 733 ; C 124 ; WX 606 ; N bar ; B 275 -250 331 750 ; C 125 ; WX 333 ; N braceright ; B 14 -100 318 733 ; C 126 ; WX 606 ; N asciitilde ; B 51 168 555 339 ; C 161 ; WX 333 ; N exclamdown ; B 15 -276 233 467 ; C 162 ; WX 500 ; N cent ; B 56 -96 418 551 ; C 163 ; WX 500 ; N sterling ; B 2 -18 479 708 ; C 164 ; WX 167 ; N fraction ; B -170 0 337 699 ; C 165 ; WX 500 ; N yen ; B 35 -3 512 699 ; C 166 ; WX 500 ; N florin ; B 5 -276 470 708 ; C 167 ; WX 500 ; N section ; B 14 -220 463 706 ; C 168 ; WX 500 ; N currency ; B 14 115 486 577 ; C 169 ; WX 333 ; N quotesingle ; B 140 508 288 733 ; C 170 ; WX 500 ; N quotedblleft ; B 98 488 475 733 ; C 171 ; WX 500 ; N guillemotleft ; B 57 70 437 440 ; C 172 ; WX 333 ; N guilsinglleft ; B 57 70 270 440 ; C 173 ; WX 333 ; N guilsinglright ; B 63 70 276 440 ; C 174 ; WX 528 ; N fi ; B -162 -276 502 733 ; C 175 ; WX 545 ; N fl ; B -162 -276 520 733 ; C 177 ; WX 500 ; N endash ; B -10 228 510 278 ; C 178 ; WX 500 ; N dagger ; B 48 0 469 692 ; C 179 ; WX 500 ; N daggerdbl ; B 10 -162 494 692 ; C 180 ; WX 250 ; N periodcentered ; B 53 195 158 312 ; C 182 ; WX 500 ; N paragraph ; B 33 -224 611 692 ; C 183 ; WX 500 ; N bullet ; B 86 182 430 526 ; C 184 ; WX 278 ; N quotesinglbase ; B 27 -122 211 120 ; C 185 ; WX 500 ; N quotedblbase ; B 43 -122 424 120 ; C 186 ; WX 500 ; N quotedblright ; B 98 488 475 733 ; C 187 ; WX 500 ; N guillemotright ; B 63 70 443 440 ; C 188 ; WX 1000 ; N ellipsis ; B 102 -5 873 112 ; C 189 ; WX 1000 ; N perthousand ; B 72 -6 929 717 ; C 191 ; WX 500 ; N questiondown ; B 57 -246 370 467 ; C 193 ; WX 333 ; N grave ; B 86 518 310 687 ; C 194 ; WX 333 ; N acute ; B 122 518 346 687 ; C 195 ; WX 333 ; N circumflex ; B 56 510 350 679 ; C 196 ; WX 333 ; N tilde ; B 63 535 390 638 ; C 197 ; WX 333 ; N macron ; B 74 538 386 589 ; C 198 ; WX 333 ; N breve ; B 92 518 393 677 ; C 199 ; WX 333 ; N dotaccent ; B 189 604 283 712 ; C 200 ; WX 333 ; N dieresis ; B 88 604 382 712 ; C 202 ; WX 333 ; N ring ; B 159 508 359 708 ; C 203 ; WX 333 ; N cedilla ; B -9 -216 202 0 ; C 205 ; WX 333 ; N hungarumlaut ; B 16 518 407 687 ; C 206 ; WX 333 ; N ogonek ; B 31 -226 213 -18 ; C 207 ; WX 333 ; N caron ; B 104 510 409 679 ; C 208 ; WX 1000 ; N emdash ; B -10 228 1010 278 ; C 225 ; WX 941 ; N AE ; B -4 -3 902 692 ; C 227 ; WX 333 ; N ordfeminine ; B 60 404 321 699 ; C 232 ; WX 556 ; N Lslash ; B -16 -3 523 692 ; C 233 ; WX 778 ; N Oslash ; B 32 -39 762 721 ; C 234 ; WX 1028 ; N OE ; B 56 -18 989 706 ; C 235 ; WX 333 ; N ordmasculine ; B 66 404 322 699 ; C 241 ; WX 638 ; N ae ; B 1 -11 623 482 ; C 245 ; WX 278 ; N dotlessi ; B 34 -9 241 482 ; C 248 ; WX 278 ; N lslash ; B -10 -9 302 733 ; C 249 ; WX 444 ; N oslash ; B -18 -24 460 510 ; C 250 ; WX 669 ; N oe ; B 17 -11 654 482 ; C 251 ; WX 500 ; N germandbls ; B -160 -276 488 733 ; C -1 ; WX 333 ; N Idieresis ; B 7 -3 422 847 ; C -1 ; WX 389 ; N eacute ; B 15 -11 394 707 ; C -1 ; WX 444 ; N abreve ; B 4 -11 461 697 ; C -1 ; WX 556 ; N uhungarumlaut ; B 32 -11 599 707 ; C -1 ; WX 389 ; N ecaron ; B 15 -11 437 699 ; C -1 ; WX 667 ; N Ydieresis ; B 52 -3 675 847 ; C -1 ; WX 606 ; N divide ; B 51 0 555 504 ; C -1 ; WX 667 ; N Yacute ; B 52 -3 675 897 ; C -1 ; WX 722 ; N Acircumflex ; B -19 -3 677 889 ; C -1 ; WX 444 ; N aacute ; B 4 -11 414 707 ; C -1 ; WX 778 ; N Ucircumflex ; B 88 -18 798 889 ; C -1 ; WX 500 ; N yacute ; B -8 -276 492 707 ; C -1 ; WX 389 ; N scommaaccent ; B 9 -276 345 482 ; C -1 ; WX 389 ; N ecircumflex ; B 15 -11 398 699 ; C -1 ; WX 778 ; N Uring ; B 88 -18 798 918 ; C -1 ; WX 778 ; N Udieresis ; B 88 -18 798 847 ; C -1 ; WX 444 ; N aogonek ; B 4 -226 406 482 ; C -1 ; WX 778 ; N Uacute ; B 88 -18 798 897 ; C -1 ; WX 556 ; N uogonek ; B 32 -212 512 482 ; C -1 ; WX 611 ; N Edieresis ; B 30 -3 570 847 ; C -1 ; WX 778 ; N Dcroat ; B 19 -3 741 692 ; C -1 ; WX 250 ; N commaaccent ; B 43 -276 188 -50 ; C -1 ; WX 747 ; N copyright ; B 11 -18 736 706 ; C -1 ; WX 611 ; N Emacron ; B 30 -3 570 799 ; C -1 ; WX 407 ; N ccaron ; B 25 -11 446 699 ; C -1 ; WX 444 ; N aring ; B 4 -11 406 728 ; C -1 ; WX 778 ; N Ncommaaccent ; B 2 -276 804 692 ; C -1 ; WX 278 ; N lacute ; B 36 -9 391 917 ; C -1 ; WX 444 ; N agrave ; B 4 -11 406 707 ; C -1 ; WX 611 ; N Tcommaaccent ; B 53 -276 635 692 ; C -1 ; WX 667 ; N Cacute ; B 45 -18 651 897 ; C -1 ; WX 444 ; N atilde ; B 4 -11 446 658 ; C -1 ; WX 611 ; N Edotaccent ; B 30 -3 570 847 ; C -1 ; WX 389 ; N scaron ; B 9 -11 389 699 ; C -1 ; WX 389 ; N scedilla ; B -4 -216 345 482 ; C -1 ; WX 278 ; N iacute ; B 34 -9 330 707 ; C -1 ; WX 471 ; N lozenge ; B 21 0 451 710 ; C -1 ; WX 667 ; N Rcaron ; B 9 -3 639 889 ; C -1 ; WX 722 ; N Gcommaaccent ; B 50 -276 694 706 ; C -1 ; WX 556 ; N ucircumflex ; B 32 -11 512 699 ; C -1 ; WX 444 ; N acircumflex ; B 4 -11 406 699 ; C -1 ; WX 722 ; N Amacron ; B -19 -3 677 799 ; C -1 ; WX 389 ; N rcaron ; B 26 -9 437 699 ; C -1 ; WX 407 ; N ccedilla ; B 19 -216 389 482 ; C -1 ; WX 667 ; N Zdotaccent ; B 20 -3 637 847 ; C -1 ; WX 611 ; N Thorn ; B 9 -3 570 692 ; C -1 ; WX 778 ; N Omacron ; B 53 -18 748 799 ; C -1 ; WX 667 ; N Racute ; B 9 -3 639 897 ; C -1 ; WX 556 ; N Sacute ; B 42 -18 556 897 ; C -1 ; WX 580 ; N dcaron ; B 17 -11 634 733 ; C -1 ; WX 778 ; N Umacron ; B 88 -18 798 799 ; C -1 ; WX 556 ; N uring ; B 32 -11 512 728 ; C -1 ; WX 300 ; N threesuperior ; B 28 273 304 699 ; C -1 ; WX 778 ; N Ograve ; B 53 -18 748 897 ; C -1 ; WX 722 ; N Agrave ; B -19 -3 677 897 ; C -1 ; WX 722 ; N Abreve ; B -19 -3 677 887 ; C -1 ; WX 606 ; N multiply ; B 83 36 523 474 ; C -1 ; WX 556 ; N uacute ; B 32 -11 520 707 ; C -1 ; WX 611 ; N Tcaron ; B 53 -3 635 889 ; C -1 ; WX 476 ; N partialdiff ; B 34 -21 450 711 ; C -1 ; WX 500 ; N ydieresis ; B -8 -276 490 657 ; C -1 ; WX 778 ; N Nacute ; B 2 -11 804 897 ; C -1 ; WX 278 ; N icircumflex ; B 29 -9 323 699 ; C -1 ; WX 611 ; N Ecircumflex ; B 30 -3 570 889 ; C -1 ; WX 444 ; N adieresis ; B 4 -11 438 657 ; C -1 ; WX 389 ; N edieresis ; B 15 -11 410 657 ; C -1 ; WX 407 ; N cacute ; B 25 -11 403 707 ; C -1 ; WX 556 ; N nacute ; B 24 -9 514 707 ; C -1 ; WX 556 ; N umacron ; B 32 -11 512 609 ; C -1 ; WX 778 ; N Ncaron ; B 2 -11 804 889 ; C -1 ; WX 333 ; N Iacute ; B 7 -3 406 897 ; C -1 ; WX 606 ; N plusminus ; B 51 0 555 504 ; C -1 ; WX 606 ; N brokenbar ; B 275 -175 331 675 ; C -1 ; WX 747 ; N registered ; B 11 -18 736 706 ; C -1 ; WX 722 ; N Gbreve ; B 50 -18 694 887 ; C -1 ; WX 333 ; N Idotaccent ; B 7 -3 354 847 ; C -1 ; WX 600 ; N summation ; B 15 -10 586 706 ; C -1 ; WX 611 ; N Egrave ; B 30 -3 570 897 ; C -1 ; WX 389 ; N racute ; B 26 -9 386 707 ; C -1 ; WX 444 ; N omacron ; B 17 -11 442 609 ; C -1 ; WX 667 ; N Zacute ; B 20 -3 637 897 ; C -1 ; WX 667 ; N Zcaron ; B 20 -3 637 889 ; C -1 ; WX 549 ; N greaterequal ; B 26 0 523 643 ; C -1 ; WX 778 ; N Eth ; B 19 -3 741 692 ; C -1 ; WX 667 ; N Ccedilla ; B 45 -216 651 706 ; C -1 ; WX 278 ; N lcommaaccent ; B -43 -276 251 733 ; C -1 ; WX 353 ; N tcaron ; B 41 -9 420 752 ; C -1 ; WX 389 ; N eogonek ; B 15 -226 374 482 ; C -1 ; WX 778 ; N Uogonek ; B 88 -226 798 692 ; C -1 ; WX 722 ; N Aacute ; B -19 -3 677 897 ; C -1 ; WX 722 ; N Adieresis ; B -19 -3 677 847 ; C -1 ; WX 389 ; N egrave ; B 15 -11 374 707 ; C -1 ; WX 444 ; N zacute ; B -1 -11 416 707 ; C -1 ; WX 278 ; N iogonek ; B 16 -212 264 712 ; C -1 ; WX 778 ; N Oacute ; B 53 -18 748 897 ; C -1 ; WX 444 ; N oacute ; B 17 -11 414 707 ; C -1 ; WX 444 ; N amacron ; B 4 -11 442 609 ; C -1 ; WX 389 ; N sacute ; B 9 -11 374 707 ; C -1 ; WX 278 ; N idieresis ; B 34 -9 355 657 ; C -1 ; WX 778 ; N Ocircumflex ; B 53 -18 748 889 ; C -1 ; WX 778 ; N Ugrave ; B 88 -18 798 897 ; C -1 ; WX 600 ; N Delta ; B 66 0 668 688 ; C -1 ; WX 500 ; N thorn ; B -39 -276 433 733 ; C -1 ; WX 300 ; N twosuperior ; B 13 278 290 699 ; C -1 ; WX 778 ; N Odieresis ; B 53 -18 748 847 ; C -1 ; WX 556 ; N mu ; B 15 -226 512 482 ; C -1 ; WX 278 ; N igrave ; B 34 -9 270 707 ; C -1 ; WX 444 ; N ohungarumlaut ; B 17 -11 523 707 ; C -1 ; WX 611 ; N Eogonek ; B 30 -207 570 692 ; C -1 ; WX 500 ; N dcroat ; B 17 -11 526 733 ; C -1 ; WX 750 ; N threequarters ; B 35 -2 715 699 ; C -1 ; WX 556 ; N Scedilla ; B 42 -216 506 706 ; C -1 ; WX 348 ; N lcaron ; B 36 -9 402 733 ; C -1 ; WX 667 ; N Kcommaaccent ; B 13 -276 683 692 ; C -1 ; WX 556 ; N Lacute ; B 16 -3 523 897 ; C -1 ; WX 1000 ; N trademark ; B 52 285 951 689 ; C -1 ; WX 389 ; N edotaccent ; B 15 -11 374 657 ; C -1 ; WX 333 ; N Igrave ; B 7 -3 354 897 ; C -1 ; WX 333 ; N Imacron ; B 7 -3 426 799 ; C -1 ; WX 556 ; N Lcaron ; B 16 -3 541 712 ; C -1 ; WX 750 ; N onehalf ; B 31 -2 721 699 ; C -1 ; WX 549 ; N lessequal ; B 26 0 523 642 ; C -1 ; WX 444 ; N ocircumflex ; B 17 -11 411 699 ; C -1 ; WX 556 ; N ntilde ; B 24 -9 514 658 ; C -1 ; WX 778 ; N Uhungarumlaut ; B 88 -18 798 897 ; C -1 ; WX 611 ; N Eacute ; B 30 -3 570 897 ; C -1 ; WX 389 ; N emacron ; B 15 -11 434 609 ; C -1 ; WX 500 ; N gbreve ; B -37 -276 498 697 ; C -1 ; WX 750 ; N onequarter ; B 31 -2 715 699 ; C -1 ; WX 556 ; N Scaron ; B 42 -18 539 889 ; C -1 ; WX 556 ; N Scommaaccent ; B 42 -276 506 706 ; C -1 ; WX 778 ; N Ohungarumlaut ; B 53 -18 748 897 ; C -1 ; WX 400 ; N degree ; B 90 389 390 689 ; C -1 ; WX 444 ; N ograve ; B 17 -11 411 707 ; C -1 ; WX 667 ; N Ccaron ; B 45 -18 651 889 ; C -1 ; WX 556 ; N ugrave ; B 32 -11 512 707 ; C -1 ; WX 453 ; N radical ; B 12 -55 442 747 ; C -1 ; WX 778 ; N Dcaron ; B 28 -3 741 889 ; C -1 ; WX 389 ; N rcommaaccent ; B -28 -276 384 482 ; C -1 ; WX 778 ; N Ntilde ; B 2 -11 804 848 ; C -1 ; WX 444 ; N otilde ; B 17 -11 446 658 ; C -1 ; WX 667 ; N Rcommaaccent ; B 9 -276 639 692 ; C -1 ; WX 556 ; N Lcommaaccent ; B 16 -276 523 692 ; C -1 ; WX 722 ; N Atilde ; B -19 -3 677 848 ; C -1 ; WX 722 ; N Aogonek ; B -19 -210 695 705 ; C -1 ; WX 722 ; N Aring ; B -19 -3 677 918 ; C -1 ; WX 778 ; N Otilde ; B 53 -18 748 848 ; C -1 ; WX 444 ; N zdotaccent ; B -1 -11 416 657 ; C -1 ; WX 611 ; N Ecaron ; B 30 -3 588 889 ; C -1 ; WX 333 ; N Iogonek ; B 7 -210 354 692 ; C -1 ; WX 444 ; N kcommaaccent ; B 8 -276 449 733 ; C -1 ; WX 606 ; N minus ; B 51 224 555 280 ; C -1 ; WX 333 ; N Icircumflex ; B 7 -3 390 889 ; C -1 ; WX 556 ; N ncaron ; B 24 -9 533 699 ; C -1 ; WX 333 ; N tcommaaccent ; B -16 -276 310 646 ; C -1 ; WX 606 ; N logicalnot ; B 51 118 555 378 ; C -1 ; WX 444 ; N odieresis ; B 17 -11 438 657 ; C -1 ; WX 556 ; N udieresis ; B 32 -11 512 657 ; C -1 ; WX 549 ; N notequal ; B 12 -16 537 538 ; C -1 ; WX 500 ; N gcommaaccent ; B -37 -276 498 761 ; C -1 ; WX 444 ; N eth ; B 17 -11 478 733 ; C -1 ; WX 444 ; N zcaron ; B -1 -11 447 699 ; C -1 ; WX 556 ; N ncommaaccent ; B 24 -276 514 482 ; C -1 ; WX 300 ; N onesuperior ; B 61 278 285 699 ; C -1 ; WX 278 ; N imacron ; B 34 -9 324 579 ; EndCharMetrics StartKernData StartKernPairs 962 KPX A T -55 KPX A Tcaron -55 KPX A Tcommaaccent -55 KPX A V -74 KPX A W -55 KPX A Y -55 KPX A Yacute -55 KPX A Ydieresis -55 KPX A quoteright -55 KPX A space -37 KPX A v -37 KPX A w -37 KPX A y -55 KPX A yacute -55 KPX A ydieresis -55 KPX Aacute T -55 KPX Aacute Tcaron -55 KPX Aacute Tcommaaccent -55 KPX Aacute V -74 KPX Aacute W -55 KPX Aacute Y -55 KPX Aacute Yacute -55 KPX Aacute Ydieresis -55 KPX Aacute quoteright -55 KPX Aacute space -37 KPX Aacute v -37 KPX Aacute w -37 KPX Aacute y -55 KPX Aacute yacute -55 KPX Aacute ydieresis -55 KPX Abreve T -55 KPX Abreve Tcaron -55 KPX Abreve Tcommaaccent -55 KPX Abreve V -74 KPX Abreve W -55 KPX Abreve Y -55 KPX Abreve Yacute -55 KPX Abreve Ydieresis -55 KPX Abreve quoteright -55 KPX Abreve space -37 KPX Abreve v -37 KPX Abreve w -37 KPX Abreve y -55 KPX Abreve yacute -55 KPX Abreve ydieresis -55 KPX Acircumflex T -55 KPX Acircumflex Tcaron -55 KPX Acircumflex Tcommaaccent -55 KPX Acircumflex V -74 KPX Acircumflex W -55 KPX Acircumflex Y -55 KPX Acircumflex Yacute -55 KPX Acircumflex Ydieresis -55 KPX Acircumflex quoteright -55 KPX Acircumflex space -37 KPX Acircumflex v -37 KPX Acircumflex w -37 KPX Acircumflex y -55 KPX Acircumflex yacute -55 KPX Acircumflex ydieresis -55 KPX Adieresis T -55 KPX Adieresis Tcaron -55 KPX Adieresis Tcommaaccent -55 KPX Adieresis V -74 KPX Adieresis W -55 KPX Adieresis Y -55 KPX Adieresis Yacute -55 KPX Adieresis Ydieresis -55 KPX Adieresis quoteright -55 KPX Adieresis space -37 KPX Adieresis v -37 KPX Adieresis w -37 KPX Adieresis y -55 KPX Adieresis yacute -55 KPX Adieresis ydieresis -55 KPX Agrave T -55 KPX Agrave Tcaron -55 KPX Agrave Tcommaaccent -55 KPX Agrave V -74 KPX Agrave W -55 KPX Agrave Y -55 KPX Agrave Yacute -55 KPX Agrave Ydieresis -55 KPX Agrave quoteright -55 KPX Agrave space -37 KPX Agrave v -37 KPX Agrave w -37 KPX Agrave y -55 KPX Agrave yacute -55 KPX Agrave ydieresis -55 KPX Amacron T -55 KPX Amacron Tcaron -55 KPX Amacron Tcommaaccent -55 KPX Amacron V -74 KPX Amacron W -55 KPX Amacron Y -55 KPX Amacron Yacute -55 KPX Amacron Ydieresis -55 KPX Amacron quoteright -55 KPX Amacron space -37 KPX Amacron v -37 KPX Amacron w -37 KPX Amacron y -55 KPX Amacron yacute -55 KPX Amacron ydieresis -55 KPX Aogonek T -55 KPX Aogonek Tcaron -55 KPX Aogonek Tcommaaccent -55 KPX Aogonek V -74 KPX Aogonek W -55 KPX Aogonek Y -55 KPX Aogonek Yacute -55 KPX Aogonek Ydieresis -55 KPX Aogonek quoteright -55 KPX Aogonek space -37 KPX Aogonek v -37 KPX Aogonek w -37 KPX Aogonek y -55 KPX Aogonek yacute -55 KPX Aogonek ydieresis -55 KPX Aring T -55 KPX Aring Tcaron -55 KPX Aring Tcommaaccent -55 KPX Aring V -74 KPX Aring W -55 KPX Aring Y -55 KPX Aring Yacute -55 KPX Aring Ydieresis -55 KPX Aring quoteright -55 KPX Aring space -37 KPX Aring v -37 KPX Aring w -37 KPX Aring y -55 KPX Aring yacute -55 KPX Aring ydieresis -55 KPX Atilde T -55 KPX Atilde Tcaron -55 KPX Atilde Tcommaaccent -55 KPX Atilde V -74 KPX Atilde W -55 KPX Atilde Y -55 KPX Atilde Yacute -55 KPX Atilde Ydieresis -55 KPX Atilde quoteright -55 KPX Atilde space -37 KPX Atilde v -37 KPX Atilde w -37 KPX Atilde y -55 KPX Atilde yacute -55 KPX Atilde ydieresis -55 KPX F A -111 KPX F Aacute -111 KPX F Abreve -111 KPX F Acircumflex -111 KPX F Adieresis -111 KPX F Agrave -111 KPX F Amacron -111 KPX F Aogonek -111 KPX F Aring -111 KPX F Atilde -111 KPX F comma -111 KPX F period -111 KPX L T -74 KPX L Tcaron -74 KPX L Tcommaaccent -74 KPX L V -74 KPX L W -74 KPX L Y -74 KPX L Yacute -74 KPX L Ydieresis -74 KPX L quoteright -37 KPX L space -18 KPX L y -37 KPX L yacute -37 KPX L ydieresis -37 KPX Lacute T -74 KPX Lacute Tcaron -74 KPX Lacute Tcommaaccent -74 KPX Lacute V -74 KPX Lacute W -74 KPX Lacute Y -74 KPX Lacute Yacute -74 KPX Lacute Ydieresis -74 KPX Lacute quoteright -37 KPX Lacute space -18 KPX Lacute y -37 KPX Lacute yacute -37 KPX Lacute ydieresis -37 KPX Lcaron quoteright -37 KPX Lcaron space -18 KPX Lcaron y -37 KPX Lcaron yacute -37 KPX Lcaron ydieresis -37 KPX Lcommaaccent T -74 KPX Lcommaaccent Tcaron -74 KPX Lcommaaccent Tcommaaccent -74 KPX Lcommaaccent V -74 KPX Lcommaaccent W -74 KPX Lcommaaccent Y -74 KPX Lcommaaccent Yacute -74 KPX Lcommaaccent Ydieresis -74 KPX Lcommaaccent quoteright -37 KPX Lcommaaccent space -18 KPX Lcommaaccent y -37 KPX Lcommaaccent yacute -37 KPX Lcommaaccent ydieresis -37 KPX Lslash T -74 KPX Lslash Tcaron -74 KPX Lslash Tcommaaccent -74 KPX Lslash V -74 KPX Lslash W -74 KPX Lslash Y -74 KPX Lslash Yacute -74 KPX Lslash Ydieresis -74 KPX Lslash quoteright -37 KPX Lslash space -18 KPX Lslash y -37 KPX Lslash yacute -37 KPX Lslash ydieresis -37 KPX P A -129 KPX P Aacute -129 KPX P Abreve -129 KPX P Acircumflex -129 KPX P Adieresis -129 KPX P Agrave -129 KPX P Amacron -129 KPX P Aogonek -129 KPX P Aring -129 KPX P Atilde -129 KPX P comma -129 KPX P period -129 KPX R T -55 KPX R Tcaron -55 KPX R Tcommaaccent -55 KPX R V -74 KPX R W -55 KPX R Y -55 KPX R Yacute -55 KPX R Ydieresis -55 KPX R y -37 KPX R yacute -37 KPX R ydieresis -37 KPX Racute T -55 KPX Racute Tcaron -55 KPX Racute Tcommaaccent -55 KPX Racute V -74 KPX Racute W -55 KPX Racute Y -55 KPX Racute Yacute -55 KPX Racute Ydieresis -55 KPX Racute y -37 KPX Racute yacute -37 KPX Racute ydieresis -37 KPX Rcaron T -55 KPX Rcaron Tcaron -55 KPX Rcaron Tcommaaccent -55 KPX Rcaron V -74 KPX Rcaron W -55 KPX Rcaron Y -55 KPX Rcaron Yacute -55 KPX Rcaron Ydieresis -55 KPX Rcaron y -37 KPX Rcaron yacute -37 KPX Rcaron ydieresis -37 KPX Rcommaaccent T -55 KPX Rcommaaccent Tcaron -55 KPX Rcommaaccent Tcommaaccent -55 KPX Rcommaaccent V -74 KPX Rcommaaccent W -55 KPX Rcommaaccent Y -55 KPX Rcommaaccent Yacute -55 KPX Rcommaaccent Ydieresis -55 KPX Rcommaaccent y -37 KPX Rcommaaccent yacute -37 KPX Rcommaaccent ydieresis -37 KPX T A -92 KPX T Aacute -92 KPX T Abreve -92 KPX T Acircumflex -92 KPX T Adieresis -92 KPX T Agrave -92 KPX T Amacron -92 KPX T Aogonek -92 KPX T Aring -92 KPX T Atilde -92 KPX T O -18 KPX T Oacute -18 KPX T Ocircumflex -18 KPX T Odieresis -18 KPX T Ograve -18 KPX T Ohungarumlaut -18 KPX T Omacron -18 KPX T Oslash -18 KPX T Otilde -18 KPX T a -111 KPX T aacute -111 KPX T abreve -71 KPX T acircumflex -71 KPX T adieresis -71 KPX T agrave -71 KPX T amacron -71 KPX T aogonek -111 KPX T aring -71 KPX T atilde -71 KPX T c -111 KPX T cacute -111 KPX T ccaron -111 KPX T ccedilla -111 KPX T colon -74 KPX T comma -74 KPX T e -111 KPX T eacute -111 KPX T ecaron -111 KPX T ecircumflex -71 KPX T edieresis -71 KPX T edotaccent -111 KPX T egrave -71 KPX T emacron -71 KPX T eogonek -111 KPX T hyphen -55 KPX T i -55 KPX T iacute -55 KPX T iogonek -55 KPX T o -111 KPX T oacute -111 KPX T ocircumflex -71 KPX T odieresis -71 KPX T ograve -71 KPX T ohungarumlaut -111 KPX T omacron -71 KPX T oslash -111 KPX T otilde -71 KPX T period -74 KPX T r -111 KPX T racute -111 KPX T rcaron -111 KPX T rcommaaccent -111 KPX T s -111 KPX T sacute -111 KPX T scaron -71 KPX T scedilla -111 KPX T scommaaccent -111 KPX T semicolon -74 KPX T u -111 KPX T uacute -111 KPX T ucircumflex -111 KPX T udieresis -111 KPX T ugrave -111 KPX T uhungarumlaut -111 KPX T umacron -111 KPX T uogonek -111 KPX T uring -111 KPX T w -92 KPX T y -92 KPX T yacute -92 KPX T ydieresis -92 KPX Tcaron A -92 KPX Tcaron Aacute -92 KPX Tcaron Abreve -92 KPX Tcaron Acircumflex -92 KPX Tcaron Adieresis -92 KPX Tcaron Agrave -92 KPX Tcaron Amacron -92 KPX Tcaron Aogonek -92 KPX Tcaron Aring -92 KPX Tcaron Atilde -92 KPX Tcaron O -18 KPX Tcaron Oacute -18 KPX Tcaron Ocircumflex -18 KPX Tcaron Odieresis -18 KPX Tcaron Ograve -18 KPX Tcaron Ohungarumlaut -18 KPX Tcaron Omacron -18 KPX Tcaron Oslash -18 KPX Tcaron Otilde -18 KPX Tcaron a -111 KPX Tcaron aacute -111 KPX Tcaron abreve -71 KPX Tcaron acircumflex -71 KPX Tcaron adieresis -71 KPX Tcaron agrave -71 KPX Tcaron amacron -71 KPX Tcaron aogonek -111 KPX Tcaron aring -71 KPX Tcaron atilde -71 KPX Tcaron c -111 KPX Tcaron cacute -111 KPX Tcaron ccaron -111 KPX Tcaron ccedilla -111 KPX Tcaron colon -74 KPX Tcaron comma -74 KPX Tcaron e -111 KPX Tcaron eacute -111 KPX Tcaron ecaron -111 KPX Tcaron ecircumflex -71 KPX Tcaron edieresis -71 KPX Tcaron edotaccent -111 KPX Tcaron egrave -71 KPX Tcaron emacron -71 KPX Tcaron eogonek -111 KPX Tcaron hyphen -55 KPX Tcaron i -55 KPX Tcaron iacute -55 KPX Tcaron iogonek -55 KPX Tcaron o -111 KPX Tcaron oacute -111 KPX Tcaron ocircumflex -71 KPX Tcaron odieresis -71 KPX Tcaron ograve -71 KPX Tcaron ohungarumlaut -111 KPX Tcaron omacron -71 KPX Tcaron oslash -111 KPX Tcaron otilde -71 KPX Tcaron period -74 KPX Tcaron r -111 KPX Tcaron racute -111 KPX Tcaron rcaron -111 KPX Tcaron rcommaaccent -111 KPX Tcaron s -111 KPX Tcaron sacute -111 KPX Tcaron scaron -71 KPX Tcaron scedilla -111 KPX Tcaron scommaaccent -111 KPX Tcaron semicolon -74 KPX Tcaron u -111 KPX Tcaron uacute -111 KPX Tcaron ucircumflex -111 KPX Tcaron udieresis -111 KPX Tcaron ugrave -111 KPX Tcaron uhungarumlaut -111 KPX Tcaron umacron -111 KPX Tcaron uogonek -111 KPX Tcaron uring -111 KPX Tcaron w -92 KPX Tcaron y -92 KPX Tcaron yacute -92 KPX Tcaron ydieresis -92 KPX Tcommaaccent A -92 KPX Tcommaaccent Aacute -92 KPX Tcommaaccent Abreve -92 KPX Tcommaaccent Acircumflex -92 KPX Tcommaaccent Adieresis -92 KPX Tcommaaccent Agrave -92 KPX Tcommaaccent Amacron -92 KPX Tcommaaccent Aogonek -92 KPX Tcommaaccent Aring -92 KPX Tcommaaccent Atilde -92 KPX Tcommaaccent O -18 KPX Tcommaaccent Oacute -18 KPX Tcommaaccent Ocircumflex -18 KPX Tcommaaccent Odieresis -18 KPX Tcommaaccent Ograve -18 KPX Tcommaaccent Ohungarumlaut -18 KPX Tcommaaccent Omacron -18 KPX Tcommaaccent Oslash -18 KPX Tcommaaccent Otilde -18 KPX Tcommaaccent a -111 KPX Tcommaaccent aacute -111 KPX Tcommaaccent abreve -71 KPX Tcommaaccent acircumflex -71 KPX Tcommaaccent adieresis -71 KPX Tcommaaccent agrave -71 KPX Tcommaaccent amacron -71 KPX Tcommaaccent aogonek -111 KPX Tcommaaccent aring -71 KPX Tcommaaccent atilde -71 KPX Tcommaaccent c -111 KPX Tcommaaccent cacute -111 KPX Tcommaaccent ccaron -111 KPX Tcommaaccent ccedilla -111 KPX Tcommaaccent colon -74 KPX Tcommaaccent comma -74 KPX Tcommaaccent e -111 KPX Tcommaaccent eacute -111 KPX Tcommaaccent ecaron -111 KPX Tcommaaccent ecircumflex -71 KPX Tcommaaccent edieresis -71 KPX Tcommaaccent edotaccent -111 KPX Tcommaaccent egrave -71 KPX Tcommaaccent emacron -71 KPX Tcommaaccent eogonek -111 KPX Tcommaaccent hyphen -55 KPX Tcommaaccent i -55 KPX Tcommaaccent iacute -55 KPX Tcommaaccent iogonek -55 KPX Tcommaaccent o -111 KPX Tcommaaccent oacute -111 KPX Tcommaaccent ocircumflex -111 KPX Tcommaaccent odieresis -111 KPX Tcommaaccent ograve -111 KPX Tcommaaccent ohungarumlaut -111 KPX Tcommaaccent omacron -111 KPX Tcommaaccent oslash -111 KPX Tcommaaccent otilde -111 KPX Tcommaaccent period -74 KPX Tcommaaccent r -111 KPX Tcommaaccent racute -111 KPX Tcommaaccent rcaron -111 KPX Tcommaaccent rcommaaccent -111 KPX Tcommaaccent s -111 KPX Tcommaaccent sacute -111 KPX Tcommaaccent scaron -71 KPX Tcommaaccent scedilla -111 KPX Tcommaaccent scommaaccent -111 KPX Tcommaaccent semicolon -74 KPX Tcommaaccent u -111 KPX Tcommaaccent uacute -111 KPX Tcommaaccent ucircumflex -111 KPX Tcommaaccent udieresis -111 KPX Tcommaaccent ugrave -111 KPX Tcommaaccent uhungarumlaut -111 KPX Tcommaaccent umacron -111 KPX Tcommaaccent uogonek -111 KPX Tcommaaccent uring -111 KPX Tcommaaccent w -92 KPX Tcommaaccent y -92 KPX Tcommaaccent yacute -92 KPX Tcommaaccent ydieresis -92 KPX V A -210 KPX V Aacute -210 KPX V Abreve -210 KPX V Acircumflex -210 KPX V Adieresis -210 KPX V Agrave -210 KPX V Amacron -210 KPX V Aogonek -210 KPX V Aring -210 KPX V Atilde -210 KPX V a -74 KPX V aacute -74 KPX V abreve -74 KPX V acircumflex -74 KPX V adieresis -74 KPX V agrave -74 KPX V amacron -74 KPX V aogonek -74 KPX V aring -74 KPX V atilde -74 KPX V colon -37 KPX V comma -129 KPX V e -92 KPX V eacute -92 KPX V ecaron -92 KPX V ecircumflex -52 KPX V edieresis -52 KPX V edotaccent -92 KPX V egrave -52 KPX V emacron -52 KPX V eogonek -92 KPX V hyphen -55 KPX V i -74 KPX V iacute -74 KPX V icircumflex -34 KPX V idieresis -34 KPX V igrave -34 KPX V imacron -34 KPX V iogonek -74 KPX V o -74 KPX V oacute -74 KPX V ocircumflex -74 KPX V odieresis -74 KPX V ograve -74 KPX V ohungarumlaut -74 KPX V omacron -74 KPX V oslash -74 KPX V otilde -74 KPX V period -129 KPX V r -92 KPX V racute -92 KPX V rcaron -92 KPX V rcommaaccent -92 KPX V semicolon -37 KPX V u -74 KPX V uacute -74 KPX V ucircumflex -74 KPX V udieresis -74 KPX V ugrave -74 KPX V uhungarumlaut -74 KPX V umacron -74 KPX V uogonek -74 KPX V uring -74 KPX V y -74 KPX V yacute -74 KPX V ydieresis -74 KPX W A -92 KPX W Aacute -92 KPX W Abreve -92 KPX W Acircumflex -92 KPX W Adieresis -92 KPX W Agrave -92 KPX W Amacron -92 KPX W Aogonek -92 KPX W Aring -92 KPX W Atilde -92 KPX W a -20 KPX W aacute -20 KPX W abreve -20 KPX W acircumflex -20 KPX W adieresis -20 KPX W agrave -20 KPX W amacron -20 KPX W aogonek -20 KPX W aring -20 KPX W atilde -20 KPX W colon -18 KPX W comma -55 KPX W e -20 KPX W eacute -20 KPX W ecaron -20 KPX W ecircumflex -20 KPX W edieresis -20 KPX W edotaccent -20 KPX W egrave -20 KPX W emacron -20 KPX W eogonek -20 KPX W hyphen -18 KPX W i -20 KPX W iacute -20 KPX W iogonek -20 KPX W o -20 KPX W oacute -20 KPX W ocircumflex -20 KPX W odieresis -20 KPX W ograve -20 KPX W ohungarumlaut -20 KPX W omacron -20 KPX W oslash -20 KPX W otilde -20 KPX W period -55 KPX W r -20 KPX W racute -20 KPX W rcaron -20 KPX W rcommaaccent -20 KPX W semicolon -18 KPX W u -20 KPX W uacute -20 KPX W ucircumflex -20 KPX W udieresis -20 KPX W ugrave -20 KPX W uhungarumlaut -20 KPX W umacron -20 KPX W uogonek -20 KPX W uring -20 KPX W y -20 KPX W yacute -20 KPX W ydieresis -20 KPX Y A -92 KPX Y Aacute -92 KPX Y Abreve -92 KPX Y Acircumflex -92 KPX Y Adieresis -92 KPX Y Agrave -92 KPX Y Amacron -92 KPX Y Aogonek -92 KPX Y Aring -92 KPX Y Atilde -92 KPX Y a -92 KPX Y aacute -92 KPX Y abreve -92 KPX Y acircumflex -92 KPX Y adieresis -92 KPX Y agrave -92 KPX Y amacron -92 KPX Y aogonek -92 KPX Y aring -92 KPX Y atilde -92 KPX Y colon -74 KPX Y comma -92 KPX Y e -111 KPX Y eacute -111 KPX Y ecaron -111 KPX Y ecircumflex -71 KPX Y edieresis -71 KPX Y edotaccent -111 KPX Y egrave -71 KPX Y emacron -71 KPX Y eogonek -111 KPX Y hyphen -74 KPX Y i -55 KPX Y iacute -55 KPX Y iogonek -55 KPX Y o -111 KPX Y oacute -111 KPX Y ocircumflex -111 KPX Y odieresis -111 KPX Y ograve -111 KPX Y ohungarumlaut -111 KPX Y omacron -111 KPX Y oslash -111 KPX Y otilde -111 KPX Y p -74 KPX Y period -92 KPX Y q -92 KPX Y semicolon -74 KPX Y u -92 KPX Y uacute -92 KPX Y ucircumflex -92 KPX Y udieresis -92 KPX Y ugrave -92 KPX Y uhungarumlaut -92 KPX Y umacron -92 KPX Y uogonek -92 KPX Y uring -92 KPX Y v -74 KPX Yacute A -92 KPX Yacute Aacute -92 KPX Yacute Abreve -92 KPX Yacute Acircumflex -92 KPX Yacute Adieresis -92 KPX Yacute Agrave -92 KPX Yacute Amacron -92 KPX Yacute Aogonek -92 KPX Yacute Aring -92 KPX Yacute Atilde -92 KPX Yacute a -92 KPX Yacute aacute -92 KPX Yacute abreve -92 KPX Yacute acircumflex -92 KPX Yacute adieresis -92 KPX Yacute agrave -92 KPX Yacute amacron -92 KPX Yacute aogonek -92 KPX Yacute aring -92 KPX Yacute atilde -92 KPX Yacute colon -74 KPX Yacute comma -92 KPX Yacute e -111 KPX Yacute eacute -111 KPX Yacute ecaron -111 KPX Yacute ecircumflex -71 KPX Yacute edieresis -71 KPX Yacute edotaccent -111 KPX Yacute egrave -71 KPX Yacute emacron -71 KPX Yacute eogonek -111 KPX Yacute hyphen -74 KPX Yacute i -55 KPX Yacute iacute -55 KPX Yacute iogonek -55 KPX Yacute o -111 KPX Yacute oacute -111 KPX Yacute ocircumflex -111 KPX Yacute odieresis -111 KPX Yacute ograve -111 KPX Yacute ohungarumlaut -111 KPX Yacute omacron -111 KPX Yacute oslash -111 KPX Yacute otilde -111 KPX Yacute p -74 KPX Yacute period -92 KPX Yacute q -92 KPX Yacute semicolon -74 KPX Yacute u -92 KPX Yacute uacute -92 KPX Yacute ucircumflex -92 KPX Yacute udieresis -92 KPX Yacute ugrave -92 KPX Yacute uhungarumlaut -92 KPX Yacute umacron -92 KPX Yacute uogonek -92 KPX Yacute uring -92 KPX Yacute v -74 KPX Ydieresis A -92 KPX Ydieresis Aacute -92 KPX Ydieresis Abreve -92 KPX Ydieresis Acircumflex -92 KPX Ydieresis Adieresis -92 KPX Ydieresis Agrave -92 KPX Ydieresis Amacron -92 KPX Ydieresis Aogonek -92 KPX Ydieresis Aring -92 KPX Ydieresis Atilde -92 KPX Ydieresis a -92 KPX Ydieresis aacute -92 KPX Ydieresis abreve -92 KPX Ydieresis acircumflex -92 KPX Ydieresis adieresis -92 KPX Ydieresis agrave -92 KPX Ydieresis amacron -92 KPX Ydieresis aogonek -92 KPX Ydieresis aring -92 KPX Ydieresis atilde -92 KPX Ydieresis colon -74 KPX Ydieresis comma -92 KPX Ydieresis e -111 KPX Ydieresis eacute -111 KPX Ydieresis ecaron -111 KPX Ydieresis ecircumflex -71 KPX Ydieresis edieresis -71 KPX Ydieresis edotaccent -111 KPX Ydieresis egrave -71 KPX Ydieresis emacron -71 KPX Ydieresis eogonek -111 KPX Ydieresis hyphen -74 KPX Ydieresis i -55 KPX Ydieresis iacute -55 KPX Ydieresis iogonek -55 KPX Ydieresis o -111 KPX Ydieresis oacute -111 KPX Ydieresis ocircumflex -111 KPX Ydieresis odieresis -111 KPX Ydieresis ograve -111 KPX Ydieresis ohungarumlaut -111 KPX Ydieresis omacron -111 KPX Ydieresis oslash -111 KPX Ydieresis otilde -111 KPX Ydieresis p -74 KPX Ydieresis period -92 KPX Ydieresis q -92 KPX Ydieresis semicolon -74 KPX Ydieresis u -92 KPX Ydieresis uacute -92 KPX Ydieresis ucircumflex -92 KPX Ydieresis udieresis -92 KPX Ydieresis ugrave -92 KPX Ydieresis uhungarumlaut -92 KPX Ydieresis umacron -92 KPX Ydieresis uogonek -92 KPX Ydieresis uring -92 KPX Ydieresis v -74 KPX f quoteright 55 KPX one one -55 KPX quoteleft quoteleft -74 KPX quoteright quoteright -74 KPX quoteright s -55 KPX quoteright sacute -55 KPX quoteright scaron -55 KPX quoteright scedilla -55 KPX quoteright scommaaccent -55 KPX quoteright space -55 KPX quoteright t -37 KPX quoteright tcommaaccent -37 KPX r c -18 KPX r cacute -18 KPX r ccaron -18 KPX r ccedilla -18 KPX r comma -74 KPX r e -18 KPX r eacute -18 KPX r ecaron -18 KPX r ecircumflex -18 KPX r edieresis -18 KPX r edotaccent -18 KPX r egrave -18 KPX r emacron -18 KPX r eogonek -18 KPX r g -18 KPX r gbreve -18 KPX r gcommaaccent -18 KPX r h -18 KPX r o -18 KPX r oacute -18 KPX r ocircumflex -18 KPX r odieresis -18 KPX r ograve -18 KPX r ohungarumlaut -18 KPX r omacron -18 KPX r oslash -18 KPX r otilde -18 KPX r period -74 KPX r q -18 KPX r quoteright 37 KPX racute c -18 KPX racute cacute -18 KPX racute ccaron -18 KPX racute ccedilla -18 KPX racute comma -74 KPX racute e -18 KPX racute eacute -18 KPX racute ecaron -18 KPX racute ecircumflex -18 KPX racute edieresis -18 KPX racute edotaccent -18 KPX racute egrave -18 KPX racute emacron -18 KPX racute eogonek -18 KPX racute g -18 KPX racute gbreve -18 KPX racute gcommaaccent -18 KPX racute h -18 KPX racute o -18 KPX racute oacute -18 KPX racute ocircumflex -18 KPX racute odieresis -18 KPX racute ograve -18 KPX racute ohungarumlaut -18 KPX racute omacron -18 KPX racute oslash -18 KPX racute otilde -18 KPX racute period -74 KPX racute q -18 KPX racute quoteright 37 KPX rcaron c -18 KPX rcaron cacute -18 KPX rcaron ccaron -18 KPX rcaron ccedilla -18 KPX rcaron comma -74 KPX rcaron e -18 KPX rcaron eacute -18 KPX rcaron ecaron -18 KPX rcaron ecircumflex -18 KPX rcaron edieresis -18 KPX rcaron edotaccent -18 KPX rcaron egrave -18 KPX rcaron emacron -18 KPX rcaron eogonek -18 KPX rcaron g -18 KPX rcaron gbreve -18 KPX rcaron gcommaaccent -18 KPX rcaron h -18 KPX rcaron o -18 KPX rcaron oacute -18 KPX rcaron ocircumflex -18 KPX rcaron odieresis -18 KPX rcaron ograve -18 KPX rcaron ohungarumlaut -18 KPX rcaron omacron -18 KPX rcaron oslash -18 KPX rcaron otilde -18 KPX rcaron period -74 KPX rcaron q -18 KPX rcaron quoteright 37 KPX rcommaaccent c -18 KPX rcommaaccent cacute -18 KPX rcommaaccent ccaron -18 KPX rcommaaccent ccedilla -18 KPX rcommaaccent comma -74 KPX rcommaaccent e -18 KPX rcommaaccent eacute -18 KPX rcommaaccent ecaron -18 KPX rcommaaccent ecircumflex -18 KPX rcommaaccent edieresis -18 KPX rcommaaccent edotaccent -18 KPX rcommaaccent egrave -18 KPX rcommaaccent emacron -18 KPX rcommaaccent eogonek -18 KPX rcommaaccent g -18 KPX rcommaaccent gbreve -18 KPX rcommaaccent gcommaaccent -18 KPX rcommaaccent h -18 KPX rcommaaccent o -18 KPX rcommaaccent oacute -18 KPX rcommaaccent ocircumflex -18 KPX rcommaaccent odieresis -18 KPX rcommaaccent ograve -18 KPX rcommaaccent ohungarumlaut -18 KPX rcommaaccent omacron -18 KPX rcommaaccent oslash -18 KPX rcommaaccent otilde -18 KPX rcommaaccent period -74 KPX rcommaaccent q -18 KPX rcommaaccent quoteright 37 KPX v comma -55 KPX v period -55 KPX w comma -55 KPX w period -55 KPX y comma -37 KPX y period -37 KPX yacute comma -37 KPX yacute period -37 KPX ydieresis comma -37 KPX ydieresis period -37 EndKernPairs EndKernData EndFontMetrics a2ps-4.14/afm/pncri.afm0000644000175000017500000014635510674334153014214 0ustar mhattamhattaStartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1989, 1991, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Mon Jun 23 16:46:15 1997 Comment UniqueID 43093 Comment VMusage 43675 54700 FontName NewCenturySchlbk-Italic FullName New Century Schoolbook Italic FamilyName New Century Schoolbook Weight Medium ItalicAngle -16 IsFixedPitch false FontBBox -166 -250 994 958 UnderlinePosition -100 UnderlineThickness 50 Version 002.000 Notice Copyright (c) 1985, 1987, 1989, 1991, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved. EncodingScheme AdobeStandardEncoding CapHeight 722 XHeight 466 Ascender 737 Descender -205 StdHW 45 StdVW 80 StartCharMetrics 314 C 32 ; WX 278 ; N space ; B 0 0 0 0 ; C 33 ; WX 333 ; N exclam ; B 17 -15 303 737 ; C 34 ; WX 400 ; N quotedbl ; B 127 463 363 737 ; C 35 ; WX 556 ; N numbersign ; B 28 0 528 690 ; C 36 ; WX 556 ; N dollar ; B 4 -142 536 808 ; C 37 ; WX 833 ; N percent ; B 43 -15 790 705 ; C 38 ; WX 852 ; N ampersand ; B 24 -15 773 737 ; C 39 ; WX 204 ; N quoteright ; B 39 463 229 737 ; C 40 ; WX 333 ; N parenleft ; B 53 -117 411 745 ; C 41 ; WX 333 ; N parenright ; B -93 -117 265 745 ; C 42 ; WX 500 ; N asterisk ; B 80 318 500 737 ; C 43 ; WX 606 ; N plus ; B 50 0 556 506 ; C 44 ; WX 278 ; N comma ; B -39 -165 151 109 ; C 45 ; WX 333 ; N hyphen ; B 32 202 259 274 ; C 46 ; WX 278 ; N period ; B 17 -15 141 109 ; C 47 ; WX 606 ; N slash ; B 132 -15 474 737 ; C 48 ; WX 556 ; N zero ; B 30 -15 526 705 ; C 49 ; WX 556 ; N one ; B 50 0 459 705 ; C 50 ; WX 556 ; N two ; B -37 0 506 705 ; C 51 ; WX 556 ; N three ; B -2 -15 506 705 ; C 52 ; WX 556 ; N four ; B -8 0 512 705 ; C 53 ; WX 556 ; N five ; B 4 -15 540 705 ; C 54 ; WX 556 ; N six ; B 36 -15 548 705 ; C 55 ; WX 556 ; N seven ; B 69 -15 561 705 ; C 56 ; WX 556 ; N eight ; B 6 -15 526 705 ; C 57 ; WX 556 ; N nine ; B 8 -15 520 705 ; C 58 ; WX 278 ; N colon ; B 17 -15 229 466 ; C 59 ; WX 278 ; N semicolon ; B -39 -165 229 466 ; C 60 ; WX 606 ; N less ; B 36 -8 542 514 ; C 61 ; WX 606 ; N equal ; B 50 117 556 389 ; C 62 ; WX 606 ; N greater ; B 64 -8 570 514 ; C 63 ; WX 444 ; N question ; B 102 -15 417 737 ; C 64 ; WX 747 ; N at ; B -2 -15 750 737 ; C 65 ; WX 704 ; N A ; B -87 0 668 737 ; C 66 ; WX 722 ; N B ; B -33 0 670 722 ; C 67 ; WX 722 ; N C ; B 40 -15 712 737 ; C 68 ; WX 778 ; N D ; B -33 0 738 722 ; C 69 ; WX 722 ; N E ; B -33 0 700 722 ; C 70 ; WX 667 ; N F ; B -33 0 700 722 ; C 71 ; WX 778 ; N G ; B 40 -15 763 737 ; C 72 ; WX 833 ; N H ; B -33 0 866 722 ; C 73 ; WX 407 ; N I ; B -33 0 435 722 ; C 74 ; WX 611 ; N J ; B -14 -15 651 722 ; C 75 ; WX 741 ; N K ; B -33 0 816 722 ; C 76 ; WX 667 ; N L ; B -33 0 627 722 ; C 77 ; WX 944 ; N M ; B -33 0 977 722 ; C 78 ; WX 815 ; N N ; B -51 -15 866 722 ; C 79 ; WX 778 ; N O ; B 40 -15 738 737 ; C 80 ; WX 667 ; N P ; B -33 0 667 722 ; C 81 ; WX 778 ; N Q ; B 40 -190 738 737 ; C 82 ; WX 741 ; N R ; B -45 -15 692 722 ; C 83 ; WX 667 ; N S ; B -6 -15 638 737 ; C 84 ; WX 685 ; N T ; B 40 0 725 722 ; C 85 ; WX 815 ; N U ; B 93 -15 867 722 ; C 86 ; WX 704 ; N V ; B 36 -10 779 722 ; C 87 ; WX 926 ; N W ; B 53 -10 978 722 ; C 88 ; WX 704 ; N X ; B -75 0 779 722 ; C 89 ; WX 685 ; N Y ; B 31 0 760 722 ; C 90 ; WX 667 ; N Z ; B -25 0 667 722 ; C 91 ; WX 333 ; N bracketleft ; B -55 -109 388 737 ; C 92 ; WX 606 ; N backslash ; B 132 -15 474 737 ; C 93 ; WX 333 ; N bracketright ; B -77 -109 366 737 ; C 94 ; WX 606 ; N asciicircum ; B 89 325 517 690 ; C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; C 96 ; WX 204 ; N quoteleft ; B 39 463 229 737 ; C 97 ; WX 574 ; N a ; B 2 -15 524 466 ; C 98 ; WX 556 ; N b ; B 32 -15 488 737 ; C 99 ; WX 444 ; N c ; B 2 -15 394 466 ; C 100 ; WX 611 ; N d ; B 2 -15 585 737 ; C 101 ; WX 444 ; N e ; B -6 -15 388 466 ; C 102 ; WX 333 ; N f ; B -68 -205 470 737 ; L i fi ; L l fl ; C 103 ; WX 537 ; N g ; B -79 -205 523 497 ; C 104 ; WX 611 ; N h ; B 14 -15 562 737 ; C 105 ; WX 333 ; N i ; B 29 -15 282 715 ; C 106 ; WX 315 ; N j ; B -166 -205 318 715 ; C 107 ; WX 556 ; N k ; B 0 -15 497 737 ; C 108 ; WX 333 ; N l ; B 14 -15 292 737 ; C 109 ; WX 889 ; N m ; B 14 -15 840 466 ; C 110 ; WX 611 ; N n ; B 14 -15 562 466 ; C 111 ; WX 500 ; N o ; B 2 -15 450 466 ; C 112 ; WX 574 ; N p ; B -101 -205 506 466 ; C 113 ; WX 556 ; N q ; B 2 -205 500 466 ; C 114 ; WX 444 ; N r ; B 10 0 434 466 ; C 115 ; WX 444 ; N s ; B 2 -15 394 466 ; C 116 ; WX 352 ; N t ; B 24 -15 328 619 ; C 117 ; WX 611 ; N u ; B 44 -15 556 466 ; C 118 ; WX 519 ; N v ; B 31 -15 447 466 ; C 119 ; WX 778 ; N w ; B 31 -15 706 466 ; C 120 ; WX 500 ; N x ; B -33 -15 471 466 ; C 121 ; WX 500 ; N y ; B -83 -205 450 466 ; C 122 ; WX 463 ; N z ; B -33 -15 416 466 ; C 123 ; WX 333 ; N braceleft ; B 38 -109 394 737 ; C 124 ; WX 606 ; N bar ; B 267 -250 339 750 ; C 125 ; WX 333 ; N braceright ; B -87 -109 269 737 ; C 126 ; WX 606 ; N asciitilde ; B 72 184 534 322 ; C 161 ; WX 333 ; N exclamdown ; B -22 -205 264 547 ; C 162 ; WX 556 ; N cent ; B 62 -144 486 580 ; C 163 ; WX 556 ; N sterling ; B -13 -15 544 705 ; C 164 ; WX 167 ; N fraction ; B -134 -15 301 705 ; C 165 ; WX 556 ; N yen ; B 40 0 624 690 ; C 166 ; WX 556 ; N florin ; B -58 -205 569 737 ; C 167 ; WX 500 ; N section ; B -10 -147 480 737 ; C 168 ; WX 556 ; N currency ; B 26 93 530 597 ; C 169 ; WX 278 ; N quotesingle ; B 151 463 237 737 ; C 170 ; WX 389 ; N quotedblleft ; B 39 463 406 737 ; C 171 ; WX 426 ; N guillemotleft ; B -15 74 402 402 ; C 172 ; WX 333 ; N guilsinglleft ; B 40 74 259 402 ; C 173 ; WX 333 ; N guilsinglright ; B 40 74 259 402 ; C 174 ; WX 611 ; N fi ; B -68 -205 555 737 ; C 175 ; WX 611 ; N fl ; B -68 -205 587 737 ; C 177 ; WX 500 ; N endash ; B -27 208 487 268 ; C 178 ; WX 500 ; N dagger ; B 51 -147 506 737 ; C 179 ; WX 500 ; N daggerdbl ; B -54 -147 506 737 ; C 180 ; WX 278 ; N periodcentered ; B 71 238 207 374 ; C 182 ; WX 650 ; N paragraph ; B 48 -132 665 722 ; C 183 ; WX 606 ; N bullet ; B 122 180 484 542 ; C 184 ; WX 204 ; N quotesinglbase ; B -78 -165 112 109 ; C 185 ; WX 389 ; N quotedblbase ; B -78 -165 289 109 ; C 186 ; WX 389 ; N quotedblright ; B 39 463 406 737 ; C 187 ; WX 426 ; N guillemotright ; B -15 74 402 402 ; C 188 ; WX 1000 ; N ellipsis ; B 59 -15 849 109 ; C 189 ; WX 1000 ; N perthousand ; B 6 -15 994 705 ; C 191 ; WX 444 ; N questiondown ; B -3 -205 312 547 ; C 193 ; WX 333 ; N grave ; B 71 518 262 690 ; C 194 ; WX 333 ; N acute ; B 132 518 355 690 ; C 195 ; WX 333 ; N circumflex ; B 37 518 331 690 ; C 196 ; WX 333 ; N tilde ; B 52 547 383 649 ; C 197 ; WX 333 ; N macron ; B 52 560 363 610 ; C 198 ; WX 333 ; N breve ; B 69 518 370 677 ; C 199 ; WX 333 ; N dotaccent ; B 146 606 255 715 ; C 200 ; WX 333 ; N dieresis ; B 59 606 359 708 ; C 202 ; WX 333 ; N ring ; B 114 512 314 712 ; C 203 ; WX 333 ; N cedilla ; B 3 -215 215 0 ; C 205 ; WX 333 ; N hungarumlaut ; B 32 518 455 690 ; C 206 ; WX 333 ; N ogonek ; B 46 -220 334 4 ; C 207 ; WX 333 ; N caron ; B 73 518 378 690 ; C 208 ; WX 1000 ; N emdash ; B -27 208 987 268 ; C 225 ; WX 870 ; N AE ; B -87 0 888 722 ; C 227 ; WX 422 ; N ordfeminine ; B 72 416 420 705 ; C 232 ; WX 667 ; N Lslash ; B -33 0 627 722 ; C 233 ; WX 778 ; N Oslash ; B 16 -68 748 780 ; C 234 ; WX 981 ; N OE ; B 40 0 975 722 ; C 235 ; WX 372 ; N ordmasculine ; B 66 416 370 705 ; C 241 ; WX 722 ; N ae ; B -18 -15 666 466 ; C 245 ; WX 333 ; N dotlessi ; B 29 -15 282 466 ; C 248 ; WX 333 ; N lslash ; B -2 -15 294 737 ; C 249 ; WX 500 ; N oslash ; B 2 -121 450 549 ; C 250 ; WX 778 ; N oe ; B 2 -15 722 466 ; C 251 ; WX 556 ; N germandbls ; B -76 -205 525 737 ; C -1 ; WX 407 ; N Idieresis ; B -33 0 456 902 ; C -1 ; WX 444 ; N eacute ; B -6 -15 411 690 ; C -1 ; WX 574 ; N abreve ; B 2 -15 524 677 ; C -1 ; WX 611 ; N uhungarumlaut ; B 44 -15 594 690 ; C -1 ; WX 444 ; N ecaron ; B -6 -15 434 690 ; C -1 ; WX 685 ; N Ydieresis ; B 31 0 760 902 ; C -1 ; WX 606 ; N divide ; B 50 -22 556 528 ; C -1 ; WX 685 ; N Yacute ; B 31 0 760 946 ; C -1 ; WX 704 ; N Acircumflex ; B -87 0 668 946 ; C -1 ; WX 574 ; N aacute ; B 2 -15 524 690 ; C -1 ; WX 815 ; N Ucircumflex ; B 93 -15 867 946 ; C -1 ; WX 500 ; N yacute ; B -83 -205 450 690 ; C -1 ; WX 444 ; N scommaaccent ; B 2 -250 394 466 ; C -1 ; WX 444 ; N ecircumflex ; B -6 -15 388 690 ; C -1 ; WX 815 ; N Uring ; B 93 -15 867 958 ; C -1 ; WX 815 ; N Udieresis ; B 93 -15 867 902 ; C -1 ; WX 574 ; N aogonek ; B 2 -225 534 466 ; C -1 ; WX 815 ; N Uacute ; B 93 -15 867 946 ; C -1 ; WX 611 ; N uogonek ; B 44 -225 556 466 ; C -1 ; WX 722 ; N Edieresis ; B -33 0 700 902 ; C -1 ; WX 778 ; N Dcroat ; B -33 0 738 722 ; C -1 ; WX 250 ; N commaaccent ; B -24 -250 147 -50 ; C -1 ; WX 747 ; N copyright ; B -2 -15 750 737 ; C -1 ; WX 722 ; N Emacron ; B -33 0 700 866 ; C -1 ; WX 444 ; N ccaron ; B 2 -15 434 690 ; C -1 ; WX 574 ; N aring ; B 2 -15 524 712 ; C -1 ; WX 815 ; N Ncommaaccent ; B -51 -250 866 722 ; C -1 ; WX 333 ; N lacute ; B 14 -15 415 958 ; C -1 ; WX 574 ; N agrave ; B 2 -15 524 690 ; C -1 ; WX 685 ; N Tcommaaccent ; B 40 -250 725 722 ; C -1 ; WX 722 ; N Cacute ; B 40 -15 712 946 ; C -1 ; WX 574 ; N atilde ; B 2 -15 524 649 ; C -1 ; WX 722 ; N Edotaccent ; B -33 0 700 909 ; C -1 ; WX 444 ; N scaron ; B 2 -15 434 690 ; C -1 ; WX 444 ; N scedilla ; B 2 -215 394 466 ; C -1 ; WX 333 ; N iacute ; B 29 -15 355 690 ; C -1 ; WX 471 ; N lozenge ; B 10 0 462 728 ; C -1 ; WX 741 ; N Rcaron ; B -45 -15 692 946 ; C -1 ; WX 778 ; N Gcommaaccent ; B 40 -250 763 737 ; C -1 ; WX 611 ; N ucircumflex ; B 44 -15 556 690 ; C -1 ; WX 574 ; N acircumflex ; B 2 -15 524 690 ; C -1 ; WX 704 ; N Amacron ; B -87 0 668 866 ; C -1 ; WX 444 ; N rcaron ; B 10 0 434 690 ; C -1 ; WX 444 ; N ccedilla ; B 2 -215 394 466 ; C -1 ; WX 667 ; N Zdotaccent ; B -25 0 667 909 ; C -1 ; WX 667 ; N Thorn ; B -33 0 627 722 ; C -1 ; WX 778 ; N Omacron ; B 40 -15 738 866 ; C -1 ; WX 741 ; N Racute ; B -45 -15 692 946 ; C -1 ; WX 667 ; N Sacute ; B -6 -15 638 946 ; C -1 ; WX 651 ; N dcaron ; B 2 -15 729 737 ; C -1 ; WX 815 ; N Umacron ; B 93 -15 867 866 ; C -1 ; WX 611 ; N uring ; B 44 -15 556 712 ; C -1 ; WX 333 ; N threesuperior ; B 22 273 359 705 ; C -1 ; WX 778 ; N Ograve ; B 40 -15 738 946 ; C -1 ; WX 704 ; N Agrave ; B -87 0 668 946 ; C -1 ; WX 704 ; N Abreve ; B -87 0 668 933 ; C -1 ; WX 606 ; N multiply ; B 74 24 532 482 ; C -1 ; WX 611 ; N uacute ; B 44 -15 556 690 ; C -1 ; WX 685 ; N Tcaron ; B 40 0 725 946 ; C -1 ; WX 476 ; N partialdiff ; B 13 -38 463 714 ; C -1 ; WX 500 ; N ydieresis ; B -83 -205 450 646 ; C -1 ; WX 815 ; N Nacute ; B -51 -15 866 946 ; C -1 ; WX 333 ; N icircumflex ; B 29 -15 331 690 ; C -1 ; WX 722 ; N Ecircumflex ; B -33 0 700 946 ; C -1 ; WX 574 ; N adieresis ; B 2 -15 524 646 ; C -1 ; WX 444 ; N edieresis ; B -6 -15 415 646 ; C -1 ; WX 444 ; N cacute ; B 2 -15 411 690 ; C -1 ; WX 611 ; N nacute ; B 14 -15 562 690 ; C -1 ; WX 611 ; N umacron ; B 44 -15 556 610 ; C -1 ; WX 815 ; N Ncaron ; B -51 -15 866 946 ; C -1 ; WX 407 ; N Iacute ; B -33 0 452 946 ; C -1 ; WX 606 ; N plusminus ; B 50 0 556 506 ; C -1 ; WX 606 ; N brokenbar ; B 267 -175 339 675 ; C -1 ; WX 747 ; N registered ; B -2 -15 750 737 ; C -1 ; WX 778 ; N Gbreve ; B 40 -15 763 933 ; C -1 ; WX 407 ; N Idotaccent ; B -33 0 435 909 ; C -1 ; WX 600 ; N summation ; B 15 -10 586 706 ; C -1 ; WX 722 ; N Egrave ; B -33 0 700 946 ; C -1 ; WX 444 ; N racute ; B 10 0 434 690 ; C -1 ; WX 500 ; N omacron ; B 2 -15 450 610 ; C -1 ; WX 667 ; N Zacute ; B -25 0 667 946 ; C -1 ; WX 667 ; N Zcaron ; B -25 0 667 946 ; C -1 ; WX 549 ; N greaterequal ; B 26 0 523 674 ; C -1 ; WX 778 ; N Eth ; B -33 0 738 722 ; C -1 ; WX 722 ; N Ccedilla ; B 40 -215 712 737 ; C -1 ; WX 333 ; N lcommaaccent ; B -43 -250 292 737 ; C -1 ; WX 382 ; N tcaron ; B 24 -15 460 757 ; C -1 ; WX 444 ; N eogonek ; B -6 -225 388 466 ; C -1 ; WX 815 ; N Uogonek ; B 93 -225 867 722 ; C -1 ; WX 704 ; N Aacute ; B -87 0 668 946 ; C -1 ; WX 704 ; N Adieresis ; B -87 0 668 902 ; C -1 ; WX 444 ; N egrave ; B -6 -15 388 690 ; C -1 ; WX 463 ; N zacute ; B -33 -15 420 690 ; C -1 ; WX 333 ; N iogonek ; B -14 -225 282 715 ; C -1 ; WX 778 ; N Oacute ; B 40 -15 738 946 ; C -1 ; WX 500 ; N oacute ; B 2 -15 450 690 ; C -1 ; WX 574 ; N amacron ; B 2 -15 524 610 ; C -1 ; WX 444 ; N sacute ; B 2 -15 411 690 ; C -1 ; WX 333 ; N idieresis ; B 29 -15 359 646 ; C -1 ; WX 778 ; N Ocircumflex ; B 40 -15 738 946 ; C -1 ; WX 815 ; N Ugrave ; B 93 -15 867 946 ; C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ; C -1 ; WX 574 ; N thorn ; B -101 -205 506 737 ; C -1 ; WX 333 ; N twosuperior ; B 0 282 359 705 ; C -1 ; WX 778 ; N Odieresis ; B 40 -15 738 902 ; C -1 ; WX 611 ; N mu ; B -60 -205 556 466 ; C -1 ; WX 333 ; N igrave ; B 29 -15 282 690 ; C -1 ; WX 500 ; N ohungarumlaut ; B 2 -15 539 690 ; C -1 ; WX 722 ; N Eogonek ; B -33 -220 700 722 ; C -1 ; WX 611 ; N dcroat ; B 2 -15 636 737 ; C -1 ; WX 834 ; N threequarters ; B 22 -15 782 705 ; C -1 ; WX 667 ; N Scedilla ; B -6 -215 638 737 ; C -1 ; WX 363 ; N lcaron ; B 14 -15 436 737 ; C -1 ; WX 741 ; N Kcommaaccent ; B -33 -250 816 722 ; C -1 ; WX 667 ; N Lacute ; B -33 0 627 946 ; C -1 ; WX 950 ; N trademark ; B 32 318 968 722 ; C -1 ; WX 444 ; N edotaccent ; B -6 -15 388 653 ; C -1 ; WX 407 ; N Igrave ; B -33 0 435 946 ; C -1 ; WX 407 ; N Imacron ; B -33 0 460 866 ; C -1 ; WX 667 ; N Lcaron ; B -33 0 683 737 ; C -1 ; WX 834 ; N onehalf ; B 34 -15 776 705 ; C -1 ; WX 549 ; N lessequal ; B 26 0 523 674 ; C -1 ; WX 500 ; N ocircumflex ; B 2 -15 450 690 ; C -1 ; WX 611 ; N ntilde ; B 14 -15 562 649 ; C -1 ; WX 815 ; N Uhungarumlaut ; B 93 -15 867 946 ; C -1 ; WX 722 ; N Eacute ; B -33 0 700 946 ; C -1 ; WX 444 ; N emacron ; B -6 -15 419 610 ; C -1 ; WX 537 ; N gbreve ; B -79 -205 523 677 ; C -1 ; WX 834 ; N onequarter ; B 34 -15 782 705 ; C -1 ; WX 667 ; N Scaron ; B -6 -15 638 946 ; C -1 ; WX 667 ; N Scommaaccent ; B -6 -250 638 737 ; C -1 ; WX 778 ; N Ohungarumlaut ; B 40 -15 738 946 ; C -1 ; WX 400 ; N degree ; B 86 419 372 705 ; C -1 ; WX 500 ; N ograve ; B 2 -15 450 690 ; C -1 ; WX 722 ; N Ccaron ; B 40 -15 712 946 ; C -1 ; WX 611 ; N ugrave ; B 44 -15 556 690 ; C -1 ; WX 453 ; N radical ; B -4 -80 458 762 ; C -1 ; WX 778 ; N Dcaron ; B -33 0 738 946 ; C -1 ; WX 444 ; N rcommaaccent ; B -67 -250 434 466 ; C -1 ; WX 815 ; N Ntilde ; B -51 -15 866 905 ; C -1 ; WX 500 ; N otilde ; B 2 -15 467 649 ; C -1 ; WX 741 ; N Rcommaaccent ; B -45 -250 692 722 ; C -1 ; WX 667 ; N Lcommaaccent ; B -33 -250 627 722 ; C -1 ; WX 704 ; N Atilde ; B -87 0 668 905 ; C -1 ; WX 704 ; N Aogonek ; B -87 -220 734 737 ; C -1 ; WX 704 ; N Aring ; B -87 0 668 958 ; C -1 ; WX 778 ; N Otilde ; B 40 -15 738 905 ; C -1 ; WX 463 ; N zdotaccent ; B -33 -15 416 653 ; C -1 ; WX 722 ; N Ecaron ; B -33 0 700 946 ; C -1 ; WX 407 ; N Iogonek ; B -33 -220 435 722 ; C -1 ; WX 556 ; N kcommaaccent ; B 0 -250 497 737 ; C -1 ; WX 606 ; N minus ; B 50 217 556 289 ; C -1 ; WX 407 ; N Icircumflex ; B -33 0 435 946 ; C -1 ; WX 611 ; N ncaron ; B 14 -15 562 690 ; C -1 ; WX 352 ; N tcommaaccent ; B -33 -250 328 619 ; C -1 ; WX 606 ; N logicalnot ; B 50 108 556 389 ; C -1 ; WX 500 ; N odieresis ; B 2 -15 450 646 ; C -1 ; WX 611 ; N udieresis ; B 44 -15 556 646 ; C -1 ; WX 549 ; N notequal ; B 12 -35 537 551 ; C -1 ; WX 537 ; N gcommaaccent ; B -79 -205 523 805 ; C -1 ; WX 500 ; N eth ; B 2 -15 450 737 ; C -1 ; WX 463 ; N zcaron ; B -33 -15 443 690 ; C -1 ; WX 611 ; N ncommaaccent ; B 14 -250 562 466 ; C -1 ; WX 333 ; N onesuperior ; B 34 282 311 705 ; C -1 ; WX 333 ; N imacron ; B 29 -15 300 610 ; EndCharMetrics StartKernData StartKernPairs 1696 KPX A C -18 KPX A Cacute -18 KPX A Ccaron -18 KPX A Ccedilla -18 KPX A G -18 KPX A Gbreve -18 KPX A Gcommaaccent -18 KPX A O -18 KPX A Oacute -18 KPX A Ocircumflex -18 KPX A Odieresis -18 KPX A Ograve -18 KPX A Ohungarumlaut -18 KPX A Omacron -18 KPX A Oslash -18 KPX A Otilde -18 KPX A Q -18 KPX A T -30 KPX A Tcaron -30 KPX A Tcommaaccent -30 KPX A U -37 KPX A Uacute -37 KPX A Ucircumflex -37 KPX A Udieresis -37 KPX A Ugrave -37 KPX A Uhungarumlaut -37 KPX A Umacron -37 KPX A Uogonek -37 KPX A Uring -37 KPX A V -74 KPX A W -74 KPX A Y -55 KPX A Yacute -55 KPX A Ydieresis -55 KPX A quotedblright -125 KPX A quoteright -125 KPX A u -18 KPX A uacute -18 KPX A ucircumflex -18 KPX A udieresis -18 KPX A ugrave -18 KPX A uhungarumlaut -18 KPX A umacron -18 KPX A uogonek -18 KPX A uring -18 KPX A v -18 KPX A w -18 KPX A y -55 KPX A yacute -55 KPX A ydieresis -55 KPX Aacute C -18 KPX Aacute Cacute -18 KPX Aacute Ccaron -18 KPX Aacute Ccedilla -18 KPX Aacute G -18 KPX Aacute Gbreve -18 KPX Aacute Gcommaaccent -18 KPX Aacute O -18 KPX Aacute Oacute -18 KPX Aacute Ocircumflex -18 KPX Aacute Odieresis -18 KPX Aacute Ograve -18 KPX Aacute Ohungarumlaut -18 KPX Aacute Omacron -18 KPX Aacute Oslash -18 KPX Aacute Otilde -18 KPX Aacute Q -18 KPX Aacute T -30 KPX Aacute Tcaron -30 KPX Aacute Tcommaaccent -30 KPX Aacute U -37 KPX Aacute Uacute -37 KPX Aacute Ucircumflex -37 KPX Aacute Udieresis -37 KPX Aacute Ugrave -37 KPX Aacute Uhungarumlaut -37 KPX Aacute Umacron -37 KPX Aacute Uogonek -37 KPX Aacute Uring -37 KPX Aacute V -74 KPX Aacute W -74 KPX Aacute Y -55 KPX Aacute Yacute -55 KPX Aacute Ydieresis -55 KPX Aacute quotedblright -125 KPX Aacute quoteright -125 KPX Aacute u -18 KPX Aacute uacute -18 KPX Aacute ucircumflex -18 KPX Aacute udieresis -18 KPX Aacute ugrave -18 KPX Aacute uhungarumlaut -18 KPX Aacute umacron -18 KPX Aacute uogonek -18 KPX Aacute uring -18 KPX Aacute v -18 KPX Aacute w -18 KPX Aacute y -55 KPX Aacute yacute -55 KPX Aacute ydieresis -55 KPX Abreve C -18 KPX Abreve Cacute -18 KPX Abreve Ccaron -18 KPX Abreve Ccedilla -18 KPX Abreve G -18 KPX Abreve Gbreve -18 KPX Abreve Gcommaaccent -18 KPX Abreve O -18 KPX Abreve Oacute -18 KPX Abreve Ocircumflex -18 KPX Abreve Odieresis -18 KPX Abreve Ograve -18 KPX Abreve Ohungarumlaut -18 KPX Abreve Omacron -18 KPX Abreve Oslash -18 KPX Abreve Otilde -18 KPX Abreve Q -18 KPX Abreve T -30 KPX Abreve Tcaron -30 KPX Abreve Tcommaaccent -30 KPX Abreve U -37 KPX Abreve Uacute -37 KPX Abreve Ucircumflex -37 KPX Abreve Udieresis -37 KPX Abreve Ugrave -37 KPX Abreve Uhungarumlaut -37 KPX Abreve Umacron -37 KPX Abreve Uogonek -37 KPX Abreve Uring -37 KPX Abreve V -74 KPX Abreve W -74 KPX Abreve Y -55 KPX Abreve Yacute -55 KPX Abreve Ydieresis -55 KPX Abreve quotedblright -125 KPX Abreve quoteright -125 KPX Abreve u -18 KPX Abreve uacute -18 KPX Abreve ucircumflex -18 KPX Abreve udieresis -18 KPX Abreve ugrave -18 KPX Abreve uhungarumlaut -18 KPX Abreve umacron -18 KPX Abreve uogonek -18 KPX Abreve uring -18 KPX Abreve v -18 KPX Abreve w -18 KPX Abreve y -55 KPX Abreve yacute -55 KPX Abreve ydieresis -55 KPX Acircumflex C -18 KPX Acircumflex Cacute -18 KPX Acircumflex Ccaron -18 KPX Acircumflex Ccedilla -18 KPX Acircumflex G -18 KPX Acircumflex Gbreve -18 KPX Acircumflex Gcommaaccent -18 KPX Acircumflex O -18 KPX Acircumflex Oacute -18 KPX Acircumflex Ocircumflex -18 KPX Acircumflex Odieresis -18 KPX Acircumflex Ograve -18 KPX Acircumflex Ohungarumlaut -18 KPX Acircumflex Omacron -18 KPX Acircumflex Oslash -18 KPX Acircumflex Otilde -18 KPX Acircumflex Q -18 KPX Acircumflex T -30 KPX Acircumflex Tcaron -30 KPX Acircumflex Tcommaaccent -30 KPX Acircumflex U -37 KPX Acircumflex Uacute -37 KPX Acircumflex Ucircumflex -37 KPX Acircumflex Udieresis -37 KPX Acircumflex Ugrave -37 KPX Acircumflex Uhungarumlaut -37 KPX Acircumflex Umacron -37 KPX Acircumflex Uogonek -37 KPX Acircumflex Uring -37 KPX Acircumflex V -74 KPX Acircumflex W -74 KPX Acircumflex Y -55 KPX Acircumflex Yacute -55 KPX Acircumflex Ydieresis -55 KPX Acircumflex quotedblright -125 KPX Acircumflex quoteright -125 KPX Acircumflex u -18 KPX Acircumflex uacute -18 KPX Acircumflex ucircumflex -18 KPX Acircumflex udieresis -18 KPX Acircumflex ugrave -18 KPX Acircumflex uhungarumlaut -18 KPX Acircumflex umacron -18 KPX Acircumflex uogonek -18 KPX Acircumflex uring -18 KPX Acircumflex v -18 KPX Acircumflex w -18 KPX Acircumflex y -55 KPX Acircumflex yacute -55 KPX Acircumflex ydieresis -55 KPX Adieresis C -18 KPX Adieresis Cacute -18 KPX Adieresis Ccaron -18 KPX Adieresis Ccedilla -18 KPX Adieresis G -18 KPX Adieresis Gbreve -18 KPX Adieresis Gcommaaccent -18 KPX Adieresis O -18 KPX Adieresis Oacute -18 KPX Adieresis Ocircumflex -18 KPX Adieresis Odieresis -18 KPX Adieresis Ograve -18 KPX Adieresis Ohungarumlaut -18 KPX Adieresis Omacron -18 KPX Adieresis Oslash -18 KPX Adieresis Otilde -18 KPX Adieresis Q -18 KPX Adieresis T -30 KPX Adieresis Tcaron -30 KPX Adieresis Tcommaaccent -30 KPX Adieresis U -37 KPX Adieresis Uacute -37 KPX Adieresis Ucircumflex -37 KPX Adieresis Udieresis -37 KPX Adieresis Ugrave -37 KPX Adieresis Uhungarumlaut -37 KPX Adieresis Umacron -37 KPX Adieresis Uogonek -37 KPX Adieresis Uring -37 KPX Adieresis V -74 KPX Adieresis W -74 KPX Adieresis Y -55 KPX Adieresis Yacute -55 KPX Adieresis Ydieresis -55 KPX Adieresis quotedblright -125 KPX Adieresis quoteright -125 KPX Adieresis u -18 KPX Adieresis uacute -18 KPX Adieresis ucircumflex -18 KPX Adieresis udieresis -18 KPX Adieresis ugrave -18 KPX Adieresis uhungarumlaut -18 KPX Adieresis umacron -18 KPX Adieresis uogonek -18 KPX Adieresis uring -18 KPX Adieresis v -18 KPX Adieresis w -18 KPX Adieresis y -55 KPX Adieresis yacute -55 KPX Adieresis ydieresis -55 KPX Agrave C -18 KPX Agrave Cacute -18 KPX Agrave Ccaron -18 KPX Agrave Ccedilla -18 KPX Agrave G -18 KPX Agrave Gbreve -18 KPX Agrave Gcommaaccent -18 KPX Agrave O -18 KPX Agrave Oacute -18 KPX Agrave Ocircumflex -18 KPX Agrave Odieresis -18 KPX Agrave Ograve -18 KPX Agrave Ohungarumlaut -18 KPX Agrave Omacron -18 KPX Agrave Oslash -18 KPX Agrave Otilde -18 KPX Agrave Q -18 KPX Agrave T -30 KPX Agrave Tcaron -30 KPX Agrave Tcommaaccent -30 KPX Agrave U -37 KPX Agrave Uacute -37 KPX Agrave Ucircumflex -37 KPX Agrave Udieresis -37 KPX Agrave Ugrave -37 KPX Agrave Uhungarumlaut -37 KPX Agrave Umacron -37 KPX Agrave Uogonek -37 KPX Agrave Uring -37 KPX Agrave V -74 KPX Agrave W -74 KPX Agrave Y -55 KPX Agrave Yacute -55 KPX Agrave Ydieresis -55 KPX Agrave quotedblright -125 KPX Agrave quoteright -125 KPX Agrave u -18 KPX Agrave uacute -18 KPX Agrave ucircumflex -18 KPX Agrave udieresis -18 KPX Agrave ugrave -18 KPX Agrave uhungarumlaut -18 KPX Agrave umacron -18 KPX Agrave uogonek -18 KPX Agrave uring -18 KPX Agrave v -18 KPX Agrave w -18 KPX Agrave y -55 KPX Agrave yacute -55 KPX Agrave ydieresis -55 KPX Amacron C -18 KPX Amacron Cacute -18 KPX Amacron Ccaron -18 KPX Amacron Ccedilla -18 KPX Amacron G -18 KPX Amacron Gbreve -18 KPX Amacron Gcommaaccent -18 KPX Amacron O -18 KPX Amacron Oacute -18 KPX Amacron Ocircumflex -18 KPX Amacron Odieresis -18 KPX Amacron Ograve -18 KPX Amacron Ohungarumlaut -18 KPX Amacron Omacron -18 KPX Amacron Oslash -18 KPX Amacron Otilde -18 KPX Amacron Q -18 KPX Amacron T -30 KPX Amacron Tcaron -30 KPX Amacron Tcommaaccent -30 KPX Amacron U -37 KPX Amacron Uacute -37 KPX Amacron Ucircumflex -37 KPX Amacron Udieresis -37 KPX Amacron Ugrave -37 KPX Amacron Uhungarumlaut -37 KPX Amacron Umacron -37 KPX Amacron Uogonek -37 KPX Amacron Uring -37 KPX Amacron V -74 KPX Amacron W -74 KPX Amacron Y -55 KPX Amacron Yacute -55 KPX Amacron Ydieresis -55 KPX Amacron quotedblright -125 KPX Amacron quoteright -125 KPX Amacron u -18 KPX Amacron uacute -18 KPX Amacron ucircumflex -18 KPX Amacron udieresis -18 KPX Amacron ugrave -18 KPX Amacron uhungarumlaut -18 KPX Amacron umacron -18 KPX Amacron uogonek -18 KPX Amacron uring -18 KPX Amacron v -18 KPX Amacron w -18 KPX Amacron y -55 KPX Amacron yacute -55 KPX Amacron ydieresis -55 KPX Aogonek C -18 KPX Aogonek Cacute -18 KPX Aogonek Ccaron -18 KPX Aogonek Ccedilla -18 KPX Aogonek G -18 KPX Aogonek Gbreve -18 KPX Aogonek Gcommaaccent -18 KPX Aogonek O -18 KPX Aogonek Oacute -18 KPX Aogonek Ocircumflex -18 KPX Aogonek Odieresis -18 KPX Aogonek Ograve -18 KPX Aogonek Ohungarumlaut -18 KPX Aogonek Omacron -18 KPX Aogonek Oslash -18 KPX Aogonek Otilde -18 KPX Aogonek Q -18 KPX Aogonek T -30 KPX Aogonek Tcaron -30 KPX Aogonek Tcommaaccent -30 KPX Aogonek U -37 KPX Aogonek Uacute -37 KPX Aogonek Ucircumflex -37 KPX Aogonek Udieresis -37 KPX Aogonek Ugrave -37 KPX Aogonek Uhungarumlaut -37 KPX Aogonek Umacron -37 KPX Aogonek Uogonek -37 KPX Aogonek Uring -37 KPX Aogonek V -74 KPX Aogonek W -74 KPX Aogonek Y -55 KPX Aogonek Yacute -55 KPX Aogonek Ydieresis -55 KPX Aogonek quotedblright -125 KPX Aogonek quoteright -125 KPX Aogonek u -18 KPX Aogonek uacute -18 KPX Aogonek ucircumflex -18 KPX Aogonek udieresis -18 KPX Aogonek ugrave -18 KPX Aogonek uhungarumlaut -18 KPX Aogonek umacron -18 KPX Aogonek uogonek -18 KPX Aogonek uring -18 KPX Aogonek v -18 KPX Aogonek w -18 KPX Aring C -18 KPX Aring Cacute -18 KPX Aring Ccaron -18 KPX Aring Ccedilla -18 KPX Aring G -18 KPX Aring Gbreve -18 KPX Aring Gcommaaccent -18 KPX Aring O -18 KPX Aring Oacute -18 KPX Aring Ocircumflex -18 KPX Aring Odieresis -18 KPX Aring Ograve -18 KPX Aring Ohungarumlaut -18 KPX Aring Omacron -18 KPX Aring Oslash -18 KPX Aring Otilde -18 KPX Aring Q -18 KPX Aring T -30 KPX Aring Tcaron -30 KPX Aring Tcommaaccent -30 KPX Aring U -37 KPX Aring Uacute -37 KPX Aring Ucircumflex -37 KPX Aring Udieresis -37 KPX Aring Ugrave -37 KPX Aring Uhungarumlaut -37 KPX Aring Umacron -37 KPX Aring Uogonek -37 KPX Aring Uring -37 KPX Aring V -74 KPX Aring W -74 KPX Aring Y -55 KPX Aring Yacute -55 KPX Aring Ydieresis -55 KPX Aring quotedblright -125 KPX Aring quoteright -125 KPX Aring u -18 KPX Aring uacute -18 KPX Aring ucircumflex -18 KPX Aring udieresis -18 KPX Aring ugrave -18 KPX Aring uhungarumlaut -18 KPX Aring umacron -18 KPX Aring uogonek -18 KPX Aring uring -18 KPX Aring v -18 KPX Aring w -18 KPX Aring y -55 KPX Aring yacute -55 KPX Aring ydieresis -55 KPX Atilde C -18 KPX Atilde Cacute -18 KPX Atilde Ccaron -18 KPX Atilde Ccedilla -18 KPX Atilde G -18 KPX Atilde Gbreve -18 KPX Atilde Gcommaaccent -18 KPX Atilde O -18 KPX Atilde Oacute -18 KPX Atilde Ocircumflex -18 KPX Atilde Odieresis -18 KPX Atilde Ograve -18 KPX Atilde Ohungarumlaut -18 KPX Atilde Omacron -18 KPX Atilde Oslash -18 KPX Atilde Otilde -18 KPX Atilde Q -18 KPX Atilde T -30 KPX Atilde Tcaron -30 KPX Atilde Tcommaaccent -30 KPX Atilde U -37 KPX Atilde Uacute -37 KPX Atilde Ucircumflex -37 KPX Atilde Udieresis -37 KPX Atilde Ugrave -37 KPX Atilde Uhungarumlaut -37 KPX Atilde Umacron -37 KPX Atilde Uogonek -37 KPX Atilde Uring -37 KPX Atilde V -74 KPX Atilde W -74 KPX Atilde Y -55 KPX Atilde Yacute -55 KPX Atilde Ydieresis -55 KPX Atilde quotedblright -125 KPX Atilde quoteright -125 KPX Atilde u -18 KPX Atilde uacute -18 KPX Atilde ucircumflex -18 KPX Atilde udieresis -18 KPX Atilde ugrave -18 KPX Atilde uhungarumlaut -18 KPX Atilde umacron -18 KPX Atilde uogonek -18 KPX Atilde uring -18 KPX Atilde v -18 KPX Atilde w -18 KPX Atilde y -55 KPX Atilde yacute -55 KPX Atilde ydieresis -55 KPX B comma -50 KPX B period -50 KPX C comma -50 KPX C period -50 KPX Cacute comma -50 KPX Cacute period -50 KPX Ccaron comma -50 KPX Ccaron period -50 KPX Ccedilla comma -50 KPX Ccedilla period -50 KPX D V -18 KPX D W -18 KPX D Y -18 KPX D Yacute -18 KPX D Ydieresis -18 KPX D comma -50 KPX D period -50 KPX Dcaron V -18 KPX Dcaron W -18 KPX Dcaron Y -18 KPX Dcaron Yacute -18 KPX Dcaron Ydieresis -18 KPX Dcaron comma -50 KPX Dcaron period -50 KPX Dcroat V -18 KPX Dcroat W -18 KPX Dcroat Y -18 KPX Dcroat Yacute -18 KPX Dcroat Ydieresis -18 KPX Dcroat comma -50 KPX Dcroat period -50 KPX F A -35 KPX F Aacute -35 KPX F Abreve -35 KPX F Acircumflex -35 KPX F Adieresis -35 KPX F Agrave -35 KPX F Amacron -35 KPX F Aogonek -35 KPX F Aring -35 KPX F Atilde -35 KPX F a -55 KPX F aacute -55 KPX F abreve -55 KPX F acircumflex -55 KPX F adieresis -55 KPX F agrave -55 KPX F amacron -55 KPX F aogonek -55 KPX F aring -55 KPX F atilde -55 KPX F comma -125 KPX F e -55 KPX F eacute -55 KPX F ecaron -55 KPX F ecircumflex -55 KPX F edieresis -55 KPX F edotaccent -55 KPX F egrave -55 KPX F emacron -55 KPX F eogonek -55 KPX F i -10 KPX F iacute -10 KPX F icircumflex -10 KPX F idieresis -10 KPX F igrave -10 KPX F imacron -10 KPX F iogonek -10 KPX F o -55 KPX F oacute -55 KPX F ocircumflex -55 KPX F odieresis -55 KPX F ograve -55 KPX F ohungarumlaut -55 KPX F omacron -55 KPX F oslash -55 KPX F otilde -55 KPX F period -125 KPX F r -55 KPX F racute -55 KPX F rcaron -55 KPX F rcommaaccent -55 KPX G comma -50 KPX G period -50 KPX Gbreve comma -50 KPX Gbreve period -50 KPX Gcommaaccent comma -50 KPX Gcommaaccent period -50 KPX J A -18 KPX J Aacute -18 KPX J Abreve -18 KPX J Acircumflex -18 KPX J Adieresis -18 KPX J Agrave -18 KPX J Amacron -18 KPX J Aogonek -18 KPX J Aring -18 KPX J Atilde -18 KPX J a -37 KPX J aacute -37 KPX J abreve -37 KPX J acircumflex -37 KPX J adieresis -37 KPX J agrave -37 KPX J amacron -37 KPX J aogonek -37 KPX J aring -37 KPX J atilde -37 KPX J comma -100 KPX J e -37 KPX J eacute -37 KPX J ecaron -37 KPX J ecircumflex -37 KPX J edieresis -37 KPX J edotaccent -37 KPX J egrave -37 KPX J emacron -37 KPX J eogonek -37 KPX J o -37 KPX J oacute -37 KPX J ocircumflex -37 KPX J odieresis -37 KPX J ograve -37 KPX J ohungarumlaut -37 KPX J omacron -37 KPX J oslash -37 KPX J otilde -37 KPX J period -100 KPX J u -18 KPX J uacute -18 KPX J ucircumflex -18 KPX J udieresis -18 KPX J ugrave -18 KPX J uhungarumlaut -18 KPX J umacron -18 KPX J uogonek -18 KPX J uring -18 KPX L T -100 KPX L Tcaron -100 KPX L Tcommaaccent -100 KPX L V -100 KPX L W -100 KPX L Y -100 KPX L Yacute -100 KPX L Ydieresis -100 KPX L quotedblright -125 KPX L quoteright -125 KPX L y -50 KPX L yacute -50 KPX L ydieresis -50 KPX Lacute T -100 KPX Lacute Tcaron -100 KPX Lacute Tcommaaccent -100 KPX Lacute V -100 KPX Lacute W -100 KPX Lacute Y -100 KPX Lacute Yacute -100 KPX Lacute Ydieresis -100 KPX Lacute quotedblright -125 KPX Lacute quoteright -125 KPX Lacute y -50 KPX Lacute yacute -50 KPX Lacute ydieresis -50 KPX Lcommaaccent T -100 KPX Lcommaaccent Tcaron -100 KPX Lcommaaccent Tcommaaccent -100 KPX Lcommaaccent V -100 KPX Lcommaaccent W -100 KPX Lcommaaccent Y -100 KPX Lcommaaccent Yacute -100 KPX Lcommaaccent Ydieresis -100 KPX Lcommaaccent quotedblright -125 KPX Lcommaaccent quoteright -125 KPX Lcommaaccent y -50 KPX Lcommaaccent yacute -50 KPX Lcommaaccent ydieresis -50 KPX Lslash T -100 KPX Lslash Tcaron -100 KPX Lslash Tcommaaccent -100 KPX Lslash V -100 KPX Lslash W -100 KPX Lslash Y -100 KPX Lslash Yacute -100 KPX Lslash Ydieresis -100 KPX Lslash quotedblright -125 KPX Lslash quoteright -125 KPX Lslash y -50 KPX Lslash yacute -50 KPX Lslash ydieresis -50 KPX N comma -60 KPX N period -60 KPX Nacute comma -60 KPX Nacute period -60 KPX Ncaron comma -60 KPX Ncaron period -60 KPX Ncommaaccent comma -60 KPX Ncommaaccent period -60 KPX Ntilde comma -60 KPX Ntilde period -60 KPX O T 18 KPX O Tcaron 18 KPX O Tcommaaccent 18 KPX O V -18 KPX O X -18 KPX O Y -18 KPX O Yacute -18 KPX O Ydieresis -18 KPX O comma -50 KPX O period -50 KPX Oacute T 18 KPX Oacute Tcaron 18 KPX Oacute Tcommaaccent 18 KPX Oacute V -18 KPX Oacute X -18 KPX Oacute Y -18 KPX Oacute Yacute -18 KPX Oacute Ydieresis -18 KPX Oacute comma -50 KPX Oacute period -50 KPX Ocircumflex T 18 KPX Ocircumflex Tcaron 18 KPX Ocircumflex Tcommaaccent 18 KPX Ocircumflex V -18 KPX Ocircumflex X -18 KPX Ocircumflex Y -18 KPX Ocircumflex Yacute -18 KPX Ocircumflex Ydieresis -18 KPX Ocircumflex comma -50 KPX Ocircumflex period -50 KPX Odieresis T 18 KPX Odieresis Tcaron 18 KPX Odieresis Tcommaaccent 18 KPX Odieresis V -18 KPX Odieresis X -18 KPX Odieresis Y -18 KPX Odieresis Yacute -18 KPX Odieresis Ydieresis -18 KPX Odieresis comma -50 KPX Odieresis period -50 KPX Ograve T 18 KPX Ograve Tcaron 18 KPX Ograve Tcommaaccent 18 KPX Ograve V -18 KPX Ograve X -18 KPX Ograve Y -18 KPX Ograve Yacute -18 KPX Ograve Ydieresis -18 KPX Ograve comma -50 KPX Ograve period -50 KPX Ohungarumlaut T 18 KPX Ohungarumlaut Tcaron 18 KPX Ohungarumlaut Tcommaaccent 18 KPX Ohungarumlaut V -18 KPX Ohungarumlaut X -18 KPX Ohungarumlaut Y -18 KPX Ohungarumlaut Yacute -18 KPX Ohungarumlaut Ydieresis -18 KPX Ohungarumlaut comma -50 KPX Ohungarumlaut period -50 KPX Omacron T 18 KPX Omacron Tcaron 18 KPX Omacron Tcommaaccent 18 KPX Omacron V -18 KPX Omacron X -18 KPX Omacron Y -18 KPX Omacron Yacute -18 KPX Omacron Ydieresis -18 KPX Omacron comma -50 KPX Omacron period -50 KPX Oslash T 18 KPX Oslash Tcaron 18 KPX Oslash Tcommaaccent 18 KPX Oslash V -18 KPX Oslash X -18 KPX Oslash Y -18 KPX Oslash Yacute -18 KPX Oslash Ydieresis -18 KPX Oslash comma -50 KPX Oslash period -50 KPX Otilde T 18 KPX Otilde Tcaron 18 KPX Otilde Tcommaaccent 18 KPX Otilde V -18 KPX Otilde X -18 KPX Otilde Y -18 KPX Otilde Yacute -18 KPX Otilde Ydieresis -18 KPX Otilde comma -50 KPX Otilde period -50 KPX P A -50 KPX P Aacute -50 KPX P Abreve -50 KPX P Acircumflex -50 KPX P Adieresis -50 KPX P Agrave -50 KPX P Amacron -50 KPX P Aogonek -50 KPX P Aring -50 KPX P Atilde -50 KPX P a -55 KPX P aacute -55 KPX P abreve -55 KPX P acircumflex -55 KPX P adieresis -55 KPX P agrave -55 KPX P amacron -55 KPX P aogonek -55 KPX P aring -55 KPX P atilde -55 KPX P comma -125 KPX P e -55 KPX P eacute -55 KPX P ecaron -55 KPX P ecircumflex -55 KPX P edieresis -55 KPX P edotaccent -55 KPX P egrave -55 KPX P emacron -55 KPX P eogonek -55 KPX P o -55 KPX P oacute -55 KPX P ocircumflex -55 KPX P odieresis -55 KPX P ograve -55 KPX P ohungarumlaut -55 KPX P omacron -55 KPX P oslash -55 KPX P otilde -55 KPX P period -125 KPX Q comma -20 KPX Q period -20 KPX R U -18 KPX R Uacute -18 KPX R Ucircumflex -18 KPX R Udieresis -18 KPX R Ugrave -18 KPX R Uhungarumlaut -18 KPX R Umacron -18 KPX R Uogonek -18 KPX R Uring -18 KPX R V -18 KPX R W -18 KPX R Y -18 KPX R Yacute -18 KPX R Ydieresis -18 KPX Racute U -18 KPX Racute Uacute -18 KPX Racute Ucircumflex -18 KPX Racute Udieresis -18 KPX Racute Ugrave -18 KPX Racute Uhungarumlaut -18 KPX Racute Umacron -18 KPX Racute Uogonek -18 KPX Racute Uring -18 KPX Racute V -18 KPX Racute W -18 KPX Racute Y -18 KPX Racute Yacute -18 KPX Racute Ydieresis -18 KPX Rcaron U -18 KPX Rcaron Uacute -18 KPX Rcaron Ucircumflex -18 KPX Rcaron Udieresis -18 KPX Rcaron Ugrave -18 KPX Rcaron Uhungarumlaut -18 KPX Rcaron Umacron -18 KPX Rcaron Uogonek -18 KPX Rcaron Uring -18 KPX Rcaron V -18 KPX Rcaron W -18 KPX Rcaron Y -18 KPX Rcaron Yacute -18 KPX Rcaron Ydieresis -18 KPX Rcommaaccent U -18 KPX Rcommaaccent Uacute -18 KPX Rcommaaccent Ucircumflex -18 KPX Rcommaaccent Udieresis -18 KPX Rcommaaccent Ugrave -18 KPX Rcommaaccent Uhungarumlaut -18 KPX Rcommaaccent Umacron -18 KPX Rcommaaccent Uogonek -18 KPX Rcommaaccent Uring -18 KPX Rcommaaccent V -18 KPX Rcommaaccent W -18 KPX Rcommaaccent Y -18 KPX Rcommaaccent Yacute -18 KPX Rcommaaccent Ydieresis -18 KPX S comma -50 KPX S period -50 KPX Sacute comma -50 KPX Sacute period -50 KPX Scaron comma -50 KPX Scaron period -50 KPX Scedilla comma -50 KPX Scedilla period -50 KPX Scommaaccent comma -50 KPX Scommaaccent period -50 KPX T O 18 KPX T Oacute 18 KPX T Ocircumflex 18 KPX T Odieresis 18 KPX T Ograve 18 KPX T Ohungarumlaut 18 KPX T Omacron 18 KPX T Oslash 18 KPX T Otilde 18 KPX T a -74 KPX T aacute -74 KPX T abreve -74 KPX T acircumflex -74 KPX T adieresis -74 KPX T agrave -74 KPX T amacron -74 KPX T aogonek -74 KPX T aring -74 KPX T atilde -74 KPX T colon -50 KPX T comma -100 KPX T e -74 KPX T eacute -74 KPX T ecaron -34 KPX T ecircumflex -34 KPX T edieresis -34 KPX T edotaccent -74 KPX T egrave -34 KPX T emacron -34 KPX T eogonek -74 KPX T h -25 KPX T hyphen -100 KPX T i -18 KPX T iacute -18 KPX T icircumflex -18 KPX T iogonek -18 KPX T o -74 KPX T oacute -74 KPX T ocircumflex -74 KPX T odieresis -34 KPX T ograve -34 KPX T ohungarumlaut -34 KPX T omacron -34 KPX T oslash -74 KPX T otilde -34 KPX T period -100 KPX T r -50 KPX T racute -50 KPX T rcaron -50 KPX T rcommaaccent -50 KPX T semicolon -50 KPX T u -50 KPX T uacute -50 KPX T ucircumflex -50 KPX T udieresis -50 KPX T ugrave -50 KPX T uhungarumlaut -50 KPX T umacron -50 KPX T uogonek -50 KPX T uring -50 KPX T w -50 KPX T y -50 KPX T yacute -50 KPX T ydieresis -50 KPX Tcaron O 18 KPX Tcaron Oacute 18 KPX Tcaron Ocircumflex 18 KPX Tcaron Odieresis 18 KPX Tcaron Ograve 18 KPX Tcaron Ohungarumlaut 18 KPX Tcaron Omacron 18 KPX Tcaron Oslash 18 KPX Tcaron Otilde 18 KPX Tcaron a -74 KPX Tcaron aacute -74 KPX Tcaron abreve -74 KPX Tcaron acircumflex -74 KPX Tcaron adieresis -74 KPX Tcaron agrave -74 KPX Tcaron amacron -74 KPX Tcaron aogonek -74 KPX Tcaron aring -74 KPX Tcaron atilde -74 KPX Tcaron colon -50 KPX Tcaron comma -100 KPX Tcaron e -74 KPX Tcaron eacute -74 KPX Tcaron ecaron -34 KPX Tcaron ecircumflex -34 KPX Tcaron edieresis -34 KPX Tcaron edotaccent -74 KPX Tcaron egrave -34 KPX Tcaron emacron -34 KPX Tcaron eogonek -74 KPX Tcaron h -25 KPX Tcaron hyphen -100 KPX Tcaron i -18 KPX Tcaron iacute -18 KPX Tcaron icircumflex -18 KPX Tcaron iogonek -18 KPX Tcaron o -74 KPX Tcaron oacute -74 KPX Tcaron ocircumflex -74 KPX Tcaron odieresis -34 KPX Tcaron ograve -34 KPX Tcaron ohungarumlaut -34 KPX Tcaron omacron -34 KPX Tcaron oslash -74 KPX Tcaron otilde -34 KPX Tcaron period -100 KPX Tcaron r -50 KPX Tcaron racute -50 KPX Tcaron rcaron -50 KPX Tcaron rcommaaccent -50 KPX Tcaron semicolon -50 KPX Tcaron u -50 KPX Tcaron uacute -50 KPX Tcaron ucircumflex -50 KPX Tcaron udieresis -50 KPX Tcaron ugrave -50 KPX Tcaron uhungarumlaut -50 KPX Tcaron umacron -50 KPX Tcaron uogonek -50 KPX Tcaron uring -50 KPX Tcaron w -50 KPX Tcaron y -50 KPX Tcaron yacute -50 KPX Tcaron ydieresis -50 KPX Tcommaaccent O 18 KPX Tcommaaccent Oacute 18 KPX Tcommaaccent Ocircumflex 18 KPX Tcommaaccent Odieresis 18 KPX Tcommaaccent Ograve 18 KPX Tcommaaccent Ohungarumlaut 18 KPX Tcommaaccent Omacron 18 KPX Tcommaaccent Oslash 18 KPX Tcommaaccent Otilde 18 KPX Tcommaaccent a -74 KPX Tcommaaccent aacute -74 KPX Tcommaaccent abreve -74 KPX Tcommaaccent acircumflex -74 KPX Tcommaaccent adieresis -74 KPX Tcommaaccent agrave -74 KPX Tcommaaccent amacron -74 KPX Tcommaaccent aogonek -74 KPX Tcommaaccent aring -74 KPX Tcommaaccent atilde -74 KPX Tcommaaccent colon -50 KPX Tcommaaccent comma -100 KPX Tcommaaccent e -74 KPX Tcommaaccent eacute -74 KPX Tcommaaccent ecaron -34 KPX Tcommaaccent ecircumflex -34 KPX Tcommaaccent edieresis -34 KPX Tcommaaccent edotaccent -74 KPX Tcommaaccent egrave -34 KPX Tcommaaccent emacron -34 KPX Tcommaaccent eogonek -74 KPX Tcommaaccent h -25 KPX Tcommaaccent hyphen -100 KPX Tcommaaccent i -18 KPX Tcommaaccent iacute -18 KPX Tcommaaccent icircumflex -18 KPX Tcommaaccent iogonek -18 KPX Tcommaaccent o -74 KPX Tcommaaccent oacute -74 KPX Tcommaaccent ocircumflex -74 KPX Tcommaaccent odieresis -34 KPX Tcommaaccent ograve -34 KPX Tcommaaccent ohungarumlaut -34 KPX Tcommaaccent omacron -34 KPX Tcommaaccent oslash -74 KPX Tcommaaccent otilde -34 KPX Tcommaaccent period -100 KPX Tcommaaccent r -50 KPX Tcommaaccent racute -50 KPX Tcommaaccent rcaron -50 KPX Tcommaaccent rcommaaccent -50 KPX Tcommaaccent semicolon -50 KPX Tcommaaccent u -50 KPX Tcommaaccent uacute -50 KPX Tcommaaccent ucircumflex -50 KPX Tcommaaccent udieresis -50 KPX Tcommaaccent ugrave -50 KPX Tcommaaccent uhungarumlaut -50 KPX Tcommaaccent umacron -50 KPX Tcommaaccent uogonek -50 KPX Tcommaaccent uring -50 KPX Tcommaaccent w -50 KPX Tcommaaccent y -50 KPX Tcommaaccent yacute -50 KPX Tcommaaccent ydieresis -50 KPX U A -18 KPX U Aacute -18 KPX U Abreve -18 KPX U Acircumflex -18 KPX U Adieresis -18 KPX U Agrave -18 KPX U Amacron -18 KPX U Aogonek -18 KPX U Aring -18 KPX U Atilde -18 KPX U comma -100 KPX U period -100 KPX Uacute A -18 KPX Uacute Aacute -18 KPX Uacute Abreve -18 KPX Uacute Acircumflex -18 KPX Uacute Adieresis -18 KPX Uacute Agrave -18 KPX Uacute Amacron -18 KPX Uacute Aogonek -18 KPX Uacute Aring -18 KPX Uacute Atilde -18 KPX Uacute comma -100 KPX Uacute period -100 KPX Ucircumflex A -18 KPX Ucircumflex Aacute -18 KPX Ucircumflex Abreve -18 KPX Ucircumflex Acircumflex -18 KPX Ucircumflex Adieresis -18 KPX Ucircumflex Agrave -18 KPX Ucircumflex Amacron -18 KPX Ucircumflex Aogonek -18 KPX Ucircumflex Aring -18 KPX Ucircumflex Atilde -18 KPX Ucircumflex comma -100 KPX Ucircumflex period -100 KPX Udieresis A -18 KPX Udieresis Aacute -18 KPX Udieresis Abreve -18 KPX Udieresis Acircumflex -18 KPX Udieresis Adieresis -18 KPX Udieresis Agrave -18 KPX Udieresis Amacron -18 KPX Udieresis Aogonek -18 KPX Udieresis Aring -18 KPX Udieresis Atilde -18 KPX Udieresis comma -100 KPX Udieresis period -100 KPX Ugrave A -18 KPX Ugrave Aacute -18 KPX Ugrave Abreve -18 KPX Ugrave Acircumflex -18 KPX Ugrave Adieresis -18 KPX Ugrave Agrave -18 KPX Ugrave Amacron -18 KPX Ugrave Aogonek -18 KPX Ugrave Aring -18 KPX Ugrave Atilde -18 KPX Ugrave comma -100 KPX Ugrave period -100 KPX Uhungarumlaut A -18 KPX Uhungarumlaut Aacute -18 KPX Uhungarumlaut Abreve -18 KPX Uhungarumlaut Acircumflex -18 KPX Uhungarumlaut Adieresis -18 KPX Uhungarumlaut Agrave -18 KPX Uhungarumlaut Amacron -18 KPX Uhungarumlaut Aogonek -18 KPX Uhungarumlaut Aring -18 KPX Uhungarumlaut Atilde -18 KPX Uhungarumlaut comma -100 KPX Uhungarumlaut period -100 KPX Umacron A -18 KPX Umacron Aacute -18 KPX Umacron Abreve -18 KPX Umacron Acircumflex -18 KPX Umacron Adieresis -18 KPX Umacron Agrave -18 KPX Umacron Amacron -18 KPX Umacron Aogonek -18 KPX Umacron Aring -18 KPX Umacron Atilde -18 KPX Umacron comma -100 KPX Umacron period -100 KPX Uogonek A -18 KPX Uogonek Aacute -18 KPX Uogonek Abreve -18 KPX Uogonek Acircumflex -18 KPX Uogonek Adieresis -18 KPX Uogonek Agrave -18 KPX Uogonek Amacron -18 KPX Uogonek Aogonek -18 KPX Uogonek Aring -18 KPX Uogonek Atilde -18 KPX Uogonek comma -100 KPX Uogonek period -100 KPX Uring A -18 KPX Uring Aacute -18 KPX Uring Abreve -18 KPX Uring Acircumflex -18 KPX Uring Adieresis -18 KPX Uring Agrave -18 KPX Uring Amacron -18 KPX Uring Aogonek -18 KPX Uring Aring -18 KPX Uring Atilde -18 KPX Uring comma -100 KPX Uring period -100 KPX V A -37 KPX V Aacute -37 KPX V Abreve -37 KPX V Acircumflex -37 KPX V Adieresis -37 KPX V Agrave -37 KPX V Amacron -37 KPX V Aogonek -37 KPX V Aring -37 KPX V Atilde -37 KPX V a -75 KPX V aacute -75 KPX V abreve -75 KPX V acircumflex -75 KPX V adieresis -75 KPX V agrave -75 KPX V amacron -75 KPX V aogonek -75 KPX V aring -75 KPX V atilde -75 KPX V colon -75 KPX V comma -100 KPX V e -75 KPX V eacute -75 KPX V ecaron -35 KPX V ecircumflex -35 KPX V edieresis -35 KPX V edotaccent -35 KPX V egrave -35 KPX V emacron -35 KPX V eogonek -75 KPX V hyphen -100 KPX V i -50 KPX V iacute -50 KPX V icircumflex -10 KPX V idieresis -10 KPX V igrave -10 KPX V imacron -10 KPX V iogonek -50 KPX V o -75 KPX V oacute -75 KPX V ocircumflex -75 KPX V odieresis -35 KPX V ograve -35 KPX V ohungarumlaut -75 KPX V omacron -35 KPX V oslash -75 KPX V otilde -35 KPX V period -100 KPX V semicolon -75 KPX V u -75 KPX V uacute -75 KPX V ucircumflex -75 KPX V udieresis -75 KPX V ugrave -75 KPX V uhungarumlaut -75 KPX V umacron -75 KPX V uogonek -75 KPX V uring -75 KPX W A -55 KPX W Aacute -55 KPX W Abreve -55 KPX W Acircumflex -55 KPX W Adieresis -55 KPX W Agrave -55 KPX W Amacron -55 KPX W Aogonek -55 KPX W Aring -55 KPX W Atilde -55 KPX W a -55 KPX W aacute -55 KPX W abreve -55 KPX W acircumflex -55 KPX W adieresis -55 KPX W agrave -55 KPX W amacron -55 KPX W aogonek -55 KPX W aring -55 KPX W atilde -55 KPX W colon -75 KPX W comma -100 KPX W e -55 KPX W eacute -55 KPX W ecaron -55 KPX W ecircumflex -55 KPX W edieresis -35 KPX W edotaccent -55 KPX W egrave -35 KPX W emacron -55 KPX W eogonek -55 KPX W h -20 KPX W hyphen -75 KPX W i -20 KPX W iacute -20 KPX W icircumflex -20 KPX W iogonek -20 KPX W o -55 KPX W oacute -55 KPX W ocircumflex -55 KPX W odieresis -55 KPX W ograve -55 KPX W ohungarumlaut -55 KPX W omacron -55 KPX W oslash -55 KPX W otilde -55 KPX W period -100 KPX W semicolon -75 KPX W u -55 KPX W uacute -55 KPX W ucircumflex -55 KPX W udieresis -55 KPX W ugrave -55 KPX W uhungarumlaut -55 KPX W umacron -55 KPX W uogonek -55 KPX W uring -55 KPX W y -55 KPX W yacute -55 KPX W ydieresis -55 KPX Y A -55 KPX Y Aacute -55 KPX Y Abreve -55 KPX Y Acircumflex -55 KPX Y Adieresis -55 KPX Y Agrave -55 KPX Y Amacron -55 KPX Y Aogonek -55 KPX Y Aring -55 KPX Y Atilde -55 KPX Y a -100 KPX Y aacute -100 KPX Y abreve -60 KPX Y acircumflex -100 KPX Y adieresis -60 KPX Y agrave -60 KPX Y amacron -100 KPX Y aogonek -100 KPX Y aring -100 KPX Y atilde -100 KPX Y colon -75 KPX Y comma -100 KPX Y e -100 KPX Y eacute -100 KPX Y ecaron -60 KPX Y ecircumflex -60 KPX Y edieresis -60 KPX Y edotaccent -100 KPX Y egrave -60 KPX Y emacron -60 KPX Y eogonek -100 KPX Y hyphen -100 KPX Y i -25 KPX Y iacute -25 KPX Y iogonek -25 KPX Y o -100 KPX Y oacute -100 KPX Y ocircumflex -100 KPX Y odieresis -60 KPX Y ograve -60 KPX Y ohungarumlaut -100 KPX Y omacron -60 KPX Y oslash -100 KPX Y otilde -60 KPX Y period -100 KPX Y semicolon -75 KPX Y u -100 KPX Y uacute -100 KPX Y ucircumflex -100 KPX Y udieresis -100 KPX Y ugrave -100 KPX Y uhungarumlaut -100 KPX Y umacron -100 KPX Y uogonek -100 KPX Y uring -100 KPX Yacute A -55 KPX Yacute Aacute -55 KPX Yacute Abreve -55 KPX Yacute Acircumflex -55 KPX Yacute Adieresis -55 KPX Yacute Agrave -55 KPX Yacute Amacron -55 KPX Yacute Aogonek -55 KPX Yacute Aring -55 KPX Yacute Atilde -55 KPX Yacute a -100 KPX Yacute aacute -100 KPX Yacute abreve -60 KPX Yacute acircumflex -100 KPX Yacute adieresis -60 KPX Yacute agrave -60 KPX Yacute amacron -60 KPX Yacute aogonek -100 KPX Yacute aring -100 KPX Yacute atilde -100 KPX Yacute colon -75 KPX Yacute comma -100 KPX Yacute e -100 KPX Yacute eacute -100 KPX Yacute ecaron -60 KPX Yacute ecircumflex -60 KPX Yacute edieresis -60 KPX Yacute edotaccent -100 KPX Yacute egrave -60 KPX Yacute emacron -60 KPX Yacute eogonek -100 KPX Yacute hyphen -100 KPX Yacute i -25 KPX Yacute iacute -25 KPX Yacute iogonek -25 KPX Yacute o -100 KPX Yacute oacute -100 KPX Yacute ocircumflex -60 KPX Yacute odieresis -60 KPX Yacute ograve -60 KPX Yacute ohungarumlaut -100 KPX Yacute omacron -60 KPX Yacute oslash -100 KPX Yacute otilde -60 KPX Yacute period -100 KPX Yacute semicolon -75 KPX Yacute u -100 KPX Yacute uacute -100 KPX Yacute ucircumflex -100 KPX Yacute udieresis -100 KPX Yacute ugrave -100 KPX Yacute uhungarumlaut -100 KPX Yacute umacron -100 KPX Yacute uogonek -100 KPX Yacute uring -100 KPX Ydieresis A -55 KPX Ydieresis Aacute -55 KPX Ydieresis Abreve -55 KPX Ydieresis Acircumflex -55 KPX Ydieresis Adieresis -55 KPX Ydieresis Agrave -55 KPX Ydieresis Amacron -55 KPX Ydieresis Aogonek -55 KPX Ydieresis Aring -55 KPX Ydieresis Atilde -55 KPX Ydieresis a -100 KPX Ydieresis aacute -100 KPX Ydieresis abreve -60 KPX Ydieresis acircumflex -100 KPX Ydieresis adieresis -60 KPX Ydieresis agrave -60 KPX Ydieresis amacron -100 KPX Ydieresis aogonek -100 KPX Ydieresis aring -100 KPX Ydieresis atilde -100 KPX Ydieresis colon -75 KPX Ydieresis comma -100 KPX Ydieresis e -100 KPX Ydieresis eacute -100 KPX Ydieresis ecaron -60 KPX Ydieresis ecircumflex -60 KPX Ydieresis edieresis -60 KPX Ydieresis edotaccent -100 KPX Ydieresis egrave -60 KPX Ydieresis emacron -60 KPX Ydieresis eogonek -100 KPX Ydieresis hyphen -100 KPX Ydieresis i -25 KPX Ydieresis iacute -25 KPX Ydieresis iogonek -25 KPX Ydieresis o -100 KPX Ydieresis oacute -100 KPX Ydieresis ocircumflex -100 KPX Ydieresis odieresis -60 KPX Ydieresis ograve -60 KPX Ydieresis ohungarumlaut -100 KPX Ydieresis omacron -60 KPX Ydieresis oslash -100 KPX Ydieresis otilde -60 KPX Ydieresis period -100 KPX Ydieresis semicolon -75 KPX Ydieresis u -100 KPX Ydieresis uacute -100 KPX Ydieresis ucircumflex -100 KPX Ydieresis udieresis -100 KPX Ydieresis ugrave -100 KPX Ydieresis uhungarumlaut -100 KPX Ydieresis umacron -100 KPX Ydieresis uogonek -100 KPX Ydieresis uring -100 KPX b b -10 KPX b comma -50 KPX b period -50 KPX c comma -50 KPX c h -18 KPX c k -18 KPX c kcommaaccent -18 KPX c period -50 KPX cacute comma -50 KPX cacute h -18 KPX cacute k -18 KPX cacute kcommaaccent -18 KPX cacute period -50 KPX ccaron comma -50 KPX ccaron h -18 KPX ccaron k -18 KPX ccaron kcommaaccent -18 KPX ccaron period -50 KPX ccedilla comma -50 KPX ccedilla h -18 KPX ccedilla k -18 KPX ccedilla kcommaaccent -18 KPX ccedilla period -50 KPX colon space -37 KPX comma quotedblright -37 KPX comma quoteright -37 KPX comma space -37 KPX e comma -37 KPX e period -37 KPX eacute comma -37 KPX eacute period -37 KPX ecaron comma -37 KPX ecaron period -37 KPX ecircumflex comma -37 KPX ecircumflex period -37 KPX edieresis comma -37 KPX edieresis period -37 KPX edotaccent comma -37 KPX edotaccent period -37 KPX egrave comma -37 KPX egrave period -37 KPX emacron comma -37 KPX emacron period -37 KPX eogonek comma -37 KPX eogonek period -37 KPX f comma -75 KPX f o -10 KPX f oacute -10 KPX f ocircumflex -10 KPX f odieresis -10 KPX f ograve -10 KPX f ohungarumlaut -10 KPX f omacron -10 KPX f oslash -10 KPX f otilde -10 KPX f period -75 KPX f quotedblright 75 KPX f quoteright 75 KPX g comma -50 KPX g period -50 KPX gbreve comma -50 KPX gbreve period -50 KPX gcommaaccent comma -50 KPX gcommaaccent period -50 KPX l y -10 KPX l yacute -10 KPX l ydieresis -10 KPX lacute y -10 KPX lacute yacute -10 KPX lacute ydieresis -10 KPX lcommaaccent y -10 KPX lcommaaccent yacute -10 KPX lcommaaccent ydieresis -10 KPX lslash y -10 KPX lslash yacute -10 KPX lslash ydieresis -10 KPX o comma -50 KPX o period -50 KPX oacute comma -50 KPX oacute period -50 KPX ocircumflex comma -50 KPX ocircumflex period -50 KPX odieresis comma -50 KPX odieresis period -50 KPX ograve comma -50 KPX ograve period -50 KPX ohungarumlaut comma -50 KPX ohungarumlaut period -50 KPX omacron comma -50 KPX omacron period -50 KPX oslash comma -50 KPX oslash period -50 KPX otilde comma -50 KPX otilde period -50 KPX p comma -50 KPX p period -50 KPX period quotedblright -37 KPX period quoteright -37 KPX period space -37 KPX quotedblleft A -75 KPX quotedblleft Aacute -75 KPX quotedblleft Abreve -75 KPX quotedblleft Acircumflex -75 KPX quotedblleft Adieresis -75 KPX quotedblleft Agrave -75 KPX quotedblleft Amacron -75 KPX quotedblleft Aogonek -75 KPX quotedblleft Aring -75 KPX quotedblleft Atilde -75 KPX quotedblright space -37 KPX quoteleft A -75 KPX quoteleft Aacute -75 KPX quoteleft Abreve -75 KPX quoteleft Acircumflex -75 KPX quoteleft Adieresis -75 KPX quoteleft Agrave -75 KPX quoteleft Amacron -75 KPX quoteleft Aogonek -75 KPX quoteleft Aring -75 KPX quoteleft Atilde -75 KPX quoteleft quoteleft -37 KPX quoteright d -37 KPX quoteright dcroat -37 KPX quoteright quoteright -37 KPX quoteright s -25 KPX quoteright sacute -25 KPX quoteright scaron -25 KPX quoteright scedilla -25 KPX quoteright scommaaccent -25 KPX r colon -25 KPX r comma -125 KPX r hyphen -75 KPX r k -18 KPX r kcommaaccent -18 KPX r period -125 KPX r s -10 KPX r sacute -10 KPX r scaron -10 KPX r scedilla -10 KPX r scommaaccent -10 KPX r semicolon -25 KPX racute colon -25 KPX racute comma -125 KPX racute hyphen -75 KPX racute k -18 KPX racute kcommaaccent -18 KPX racute period -125 KPX racute s -10 KPX racute sacute -10 KPX racute scaron -10 KPX racute scedilla -10 KPX racute scommaaccent -10 KPX racute semicolon -25 KPX rcaron colon -25 KPX rcaron comma -125 KPX rcaron hyphen -75 KPX rcaron k -18 KPX rcaron kcommaaccent -18 KPX rcaron period -125 KPX rcaron s -10 KPX rcaron sacute -10 KPX rcaron scaron -10 KPX rcaron scedilla -10 KPX rcaron scommaaccent -10 KPX rcaron semicolon -25 KPX rcommaaccent colon -25 KPX rcommaaccent comma -125 KPX rcommaaccent hyphen -75 KPX rcommaaccent k -18 KPX rcommaaccent kcommaaccent -18 KPX rcommaaccent period -125 KPX rcommaaccent s -10 KPX rcommaaccent sacute -10 KPX rcommaaccent scaron -10 KPX rcommaaccent scedilla -10 KPX rcommaaccent scommaaccent -10 KPX rcommaaccent semicolon -25 KPX s comma -50 KPX s period -50 KPX sacute comma -50 KPX sacute period -50 KPX scaron comma -50 KPX scaron period -50 KPX scedilla comma -50 KPX scedilla period -50 KPX scommaaccent comma -50 KPX scommaaccent period -50 KPX semicolon space -37 KPX space A -37 KPX space Aacute -37 KPX space Abreve -37 KPX space Acircumflex -37 KPX space Adieresis -37 KPX space Agrave -37 KPX space Amacron -37 KPX space Aogonek -37 KPX space Aring -37 KPX space Atilde -37 KPX space T -37 KPX space Tcaron -37 KPX space Tcommaaccent -37 KPX space V -37 KPX space W -37 KPX space Y -37 KPX space Yacute -37 KPX space Ydieresis -37 KPX space quotedblleft -37 KPX space quoteleft -37 KPX v comma -75 KPX v period -75 KPX w comma -75 KPX w period -75 KPX y comma -75 KPX y period -75 KPX yacute comma -75 KPX yacute period -75 KPX ydieresis comma -75 KPX ydieresis period -75 EndKernPairs EndKernData EndFontMetrics a2ps-4.14/afm/pbkli.afm0000644000175000017500000007740310674334152014176 0ustar mhattamhattaStartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1989, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Mon Jun 23 16:36:46 1997 Comment UniqueID 43078 Comment VMusage 44679 55704 FontName Bookman-LightItalic FullName ITC Bookman Light Italic FamilyName ITC Bookman Weight Light ItalicAngle -10 IsFixedPitch false FontBBox -228 -250 1269 883 UnderlinePosition -100 UnderlineThickness 50 Version 002.000 Notice Copyright (c) 1985, 1987, 1989, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.ITC Bookman is a registered trademark of International Typeface Corporation. EncodingScheme AdobeStandardEncoding CapHeight 681 XHeight 494 Ascender 717 Descender -228 StdHW 42 StdVW 96 StartCharMetrics 314 C 32 ; WX 300 ; N space ; B 0 0 0 0 ; C 33 ; WX 320 ; N exclam ; B 103 -8 342 698 ; C 34 ; WX 360 ; N quotedbl ; B 107 468 402 699 ; C 35 ; WX 620 ; N numbersign ; B 107 0 598 681 ; C 36 ; WX 620 ; N dollar ; B 78 -85 619 762 ; C 37 ; WX 800 ; N percent ; B 56 -8 811 691 ; C 38 ; WX 820 ; N ampersand ; B 65 -18 848 698 ; C 39 ; WX 280 ; N quoteright ; B 148 470 288 698 ; C 40 ; WX 280 ; N parenleft ; B 96 -146 383 727 ; C 41 ; WX 280 ; N parenright ; B -8 -146 279 727 ; C 42 ; WX 440 ; N asterisk ; B 139 324 505 698 ; C 43 ; WX 600 ; N plus ; B 91 43 595 548 ; C 44 ; WX 300 ; N comma ; B 88 -115 227 112 ; C 45 ; WX 320 ; N hyphen ; B 78 269 336 325 ; C 46 ; WX 300 ; N period ; B 96 -8 231 127 ; C 47 ; WX 600 ; N slash ; B 104 -149 562 717 ; C 48 ; WX 620 ; N zero ; B 86 -17 646 698 ; C 49 ; WX 620 ; N one ; B 154 0 500 681 ; C 50 ; WX 620 ; N two ; B 66 0 636 698 ; C 51 ; WX 620 ; N three ; B 55 -17 622 698 ; C 52 ; WX 620 ; N four ; B 69 0 634 681 ; C 53 ; WX 620 ; N five ; B 70 -17 614 681 ; C 54 ; WX 620 ; N six ; B 89 -17 657 698 ; C 55 ; WX 620 ; N seven ; B 143 0 672 681 ; C 56 ; WX 620 ; N eight ; B 61 -17 655 698 ; C 57 ; WX 620 ; N nine ; B 77 -17 649 698 ; C 58 ; WX 300 ; N colon ; B 96 -8 292 494 ; C 59 ; WX 300 ; N semicolon ; B 88 -114 292 494 ; C 60 ; WX 600 ; N less ; B 79 33 588 561 ; C 61 ; WX 600 ; N equal ; B 91 161 595 433 ; C 62 ; WX 600 ; N greater ; B 93 33 602 561 ; C 63 ; WX 540 ; N question ; B 114 -8 604 698 ; C 64 ; WX 780 ; N at ; B 102 -17 802 698 ; C 65 ; WX 700 ; N A ; B -25 0 720 681 ; C 66 ; WX 720 ; N B ; B 21 0 746 681 ; C 67 ; WX 720 ; N C ; B 88 -17 746 698 ; C 68 ; WX 740 ; N D ; B 21 0 782 681 ; C 69 ; WX 680 ; N E ; B 21 0 736 681 ; C 70 ; WX 620 ; N F ; B 21 0 743 681 ; C 71 ; WX 760 ; N G ; B 88 -17 813 698 ; C 72 ; WX 800 ; N H ; B 21 0 888 681 ; C 73 ; WX 320 ; N I ; B 21 0 412 681 ; C 74 ; WX 560 ; N J ; B -2 -17 666 681 ; C 75 ; WX 720 ; N K ; B 21 0 804 681 ; C 76 ; WX 580 ; N L ; B 21 0 656 681 ; C 77 ; WX 860 ; N M ; B 18 0 956 681 ; C 78 ; WX 720 ; N N ; B 18 0 823 681 ; C 79 ; WX 760 ; N O ; B 88 -17 799 698 ; C 80 ; WX 600 ; N P ; B 21 0 681 681 ; C 81 ; WX 780 ; N Q ; B 61 -191 812 698 ; C 82 ; WX 700 ; N R ; B 21 0 736 681 ; C 83 ; WX 640 ; N S ; B 61 -17 668 698 ; C 84 ; WX 600 ; N T ; B 50 0 725 681 ; C 85 ; WX 720 ; N U ; B 118 -17 842 681 ; C 86 ; WX 680 ; N V ; B 87 0 815 681 ; C 87 ; WX 960 ; N W ; B 87 0 1095 681 ; C 88 ; WX 700 ; N X ; B -25 0 815 681 ; C 89 ; WX 660 ; N Y ; B 87 0 809 681 ; C 90 ; WX 580 ; N Z ; B 8 0 695 681 ; C 91 ; WX 260 ; N bracketleft ; B 56 -136 351 717 ; C 92 ; WX 600 ; N backslash ; B 84 0 542 717 ; C 93 ; WX 260 ; N bracketright ; B 15 -136 309 717 ; C 94 ; WX 600 ; N asciicircum ; B 97 276 599 681 ; C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; C 96 ; WX 280 ; N quoteleft ; B 191 470 330 698 ; C 97 ; WX 620 ; N a ; B 71 -8 686 494 ; C 98 ; WX 600 ; N b ; B 88 -8 621 717 ; C 99 ; WX 480 ; N c ; B 65 -8 522 494 ; C 100 ; WX 640 ; N d ; B 65 -8 695 717 ; C 101 ; WX 540 ; N e ; B 65 -8 575 494 ; C 102 ; WX 340 ; N f ; B -160 -218 557 725 ; L i fi ; L l fl ; C 103 ; WX 560 ; N g ; B 4 -221 581 494 ; C 104 ; WX 620 ; N h ; B 88 -8 689 717 ; C 105 ; WX 280 ; N i ; B 88 -8 351 663 ; C 106 ; WX 280 ; N j ; B -200 -221 308 663 ; C 107 ; WX 600 ; N k ; B 88 -8 657 717 ; C 108 ; WX 280 ; N l ; B 100 -8 342 717 ; C 109 ; WX 880 ; N m ; B 88 -8 952 494 ; C 110 ; WX 620 ; N n ; B 88 -8 673 494 ; C 111 ; WX 540 ; N o ; B 65 -8 572 494 ; C 112 ; WX 600 ; N p ; B -24 -212 621 494 ; C 113 ; WX 560 ; N q ; B 65 -212 584 494 ; C 114 ; WX 400 ; N r ; B 88 0 481 494 ; C 115 ; WX 540 ; N s ; B 65 -8 547 494 ; C 116 ; WX 340 ; N t ; B 88 -8 411 664 ; C 117 ; WX 620 ; N u ; B 88 -8 686 484 ; C 118 ; WX 540 ; N v ; B 88 -8 562 494 ; C 119 ; WX 880 ; N w ; B 88 -8 893 494 ; C 120 ; WX 540 ; N x ; B 9 -8 626 494 ; C 121 ; WX 600 ; N y ; B 60 -221 609 484 ; C 122 ; WX 520 ; N z ; B 38 -8 561 494 ; C 123 ; WX 360 ; N braceleft ; B 122 -191 442 718 ; C 124 ; WX 600 ; N bar ; B 294 -250 372 750 ; C 125 ; WX 380 ; N braceright ; B 13 -192 333 717 ; C 126 ; WX 600 ; N asciitilde ; B 91 207 595 386 ; C 161 ; WX 320 ; N exclamdown ; B 73 -213 301 494 ; C 162 ; WX 620 ; N cent ; B 148 -29 596 715 ; C 163 ; WX 620 ; N sterling ; B 4 -17 702 698 ; C 164 ; WX 20 ; N fraction ; B -228 0 323 681 ; C 165 ; WX 620 ; N yen ; B 71 0 735 681 ; C 166 ; WX 620 ; N florin ; B -26 -218 692 725 ; C 167 ; WX 620 ; N section ; B 38 -178 638 698 ; C 168 ; WX 620 ; N currency ; B 100 89 605 591 ; C 169 ; WX 200 ; N quotesingle ; B 99 473 247 698 ; C 170 ; WX 440 ; N quotedblleft ; B 191 470 493 698 ; C 171 ; WX 300 ; N guillemotleft ; B 70 129 313 434 ; C 172 ; WX 180 ; N guilsinglleft ; B 75 129 208 434 ; C 173 ; WX 180 ; N guilsinglright ; B 70 129 203 434 ; C 174 ; WX 640 ; N fi ; B -159 -222 709 725 ; C 175 ; WX 660 ; N fl ; B -159 -218 713 725 ; C 177 ; WX 500 ; N endash ; B 33 269 561 325 ; C 178 ; WX 620 ; N dagger ; B 192 -130 570 698 ; C 179 ; WX 620 ; N daggerdbl ; B 144 -122 566 698 ; C 180 ; WX 300 ; N periodcentered ; B 137 229 272 364 ; C 182 ; WX 620 ; N paragraph ; B 112 0 718 681 ; C 183 ; WX 460 ; N bullet ; B 100 170 444 511 ; C 184 ; WX 320 ; N quotesinglbase ; B 87 -114 226 113 ; C 185 ; WX 480 ; N quotedblbase ; B 87 -114 390 113 ; C 186 ; WX 440 ; N quotedblright ; B 148 470 451 698 ; C 187 ; WX 300 ; N guillemotright ; B 60 129 303 434 ; C 188 ; WX 1000 ; N ellipsis ; B 99 -8 900 127 ; C 189 ; WX 1180 ; N perthousand ; B 56 -8 1199 691 ; C 191 ; WX 540 ; N questiondown ; B 18 -212 508 494 ; C 193 ; WX 340 ; N grave ; B 182 551 377 706 ; C 194 ; WX 320 ; N acute ; B 208 551 403 706 ; C 195 ; WX 440 ; N circumflex ; B 176 571 479 685 ; C 196 ; WX 440 ; N tilde ; B 180 586 488 671 ; C 197 ; WX 440 ; N macron ; B 178 599 484 658 ; C 198 ; WX 440 ; N breve ; B 191 577 500 680 ; C 199 ; WX 260 ; N dotaccent ; B 189 572 310 693 ; C 200 ; WX 420 ; N dieresis ; B 185 542 467 661 ; C 202 ; WX 300 ; N ring ; B 178 551 334 706 ; C 203 ; WX 320 ; N cedilla ; B 45 -178 240 0 ; C 205 ; WX 340 ; N hungarumlaut ; B 188 547 520 694 ; C 206 ; WX 260 ; N ogonek ; B 71 -153 282 0 ; C 207 ; WX 440 ; N caron ; B 218 571 521 684 ; C 208 ; WX 1000 ; N emdash ; B 33 269 1061 325 ; C 225 ; WX 1220 ; N AE ; B -45 0 1269 681 ; C 227 ; WX 440 ; N ordfeminine ; B 130 396 513 698 ; C 232 ; WX 580 ; N Lslash ; B 21 0 656 681 ; C 233 ; WX 760 ; N Oslash ; B 88 -95 799 777 ; C 234 ; WX 1180 ; N OE ; B 88 -17 1237 698 ; C 235 ; WX 400 ; N ordmasculine ; B 139 396 455 698 ; C 241 ; WX 880 ; N ae ; B 71 -8 918 494 ; C 245 ; WX 280 ; N dotlessi ; B 88 -8 351 484 ; C 248 ; WX 340 ; N lslash ; B 33 -8 373 717 ; C 249 ; WX 540 ; N oslash ; B 65 -49 571 532 ; C 250 ; WX 900 ; N oe ; B 65 -8 948 494 ; C 251 ; WX 620 ; N germandbls ; B -121 -111 653 698 ; C -1 ; WX 320 ; N Idieresis ; B 21 0 447 865 ; C -1 ; WX 540 ; N eacute ; B 65 -8 575 706 ; C -1 ; WX 620 ; N abreve ; B 71 -8 686 680 ; C -1 ; WX 620 ; N uhungarumlaut ; B 88 -8 686 694 ; C -1 ; WX 540 ; N ecaron ; B 65 -8 575 684 ; C -1 ; WX 660 ; N Ydieresis ; B 87 0 809 865 ; C -1 ; WX 600 ; N divide ; B 91 46 595 548 ; C -1 ; WX 660 ; N Yacute ; B 87 0 809 883 ; C -1 ; WX 700 ; N Acircumflex ; B -25 0 720 862 ; C -1 ; WX 620 ; N aacute ; B 71 -8 686 706 ; C -1 ; WX 720 ; N Ucircumflex ; B 118 -17 842 862 ; C -1 ; WX 600 ; N yacute ; B 60 -221 609 706 ; C -1 ; WX 540 ; N scommaaccent ; B 65 -250 547 494 ; C -1 ; WX 540 ; N ecircumflex ; B 65 -8 575 685 ; C -1 ; WX 720 ; N Uring ; B 118 -17 842 883 ; C -1 ; WX 720 ; N Udieresis ; B 118 -17 842 865 ; C -1 ; WX 620 ; N aogonek ; B 71 -153 686 494 ; C -1 ; WX 720 ; N Uacute ; B 118 -17 842 883 ; C -1 ; WX 620 ; N uogonek ; B 88 -153 686 484 ; C -1 ; WX 680 ; N Edieresis ; B 21 0 736 865 ; C -1 ; WX 740 ; N Dcroat ; B 21 0 782 681 ; C -1 ; WX 250 ; N commaaccent ; B 92 -250 217 -50 ; C -1 ; WX 740 ; N copyright ; B 84 -17 784 698 ; C -1 ; WX 680 ; N Emacron ; B 21 0 736 835 ; C -1 ; WX 480 ; N ccaron ; B 65 -8 561 684 ; C -1 ; WX 620 ; N aring ; B 71 -8 686 706 ; C -1 ; WX 720 ; N Ncommaaccent ; B 18 -250 823 681 ; C -1 ; WX 280 ; N lacute ; B 100 -8 383 883 ; C -1 ; WX 620 ; N agrave ; B 71 -8 686 706 ; C -1 ; WX 600 ; N Tcommaaccent ; B 50 -250 725 681 ; C -1 ; WX 720 ; N Cacute ; B 88 -17 746 883 ; C -1 ; WX 620 ; N atilde ; B 71 -8 686 671 ; C -1 ; WX 680 ; N Edotaccent ; B 21 0 736 883 ; C -1 ; WX 540 ; N scaron ; B 65 -8 551 684 ; C -1 ; WX 540 ; N scedilla ; B 65 -178 547 494 ; C -1 ; WX 280 ; N iacute ; B 88 -8 363 706 ; C -1 ; WX 471 ; N lozenge ; B 10 0 462 728 ; C -1 ; WX 700 ; N Rcaron ; B 21 0 736 861 ; C -1 ; WX 760 ; N Gcommaaccent ; B 88 -250 813 698 ; C -1 ; WX 620 ; N ucircumflex ; B 88 -8 686 685 ; C -1 ; WX 620 ; N acircumflex ; B 71 -8 686 685 ; C -1 ; WX 700 ; N Amacron ; B -25 0 720 835 ; C -1 ; WX 400 ; N rcaron ; B 88 0 481 684 ; C -1 ; WX 480 ; N ccedilla ; B 65 -178 522 494 ; C -1 ; WX 580 ; N Zdotaccent ; B 8 0 695 883 ; C -1 ; WX 600 ; N Thorn ; B 21 0 656 681 ; C -1 ; WX 760 ; N Omacron ; B 88 -17 799 835 ; C -1 ; WX 700 ; N Racute ; B 21 0 736 883 ; C -1 ; WX 640 ; N Sacute ; B 61 -17 668 883 ; C -1 ; WX 710 ; N dcaron ; B 65 -8 806 723 ; C -1 ; WX 720 ; N Umacron ; B 118 -17 842 835 ; C -1 ; WX 620 ; N uring ; B 88 -8 686 706 ; C -1 ; WX 372 ; N threesuperior ; B 70 269 439 698 ; C -1 ; WX 760 ; N Ograve ; B 88 -17 799 883 ; C -1 ; WX 700 ; N Agrave ; B -25 0 720 883 ; C -1 ; WX 700 ; N Abreve ; B -25 0 720 857 ; C -1 ; WX 600 ; N multiply ; B 91 44 595 548 ; C -1 ; WX 620 ; N uacute ; B 88 -8 686 706 ; C -1 ; WX 600 ; N Tcaron ; B 50 0 725 861 ; C -1 ; WX 476 ; N partialdiff ; B 17 -38 459 710 ; C -1 ; WX 600 ; N ydieresis ; B 60 -221 609 688 ; C -1 ; WX 720 ; N Nacute ; B 18 0 823 883 ; C -1 ; WX 280 ; N icircumflex ; B 76 -8 379 685 ; C -1 ; WX 680 ; N Ecircumflex ; B 21 0 736 862 ; C -1 ; WX 620 ; N adieresis ; B 71 -8 686 688 ; C -1 ; WX 540 ; N edieresis ; B 65 -8 575 688 ; C -1 ; WX 480 ; N cacute ; B 65 -8 522 706 ; C -1 ; WX 620 ; N nacute ; B 88 -8 673 706 ; C -1 ; WX 620 ; N umacron ; B 88 -8 686 658 ; C -1 ; WX 720 ; N Ncaron ; B 18 0 823 861 ; C -1 ; WX 320 ; N Iacute ; B 21 0 433 883 ; C -1 ; WX 600 ; N plusminus ; B 91 0 595 548 ; C -1 ; WX 600 ; N brokenbar ; B 294 -175 372 675 ; C -1 ; WX 740 ; N registered ; B 84 -17 784 698 ; C -1 ; WX 760 ; N Gbreve ; B 88 -17 813 857 ; C -1 ; WX 320 ; N Idotaccent ; B 21 0 412 883 ; C -1 ; WX 600 ; N summation ; B 15 -10 586 706 ; C -1 ; WX 680 ; N Egrave ; B 21 0 736 883 ; C -1 ; WX 400 ; N racute ; B 88 0 481 706 ; C -1 ; WX 540 ; N omacron ; B 65 -8 572 658 ; C -1 ; WX 580 ; N Zacute ; B 8 0 695 883 ; C -1 ; WX 580 ; N Zcaron ; B 8 0 695 861 ; C -1 ; WX 549 ; N greaterequal ; B 26 0 523 666 ; C -1 ; WX 740 ; N Eth ; B 21 0 782 681 ; C -1 ; WX 720 ; N Ccedilla ; B 88 -178 746 698 ; C -1 ; WX 280 ; N lcommaaccent ; B 100 -250 342 717 ; C -1 ; WX 370 ; N tcaron ; B 88 -8 476 737 ; C -1 ; WX 540 ; N eogonek ; B 65 -160 575 494 ; C -1 ; WX 720 ; N Uogonek ; B 118 -168 842 681 ; C -1 ; WX 700 ; N Aacute ; B -25 0 720 883 ; C -1 ; WX 700 ; N Adieresis ; B -25 0 720 865 ; C -1 ; WX 540 ; N egrave ; B 65 -8 575 706 ; C -1 ; WX 520 ; N zacute ; B 38 -8 561 706 ; C -1 ; WX 280 ; N iogonek ; B 88 -157 351 663 ; C -1 ; WX 760 ; N Oacute ; B 88 -17 799 883 ; C -1 ; WX 540 ; N oacute ; B 65 -8 572 706 ; C -1 ; WX 620 ; N amacron ; B 71 -8 686 658 ; C -1 ; WX 540 ; N sacute ; B 65 -8 547 706 ; C -1 ; WX 280 ; N idieresis ; B 88 -8 377 688 ; C -1 ; WX 760 ; N Ocircumflex ; B 88 -17 799 862 ; C -1 ; WX 720 ; N Ugrave ; B 118 -17 842 883 ; C -1 ; WX 614 ; N Delta ; B 6 0 608 688 ; C -1 ; WX 600 ; N thorn ; B -24 -212 621 717 ; C -1 ; WX 372 ; N twosuperior ; B 68 279 439 698 ; C -1 ; WX 760 ; N Odieresis ; B 88 -17 799 865 ; C -1 ; WX 620 ; N mu ; B 53 -221 686 484 ; C -1 ; WX 280 ; N igrave ; B 88 -8 351 706 ; C -1 ; WX 540 ; N ohungarumlaut ; B 65 -8 590 694 ; C -1 ; WX 680 ; N Eogonek ; B 21 -153 736 681 ; C -1 ; WX 640 ; N dcroat ; B 65 -8 725 717 ; C -1 ; WX 930 ; N threequarters ; B 99 0 913 691 ; C -1 ; WX 640 ; N Scedilla ; B 61 -178 668 698 ; C -1 ; WX 350 ; N lcaron ; B 100 -8 446 722 ; C -1 ; WX 720 ; N Kcommaaccent ; B 21 -250 804 681 ; C -1 ; WX 580 ; N Lacute ; B 21 0 656 883 ; C -1 ; WX 980 ; N trademark ; B 69 277 965 681 ; C -1 ; WX 540 ; N edotaccent ; B 65 -8 575 720 ; C -1 ; WX 320 ; N Igrave ; B 21 0 412 883 ; C -1 ; WX 320 ; N Imacron ; B 21 0 454 835 ; C -1 ; WX 580 ; N Lcaron ; B 21 0 656 698 ; C -1 ; WX 930 ; N onehalf ; B 91 0 925 681 ; C -1 ; WX 549 ; N lessequal ; B 26 0 523 666 ; C -1 ; WX 540 ; N ocircumflex ; B 65 -8 572 685 ; C -1 ; WX 620 ; N ntilde ; B 88 -8 673 671 ; C -1 ; WX 720 ; N Uhungarumlaut ; B 118 -17 842 871 ; C -1 ; WX 680 ; N Eacute ; B 21 0 736 883 ; C -1 ; WX 540 ; N emacron ; B 65 -8 594 658 ; C -1 ; WX 560 ; N gbreve ; B 4 -221 581 680 ; C -1 ; WX 930 ; N onequarter ; B 91 0 913 681 ; C -1 ; WX 640 ; N Scaron ; B 61 -17 668 861 ; C -1 ; WX 640 ; N Scommaaccent ; B 61 -250 668 698 ; C -1 ; WX 760 ; N Ohungarumlaut ; B 88 -17 799 871 ; C -1 ; WX 400 ; N degree ; B 120 398 420 698 ; C -1 ; WX 540 ; N ograve ; B 65 -8 572 706 ; C -1 ; WX 720 ; N Ccaron ; B 88 -17 746 861 ; C -1 ; WX 620 ; N ugrave ; B 88 -8 686 706 ; C -1 ; WX 453 ; N radical ; B -4 -80 458 762 ; C -1 ; WX 740 ; N Dcaron ; B 21 0 782 861 ; C -1 ; WX 400 ; N rcommaaccent ; B 67 -250 481 494 ; C -1 ; WX 720 ; N Ntilde ; B 18 0 823 848 ; C -1 ; WX 540 ; N otilde ; B 65 -8 572 671 ; C -1 ; WX 700 ; N Rcommaaccent ; B 21 -250 736 681 ; C -1 ; WX 580 ; N Lcommaaccent ; B 21 -250 656 681 ; C -1 ; WX 700 ; N Atilde ; B -25 0 720 848 ; C -1 ; WX 700 ; N Aogonek ; B -25 -153 748 681 ; C -1 ; WX 700 ; N Aring ; B -25 0 720 883 ; C -1 ; WX 760 ; N Otilde ; B 88 -17 799 848 ; C -1 ; WX 520 ; N zdotaccent ; B 38 -8 561 720 ; C -1 ; WX 680 ; N Ecaron ; B 21 0 736 861 ; C -1 ; WX 320 ; N Iogonek ; B 21 -153 412 681 ; C -1 ; WX 600 ; N kcommaaccent ; B 88 -250 657 717 ; C -1 ; WX 600 ; N minus ; B 91 259 595 335 ; C -1 ; WX 320 ; N Icircumflex ; B 21 0 449 862 ; C -1 ; WX 620 ; N ncaron ; B 88 -8 673 684 ; C -1 ; WX 340 ; N tcommaaccent ; B 88 -250 411 664 ; C -1 ; WX 600 ; N logicalnot ; B 91 163 595 433 ; C -1 ; WX 540 ; N odieresis ; B 65 -8 572 688 ; C -1 ; WX 620 ; N udieresis ; B 88 -8 686 688 ; C -1 ; WX 549 ; N notequal ; B 12 -31 537 547 ; C -1 ; WX 560 ; N gcommaaccent ; B 4 -221 581 782 ; C -1 ; WX 540 ; N eth ; B 65 -8 642 725 ; C -1 ; WX 520 ; N zcaron ; B 38 -8 561 684 ; C -1 ; WX 620 ; N ncommaaccent ; B 88 -250 673 494 ; C -1 ; WX 372 ; N onesuperior ; B 114 279 339 688 ; C -1 ; WX 280 ; N imacron ; B 88 -8 404 658 ; EndCharMetrics StartKernData StartKernPairs 828 KPX A T -5 KPX A Tcaron -5 KPX A Tcommaaccent -5 KPX A V -78 KPX A W -73 KPX A Y -62 KPX A Yacute -62 KPX A Ydieresis -62 KPX Aacute T -5 KPX Aacute Tcaron -5 KPX Aacute Tcommaaccent -5 KPX Aacute V -78 KPX Aacute W -73 KPX Aacute Y -62 KPX Aacute Yacute -62 KPX Aacute Ydieresis -62 KPX Abreve T -5 KPX Abreve Tcaron -5 KPX Abreve Tcommaaccent -5 KPX Abreve V -78 KPX Abreve W -73 KPX Abreve Y -62 KPX Abreve Yacute -62 KPX Abreve Ydieresis -62 KPX Acircumflex T -5 KPX Acircumflex Tcaron -5 KPX Acircumflex Tcommaaccent -5 KPX Acircumflex V -78 KPX Acircumflex W -73 KPX Acircumflex Y -62 KPX Acircumflex Yacute -62 KPX Acircumflex Ydieresis -62 KPX Adieresis T -5 KPX Adieresis Tcaron -5 KPX Adieresis Tcommaaccent -5 KPX Adieresis V -78 KPX Adieresis W -73 KPX Adieresis Y -62 KPX Adieresis Yacute -62 KPX Adieresis Ydieresis -62 KPX Agrave T -5 KPX Agrave Tcaron -5 KPX Agrave Tcommaaccent -5 KPX Agrave V -78 KPX Agrave W -73 KPX Agrave Y -62 KPX Agrave Yacute -62 KPX Agrave Ydieresis -62 KPX Amacron T -5 KPX Amacron Tcaron -5 KPX Amacron Tcommaaccent -5 KPX Amacron V -78 KPX Amacron W -73 KPX Amacron Y -62 KPX Amacron Yacute -62 KPX Amacron Ydieresis -62 KPX Aogonek T -5 KPX Aogonek Tcaron -5 KPX Aogonek Tcommaaccent -5 KPX Aogonek V -78 KPX Aogonek W -73 KPX Aogonek Y -62 KPX Aogonek Yacute -62 KPX Aogonek Ydieresis -62 KPX Aring T -5 KPX Aring Tcaron -5 KPX Aring Tcommaaccent -5 KPX Aring V -78 KPX Aring W -73 KPX Aring Y -62 KPX Aring Yacute -62 KPX Aring Ydieresis -62 KPX Atilde T -5 KPX Atilde Tcaron -5 KPX Atilde Tcommaaccent -5 KPX Atilde V -78 KPX Atilde W -73 KPX Atilde Y -62 KPX Atilde Yacute -62 KPX Atilde Ydieresis -62 KPX F A -16 KPX F Aacute -16 KPX F Abreve -16 KPX F Acircumflex -16 KPX F Adieresis -16 KPX F Agrave -16 KPX F Amacron -16 KPX F Aogonek -16 KPX F Aring -16 KPX F Atilde -16 KPX F comma -98 KPX F period -97 KPX L V 4 KPX L W 9 KPX L Y 7 KPX L Yacute 7 KPX L Ydieresis 7 KPX L y 20 KPX L yacute 20 KPX L ydieresis 20 KPX Lacute V 4 KPX Lacute W 9 KPX Lacute Y 7 KPX Lacute Yacute 7 KPX Lacute Ydieresis 7 KPX Lacute y 20 KPX Lacute yacute 20 KPX Lacute ydieresis 20 KPX Lcaron V 4 KPX Lcaron W 9 KPX Lcaron Y 7 KPX Lcaron Yacute 7 KPX Lcaron Ydieresis 7 KPX Lcaron y 20 KPX Lcaron yacute 20 KPX Lcaron ydieresis 20 KPX Lcommaaccent V 4 KPX Lcommaaccent W 9 KPX Lcommaaccent Y 7 KPX Lcommaaccent Yacute 7 KPX Lcommaaccent Ydieresis 7 KPX Lcommaaccent y 20 KPX Lcommaaccent yacute 20 KPX Lcommaaccent ydieresis 20 KPX Lslash V 4 KPX Lslash W 9 KPX Lslash Y 7 KPX Lslash Yacute 7 KPX Lslash Ydieresis 7 KPX Lslash y 20 KPX Lslash yacute 20 KPX Lslash ydieresis 20 KPX P A -30 KPX P Aacute -30 KPX P Abreve -30 KPX P Acircumflex -30 KPX P Adieresis -30 KPX P Agrave -30 KPX P Amacron -30 KPX P Aogonek -30 KPX P Aring -30 KPX P Atilde -30 KPX P comma -106 KPX P period -105 KPX R T 65 KPX R Tcaron 65 KPX R Tcommaaccent 65 KPX R V 2 KPX R W 2 KPX R Y 11 KPX R Yacute 11 KPX R Ydieresis 11 KPX Racute T 65 KPX Racute Tcaron 65 KPX Racute Tcommaaccent 65 KPX Racute V 2 KPX Racute W 2 KPX Racute Y 11 KPX Racute Yacute 11 KPX Racute Ydieresis 11 KPX Rcaron T 65 KPX Rcaron Tcaron 65 KPX Rcaron Tcommaaccent 65 KPX Rcaron V 2 KPX Rcaron W 2 KPX Rcaron Y 11 KPX Rcaron Yacute 11 KPX Rcaron Ydieresis 11 KPX Rcommaaccent T 65 KPX Rcommaaccent Tcaron 65 KPX Rcommaaccent Tcommaaccent 65 KPX Rcommaaccent V 2 KPX Rcommaaccent W 2 KPX Rcommaaccent Y 11 KPX Rcommaaccent Yacute 11 KPX Rcommaaccent Ydieresis 11 KPX T A -14 KPX T Aacute -14 KPX T Abreve -14 KPX T Acircumflex -14 KPX T Adieresis -14 KPX T Agrave -14 KPX T Amacron -14 KPX T Aogonek -14 KPX T Aring -14 KPX T Atilde -14 KPX T a 9 KPX T aacute 9 KPX T abreve 9 KPX T acircumflex 9 KPX T adieresis 9 KPX T agrave 9 KPX T amacron 9 KPX T aogonek 9 KPX T aring 9 KPX T atilde 9 KPX T c 16 KPX T cacute 16 KPX T ccaron 16 KPX T ccedilla 16 KPX T colon 48 KPX T comma -79 KPX T e 10 KPX T eacute 10 KPX T ecaron 10 KPX T ecircumflex 10 KPX T edieresis 10 KPX T edotaccent 10 KPX T egrave 10 KPX T emacron 10 KPX T eogonek 10 KPX T hyphen 20 KPX T i 71 KPX T iacute 71 KPX T icircumflex 71 KPX T idieresis 71 KPX T igrave 71 KPX T imacron 71 KPX T iogonek 71 KPX T o 14 KPX T oacute 14 KPX T ocircumflex 14 KPX T odieresis 14 KPX T ograve 14 KPX T ohungarumlaut 14 KPX T omacron 14 KPX T oslash 14 KPX T otilde 14 KPX T period -78 KPX T r 67 KPX T racute 67 KPX T rcaron 67 KPX T rcommaaccent 67 KPX T s -7 KPX T sacute -7 KPX T scaron -7 KPX T scedilla -7 KPX T scommaaccent -7 KPX T semicolon 48 KPX Tcaron A -14 KPX Tcaron Aacute -14 KPX Tcaron Abreve -14 KPX Tcaron Acircumflex -14 KPX Tcaron Adieresis -14 KPX Tcaron Agrave -14 KPX Tcaron Amacron -14 KPX Tcaron Aogonek -14 KPX Tcaron Aring -14 KPX Tcaron Atilde -14 KPX Tcaron a 9 KPX Tcaron aacute 9 KPX Tcaron abreve 9 KPX Tcaron acircumflex 9 KPX Tcaron adieresis 9 KPX Tcaron agrave 9 KPX Tcaron amacron 9 KPX Tcaron aogonek 9 KPX Tcaron aring 9 KPX Tcaron atilde 9 KPX Tcaron c 16 KPX Tcaron cacute 16 KPX Tcaron ccaron 16 KPX Tcaron ccedilla 16 KPX Tcaron colon 48 KPX Tcaron comma -79 KPX Tcaron e 10 KPX Tcaron eacute 10 KPX Tcaron ecaron 10 KPX Tcaron ecircumflex 10 KPX Tcaron edieresis 10 KPX Tcaron edotaccent 10 KPX Tcaron egrave 10 KPX Tcaron emacron 10 KPX Tcaron eogonek 10 KPX Tcaron hyphen 20 KPX Tcaron i 71 KPX Tcaron iacute 71 KPX Tcaron icircumflex 71 KPX Tcaron idieresis 71 KPX Tcaron igrave 71 KPX Tcaron imacron 71 KPX Tcaron iogonek 71 KPX Tcaron o 14 KPX Tcaron oacute 14 KPX Tcaron ocircumflex 14 KPX Tcaron odieresis 14 KPX Tcaron ograve 14 KPX Tcaron ohungarumlaut 14 KPX Tcaron omacron 14 KPX Tcaron oslash 14 KPX Tcaron otilde 14 KPX Tcaron period -78 KPX Tcaron r 67 KPX Tcaron racute 67 KPX Tcaron rcaron 67 KPX Tcaron rcommaaccent 67 KPX Tcaron s -7 KPX Tcaron sacute -7 KPX Tcaron scaron -7 KPX Tcaron scedilla -7 KPX Tcaron scommaaccent -7 KPX Tcaron semicolon 48 KPX Tcommaaccent A -14 KPX Tcommaaccent Aacute -14 KPX Tcommaaccent Abreve -14 KPX Tcommaaccent Acircumflex -14 KPX Tcommaaccent Adieresis -14 KPX Tcommaaccent Agrave -14 KPX Tcommaaccent Amacron -14 KPX Tcommaaccent Aogonek -14 KPX Tcommaaccent Aring -14 KPX Tcommaaccent Atilde -14 KPX Tcommaaccent a 9 KPX Tcommaaccent aacute 9 KPX Tcommaaccent abreve 9 KPX Tcommaaccent acircumflex 9 KPX Tcommaaccent adieresis 9 KPX Tcommaaccent agrave 9 KPX Tcommaaccent amacron 9 KPX Tcommaaccent aogonek 9 KPX Tcommaaccent aring 9 KPX Tcommaaccent atilde 9 KPX Tcommaaccent c 16 KPX Tcommaaccent cacute 16 KPX Tcommaaccent ccaron 16 KPX Tcommaaccent ccedilla 16 KPX Tcommaaccent colon 48 KPX Tcommaaccent comma -79 KPX Tcommaaccent e 10 KPX Tcommaaccent eacute 10 KPX Tcommaaccent ecaron 10 KPX Tcommaaccent ecircumflex 10 KPX Tcommaaccent edieresis 10 KPX Tcommaaccent edotaccent 10 KPX Tcommaaccent egrave 10 KPX Tcommaaccent emacron 10 KPX Tcommaaccent eogonek 10 KPX Tcommaaccent hyphen 20 KPX Tcommaaccent i 71 KPX Tcommaaccent iacute 71 KPX Tcommaaccent icircumflex 71 KPX Tcommaaccent idieresis 71 KPX Tcommaaccent igrave 71 KPX Tcommaaccent imacron 71 KPX Tcommaaccent iogonek 71 KPX Tcommaaccent o 14 KPX Tcommaaccent oacute 14 KPX Tcommaaccent ocircumflex 14 KPX Tcommaaccent odieresis 14 KPX Tcommaaccent ograve 14 KPX Tcommaaccent ohungarumlaut 14 KPX Tcommaaccent omacron 14 KPX Tcommaaccent oslash 14 KPX Tcommaaccent otilde 14 KPX Tcommaaccent period -78 KPX Tcommaaccent r 67 KPX Tcommaaccent racute 67 KPX Tcommaaccent rcaron 67 KPX Tcommaaccent rcommaaccent 67 KPX Tcommaaccent s -7 KPX Tcommaaccent sacute -7 KPX Tcommaaccent scaron -7 KPX Tcommaaccent scedilla -7 KPX Tcommaaccent scommaaccent -7 KPX Tcommaaccent semicolon 48 KPX V A -70 KPX V Aacute -70 KPX V Abreve -70 KPX V Acircumflex -70 KPX V Adieresis -70 KPX V Agrave -70 KPX V Amacron -70 KPX V Aogonek -70 KPX V Aring -70 KPX V Atilde -70 KPX V a -70 KPX V aacute -70 KPX V abreve -70 KPX V acircumflex -70 KPX V adieresis -70 KPX V agrave -70 KPX V amacron -70 KPX V aogonek -70 KPX V aring -70 KPX V atilde -70 KPX V colon -35 KPX V comma -109 KPX V e -70 KPX V eacute -70 KPX V ecaron -70 KPX V ecircumflex -70 KPX V edieresis -70 KPX V edotaccent -70 KPX V egrave -70 KPX V emacron -70 KPX V eogonek -70 KPX V hyphen 20 KPX V i 3 KPX V iacute 3 KPX V icircumflex 3 KPX V idieresis 13 KPX V igrave 13 KPX V imacron 13 KPX V iogonek 3 KPX V o -70 KPX V oacute -70 KPX V ocircumflex -70 KPX V odieresis -70 KPX V ograve -70 KPX V ohungarumlaut -70 KPX V omacron -70 KPX V oslash -70 KPX V otilde -70 KPX V period -100 KPX V r -20 KPX V racute -20 KPX V rcaron -20 KPX V rcommaaccent -20 KPX V semicolon -44 KPX V u -10 KPX V uacute -10 KPX V ucircumflex -10 KPX V udieresis -10 KPX V ugrave -10 KPX V uhungarumlaut -10 KPX V umacron -10 KPX V uogonek -10 KPX V uring -10 KPX V y -14 KPX V yacute -14 KPX V ydieresis -14 KPX W A -60 KPX W Aacute -60 KPX W Abreve -60 KPX W Acircumflex -60 KPX W Adieresis -60 KPX W Agrave -60 KPX W Amacron -60 KPX W Aogonek -60 KPX W Aring -60 KPX W Atilde -60 KPX W a -60 KPX W aacute -60 KPX W abreve -60 KPX W acircumflex -60 KPX W adieresis -60 KPX W agrave -60 KPX W amacron -60 KPX W aogonek -60 KPX W aring -60 KPX W atilde -60 KPX W colon -35 KPX W comma -109 KPX W e -60 KPX W eacute -60 KPX W ecaron -60 KPX W ecircumflex -60 KPX W edieresis -60 KPX W edotaccent -60 KPX W egrave -60 KPX W emacron -60 KPX W eogonek -60 KPX W hyphen 20 KPX W i 3 KPX W iacute 3 KPX W icircumflex 13 KPX W idieresis 13 KPX W igrave 13 KPX W imacron 13 KPX W iogonek 3 KPX W o -60 KPX W oacute -60 KPX W ocircumflex -60 KPX W odieresis -60 KPX W ograve -60 KPX W ohungarumlaut -60 KPX W omacron -60 KPX W oslash -60 KPX W otilde -60 KPX W period -100 KPX W r -30 KPX W racute -30 KPX W rcaron -30 KPX W rcommaaccent -30 KPX W semicolon -42 KPX W u -20 KPX W uacute -20 KPX W ucircumflex -20 KPX W udieresis -20 KPX W ugrave -20 KPX W uhungarumlaut -20 KPX W umacron -20 KPX W uogonek -20 KPX W uring -20 KPX W y -14 KPX W yacute -14 KPX W ydieresis -14 KPX Y A -82 KPX Y Aacute -82 KPX Y Abreve -82 KPX Y Acircumflex -82 KPX Y Adieresis -82 KPX Y Agrave -82 KPX Y Amacron -82 KPX Y Aogonek -82 KPX Y Aring -82 KPX Y Atilde -82 KPX Y a -79 KPX Y aacute -79 KPX Y abreve -79 KPX Y acircumflex -79 KPX Y adieresis -79 KPX Y agrave -79 KPX Y amacron -79 KPX Y aogonek -79 KPX Y aring -79 KPX Y atilde -79 KPX Y colon -35 KPX Y comma -109 KPX Y e -78 KPX Y eacute -78 KPX Y ecaron -78 KPX Y ecircumflex -78 KPX Y edieresis -78 KPX Y edotaccent -78 KPX Y egrave -78 KPX Y emacron -78 KPX Y eogonek -78 KPX Y hyphen 20 KPX Y i -11 KPX Y iacute -11 KPX Y iogonek -11 KPX Y o -75 KPX Y oacute -75 KPX Y ocircumflex -75 KPX Y odieresis -75 KPX Y ograve -75 KPX Y ohungarumlaut -75 KPX Y omacron -75 KPX Y oslash -75 KPX Y otilde -75 KPX Y p -37 KPX Y period -100 KPX Y q -72 KPX Y semicolon -40 KPX Y u -31 KPX Y uacute -31 KPX Y ucircumflex -31 KPX Y udieresis -31 KPX Y ugrave -31 KPX Y uhungarumlaut -31 KPX Y umacron -31 KPX Y uogonek -31 KPX Y uring -31 KPX Y v -19 KPX Yacute A -82 KPX Yacute Aacute -82 KPX Yacute Abreve -82 KPX Yacute Acircumflex -82 KPX Yacute Adieresis -82 KPX Yacute Agrave -82 KPX Yacute Amacron -82 KPX Yacute Aogonek -82 KPX Yacute Aring -82 KPX Yacute Atilde -82 KPX Yacute a -79 KPX Yacute aacute -79 KPX Yacute abreve -79 KPX Yacute acircumflex -79 KPX Yacute adieresis -79 KPX Yacute agrave -79 KPX Yacute amacron -79 KPX Yacute aogonek -79 KPX Yacute aring -79 KPX Yacute atilde -79 KPX Yacute colon -35 KPX Yacute comma -109 KPX Yacute e -78 KPX Yacute eacute -78 KPX Yacute ecaron -78 KPX Yacute ecircumflex -78 KPX Yacute edieresis -78 KPX Yacute edotaccent -78 KPX Yacute egrave -78 KPX Yacute emacron -78 KPX Yacute eogonek -78 KPX Yacute hyphen 20 KPX Yacute i -11 KPX Yacute iacute -11 KPX Yacute iogonek -11 KPX Yacute o -75 KPX Yacute oacute -75 KPX Yacute ocircumflex -75 KPX Yacute odieresis -75 KPX Yacute ograve -75 KPX Yacute ohungarumlaut -75 KPX Yacute omacron -75 KPX Yacute oslash -75 KPX Yacute otilde -75 KPX Yacute p -37 KPX Yacute period -100 KPX Yacute q -72 KPX Yacute semicolon -40 KPX Yacute u -31 KPX Yacute uacute -31 KPX Yacute ucircumflex -31 KPX Yacute udieresis -31 KPX Yacute ugrave -31 KPX Yacute uhungarumlaut -31 KPX Yacute umacron -31 KPX Yacute uogonek -31 KPX Yacute uring -31 KPX Yacute v -19 KPX Ydieresis A -82 KPX Ydieresis Aacute -82 KPX Ydieresis Abreve -82 KPX Ydieresis Acircumflex -82 KPX Ydieresis Adieresis -82 KPX Ydieresis Agrave -82 KPX Ydieresis Amacron -82 KPX Ydieresis Aogonek -82 KPX Ydieresis Aring -82 KPX Ydieresis Atilde -82 KPX Ydieresis a -79 KPX Ydieresis aacute -79 KPX Ydieresis abreve -79 KPX Ydieresis acircumflex -79 KPX Ydieresis adieresis -79 KPX Ydieresis agrave -79 KPX Ydieresis amacron -79 KPX Ydieresis aogonek -79 KPX Ydieresis aring -79 KPX Ydieresis atilde -79 KPX Ydieresis colon -35 KPX Ydieresis comma -109 KPX Ydieresis e -78 KPX Ydieresis eacute -78 KPX Ydieresis ecaron -78 KPX Ydieresis ecircumflex -78 KPX Ydieresis edieresis -78 KPX Ydieresis edotaccent -78 KPX Ydieresis egrave -78 KPX Ydieresis emacron -78 KPX Ydieresis eogonek -78 KPX Ydieresis hyphen 20 KPX Ydieresis i -11 KPX Ydieresis iacute -11 KPX Ydieresis iogonek -11 KPX Ydieresis o -75 KPX Ydieresis oacute -75 KPX Ydieresis ocircumflex -75 KPX Ydieresis odieresis -75 KPX Ydieresis ograve -75 KPX Ydieresis ohungarumlaut -75 KPX Ydieresis omacron -75 KPX Ydieresis oslash -75 KPX Ydieresis otilde -75 KPX Ydieresis p -37 KPX Ydieresis period -100 KPX Ydieresis q -72 KPX Ydieresis semicolon -40 KPX Ydieresis u -31 KPX Ydieresis uacute -31 KPX Ydieresis ucircumflex -31 KPX Ydieresis udieresis -31 KPX Ydieresis ugrave -31 KPX Ydieresis uhungarumlaut -31 KPX Ydieresis umacron -31 KPX Ydieresis uogonek -31 KPX Ydieresis uring -31 KPX Ydieresis v -19 KPX f f -19 KPX r c -8 KPX r cacute -8 KPX r ccaron -8 KPX r ccedilla -8 KPX r comma -143 KPX r d -9 KPX r dcroat -9 KPX r e -15 KPX r eacute -15 KPX r ecaron -15 KPX r ecircumflex -15 KPX r edieresis -15 KPX r edotaccent -15 KPX r egrave -15 KPX r emacron -15 KPX r eogonek -15 KPX r f -9 KPX r g -3 KPX r gbreve -3 KPX r gcommaaccent -3 KPX r h -20 KPX r hyphen 20 KPX r m 37 KPX r n 38 KPX r nacute 38 KPX r ncaron 38 KPX r ncommaaccent 38 KPX r ntilde 38 KPX r o -10 KPX r oacute -10 KPX r ocircumflex -10 KPX r odieresis -10 KPX r ograve -10 KPX r ohungarumlaut -10 KPX r omacron -10 KPX r oslash -10 KPX r otilde -10 KPX r period -134 KPX r q -14 KPX racute c -8 KPX racute cacute -8 KPX racute ccaron -8 KPX racute ccedilla -8 KPX racute comma -143 KPX racute d -9 KPX racute dcroat -9 KPX racute e -15 KPX racute eacute -15 KPX racute ecaron -15 KPX racute ecircumflex -15 KPX racute edieresis -15 KPX racute edotaccent -15 KPX racute egrave -15 KPX racute emacron -15 KPX racute eogonek -15 KPX racute f -9 KPX racute g -3 KPX racute gbreve -3 KPX racute gcommaaccent -3 KPX racute h -20 KPX racute hyphen 20 KPX racute m 37 KPX racute n 38 KPX racute nacute 38 KPX racute ncaron 38 KPX racute ncommaaccent 38 KPX racute ntilde 38 KPX racute o -10 KPX racute oacute -10 KPX racute ocircumflex -10 KPX racute odieresis -10 KPX racute ograve -10 KPX racute ohungarumlaut -10 KPX racute omacron -10 KPX racute oslash -10 KPX racute otilde -10 KPX racute period -134 KPX racute q -14 KPX rcaron c -8 KPX rcaron cacute -8 KPX rcaron ccaron -8 KPX rcaron ccedilla -8 KPX rcaron comma -143 KPX rcaron d -9 KPX rcaron dcroat -9 KPX rcaron e -15 KPX rcaron eacute -15 KPX rcaron ecaron -15 KPX rcaron ecircumflex -15 KPX rcaron edieresis -15 KPX rcaron edotaccent -15 KPX rcaron egrave -15 KPX rcaron emacron -15 KPX rcaron eogonek -15 KPX rcaron f -9 KPX rcaron g -3 KPX rcaron gbreve -3 KPX rcaron gcommaaccent -3 KPX rcaron h -20 KPX rcaron hyphen 20 KPX rcaron m 37 KPX rcaron n 38 KPX rcaron nacute 38 KPX rcaron ncaron 38 KPX rcaron ncommaaccent 38 KPX rcaron ntilde 38 KPX rcaron o -10 KPX rcaron oacute -10 KPX rcaron ocircumflex -10 KPX rcaron odieresis -10 KPX rcaron ograve -10 KPX rcaron ohungarumlaut -10 KPX rcaron omacron -10 KPX rcaron oslash -10 KPX rcaron otilde -10 KPX rcaron period -134 KPX rcaron q -14 KPX rcommaaccent c -8 KPX rcommaaccent cacute -8 KPX rcommaaccent ccaron -8 KPX rcommaaccent ccedilla -8 KPX rcommaaccent comma -143 KPX rcommaaccent d -9 KPX rcommaaccent dcroat -9 KPX rcommaaccent e -15 KPX rcommaaccent eacute -15 KPX rcommaaccent ecaron -15 KPX rcommaaccent ecircumflex -15 KPX rcommaaccent edieresis -15 KPX rcommaaccent edotaccent -15 KPX rcommaaccent egrave -15 KPX rcommaaccent emacron -15 KPX rcommaaccent eogonek -15 KPX rcommaaccent f -9 KPX rcommaaccent g -3 KPX rcommaaccent gbreve -3 KPX rcommaaccent gcommaaccent -3 KPX rcommaaccent h -20 KPX rcommaaccent hyphen 20 KPX rcommaaccent m 37 KPX rcommaaccent n 38 KPX rcommaaccent nacute 38 KPX rcommaaccent ncaron 38 KPX rcommaaccent ncommaaccent 38 KPX rcommaaccent ntilde 38 KPX rcommaaccent o -10 KPX rcommaaccent oacute -10 KPX rcommaaccent ocircumflex -10 KPX rcommaaccent odieresis -10 KPX rcommaaccent ograve -10 KPX rcommaaccent ohungarumlaut -10 KPX rcommaaccent omacron -10 KPX rcommaaccent oslash -10 KPX rcommaaccent otilde -10 KPX rcommaaccent period -134 KPX rcommaaccent q -14 EndKernPairs EndKernData EndFontMetrics a2ps-4.14/afm/pagb.afm0000644000175000017500000010364510674335050014002 0ustar mhattamhattaStartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1989, 1990, 1991, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Thu May 1 14:01:14 1997 Comment UniqueID 43083 Comment VMusage 33801 44826 FontName AvantGarde-Book FullName ITC Avant Garde Gothic Book FamilyName ITC Avant Garde Gothic Weight Book ItalicAngle 0 IsFixedPitch false FontBBox -113 -222 1148 955 UnderlinePosition -100 UnderlineThickness 50 Version 002.000 Notice Copyright (c) 1985, 1987, 1989, 1990, 1991, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.ITC Avant Garde Gothic is a registered trademark of International Typeface Corporation. EncodingScheme AdobeStandardEncoding CapHeight 740 XHeight 547 Ascender 740 Descender -192 StdHW 63 StdVW 70 StartCharMetrics 314 C 32 ; WX 277 ; N space ; B 0 0 0 0 ; C 33 ; WX 295 ; N exclam ; B 111 0 185 740 ; C 34 ; WX 309 ; N quotedbl ; B 36 444 273 740 ; C 35 ; WX 554 ; N numbersign ; B 33 0 521 740 ; C 36 ; WX 554 ; N dollar ; B 70 -70 485 811 ; C 37 ; WX 775 ; N percent ; B 21 -13 753 751 ; C 38 ; WX 757 ; N ampersand ; B 56 -12 736 753 ; C 39 ; WX 351 ; N quoteright ; B 94 546 256 740 ; C 40 ; WX 369 ; N parenleft ; B 47 -205 355 757 ; C 41 ; WX 369 ; N parenright ; B 14 -205 322 757 ; C 42 ; WX 425 ; N asterisk ; B 58 446 367 740 ; C 43 ; WX 606 ; N plus ; B 51 0 555 506 ; C 44 ; WX 277 ; N comma ; B 14 -67 176 126 ; C 45 ; WX 332 ; N hyphen ; B 30 248 302 315 ; C 46 ; WX 277 ; N period ; B 102 0 176 126 ; C 47 ; WX 437 ; N slash ; B 44 -100 403 740 ; C 48 ; WX 554 ; N zero ; B 29 -13 525 753 ; C 49 ; WX 554 ; N one ; B 135 0 336 740 ; C 50 ; WX 554 ; N two ; B 40 0 514 753 ; C 51 ; WX 554 ; N three ; B 34 -13 506 753 ; C 52 ; WX 554 ; N four ; B 14 0 528 740 ; C 53 ; WX 554 ; N five ; B 26 -13 530 740 ; C 54 ; WX 554 ; N six ; B 24 -13 530 739 ; C 55 ; WX 554 ; N seven ; B 63 0 491 740 ; C 56 ; WX 554 ; N eight ; B 41 -13 513 753 ; C 57 ; WX 554 ; N nine ; B 24 0 530 752 ; C 58 ; WX 277 ; N colon ; B 102 0 176 548 ; C 59 ; WX 277 ; N semicolon ; B 14 -67 176 548 ; C 60 ; WX 606 ; N less ; B 46 -8 554 514 ; C 61 ; WX 606 ; N equal ; B 51 118 555 388 ; C 62 ; WX 606 ; N greater ; B 52 -8 560 514 ; C 63 ; WX 591 ; N question ; B 64 0 526 752 ; C 64 ; WX 867 ; N at ; B 65 -13 803 753 ; C 65 ; WX 740 ; N A ; B 12 0 729 740 ; C 66 ; WX 574 ; N B ; B 74 0 544 740 ; C 67 ; WX 813 ; N C ; B 43 -13 771 752 ; C 68 ; WX 744 ; N D ; B 74 0 699 740 ; C 69 ; WX 536 ; N E ; B 70 0 475 740 ; C 70 ; WX 485 ; N F ; B 70 0 444 740 ; C 71 ; WX 872 ; N G ; B 40 -13 828 753 ; C 72 ; WX 683 ; N H ; B 76 0 607 740 ; C 73 ; WX 226 ; N I ; B 76 0 150 740 ; C 74 ; WX 482 ; N J ; B 6 -13 402 740 ; C 75 ; WX 591 ; N K ; B 81 0 591 740 ; C 76 ; WX 462 ; N L ; B 82 0 462 740 ; C 77 ; WX 919 ; N M ; B 76 0 843 740 ; C 78 ; WX 740 ; N N ; B 75 0 664 740 ; C 79 ; WX 869 ; N O ; B 43 -13 826 753 ; C 80 ; WX 592 ; N P ; B 75 0 564 740 ; C 81 ; WX 871 ; N Q ; B 40 -13 837 753 ; C 82 ; WX 607 ; N R ; B 70 0 572 740 ; C 83 ; WX 498 ; N S ; B 22 -13 473 753 ; C 84 ; WX 426 ; N T ; B 6 0 419 740 ; C 85 ; WX 655 ; N U ; B 75 -13 579 740 ; C 86 ; WX 702 ; N V ; B 8 0 693 740 ; C 87 ; WX 960 ; N W ; B 11 0 950 740 ; C 88 ; WX 609 ; N X ; B 8 0 602 740 ; C 89 ; WX 592 ; N Y ; B 1 0 592 740 ; C 90 ; WX 480 ; N Z ; B 12 0 470 740 ; C 91 ; WX 351 ; N bracketleft ; B 133 -179 337 753 ; C 92 ; WX 605 ; N backslash ; B 118 -100 477 740 ; C 93 ; WX 351 ; N bracketright ; B 14 -179 218 753 ; C 94 ; WX 606 ; N asciicircum ; B 53 307 553 740 ; C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; C 96 ; WX 351 ; N quoteleft ; B 95 546 257 740 ; C 97 ; WX 683 ; N a ; B 42 -13 621 561 ; C 98 ; WX 682 ; N b ; B 68 -13 647 740 ; C 99 ; WX 647 ; N c ; B 41 -13 607 561 ; C 100 ; WX 685 ; N d ; B 39 -13 618 740 ; C 101 ; WX 650 ; N e ; B 38 -13 608 561 ; C 102 ; WX 314 ; N f ; B 19 0 314 753 ; L i fi ; L l fl ; C 103 ; WX 673 ; N g ; B 37 -215 606 561 ; C 104 ; WX 610 ; N h ; B 62 0 543 740 ; C 105 ; WX 200 ; N i ; B 65 0 135 740 ; C 106 ; WX 203 ; N j ; B -44 -192 137 740 ; C 107 ; WX 502 ; N k ; B 70 0 498 740 ; C 108 ; WX 200 ; N l ; B 65 0 135 740 ; C 109 ; WX 938 ; N m ; B 66 0 872 561 ; C 110 ; WX 610 ; N n ; B 65 0 546 561 ; C 111 ; WX 655 ; N o ; B 42 -13 614 561 ; C 112 ; WX 682 ; N p ; B 64 -192 643 561 ; C 113 ; WX 682 ; N q ; B 37 -192 616 561 ; C 114 ; WX 301 ; N r ; B 65 0 291 561 ; C 115 ; WX 388 ; N s ; B 24 -13 364 561 ; C 116 ; WX 339 ; N t ; B 14 0 330 740 ; C 117 ; WX 608 ; N u ; B 62 -13 541 547 ; C 118 ; WX 554 ; N v ; B 7 0 546 547 ; C 119 ; WX 831 ; N w ; B 13 0 820 547 ; C 120 ; WX 480 ; N x ; B 12 0 468 547 ; C 121 ; WX 536 ; N y ; B 15 -192 523 547 ; C 122 ; WX 425 ; N z ; B 10 0 415 547 ; C 123 ; WX 351 ; N braceleft ; B 70 -189 331 740 ; C 124 ; WX 672 ; N bar ; B 299 -222 373 778 ; C 125 ; WX 351 ; N braceright ; B 20 -189 281 740 ; C 126 ; WX 606 ; N asciitilde ; B 72 179 534 319 ; C 161 ; WX 295 ; N exclamdown ; B 110 -192 184 548 ; C 162 ; WX 554 ; N cent ; B 48 62 510 707 ; C 163 ; WX 554 ; N sterling ; B 4 0 552 753 ; C 164 ; WX 166 ; N fraction ; B -113 0 280 740 ; C 165 ; WX 554 ; N yen ; B 4 0 550 740 ; C 166 ; WX 554 ; N florin ; B -12 -153 518 818 ; C 167 ; WX 615 ; N section ; B 85 -141 529 753 ; C 168 ; WX 554 ; N currency ; B 8 42 546 580 ; C 169 ; WX 198 ; N quotesingle ; B 59 444 140 740 ; C 170 ; WX 502 ; N quotedblleft ; B 97 546 406 740 ; C 171 ; WX 425 ; N guillemotleft ; B 40 81 386 481 ; C 172 ; WX 251 ; N guilsinglleft ; B 40 81 212 481 ; C 173 ; WX 251 ; N guilsinglright ; B 39 81 211 481 ; C 174 ; WX 487 ; N fi ; B 19 0 422 753 ; C 175 ; WX 485 ; N fl ; B 19 0 420 753 ; C 177 ; WX 500 ; N endash ; B 35 248 465 315 ; C 178 ; WX 553 ; N dagger ; B 59 -133 493 740 ; C 179 ; WX 553 ; N daggerdbl ; B 59 -133 493 740 ; C 180 ; WX 277 ; N periodcentered ; B 102 190 176 316 ; C 182 ; WX 564 ; N paragraph ; B 22 -110 551 740 ; C 183 ; WX 606 ; N bullet ; B 150 222 455 532 ; C 184 ; WX 354 ; N quotesinglbase ; B 89 -68 251 126 ; C 185 ; WX 502 ; N quotedblbase ; B 89 -68 399 126 ; C 186 ; WX 484 ; N quotedblright ; B 96 546 405 740 ; C 187 ; WX 425 ; N guillemotright ; B 39 81 385 481 ; C 188 ; WX 1000 ; N ellipsis ; B 130 0 870 126 ; C 189 ; WX 1174 ; N perthousand ; B 25 -13 1148 751 ; C 191 ; WX 591 ; N questiondown ; B 65 -205 527 548 ; C 193 ; WX 378 ; N grave ; B 69 619 300 786 ; C 194 ; WX 375 ; N acute ; B 78 619 309 786 ; C 195 ; WX 502 ; N circumflex ; B 74 639 428 764 ; C 196 ; WX 439 ; N tilde ; B 47 651 392 754 ; C 197 ; WX 485 ; N macron ; B 73 669 411 736 ; C 198 ; WX 453 ; N breve ; B 52 651 401 754 ; C 199 ; WX 222 ; N dotaccent ; B 74 639 148 765 ; C 200 ; WX 369 ; N dieresis ; B 73 639 295 765 ; C 202 ; WX 332 ; N ring ; B 62 600 269 807 ; C 203 ; WX 324 ; N cedilla ; B 79 -222 254 3 ; C 205 ; WX 552 ; N hungarumlaut ; B 109 605 486 786 ; C 206 ; WX 302 ; N ogonek ; B 73 -191 228 0 ; C 207 ; WX 502 ; N caron ; B 68 639 423 764 ; C 208 ; WX 1000 ; N emdash ; B 35 248 965 315 ; C 225 ; WX 992 ; N AE ; B -20 0 907 740 ; C 227 ; WX 369 ; N ordfeminine ; B -3 407 356 753 ; C 232 ; WX 517 ; N Lslash ; B 59 0 517 740 ; C 233 ; WX 868 ; N Oslash ; B 43 -83 826 819 ; C 234 ; WX 1194 ; N OE ; B 45 -13 1142 753 ; C 235 ; WX 369 ; N ordmasculine ; B 12 407 356 753 ; C 241 ; WX 1157 ; N ae ; B 34 -13 1113 561 ; C 245 ; WX 200 ; N dotlessi ; B 65 0 135 547 ; C 248 ; WX 300 ; N lslash ; B 43 0 259 740 ; C 249 ; WX 653 ; N oslash ; B 41 -64 613 614 ; C 250 ; WX 1137 ; N oe ; B 34 -13 1104 561 ; C 251 ; WX 554 ; N germandbls ; B 61 -13 525 753 ; C -1 ; WX 226 ; N Idieresis ; B 2 0 224 928 ; C -1 ; WX 650 ; N eacute ; B 38 -13 608 786 ; C -1 ; WX 683 ; N abreve ; B 42 -13 621 754 ; C -1 ; WX 608 ; N uhungarumlaut ; B 62 -13 541 786 ; C -1 ; WX 650 ; N ecaron ; B 38 -13 608 764 ; C -1 ; WX 592 ; N Ydieresis ; B 1 0 592 928 ; C -1 ; WX 606 ; N divide ; B 51 -13 555 519 ; C -1 ; WX 592 ; N Yacute ; B 1 0 592 949 ; C -1 ; WX 740 ; N Acircumflex ; B 12 0 729 927 ; C -1 ; WX 683 ; N aacute ; B 42 -13 621 786 ; C -1 ; WX 655 ; N Ucircumflex ; B 75 -13 579 927 ; C -1 ; WX 536 ; N yacute ; B 15 -192 523 786 ; C -1 ; WX 388 ; N scommaaccent ; B 24 -222 364 561 ; C -1 ; WX 650 ; N ecircumflex ; B 38 -13 608 764 ; C -1 ; WX 655 ; N Uring ; B 75 -13 579 955 ; C -1 ; WX 655 ; N Udieresis ; B 75 -13 579 928 ; C -1 ; WX 683 ; N aogonek ; B 42 -191 634 561 ; C -1 ; WX 655 ; N Uacute ; B 75 -13 579 949 ; C -1 ; WX 608 ; N uogonek ; B 62 -191 558 547 ; C -1 ; WX 536 ; N Edieresis ; B 70 0 475 928 ; C -1 ; WX 790 ; N Dcroat ; B 40 0 739 740 ; C -1 ; WX 250 ; N commaaccent ; B 23 -222 169 -54 ; C -1 ; WX 747 ; N copyright ; B -9 -12 755 752 ; C -1 ; WX 536 ; N Emacron ; B 70 0 475 899 ; C -1 ; WX 647 ; N ccaron ; B 41 -13 607 764 ; C -1 ; WX 683 ; N aring ; B 42 -13 621 807 ; C -1 ; WX 740 ; N Ncommaaccent ; B 75 -202 664 740 ; C -1 ; WX 200 ; N lacute ; B 20 0 251 949 ; C -1 ; WX 683 ; N agrave ; B 42 -13 621 786 ; C -1 ; WX 426 ; N Tcommaaccent ; B 6 -222 419 740 ; C -1 ; WX 813 ; N Cacute ; B 43 -13 771 949 ; C -1 ; WX 683 ; N atilde ; B 42 -13 621 754 ; C -1 ; WX 536 ; N Edotaccent ; B 70 0 475 928 ; C -1 ; WX 388 ; N scaron ; B 11 -13 366 764 ; C -1 ; WX 388 ; N scedilla ; B 24 -222 364 561 ; C -1 ; WX 200 ; N iacute ; B 30 0 261 786 ; C -1 ; WX 471 ; N lozenge ; B 15 0 457 719 ; C -1 ; WX 607 ; N Rcaron ; B 70 0 572 927 ; C -1 ; WX 872 ; N Gcommaaccent ; B 40 -222 828 753 ; C -1 ; WX 608 ; N ucircumflex ; B 62 -13 541 764 ; C -1 ; WX 683 ; N acircumflex ; B 42 -13 621 764 ; C -1 ; WX 740 ; N Amacron ; B 12 0 729 899 ; C -1 ; WX 301 ; N rcaron ; B -3 0 352 764 ; C -1 ; WX 647 ; N ccedilla ; B 41 -222 607 561 ; C -1 ; WX 480 ; N Zdotaccent ; B 12 0 470 928 ; C -1 ; WX 592 ; N Thorn ; B 60 0 549 740 ; C -1 ; WX 869 ; N Omacron ; B 43 -13 826 899 ; C -1 ; WX 607 ; N Racute ; B 70 0 572 949 ; C -1 ; WX 498 ; N Sacute ; B 22 -13 473 949 ; C -1 ; WX 755 ; N dcaron ; B 39 -13 792 740 ; C -1 ; WX 655 ; N Umacron ; B 75 -13 579 899 ; C -1 ; WX 608 ; N uring ; B 62 -13 541 807 ; C -1 ; WX 332 ; N threesuperior ; B 18 289 318 747 ; C -1 ; WX 869 ; N Ograve ; B 43 -13 826 949 ; C -1 ; WX 740 ; N Agrave ; B 12 0 729 949 ; C -1 ; WX 740 ; N Abreve ; B 12 0 729 917 ; C -1 ; WX 606 ; N multiply ; B 74 24 533 482 ; C -1 ; WX 608 ; N uacute ; B 62 -13 541 786 ; C -1 ; WX 426 ; N Tcaron ; B 6 0 419 927 ; C -1 ; WX 476 ; N partialdiff ; B 22 -38 454 704 ; C -1 ; WX 536 ; N ydieresis ; B 15 -192 523 765 ; C -1 ; WX 740 ; N Nacute ; B 75 0 664 949 ; C -1 ; WX 200 ; N icircumflex ; B -77 0 277 764 ; C -1 ; WX 536 ; N Ecircumflex ; B 70 0 475 927 ; C -1 ; WX 683 ; N adieresis ; B 42 -13 621 765 ; C -1 ; WX 650 ; N edieresis ; B 38 -13 608 765 ; C -1 ; WX 647 ; N cacute ; B 41 -13 607 786 ; C -1 ; WX 610 ; N nacute ; B 65 0 546 786 ; C -1 ; WX 608 ; N umacron ; B 62 -13 541 736 ; C -1 ; WX 740 ; N Ncaron ; B 75 0 664 927 ; C -1 ; WX 226 ; N Iacute ; B 43 0 274 949 ; C -1 ; WX 606 ; N plusminus ; B 51 -24 555 518 ; C -1 ; WX 672 ; N brokenbar ; B 299 -147 373 703 ; C -1 ; WX 747 ; N registered ; B -9 -12 755 752 ; C -1 ; WX 872 ; N Gbreve ; B 40 -13 828 917 ; C -1 ; WX 226 ; N Idotaccent ; B 76 0 150 928 ; C -1 ; WX 600 ; N summation ; B 15 -10 586 706 ; C -1 ; WX 536 ; N Egrave ; B 70 0 475 949 ; C -1 ; WX 301 ; N racute ; B 65 0 332 786 ; C -1 ; WX 655 ; N omacron ; B 42 -13 614 736 ; C -1 ; WX 480 ; N Zacute ; B 12 0 470 949 ; C -1 ; WX 480 ; N Zcaron ; B 12 0 470 927 ; C -1 ; WX 549 ; N greaterequal ; B 26 0 523 658 ; C -1 ; WX 790 ; N Eth ; B 40 0 739 740 ; C -1 ; WX 813 ; N Ccedilla ; B 43 -222 771 752 ; C -1 ; WX 200 ; N lcommaaccent ; B -2 -222 144 740 ; C -1 ; WX 359 ; N tcaron ; B 14 0 394 780 ; C -1 ; WX 650 ; N eogonek ; B 38 -191 608 561 ; C -1 ; WX 655 ; N Uogonek ; B 75 -191 579 740 ; C -1 ; WX 740 ; N Aacute ; B 12 0 729 949 ; C -1 ; WX 740 ; N Adieresis ; B 12 0 729 928 ; C -1 ; WX 650 ; N egrave ; B 38 -13 608 786 ; C -1 ; WX 425 ; N zacute ; B 10 0 415 786 ; C -1 ; WX 200 ; N iogonek ; B 11 -191 166 740 ; C -1 ; WX 869 ; N Oacute ; B 43 -13 826 949 ; C -1 ; WX 655 ; N oacute ; B 42 -13 614 786 ; C -1 ; WX 683 ; N amacron ; B 42 -13 621 736 ; C -1 ; WX 388 ; N sacute ; B 24 -13 364 786 ; C -1 ; WX 200 ; N idieresis ; B -11 0 211 765 ; C -1 ; WX 869 ; N Ocircumflex ; B 43 -13 826 927 ; C -1 ; WX 655 ; N Ugrave ; B 75 -13 579 949 ; C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ; C -1 ; WX 682 ; N thorn ; B 64 -192 643 740 ; C -1 ; WX 332 ; N twosuperior ; B 19 296 318 747 ; C -1 ; WX 869 ; N Odieresis ; B 43 -13 826 928 ; C -1 ; WX 608 ; N mu ; B 80 -184 527 547 ; C -1 ; WX 200 ; N igrave ; B -60 0 171 786 ; C -1 ; WX 655 ; N ohungarumlaut ; B 42 -13 614 786 ; C -1 ; WX 536 ; N Eogonek ; B 70 -191 475 740 ; C -1 ; WX 685 ; N dcroat ; B 39 -13 680 740 ; C -1 ; WX 831 ; N threequarters ; B 46 0 784 747 ; C -1 ; WX 498 ; N Scedilla ; B 22 -222 473 753 ; C -1 ; WX 260 ; N lcaron ; B 65 0 309 740 ; C -1 ; WX 591 ; N Kcommaaccent ; B 81 -202 591 740 ; C -1 ; WX 462 ; N Lacute ; B 82 0 462 949 ; C -1 ; WX 1000 ; N trademark ; B 9 296 816 740 ; C -1 ; WX 650 ; N edotaccent ; B 38 -13 608 765 ; C -1 ; WX 226 ; N Igrave ; B -47 0 184 949 ; C -1 ; WX 226 ; N Imacron ; B -31 0 256 899 ; C -1 ; WX 462 ; N Lcaron ; B 82 0 462 740 ; C -1 ; WX 831 ; N onehalf ; B 81 0 750 740 ; C -1 ; WX 549 ; N lessequal ; B 26 0 523 658 ; C -1 ; WX 655 ; N ocircumflex ; B 42 -13 614 764 ; C -1 ; WX 610 ; N ntilde ; B 65 0 546 754 ; C -1 ; WX 655 ; N Uhungarumlaut ; B 75 -13 579 949 ; C -1 ; WX 536 ; N Eacute ; B 70 0 475 949 ; C -1 ; WX 650 ; N emacron ; B 38 -13 608 736 ; C -1 ; WX 673 ; N gbreve ; B 37 -215 606 754 ; C -1 ; WX 831 ; N onequarter ; B 100 0 729 740 ; C -1 ; WX 498 ; N Scaron ; B 22 -13 473 927 ; C -1 ; WX 498 ; N Scommaaccent ; B 22 -222 473 753 ; C -1 ; WX 869 ; N Ohungarumlaut ; B 43 -13 826 949 ; C -1 ; WX 400 ; N degree ; B 56 421 344 709 ; C -1 ; WX 655 ; N ograve ; B 42 -13 614 786 ; C -1 ; WX 813 ; N Ccaron ; B 43 -13 771 927 ; C -1 ; WX 608 ; N ugrave ; B 62 -13 541 786 ; C -1 ; WX 453 ; N radical ; B 7 -58 447 756 ; C -1 ; WX 744 ; N Dcaron ; B 74 0 699 927 ; C -1 ; WX 301 ; N rcommaaccent ; B 8 -222 291 561 ; C -1 ; WX 740 ; N Ntilde ; B 75 0 664 917 ; C -1 ; WX 655 ; N otilde ; B 42 -13 614 754 ; C -1 ; WX 607 ; N Rcommaaccent ; B 70 -202 572 740 ; C -1 ; WX 462 ; N Lcommaaccent ; B 82 -222 462 740 ; C -1 ; WX 740 ; N Atilde ; B 12 0 729 917 ; C -1 ; WX 740 ; N Aogonek ; B 12 -191 751 740 ; C -1 ; WX 740 ; N Aring ; B 12 0 729 955 ; C -1 ; WX 869 ; N Otilde ; B 43 -13 826 917 ; C -1 ; WX 425 ; N zdotaccent ; B 10 0 415 765 ; C -1 ; WX 536 ; N Ecaron ; B 70 0 475 927 ; C -1 ; WX 226 ; N Iogonek ; B 21 -191 176 740 ; C -1 ; WX 502 ; N kcommaaccent ; B 70 -202 498 740 ; C -1 ; WX 606 ; N minus ; B 51 219 555 287 ; C -1 ; WX 226 ; N Icircumflex ; B -64 0 290 927 ; C -1 ; WX 610 ; N ncaron ; B 65 0 546 764 ; C -1 ; WX 339 ; N tcommaaccent ; B 14 -222 330 740 ; C -1 ; WX 606 ; N logicalnot ; B 51 109 555 388 ; C -1 ; WX 655 ; N odieresis ; B 42 -13 614 765 ; C -1 ; WX 608 ; N udieresis ; B 62 -13 541 765 ; C -1 ; WX 549 ; N notequal ; B 12 -29 537 541 ; C -1 ; WX 673 ; N gcommaaccent ; B 37 -215 606 786 ; C -1 ; WX 655 ; N eth ; B 42 -12 614 753 ; C -1 ; WX 425 ; N zcaron ; B 10 0 415 764 ; C -1 ; WX 610 ; N ncommaaccent ; B 65 -202 546 561 ; C -1 ; WX 332 ; N onesuperior ; B 63 296 198 740 ; C -1 ; WX 200 ; N imacron ; B -44 0 243 736 ; EndCharMetrics StartKernData StartKernPairs 922 KPX A T -81 KPX A Tcaron -81 KPX A Tcommaaccent -81 KPX A V -122 KPX A W -95 KPX A Y -122 KPX A Yacute -122 KPX A Ydieresis -122 KPX A v -73 KPX A w -65 KPX A y -72 KPX A yacute -72 KPX A ydieresis -72 KPX Aacute T -81 KPX Aacute Tcaron -81 KPX Aacute Tcommaaccent -81 KPX Aacute V -122 KPX Aacute W -95 KPX Aacute Y -122 KPX Aacute Yacute -122 KPX Aacute Ydieresis -122 KPX Aacute v -73 KPX Aacute w -65 KPX Aacute y -72 KPX Aacute yacute -72 KPX Aacute ydieresis -72 KPX Abreve T -81 KPX Abreve Tcaron -81 KPX Abreve Tcommaaccent -81 KPX Abreve V -122 KPX Abreve W -95 KPX Abreve Y -122 KPX Abreve Yacute -122 KPX Abreve Ydieresis -122 KPX Abreve v -73 KPX Abreve w -65 KPX Abreve y -72 KPX Abreve yacute -72 KPX Abreve ydieresis -72 KPX Acircumflex T -81 KPX Acircumflex Tcaron -81 KPX Acircumflex Tcommaaccent -81 KPX Acircumflex V -122 KPX Acircumflex W -95 KPX Acircumflex Y -122 KPX Acircumflex Yacute -122 KPX Acircumflex Ydieresis -122 KPX Acircumflex v -73 KPX Acircumflex w -65 KPX Acircumflex y -72 KPX Acircumflex yacute -72 KPX Acircumflex ydieresis -72 KPX Adieresis T -81 KPX Adieresis Tcaron -81 KPX Adieresis Tcommaaccent -81 KPX Adieresis V -122 KPX Adieresis W -95 KPX Adieresis Y -122 KPX Adieresis Yacute -122 KPX Adieresis Ydieresis -122 KPX Adieresis v -73 KPX Adieresis w -65 KPX Adieresis y -72 KPX Adieresis yacute -72 KPX Adieresis ydieresis -72 KPX Agrave T -81 KPX Agrave Tcaron -81 KPX Agrave Tcommaaccent -81 KPX Agrave V -122 KPX Agrave W -95 KPX Agrave Y -122 KPX Agrave Yacute -122 KPX Agrave Ydieresis -122 KPX Agrave v -73 KPX Agrave w -65 KPX Agrave y -72 KPX Agrave yacute -72 KPX Agrave ydieresis -72 KPX Amacron T -81 KPX Amacron Tcaron -81 KPX Amacron Tcommaaccent -81 KPX Amacron V -122 KPX Amacron W -95 KPX Amacron Y -122 KPX Amacron Yacute -122 KPX Amacron Ydieresis -122 KPX Amacron v -73 KPX Amacron w -65 KPX Amacron y -72 KPX Amacron yacute -72 KPX Amacron ydieresis -72 KPX Aogonek T -81 KPX Aogonek Tcaron -81 KPX Aogonek Tcommaaccent -81 KPX Aogonek V -122 KPX Aogonek W -95 KPX Aogonek Y -122 KPX Aogonek Yacute -122 KPX Aogonek Ydieresis -122 KPX Aogonek v -73 KPX Aogonek w -65 KPX Aogonek y -72 KPX Aogonek yacute -72 KPX Aogonek ydieresis -72 KPX Aring T -81 KPX Aring Tcaron -81 KPX Aring Tcommaaccent -81 KPX Aring V -122 KPX Aring W -95 KPX Aring Y -122 KPX Aring Yacute -122 KPX Aring Ydieresis -122 KPX Aring v -73 KPX Aring w -65 KPX Aring y -72 KPX Aring yacute -72 KPX Aring ydieresis -72 KPX Atilde T -81 KPX Atilde Tcaron -81 KPX Atilde Tcommaaccent -81 KPX Atilde V -122 KPX Atilde W -95 KPX Atilde Y -122 KPX Atilde Yacute -122 KPX Atilde Ydieresis -122 KPX Atilde v -73 KPX Atilde w -65 KPX Atilde y -72 KPX Atilde yacute -72 KPX Atilde ydieresis -72 KPX F A -60 KPX F Aacute -60 KPX F Abreve -60 KPX F Acircumflex -60 KPX F Adieresis -60 KPX F Agrave -60 KPX F Amacron -60 KPX F Aogonek -60 KPX F Aring -60 KPX F Atilde -60 KPX F comma -122 KPX F period -79 KPX L T -46 KPX L Tcaron -46 KPX L Tcommaaccent -46 KPX L V -113 KPX L W -67 KPX L Y -91 KPX L Yacute -91 KPX L Ydieresis -91 KPX L y -23 KPX L yacute -23 KPX L ydieresis -23 KPX Lacute T -46 KPX Lacute Tcaron -46 KPX Lacute Tcommaaccent -46 KPX Lacute V -113 KPX Lacute W -67 KPX Lacute Y -91 KPX Lacute Yacute -91 KPX Lacute Ydieresis -91 KPX Lacute y -23 KPX Lacute yacute -23 KPX Lacute ydieresis -23 KPX Lcaron y -23 KPX Lcaron yacute -23 KPX Lcaron ydieresis -23 KPX Lcommaaccent T -46 KPX Lcommaaccent Tcaron -46 KPX Lcommaaccent Tcommaaccent -46 KPX Lcommaaccent V -113 KPX Lcommaaccent W -67 KPX Lcommaaccent Y -91 KPX Lcommaaccent Yacute -91 KPX Lcommaaccent Ydieresis -91 KPX Lcommaaccent y -23 KPX Lcommaaccent yacute -23 KPX Lcommaaccent ydieresis -23 KPX Lslash T -46 KPX Lslash Tcaron -46 KPX Lslash Tcommaaccent -46 KPX Lslash V -113 KPX Lslash W -67 KPX Lslash Y -91 KPX Lslash Yacute -91 KPX Lslash Ydieresis -91 KPX Lslash y -23 KPX Lslash yacute -23 KPX Lslash ydieresis -23 KPX P A -74 KPX P Aacute -74 KPX P Abreve -74 KPX P Acircumflex -74 KPX P Adieresis -74 KPX P Agrave -74 KPX P Amacron -74 KPX P Aogonek -74 KPX P Aring -74 KPX P Atilde -74 KPX P comma -123 KPX P period -91 KPX R T 6 KPX R Tcaron 6 KPX R Tcommaaccent 6 KPX R V -39 KPX R W 2 KPX R Y -20 KPX R Yacute -20 KPX R Ydieresis -20 KPX R y 32 KPX R yacute 32 KPX R ydieresis 32 KPX Racute T 6 KPX Racute Tcaron 6 KPX Racute Tcommaaccent 6 KPX Racute V -39 KPX Racute W 2 KPX Racute Y -20 KPX Racute Yacute -20 KPX Racute Ydieresis -20 KPX Racute y 32 KPX Racute yacute 32 KPX Racute ydieresis 32 KPX Rcaron T 6 KPX Rcaron Tcaron 6 KPX Rcaron Tcommaaccent 6 KPX Rcaron V -39 KPX Rcaron W 2 KPX Rcaron Y -20 KPX Rcaron Yacute -20 KPX Rcaron Ydieresis -20 KPX Rcaron y 32 KPX Rcaron yacute 32 KPX Rcaron ydieresis 32 KPX Rcommaaccent T 6 KPX Rcommaaccent Tcaron 6 KPX Rcommaaccent Tcommaaccent 6 KPX Rcommaaccent V -39 KPX Rcommaaccent W 2 KPX Rcommaaccent Y -20 KPX Rcommaaccent Yacute -20 KPX Rcommaaccent Ydieresis -20 KPX Rcommaaccent y 32 KPX Rcommaaccent yacute 32 KPX Rcommaaccent ydieresis 32 KPX T A -81 KPX T Aacute -81 KPX T Abreve -81 KPX T Acircumflex -81 KPX T Adieresis -81 KPX T Agrave -81 KPX T Amacron -81 KPX T Aogonek -81 KPX T Aring -81 KPX T Atilde -81 KPX T a -52 KPX T aacute -52 KPX T abreve -52 KPX T acircumflex -52 KPX T adieresis -52 KPX T agrave -52 KPX T amacron -52 KPX T aogonek -52 KPX T aring -52 KPX T atilde -52 KPX T c -51 KPX T cacute -51 KPX T ccaron -51 KPX T ccedilla -51 KPX T colon 3 KPX T comma -102 KPX T e -49 KPX T eacute -49 KPX T ecaron -49 KPX T ecircumflex -49 KPX T edieresis -49 KPX T edotaccent -49 KPX T egrave -49 KPX T emacron -49 KPX T eogonek -49 KPX T i 31 KPX T iacute 31 KPX T icircumflex 31 KPX T idieresis 31 KPX T igrave 31 KPX T imacron 31 KPX T iogonek 31 KPX T o -49 KPX T oacute -49 KPX T ocircumflex -49 KPX T odieresis -49 KPX T ograve -49 KPX T ohungarumlaut -49 KPX T omacron -49 KPX T oslash -49 KPX T otilde -49 KPX T period -71 KPX T r -30 KPX T racute -30 KPX T rcaron -30 KPX T rcommaaccent -30 KPX T s -23 KPX T sacute -23 KPX T scedilla -23 KPX T scommaaccent -23 KPX T semicolon -29 KPX T u -46 KPX T uacute -46 KPX T ucircumflex -46 KPX T udieresis -46 KPX T ugrave -46 KPX T uhungarumlaut -46 KPX T umacron -46 KPX T uogonek -46 KPX T uring -46 KPX T w 7 KPX T y 5 KPX T yacute 5 KPX T ydieresis 5 KPX Tcaron A -81 KPX Tcaron Aacute -81 KPX Tcaron Abreve -81 KPX Tcaron Acircumflex -81 KPX Tcaron Adieresis -81 KPX Tcaron Agrave -81 KPX Tcaron Amacron -81 KPX Tcaron Aogonek -81 KPX Tcaron Aring -81 KPX Tcaron Atilde -81 KPX Tcaron a -52 KPX Tcaron aacute -52 KPX Tcaron abreve -52 KPX Tcaron acircumflex -52 KPX Tcaron adieresis -52 KPX Tcaron agrave -52 KPX Tcaron amacron -52 KPX Tcaron aogonek -52 KPX Tcaron aring -52 KPX Tcaron atilde -52 KPX Tcaron c -51 KPX Tcaron cacute -51 KPX Tcaron ccaron -51 KPX Tcaron ccedilla -51 KPX Tcaron colon 3 KPX Tcaron comma -102 KPX Tcaron e -49 KPX Tcaron eacute -49 KPX Tcaron ecaron -49 KPX Tcaron ecircumflex -49 KPX Tcaron edieresis -49 KPX Tcaron edotaccent -49 KPX Tcaron egrave -49 KPX Tcaron emacron -49 KPX Tcaron eogonek -49 KPX Tcaron i 31 KPX Tcaron iacute 31 KPX Tcaron iogonek 31 KPX Tcaron o -49 KPX Tcaron oacute -49 KPX Tcaron ocircumflex -49 KPX Tcaron odieresis -49 KPX Tcaron ograve -49 KPX Tcaron ohungarumlaut -49 KPX Tcaron omacron -49 KPX Tcaron oslash -49 KPX Tcaron otilde -49 KPX Tcaron period -71 KPX Tcaron r -30 KPX Tcaron racute -30 KPX Tcaron rcaron -30 KPX Tcaron rcommaaccent -30 KPX Tcaron s -23 KPX Tcaron sacute -23 KPX Tcaron scaron -23 KPX Tcaron scedilla -23 KPX Tcaron scommaaccent -23 KPX Tcaron semicolon -29 KPX Tcaron u -46 KPX Tcaron uacute -46 KPX Tcaron ucircumflex -46 KPX Tcaron udieresis -46 KPX Tcaron ugrave -46 KPX Tcaron uhungarumlaut -46 KPX Tcaron umacron -46 KPX Tcaron uogonek -46 KPX Tcaron uring -46 KPX Tcaron w 7 KPX Tcaron y 5 KPX Tcaron yacute 5 KPX Tcaron ydieresis 5 KPX Tcommaaccent A -81 KPX Tcommaaccent Aacute -81 KPX Tcommaaccent Abreve -81 KPX Tcommaaccent Acircumflex -81 KPX Tcommaaccent Adieresis -81 KPX Tcommaaccent Agrave -81 KPX Tcommaaccent Amacron -81 KPX Tcommaaccent Aogonek -81 KPX Tcommaaccent Aring -81 KPX Tcommaaccent Atilde -81 KPX Tcommaaccent a -52 KPX Tcommaaccent aacute -52 KPX Tcommaaccent abreve -52 KPX Tcommaaccent acircumflex -52 KPX Tcommaaccent adieresis -52 KPX Tcommaaccent agrave -52 KPX Tcommaaccent amacron -52 KPX Tcommaaccent aogonek -52 KPX Tcommaaccent aring -52 KPX Tcommaaccent atilde -52 KPX Tcommaaccent c -51 KPX Tcommaaccent cacute -51 KPX Tcommaaccent ccaron -51 KPX Tcommaaccent ccedilla -51 KPX Tcommaaccent colon 3 KPX Tcommaaccent comma -102 KPX Tcommaaccent e -49 KPX Tcommaaccent eacute -49 KPX Tcommaaccent ecaron -49 KPX Tcommaaccent ecircumflex -49 KPX Tcommaaccent edieresis -49 KPX Tcommaaccent edotaccent -49 KPX Tcommaaccent egrave -49 KPX Tcommaaccent emacron -49 KPX Tcommaaccent eogonek -49 KPX Tcommaaccent i 31 KPX Tcommaaccent iacute 31 KPX Tcommaaccent iogonek 31 KPX Tcommaaccent o -49 KPX Tcommaaccent oacute -49 KPX Tcommaaccent ocircumflex -49 KPX Tcommaaccent odieresis -49 KPX Tcommaaccent ograve -49 KPX Tcommaaccent ohungarumlaut -49 KPX Tcommaaccent omacron -49 KPX Tcommaaccent oslash -49 KPX Tcommaaccent otilde -49 KPX Tcommaaccent period -71 KPX Tcommaaccent r -30 KPX Tcommaaccent racute -30 KPX Tcommaaccent rcaron -30 KPX Tcommaaccent rcommaaccent -30 KPX Tcommaaccent s -23 KPX Tcommaaccent sacute -23 KPX Tcommaaccent scedilla -23 KPX Tcommaaccent scommaaccent -23 KPX Tcommaaccent semicolon -29 KPX Tcommaaccent u -46 KPX Tcommaaccent uacute -46 KPX Tcommaaccent ucircumflex -46 KPX Tcommaaccent udieresis -46 KPX Tcommaaccent ugrave -46 KPX Tcommaaccent uhungarumlaut -46 KPX Tcommaaccent umacron -46 KPX Tcommaaccent uogonek -46 KPX Tcommaaccent uring -46 KPX Tcommaaccent w 7 KPX Tcommaaccent y 5 KPX Tcommaaccent yacute 5 KPX Tcommaaccent ydieresis 5 KPX V A -122 KPX V Aacute -122 KPX V Abreve -122 KPX V Acircumflex -122 KPX V Adieresis -122 KPX V Agrave -122 KPX V Amacron -122 KPX V Aogonek -122 KPX V Aring -122 KPX V Atilde -122 KPX V a -104 KPX V aacute -104 KPX V abreve -104 KPX V acircumflex -104 KPX V adieresis -104 KPX V agrave -104 KPX V amacron -104 KPX V aogonek -104 KPX V aring -104 KPX V atilde -104 KPX V colon -1 KPX V comma -106 KPX V e -101 KPX V eacute -101 KPX V ecaron -101 KPX V ecircumflex -101 KPX V edieresis -101 KPX V edotaccent -101 KPX V egrave -101 KPX V emacron -101 KPX V eogonek -101 KPX V i 5 KPX V iacute 5 KPX V iogonek 5 KPX V o -101 KPX V oacute -101 KPX V ocircumflex -101 KPX V odieresis -101 KPX V ograve -101 KPX V ohungarumlaut -101 KPX V omacron -101 KPX V oslash -101 KPX V otilde -101 KPX V period -75 KPX V r -40 KPX V racute -40 KPX V rcaron -40 KPX V rcommaaccent -40 KPX V semicolon -33 KPX V u -40 KPX V uacute -40 KPX V ucircumflex -40 KPX V udieresis -40 KPX V ugrave -40 KPX V uhungarumlaut -40 KPX V umacron -40 KPX V uogonek -40 KPX V uring -40 KPX V y -25 KPX V yacute -25 KPX V ydieresis -25 KPX W A -73 KPX W Aacute -73 KPX W Abreve -73 KPX W Acircumflex -73 KPX W Adieresis -73 KPX W Agrave -73 KPX W Amacron -73 KPX W Aogonek -73 KPX W Aring -73 KPX W Atilde -73 KPX W a -50 KPX W aacute -50 KPX W abreve -50 KPX W acircumflex -50 KPX W adieresis -50 KPX W agrave -50 KPX W amacron -50 KPX W aogonek -50 KPX W aring -50 KPX W atilde -50 KPX W colon -1 KPX W comma -106 KPX W e -47 KPX W eacute -47 KPX W ecaron -47 KPX W ecircumflex -47 KPX W edieresis -47 KPX W edotaccent -47 KPX W egrave -47 KPX W emacron -47 KPX W eogonek -47 KPX W i 6 KPX W iacute 6 KPX W icircumflex 16 KPX W idieresis 16 KPX W igrave 16 KPX W imacron 16 KPX W iogonek 6 KPX W o -46 KPX W oacute -46 KPX W ocircumflex -46 KPX W odieresis -46 KPX W ograve -46 KPX W ohungarumlaut -46 KPX W omacron -46 KPX W oslash -46 KPX W otilde -46 KPX W period -74 KPX W r -29 KPX W racute -29 KPX W rcaron -29 KPX W rcommaaccent -29 KPX W semicolon -33 KPX W u -30 KPX W uacute -30 KPX W ucircumflex -30 KPX W udieresis -30 KPX W ugrave -30 KPX W uhungarumlaut -30 KPX W umacron -30 KPX W uogonek -30 KPX W uring -30 KPX W y -2 KPX W yacute -2 KPX W ydieresis -2 KPX Y A -122 KPX Y Aacute -122 KPX Y Abreve -122 KPX Y Acircumflex -122 KPX Y Adieresis -122 KPX Y Agrave -122 KPX Y Amacron -122 KPX Y Aogonek -122 KPX Y Aring -122 KPX Y Atilde -122 KPX Y a -93 KPX Y aacute -93 KPX Y abreve -93 KPX Y acircumflex -93 KPX Y adieresis -93 KPX Y agrave -93 KPX Y amacron -93 KPX Y aogonek -93 KPX Y aring -93 KPX Y atilde -93 KPX Y colon 9 KPX Y comma -97 KPX Y e -89 KPX Y eacute -89 KPX Y ecaron -89 KPX Y ecircumflex -89 KPX Y edieresis -89 KPX Y edotaccent -89 KPX Y egrave -89 KPX Y emacron -89 KPX Y eogonek -89 KPX Y i 13 KPX Y iacute 13 KPX Y icircumflex 23 KPX Y idieresis 23 KPX Y igrave 23 KPX Y imacron 23 KPX Y iogonek 13 KPX Y o -89 KPX Y oacute -89 KPX Y ocircumflex -89 KPX Y odieresis -89 KPX Y ograve -89 KPX Y ohungarumlaut -89 KPX Y omacron -89 KPX Y oslash -89 KPX Y otilde -89 KPX Y p -67 KPX Y period -65 KPX Y q -93 KPX Y semicolon -23 KPX Y u -69 KPX Y uacute -69 KPX Y ucircumflex -69 KPX Y udieresis -69 KPX Y ugrave -69 KPX Y uhungarumlaut -69 KPX Y umacron -69 KPX Y uogonek -69 KPX Y uring -69 KPX Y v -17 KPX Yacute A -122 KPX Yacute Aacute -122 KPX Yacute Abreve -122 KPX Yacute Acircumflex -122 KPX Yacute Adieresis -122 KPX Yacute Agrave -122 KPX Yacute Amacron -122 KPX Yacute Aogonek -122 KPX Yacute Aring -122 KPX Yacute Atilde -122 KPX Yacute a -93 KPX Yacute aacute -93 KPX Yacute abreve -93 KPX Yacute acircumflex -93 KPX Yacute adieresis -93 KPX Yacute agrave -93 KPX Yacute amacron -93 KPX Yacute aogonek -93 KPX Yacute aring -93 KPX Yacute atilde -93 KPX Yacute colon 9 KPX Yacute comma -97 KPX Yacute e -89 KPX Yacute eacute -89 KPX Yacute ecaron -89 KPX Yacute ecircumflex -89 KPX Yacute edieresis -89 KPX Yacute edotaccent -89 KPX Yacute egrave -89 KPX Yacute emacron -89 KPX Yacute eogonek -89 KPX Yacute i 13 KPX Yacute iacute 13 KPX Yacute icircumflex 23 KPX Yacute idieresis 23 KPX Yacute igrave 23 KPX Yacute imacron 23 KPX Yacute iogonek 13 KPX Yacute o -89 KPX Yacute oacute -89 KPX Yacute ocircumflex -89 KPX Yacute odieresis -89 KPX Yacute ograve -89 KPX Yacute ohungarumlaut -89 KPX Yacute omacron -89 KPX Yacute oslash -89 KPX Yacute otilde -89 KPX Yacute p -67 KPX Yacute period -65 KPX Yacute q -93 KPX Yacute semicolon -23 KPX Yacute u -69 KPX Yacute uacute -69 KPX Yacute ucircumflex -69 KPX Yacute udieresis -69 KPX Yacute ugrave -69 KPX Yacute uhungarumlaut -69 KPX Yacute umacron -69 KPX Yacute uogonek -69 KPX Yacute uring -69 KPX Yacute v -17 KPX Ydieresis A -122 KPX Ydieresis Aacute -122 KPX Ydieresis Abreve -122 KPX Ydieresis Acircumflex -122 KPX Ydieresis Adieresis -122 KPX Ydieresis Agrave -122 KPX Ydieresis Amacron -122 KPX Ydieresis Aogonek -122 KPX Ydieresis Aring -122 KPX Ydieresis Atilde -122 KPX Ydieresis a -93 KPX Ydieresis aacute -93 KPX Ydieresis abreve -93 KPX Ydieresis acircumflex -93 KPX Ydieresis adieresis -93 KPX Ydieresis agrave -93 KPX Ydieresis amacron -93 KPX Ydieresis aogonek -93 KPX Ydieresis aring -93 KPX Ydieresis atilde -93 KPX Ydieresis colon 9 KPX Ydieresis comma -97 KPX Ydieresis e -89 KPX Ydieresis eacute -89 KPX Ydieresis ecaron -89 KPX Ydieresis ecircumflex -89 KPX Ydieresis edieresis -89 KPX Ydieresis edotaccent -89 KPX Ydieresis egrave -89 KPX Ydieresis emacron -89 KPX Ydieresis eogonek -89 KPX Ydieresis i 13 KPX Ydieresis iacute 13 KPX Ydieresis icircumflex 23 KPX Ydieresis idieresis 23 KPX Ydieresis igrave 23 KPX Ydieresis imacron 23 KPX Ydieresis iogonek 13 KPX Ydieresis o -89 KPX Ydieresis oacute -89 KPX Ydieresis ocircumflex -89 KPX Ydieresis odieresis -89 KPX Ydieresis ograve -89 KPX Ydieresis ohungarumlaut -89 KPX Ydieresis omacron -89 KPX Ydieresis oslash -89 KPX Ydieresis otilde -89 KPX Ydieresis p -67 KPX Ydieresis period -65 KPX Ydieresis q -93 KPX Ydieresis semicolon -23 KPX Ydieresis u -69 KPX Ydieresis uacute -69 KPX Ydieresis ucircumflex -69 KPX Ydieresis udieresis -69 KPX Ydieresis ugrave -69 KPX Ydieresis uhungarumlaut -69 KPX Ydieresis umacron -69 KPX Ydieresis uogonek -69 KPX Ydieresis uring -69 KPX Ydieresis v -17 KPX f f 3 KPX r c -7 KPX r cacute -7 KPX r ccaron -7 KPX r ccedilla -7 KPX r comma -105 KPX r d -6 KPX r dcroat -6 KPX r e -4 KPX r eacute -4 KPX r ecaron -4 KPX r ecircumflex -4 KPX r edieresis -4 KPX r edotaccent -4 KPX r egrave -4 KPX r emacron -4 KPX r eogonek -4 KPX r f 48 KPX r g 1 KPX r gbreve 1 KPX r gcommaaccent 1 KPX r h 29 KPX r m 28 KPX r n 21 KPX r nacute 21 KPX r ncaron 21 KPX r ncommaaccent 21 KPX r ntilde 21 KPX r o -4 KPX r oacute -4 KPX r ocircumflex -4 KPX r odieresis -4 KPX r ograve -4 KPX r ohungarumlaut -4 KPX r omacron -4 KPX r oslash -4 KPX r otilde -4 KPX r period -73 KPX r q -8 KPX racute c -7 KPX racute cacute -7 KPX racute ccaron -7 KPX racute ccedilla -7 KPX racute comma -105 KPX racute d -6 KPX racute dcroat -6 KPX racute e -4 KPX racute eacute -4 KPX racute ecaron -4 KPX racute ecircumflex -4 KPX racute edieresis -4 KPX racute edotaccent -4 KPX racute egrave -4 KPX racute emacron -4 KPX racute eogonek -4 KPX racute f 48 KPX racute g 1 KPX racute gbreve 1 KPX racute gcommaaccent 1 KPX racute h 29 KPX racute m 28 KPX racute n 21 KPX racute nacute 21 KPX racute ncaron 21 KPX racute ncommaaccent 21 KPX racute ntilde 21 KPX racute o -4 KPX racute oacute -4 KPX racute ocircumflex -4 KPX racute odieresis -4 KPX racute ograve -4 KPX racute ohungarumlaut -4 KPX racute omacron -4 KPX racute oslash -4 KPX racute otilde -4 KPX racute period -73 KPX racute q -8 KPX rcaron c -7 KPX rcaron cacute -7 KPX rcaron ccaron -7 KPX rcaron ccedilla -7 KPX rcaron comma -105 KPX rcaron d -6 KPX rcaron dcroat -6 KPX rcaron e -4 KPX rcaron eacute -4 KPX rcaron ecaron -4 KPX rcaron ecircumflex -4 KPX rcaron edieresis -4 KPX rcaron edotaccent -4 KPX rcaron egrave -4 KPX rcaron emacron -4 KPX rcaron eogonek -4 KPX rcaron f 48 KPX rcaron g 1 KPX rcaron gbreve 1 KPX rcaron gcommaaccent 1 KPX rcaron h 29 KPX rcaron m 28 KPX rcaron n 21 KPX rcaron nacute 21 KPX rcaron ncaron 21 KPX rcaron ncommaaccent 21 KPX rcaron ntilde 21 KPX rcaron o -4 KPX rcaron oacute -4 KPX rcaron ocircumflex -4 KPX rcaron odieresis -4 KPX rcaron ograve -4 KPX rcaron ohungarumlaut -4 KPX rcaron omacron -4 KPX rcaron oslash -4 KPX rcaron otilde -4 KPX rcaron period -73 KPX rcaron q -8 KPX rcommaaccent c -7 KPX rcommaaccent cacute -7 KPX rcommaaccent ccaron -7 KPX rcommaaccent ccedilla -7 KPX rcommaaccent comma -105 KPX rcommaaccent d -6 KPX rcommaaccent dcroat -6 KPX rcommaaccent e -4 KPX rcommaaccent eacute -4 KPX rcommaaccent ecaron -4 KPX rcommaaccent ecircumflex -4 KPX rcommaaccent edieresis -4 KPX rcommaaccent edotaccent -4 KPX rcommaaccent egrave -4 KPX rcommaaccent emacron -4 KPX rcommaaccent eogonek -4 KPX rcommaaccent f 48 KPX rcommaaccent g 1 KPX rcommaaccent gbreve 1 KPX rcommaaccent gcommaaccent 1 KPX rcommaaccent h 29 KPX rcommaaccent m 28 KPX rcommaaccent n 21 KPX rcommaaccent nacute 21 KPX rcommaaccent ncaron 21 KPX rcommaaccent ncommaaccent 21 KPX rcommaaccent ntilde 21 KPX rcommaaccent o -4 KPX rcommaaccent oacute -4 KPX rcommaaccent ocircumflex -4 KPX rcommaaccent odieresis -4 KPX rcommaaccent ograve -4 KPX rcommaaccent ohungarumlaut -4 KPX rcommaaccent omacron -4 KPX rcommaaccent oslash -4 KPX rcommaaccent otilde -4 KPX rcommaaccent period -73 KPX rcommaaccent q -8 EndKernPairs EndKernData EndFontMetrics a2ps-4.14/afm/phvrrn.afm0000644000175000017500000022075610674334153014416 0ustar mhattamhattaStartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Fri May 2 17:00:45 1997 Comment UniqueID 43179 Comment VMusage 14960 69346 FontName Helvetica-Narrow FullName Helvetica Narrow FamilyName Helvetica Weight Medium ItalicAngle 0 IsFixedPitch false FontBBox -136 -225 820 931 UnderlinePosition -100 UnderlineThickness 50 Version 002.000 Notice Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries. EncodingScheme AdobeStandardEncoding CapHeight 718 XHeight 523 Ascender 718 Descender -207 StdHW 76 StdVW 88 StartCharMetrics 314 C 32 ; WX 228 ; N space ; B 0 0 0 0 ; C 33 ; WX 228 ; N exclam ; B 74 0 153 718 ; C 34 ; WX 291 ; N quotedbl ; B 57 463 234 718 ; C 35 ; WX 456 ; N numbersign ; B 23 0 434 688 ; C 36 ; WX 456 ; N dollar ; B 26 -115 426 775 ; C 37 ; WX 729 ; N percent ; B 32 -19 697 703 ; C 38 ; WX 547 ; N ampersand ; B 36 -15 529 718 ; C 39 ; WX 182 ; N quoteright ; B 43 463 129 718 ; C 40 ; WX 273 ; N parenleft ; B 56 -207 245 733 ; C 41 ; WX 273 ; N parenright ; B 28 -207 217 733 ; C 42 ; WX 319 ; N asterisk ; B 32 431 286 718 ; C 43 ; WX 479 ; N plus ; B 32 0 447 505 ; C 44 ; WX 228 ; N comma ; B 71 -147 157 106 ; C 45 ; WX 273 ; N hyphen ; B 36 232 237 322 ; C 46 ; WX 228 ; N period ; B 71 0 157 106 ; C 47 ; WX 228 ; N slash ; B -14 -19 242 737 ; C 48 ; WX 456 ; N zero ; B 30 -19 426 703 ; C 49 ; WX 456 ; N one ; B 83 0 294 703 ; C 50 ; WX 456 ; N two ; B 21 0 416 703 ; C 51 ; WX 456 ; N three ; B 28 -19 428 703 ; C 52 ; WX 456 ; N four ; B 21 0 429 703 ; C 53 ; WX 456 ; N five ; B 26 -19 421 688 ; C 54 ; WX 456 ; N six ; B 31 -19 425 703 ; C 55 ; WX 456 ; N seven ; B 30 0 429 688 ; C 56 ; WX 456 ; N eight ; B 31 -19 424 703 ; C 57 ; WX 456 ; N nine ; B 34 -19 421 703 ; C 58 ; WX 228 ; N colon ; B 71 0 157 516 ; C 59 ; WX 228 ; N semicolon ; B 71 -147 157 516 ; C 60 ; WX 479 ; N less ; B 39 11 440 495 ; C 61 ; WX 479 ; N equal ; B 32 115 447 390 ; C 62 ; WX 479 ; N greater ; B 39 11 440 495 ; C 63 ; WX 456 ; N question ; B 46 0 403 727 ; C 64 ; WX 832 ; N at ; B 121 -19 712 737 ; C 65 ; WX 547 ; N A ; B 11 0 536 718 ; C 66 ; WX 547 ; N B ; B 61 0 514 718 ; C 67 ; WX 592 ; N C ; B 36 -19 558 737 ; C 68 ; WX 592 ; N D ; B 66 0 553 718 ; C 69 ; WX 547 ; N E ; B 71 0 505 718 ; C 70 ; WX 501 ; N F ; B 71 0 478 718 ; C 71 ; WX 638 ; N G ; B 39 -19 577 737 ; C 72 ; WX 592 ; N H ; B 63 0 530 718 ; C 73 ; WX 228 ; N I ; B 75 0 154 718 ; C 74 ; WX 410 ; N J ; B 14 -19 351 718 ; C 75 ; WX 547 ; N K ; B 62 0 544 718 ; C 76 ; WX 456 ; N L ; B 62 0 440 718 ; C 77 ; WX 683 ; N M ; B 60 0 624 718 ; C 78 ; WX 592 ; N N ; B 62 0 530 718 ; C 79 ; WX 638 ; N O ; B 32 -19 606 737 ; C 80 ; WX 547 ; N P ; B 71 0 510 718 ; C 81 ; WX 638 ; N Q ; B 32 -56 606 737 ; C 82 ; WX 592 ; N R ; B 72 0 561 718 ; C 83 ; WX 547 ; N S ; B 40 -19 508 737 ; C 84 ; WX 501 ; N T ; B 11 0 490 718 ; C 85 ; WX 592 ; N U ; B 65 -19 528 718 ; C 86 ; WX 547 ; N V ; B 16 0 531 718 ; C 87 ; WX 774 ; N W ; B 13 0 761 718 ; C 88 ; WX 547 ; N X ; B 16 0 531 718 ; C 89 ; WX 547 ; N Y ; B 11 0 535 718 ; C 90 ; WX 501 ; N Z ; B 19 0 482 718 ; C 91 ; WX 228 ; N bracketleft ; B 52 -196 205 722 ; C 92 ; WX 228 ; N backslash ; B -14 -19 242 737 ; C 93 ; WX 228 ; N bracketright ; B 23 -196 176 722 ; C 94 ; WX 385 ; N asciicircum ; B -11 264 396 688 ; C 95 ; WX 456 ; N underscore ; B 0 -125 456 -75 ; C 96 ; WX 182 ; N quoteleft ; B 53 470 139 725 ; C 97 ; WX 456 ; N a ; B 30 -15 435 538 ; C 98 ; WX 456 ; N b ; B 48 -15 424 718 ; C 99 ; WX 410 ; N c ; B 25 -15 391 538 ; C 100 ; WX 456 ; N d ; B 29 -15 409 718 ; C 101 ; WX 456 ; N e ; B 33 -15 423 538 ; C 102 ; WX 228 ; N f ; B 11 0 215 728 ; L i fi ; L l fl ; C 103 ; WX 456 ; N g ; B 33 -220 409 538 ; C 104 ; WX 456 ; N h ; B 53 0 403 718 ; C 105 ; WX 182 ; N i ; B 55 0 127 718 ; C 106 ; WX 182 ; N j ; B -13 -210 127 718 ; C 107 ; WX 410 ; N k ; B 55 0 411 718 ; C 108 ; WX 182 ; N l ; B 55 0 127 718 ; C 109 ; WX 683 ; N m ; B 53 0 631 538 ; C 110 ; WX 456 ; N n ; B 53 0 403 538 ; C 111 ; WX 456 ; N o ; B 29 -14 427 538 ; C 112 ; WX 456 ; N p ; B 48 -207 424 538 ; C 113 ; WX 456 ; N q ; B 29 -207 405 538 ; C 114 ; WX 273 ; N r ; B 63 0 272 538 ; C 115 ; WX 410 ; N s ; B 26 -15 380 538 ; C 116 ; WX 228 ; N t ; B 11 -7 211 669 ; C 117 ; WX 456 ; N u ; B 56 -15 401 523 ; C 118 ; WX 410 ; N v ; B 7 0 403 523 ; C 119 ; WX 592 ; N w ; B 11 0 581 523 ; C 120 ; WX 410 ; N x ; B 9 0 402 523 ; C 121 ; WX 410 ; N y ; B 9 -214 401 523 ; C 122 ; WX 410 ; N z ; B 25 0 385 523 ; C 123 ; WX 274 ; N braceleft ; B 34 -196 239 722 ; C 124 ; WX 213 ; N bar ; B 77 -225 137 775 ; C 125 ; WX 274 ; N braceright ; B 34 -196 239 722 ; C 126 ; WX 479 ; N asciitilde ; B 50 180 429 326 ; C 161 ; WX 273 ; N exclamdown ; B 97 -195 176 523 ; C 162 ; WX 456 ; N cent ; B 42 -115 421 623 ; C 163 ; WX 456 ; N sterling ; B 27 -16 442 718 ; C 164 ; WX 137 ; N fraction ; B -136 -19 273 703 ; C 165 ; WX 456 ; N yen ; B 2 0 453 688 ; C 166 ; WX 456 ; N florin ; B -9 -207 411 737 ; C 167 ; WX 456 ; N section ; B 35 -191 420 737 ; C 168 ; WX 456 ; N currency ; B 23 99 433 603 ; C 169 ; WX 157 ; N quotesingle ; B 48 463 108 718 ; C 170 ; WX 273 ; N quotedblleft ; B 31 470 252 725 ; C 171 ; WX 456 ; N guillemotleft ; B 80 108 376 446 ; C 172 ; WX 273 ; N guilsinglleft ; B 72 108 201 446 ; C 173 ; WX 273 ; N guilsinglright ; B 72 108 201 446 ; C 174 ; WX 410 ; N fi ; B 11 0 356 728 ; C 175 ; WX 410 ; N fl ; B 11 0 354 728 ; C 177 ; WX 456 ; N endash ; B 0 240 456 313 ; C 178 ; WX 456 ; N dagger ; B 35 -159 421 718 ; C 179 ; WX 456 ; N daggerdbl ; B 35 -159 421 718 ; C 180 ; WX 228 ; N periodcentered ; B 63 190 166 315 ; C 182 ; WX 440 ; N paragraph ; B 15 -173 408 718 ; C 183 ; WX 287 ; N bullet ; B 15 202 273 517 ; C 184 ; WX 182 ; N quotesinglbase ; B 43 -149 129 106 ; C 185 ; WX 273 ; N quotedblbase ; B 21 -149 242 106 ; C 186 ; WX 273 ; N quotedblright ; B 21 463 242 718 ; C 187 ; WX 456 ; N guillemotright ; B 80 108 376 446 ; C 188 ; WX 820 ; N ellipsis ; B 94 0 726 106 ; C 189 ; WX 820 ; N perthousand ; B 6 -19 815 703 ; C 191 ; WX 501 ; N questiondown ; B 75 -201 432 525 ; C 193 ; WX 273 ; N grave ; B 11 593 173 734 ; C 194 ; WX 273 ; N acute ; B 100 593 262 734 ; C 195 ; WX 273 ; N circumflex ; B 17 593 256 734 ; C 196 ; WX 273 ; N tilde ; B -3 606 276 722 ; C 197 ; WX 273 ; N macron ; B 8 627 265 684 ; C 198 ; WX 273 ; N breve ; B 11 595 263 731 ; C 199 ; WX 273 ; N dotaccent ; B 99 604 174 706 ; C 200 ; WX 273 ; N dieresis ; B 33 604 240 706 ; C 202 ; WX 273 ; N ring ; B 62 572 212 756 ; C 203 ; WX 273 ; N cedilla ; B 37 -225 212 0 ; C 205 ; WX 273 ; N hungarumlaut ; B 25 593 335 734 ; C 206 ; WX 273 ; N ogonek ; B 60 -225 235 0 ; C 207 ; WX 273 ; N caron ; B 17 593 256 734 ; C 208 ; WX 820 ; N emdash ; B 0 240 820 313 ; C 225 ; WX 820 ; N AE ; B 7 0 780 718 ; C 227 ; WX 303 ; N ordfeminine ; B 20 405 284 737 ; C 232 ; WX 456 ; N Lslash ; B -16 0 440 718 ; C 233 ; WX 638 ; N Oslash ; B 32 -19 607 737 ; C 234 ; WX 820 ; N OE ; B 30 -19 791 737 ; C 235 ; WX 299 ; N ordmasculine ; B 21 405 280 737 ; C 241 ; WX 729 ; N ae ; B 30 -15 695 538 ; C 245 ; WX 228 ; N dotlessi ; B 78 0 150 523 ; C 248 ; WX 182 ; N lslash ; B -16 0 198 718 ; C 249 ; WX 501 ; N oslash ; B 23 -22 440 545 ; C 250 ; WX 774 ; N oe ; B 29 -15 740 538 ; C 251 ; WX 501 ; N germandbls ; B 55 -15 468 728 ; C -1 ; WX 228 ; N Idieresis ; B 11 0 218 901 ; C -1 ; WX 456 ; N eacute ; B 33 -15 423 734 ; C -1 ; WX 456 ; N abreve ; B 30 -15 435 731 ; C -1 ; WX 456 ; N uhungarumlaut ; B 56 -15 427 734 ; C -1 ; WX 456 ; N ecaron ; B 33 -15 423 734 ; C -1 ; WX 547 ; N Ydieresis ; B 11 0 535 901 ; C -1 ; WX 479 ; N divide ; B 32 -19 447 524 ; C -1 ; WX 547 ; N Yacute ; B 11 0 535 929 ; C -1 ; WX 547 ; N Acircumflex ; B 11 0 536 929 ; C -1 ; WX 456 ; N aacute ; B 30 -15 435 734 ; C -1 ; WX 592 ; N Ucircumflex ; B 65 -19 528 929 ; C -1 ; WX 410 ; N yacute ; B 9 -214 401 734 ; C -1 ; WX 410 ; N scommaaccent ; B 26 -225 380 538 ; C -1 ; WX 456 ; N ecircumflex ; B 33 -15 423 734 ; C -1 ; WX 592 ; N Uring ; B 65 -19 528 931 ; C -1 ; WX 592 ; N Udieresis ; B 65 -19 528 901 ; C -1 ; WX 456 ; N aogonek ; B 30 -220 449 538 ; C -1 ; WX 592 ; N Uacute ; B 65 -19 528 929 ; C -1 ; WX 456 ; N uogonek ; B 56 -225 426 523 ; C -1 ; WX 547 ; N Edieresis ; B 71 0 505 901 ; C -1 ; WX 592 ; N Dcroat ; B 0 0 553 718 ; C -1 ; WX 205 ; N commaaccent ; B 71 -225 148 -40 ; C -1 ; WX 604 ; N copyright ; B -11 -19 617 737 ; C -1 ; WX 547 ; N Emacron ; B 71 0 505 879 ; C -1 ; WX 410 ; N ccaron ; B 25 -15 391 734 ; C -1 ; WX 456 ; N aring ; B 30 -15 435 756 ; C -1 ; WX 592 ; N Ncommaaccent ; B 62 -225 530 718 ; C -1 ; WX 182 ; N lacute ; B 55 0 216 929 ; C -1 ; WX 456 ; N agrave ; B 30 -15 435 734 ; C -1 ; WX 501 ; N Tcommaaccent ; B 11 -225 490 718 ; C -1 ; WX 592 ; N Cacute ; B 36 -19 558 929 ; C -1 ; WX 456 ; N atilde ; B 30 -15 435 722 ; C -1 ; WX 547 ; N Edotaccent ; B 71 0 505 901 ; C -1 ; WX 410 ; N scaron ; B 26 -15 380 734 ; C -1 ; WX 410 ; N scedilla ; B 26 -225 380 538 ; C -1 ; WX 228 ; N iacute ; B 78 0 239 734 ; C -1 ; WX 386 ; N lozenge ; B 8 0 379 728 ; C -1 ; WX 592 ; N Rcaron ; B 72 0 561 929 ; C -1 ; WX 638 ; N Gcommaaccent ; B 39 -225 577 737 ; C -1 ; WX 456 ; N ucircumflex ; B 56 -15 401 734 ; C -1 ; WX 456 ; N acircumflex ; B 30 -15 435 734 ; C -1 ; WX 547 ; N Amacron ; B 11 0 536 879 ; C -1 ; WX 273 ; N rcaron ; B 50 0 289 734 ; C -1 ; WX 410 ; N ccedilla ; B 25 -225 391 538 ; C -1 ; WX 501 ; N Zdotaccent ; B 19 0 482 901 ; C -1 ; WX 547 ; N Thorn ; B 71 0 510 718 ; C -1 ; WX 638 ; N Omacron ; B 32 -19 606 879 ; C -1 ; WX 592 ; N Racute ; B 72 0 561 929 ; C -1 ; WX 547 ; N Sacute ; B 40 -19 508 929 ; C -1 ; WX 527 ; N dcaron ; B 29 -15 537 718 ; C -1 ; WX 592 ; N Umacron ; B 65 -19 528 879 ; C -1 ; WX 456 ; N uring ; B 56 -15 401 756 ; C -1 ; WX 273 ; N threesuperior ; B 4 270 267 703 ; C -1 ; WX 638 ; N Ograve ; B 32 -19 606 929 ; C -1 ; WX 547 ; N Agrave ; B 11 0 536 929 ; C -1 ; WX 547 ; N Abreve ; B 11 0 536 926 ; C -1 ; WX 479 ; N multiply ; B 32 0 447 506 ; C -1 ; WX 456 ; N uacute ; B 56 -15 401 734 ; C -1 ; WX 501 ; N Tcaron ; B 11 0 490 929 ; C -1 ; WX 390 ; N partialdiff ; B 11 -38 380 714 ; C -1 ; WX 410 ; N ydieresis ; B 9 -214 401 706 ; C -1 ; WX 592 ; N Nacute ; B 62 0 530 929 ; C -1 ; WX 228 ; N icircumflex ; B -5 0 234 734 ; C -1 ; WX 547 ; N Ecircumflex ; B 71 0 505 929 ; C -1 ; WX 456 ; N adieresis ; B 30 -15 435 706 ; C -1 ; WX 456 ; N edieresis ; B 33 -15 423 706 ; C -1 ; WX 410 ; N cacute ; B 25 -15 391 734 ; C -1 ; WX 456 ; N nacute ; B 53 0 403 734 ; C -1 ; WX 456 ; N umacron ; B 56 -15 401 684 ; C -1 ; WX 592 ; N Ncaron ; B 62 0 530 929 ; C -1 ; WX 228 ; N Iacute ; B 75 0 239 929 ; C -1 ; WX 479 ; N plusminus ; B 32 0 447 506 ; C -1 ; WX 213 ; N brokenbar ; B 77 -150 137 700 ; C -1 ; WX 604 ; N registered ; B -11 -19 617 737 ; C -1 ; WX 638 ; N Gbreve ; B 39 -19 577 926 ; C -1 ; WX 228 ; N Idotaccent ; B 75 0 154 901 ; C -1 ; WX 492 ; N summation ; B 12 -10 481 706 ; C -1 ; WX 547 ; N Egrave ; B 71 0 505 929 ; C -1 ; WX 273 ; N racute ; B 63 0 272 734 ; C -1 ; WX 456 ; N omacron ; B 29 -14 427 684 ; C -1 ; WX 501 ; N Zacute ; B 19 0 482 929 ; C -1 ; WX 501 ; N Zcaron ; B 19 0 482 929 ; C -1 ; WX 450 ; N greaterequal ; B 21 0 429 674 ; C -1 ; WX 592 ; N Eth ; B 0 0 553 718 ; C -1 ; WX 592 ; N Ccedilla ; B 36 -225 558 737 ; C -1 ; WX 182 ; N lcommaaccent ; B 55 -225 137 718 ; C -1 ; WX 260 ; N tcaron ; B 11 -7 270 808 ; C -1 ; WX 456 ; N eogonek ; B 33 -225 423 538 ; C -1 ; WX 592 ; N Uogonek ; B 65 -225 528 718 ; C -1 ; WX 547 ; N Aacute ; B 11 0 536 929 ; C -1 ; WX 547 ; N Adieresis ; B 11 0 536 901 ; C -1 ; WX 456 ; N egrave ; B 33 -15 423 734 ; C -1 ; WX 410 ; N zacute ; B 25 0 385 734 ; C -1 ; WX 182 ; N iogonek ; B -25 -225 150 718 ; C -1 ; WX 638 ; N Oacute ; B 32 -19 606 929 ; C -1 ; WX 456 ; N oacute ; B 29 -14 427 734 ; C -1 ; WX 456 ; N amacron ; B 30 -15 435 684 ; C -1 ; WX 410 ; N sacute ; B 26 -15 380 734 ; C -1 ; WX 228 ; N idieresis ; B 11 0 218 706 ; C -1 ; WX 638 ; N Ocircumflex ; B 32 -19 606 929 ; C -1 ; WX 592 ; N Ugrave ; B 65 -19 528 929 ; C -1 ; WX 502 ; N Delta ; B 5 0 499 688 ; C -1 ; WX 456 ; N thorn ; B 48 -207 424 718 ; C -1 ; WX 273 ; N twosuperior ; B 3 281 265 703 ; C -1 ; WX 638 ; N Odieresis ; B 32 -19 606 901 ; C -1 ; WX 456 ; N mu ; B 56 -207 401 523 ; C -1 ; WX 228 ; N igrave ; B -11 0 151 734 ; C -1 ; WX 456 ; N ohungarumlaut ; B 29 -14 427 734 ; C -1 ; WX 547 ; N Eogonek ; B 71 -220 519 718 ; C -1 ; WX 456 ; N dcroat ; B 29 -15 451 718 ; C -1 ; WX 684 ; N threequarters ; B 37 -19 664 703 ; C -1 ; WX 547 ; N Scedilla ; B 40 -225 508 737 ; C -1 ; WX 245 ; N lcaron ; B 55 0 255 718 ; C -1 ; WX 547 ; N Kcommaaccent ; B 62 -225 544 718 ; C -1 ; WX 456 ; N Lacute ; B 62 0 440 929 ; C -1 ; WX 820 ; N trademark ; B 38 306 740 718 ; C -1 ; WX 456 ; N edotaccent ; B 33 -15 423 706 ; C -1 ; WX 228 ; N Igrave ; B -11 0 154 929 ; C -1 ; WX 228 ; N Imacron ; B -14 0 243 879 ; C -1 ; WX 456 ; N Lcaron ; B 62 0 440 718 ; C -1 ; WX 684 ; N onehalf ; B 35 -19 634 703 ; C -1 ; WX 450 ; N lessequal ; B 21 0 429 674 ; C -1 ; WX 456 ; N ocircumflex ; B 29 -14 427 734 ; C -1 ; WX 456 ; N ntilde ; B 53 0 403 722 ; C -1 ; WX 592 ; N Uhungarumlaut ; B 65 -19 528 929 ; C -1 ; WX 547 ; N Eacute ; B 71 0 505 929 ; C -1 ; WX 456 ; N emacron ; B 33 -15 423 684 ; C -1 ; WX 456 ; N gbreve ; B 33 -220 409 731 ; C -1 ; WX 684 ; N onequarter ; B 60 -19 620 703 ; C -1 ; WX 547 ; N Scaron ; B 40 -19 508 929 ; C -1 ; WX 547 ; N Scommaaccent ; B 40 -225 508 737 ; C -1 ; WX 638 ; N Ohungarumlaut ; B 32 -19 606 929 ; C -1 ; WX 328 ; N degree ; B 44 411 284 703 ; C -1 ; WX 456 ; N ograve ; B 29 -14 427 734 ; C -1 ; WX 592 ; N Ccaron ; B 36 -19 558 929 ; C -1 ; WX 456 ; N ugrave ; B 56 -15 401 734 ; C -1 ; WX 371 ; N radical ; B -3 -80 376 762 ; C -1 ; WX 592 ; N Dcaron ; B 66 0 553 929 ; C -1 ; WX 273 ; N rcommaaccent ; B 63 -225 272 538 ; C -1 ; WX 592 ; N Ntilde ; B 62 0 530 917 ; C -1 ; WX 456 ; N otilde ; B 29 -14 427 722 ; C -1 ; WX 592 ; N Rcommaaccent ; B 72 -225 561 718 ; C -1 ; WX 456 ; N Lcommaaccent ; B 62 -225 440 718 ; C -1 ; WX 547 ; N Atilde ; B 11 0 536 917 ; C -1 ; WX 547 ; N Aogonek ; B 11 -225 536 718 ; C -1 ; WX 547 ; N Aring ; B 11 0 536 931 ; C -1 ; WX 638 ; N Otilde ; B 32 -19 606 917 ; C -1 ; WX 410 ; N zdotaccent ; B 25 0 385 706 ; C -1 ; WX 547 ; N Ecaron ; B 71 0 505 929 ; C -1 ; WX 228 ; N Iogonek ; B -2 -225 173 718 ; C -1 ; WX 410 ; N kcommaaccent ; B 55 -225 411 718 ; C -1 ; WX 479 ; N minus ; B 32 216 447 289 ; C -1 ; WX 228 ; N Icircumflex ; B -5 0 234 929 ; C -1 ; WX 456 ; N ncaron ; B 53 0 403 734 ; C -1 ; WX 228 ; N tcommaaccent ; B 11 -225 211 669 ; C -1 ; WX 479 ; N logicalnot ; B 32 108 447 390 ; C -1 ; WX 456 ; N odieresis ; B 29 -14 427 706 ; C -1 ; WX 456 ; N udieresis ; B 56 -15 401 706 ; C -1 ; WX 450 ; N notequal ; B 10 -35 440 551 ; C -1 ; WX 456 ; N gcommaaccent ; B 33 -220 409 822 ; C -1 ; WX 456 ; N eth ; B 29 -15 428 737 ; C -1 ; WX 410 ; N zcaron ; B 25 0 385 734 ; C -1 ; WX 456 ; N ncommaaccent ; B 53 -225 403 538 ; C -1 ; WX 273 ; N onesuperior ; B 35 281 182 703 ; C -1 ; WX 228 ; N imacron ; B 4 0 223 684 ; EndCharMetrics StartKernData StartKernPairs 2705 KPX A C -30 KPX A Cacute -30 KPX A Ccaron -30 KPX A Ccedilla -30 KPX A G -30 KPX A Gbreve -30 KPX A Gcommaaccent -30 KPX A O -30 KPX A Oacute -30 KPX A Ocircumflex -30 KPX A Odieresis -30 KPX A Ograve -30 KPX A Ohungarumlaut -30 KPX A Omacron -30 KPX A Oslash -30 KPX A Otilde -30 KPX A Q -30 KPX A T -120 KPX A Tcaron -120 KPX A Tcommaaccent -120 KPX A U -50 KPX A Uacute -50 KPX A Ucircumflex -50 KPX A Udieresis -50 KPX A Ugrave -50 KPX A Uhungarumlaut -50 KPX A Umacron -50 KPX A Uogonek -50 KPX A Uring -50 KPX A V -70 KPX A W -50 KPX A Y -100 KPX A Yacute -100 KPX A Ydieresis -100 KPX A u -30 KPX A uacute -30 KPX A ucircumflex -30 KPX A udieresis -30 KPX A ugrave -30 KPX A uhungarumlaut -30 KPX A umacron -30 KPX A uogonek -30 KPX A uring -30 KPX A v -40 KPX A w -40 KPX A y -40 KPX A yacute -40 KPX A ydieresis -40 KPX Aacute C -30 KPX Aacute Cacute -30 KPX Aacute Ccaron -30 KPX Aacute Ccedilla -30 KPX Aacute G -30 KPX Aacute Gbreve -30 KPX Aacute Gcommaaccent -30 KPX Aacute O -30 KPX Aacute Oacute -30 KPX Aacute Ocircumflex -30 KPX Aacute Odieresis -30 KPX Aacute Ograve -30 KPX Aacute Ohungarumlaut -30 KPX Aacute Omacron -30 KPX Aacute Oslash -30 KPX Aacute Otilde -30 KPX Aacute Q -30 KPX Aacute T -120 KPX Aacute Tcaron -120 KPX Aacute Tcommaaccent -120 KPX Aacute U -50 KPX Aacute Uacute -50 KPX Aacute Ucircumflex -50 KPX Aacute Udieresis -50 KPX Aacute Ugrave -50 KPX Aacute Uhungarumlaut -50 KPX Aacute Umacron -50 KPX Aacute Uogonek -50 KPX Aacute Uring -50 KPX Aacute V -70 KPX Aacute W -50 KPX Aacute Y -100 KPX Aacute Yacute -100 KPX Aacute Ydieresis -100 KPX Aacute u -30 KPX Aacute uacute -30 KPX Aacute ucircumflex -30 KPX Aacute udieresis -30 KPX Aacute ugrave -30 KPX Aacute uhungarumlaut -30 KPX Aacute umacron -30 KPX Aacute uogonek -30 KPX Aacute uring -30 KPX Aacute v -40 KPX Aacute w -40 KPX Aacute y -40 KPX Aacute yacute -40 KPX Aacute ydieresis -40 KPX Abreve C -30 KPX Abreve Cacute -30 KPX Abreve Ccaron -30 KPX Abreve Ccedilla -30 KPX Abreve G -30 KPX Abreve Gbreve -30 KPX Abreve Gcommaaccent -30 KPX Abreve O -30 KPX Abreve Oacute -30 KPX Abreve Ocircumflex -30 KPX Abreve Odieresis -30 KPX Abreve Ograve -30 KPX Abreve Ohungarumlaut -30 KPX Abreve Omacron -30 KPX Abreve Oslash -30 KPX Abreve Otilde -30 KPX Abreve Q -30 KPX Abreve T -120 KPX Abreve Tcaron -120 KPX Abreve Tcommaaccent -120 KPX Abreve U -50 KPX Abreve Uacute -50 KPX Abreve Ucircumflex -50 KPX Abreve Udieresis -50 KPX Abreve Ugrave -50 KPX Abreve Uhungarumlaut -50 KPX Abreve Umacron -50 KPX Abreve Uogonek -50 KPX Abreve Uring -50 KPX Abreve V -70 KPX Abreve W -50 KPX Abreve Y -100 KPX Abreve Yacute -100 KPX Abreve Ydieresis -100 KPX Abreve u -30 KPX Abreve uacute -30 KPX Abreve ucircumflex -30 KPX Abreve udieresis -30 KPX Abreve ugrave -30 KPX Abreve uhungarumlaut -30 KPX Abreve umacron -30 KPX Abreve uogonek -30 KPX Abreve uring -30 KPX Abreve v -40 KPX Abreve w -40 KPX Abreve y -40 KPX Abreve yacute -40 KPX Abreve ydieresis -40 KPX Acircumflex C -30 KPX Acircumflex Cacute -30 KPX Acircumflex Ccaron -30 KPX Acircumflex Ccedilla -30 KPX Acircumflex G -30 KPX Acircumflex Gbreve -30 KPX Acircumflex Gcommaaccent -30 KPX Acircumflex O -30 KPX Acircumflex Oacute -30 KPX Acircumflex Ocircumflex -30 KPX Acircumflex Odieresis -30 KPX Acircumflex Ograve -30 KPX Acircumflex Ohungarumlaut -30 KPX Acircumflex Omacron -30 KPX Acircumflex Oslash -30 KPX Acircumflex Otilde -30 KPX Acircumflex Q -30 KPX Acircumflex T -120 KPX Acircumflex Tcaron -120 KPX Acircumflex Tcommaaccent -120 KPX Acircumflex U -50 KPX Acircumflex Uacute -50 KPX Acircumflex Ucircumflex -50 KPX Acircumflex Udieresis -50 KPX Acircumflex Ugrave -50 KPX Acircumflex Uhungarumlaut -50 KPX Acircumflex Umacron -50 KPX Acircumflex Uogonek -50 KPX Acircumflex Uring -50 KPX Acircumflex V -70 KPX Acircumflex W -50 KPX Acircumflex Y -100 KPX Acircumflex Yacute -100 KPX Acircumflex Ydieresis -100 KPX Acircumflex u -30 KPX Acircumflex uacute -30 KPX Acircumflex ucircumflex -30 KPX Acircumflex udieresis -30 KPX Acircumflex ugrave -30 KPX Acircumflex uhungarumlaut -30 KPX Acircumflex umacron -30 KPX Acircumflex uogonek -30 KPX Acircumflex uring -30 KPX Acircumflex v -40 KPX Acircumflex w -40 KPX Acircumflex y -40 KPX Acircumflex yacute -40 KPX Acircumflex ydieresis -40 KPX Adieresis C -30 KPX Adieresis Cacute -30 KPX Adieresis Ccaron -30 KPX Adieresis Ccedilla -30 KPX Adieresis G -30 KPX Adieresis Gbreve -30 KPX Adieresis Gcommaaccent -30 KPX Adieresis O -30 KPX Adieresis Oacute -30 KPX Adieresis Ocircumflex -30 KPX Adieresis Odieresis -30 KPX Adieresis Ograve -30 KPX Adieresis Ohungarumlaut -30 KPX Adieresis Omacron -30 KPX Adieresis Oslash -30 KPX Adieresis Otilde -30 KPX Adieresis Q -30 KPX Adieresis T -120 KPX Adieresis Tcaron -120 KPX Adieresis Tcommaaccent -120 KPX Adieresis U -50 KPX Adieresis Uacute -50 KPX Adieresis Ucircumflex -50 KPX Adieresis Udieresis -50 KPX Adieresis Ugrave -50 KPX Adieresis Uhungarumlaut -50 KPX Adieresis Umacron -50 KPX Adieresis Uogonek -50 KPX Adieresis Uring -50 KPX Adieresis V -70 KPX Adieresis W -50 KPX Adieresis Y -100 KPX Adieresis Yacute -100 KPX Adieresis Ydieresis -100 KPX Adieresis u -30 KPX Adieresis uacute -30 KPX Adieresis ucircumflex -30 KPX Adieresis udieresis -30 KPX Adieresis ugrave -30 KPX Adieresis uhungarumlaut -30 KPX Adieresis umacron -30 KPX Adieresis uogonek -30 KPX Adieresis uring -30 KPX Adieresis v -40 KPX Adieresis w -40 KPX Adieresis y -40 KPX Adieresis yacute -40 KPX Adieresis ydieresis -40 KPX Agrave C -30 KPX Agrave Cacute -30 KPX Agrave Ccaron -30 KPX Agrave Ccedilla -30 KPX Agrave G -30 KPX Agrave Gbreve -30 KPX Agrave Gcommaaccent -30 KPX Agrave O -30 KPX Agrave Oacute -30 KPX Agrave Ocircumflex -30 KPX Agrave Odieresis -30 KPX Agrave Ograve -30 KPX Agrave Ohungarumlaut -30 KPX Agrave Omacron -30 KPX Agrave Oslash -30 KPX Agrave Otilde -30 KPX Agrave Q -30 KPX Agrave T -120 KPX Agrave Tcaron -120 KPX Agrave Tcommaaccent -120 KPX Agrave U -50 KPX Agrave Uacute -50 KPX Agrave Ucircumflex -50 KPX Agrave Udieresis -50 KPX Agrave Ugrave -50 KPX Agrave Uhungarumlaut -50 KPX Agrave Umacron -50 KPX Agrave Uogonek -50 KPX Agrave Uring -50 KPX Agrave V -70 KPX Agrave W -50 KPX Agrave Y -100 KPX Agrave Yacute -100 KPX Agrave Ydieresis -100 KPX Agrave u -30 KPX Agrave uacute -30 KPX Agrave ucircumflex -30 KPX Agrave udieresis -30 KPX Agrave ugrave -30 KPX Agrave uhungarumlaut -30 KPX Agrave umacron -30 KPX Agrave uogonek -30 KPX Agrave uring -30 KPX Agrave v -40 KPX Agrave w -40 KPX Agrave y -40 KPX Agrave yacute -40 KPX Agrave ydieresis -40 KPX Amacron C -30 KPX Amacron Cacute -30 KPX Amacron Ccaron -30 KPX Amacron Ccedilla -30 KPX Amacron G -30 KPX Amacron Gbreve -30 KPX Amacron Gcommaaccent -30 KPX Amacron O -30 KPX Amacron Oacute -30 KPX Amacron Ocircumflex -30 KPX Amacron Odieresis -30 KPX Amacron Ograve -30 KPX Amacron Ohungarumlaut -30 KPX Amacron Omacron -30 KPX Amacron Oslash -30 KPX Amacron Otilde -30 KPX Amacron Q -30 KPX Amacron T -120 KPX Amacron Tcaron -120 KPX Amacron Tcommaaccent -120 KPX Amacron U -50 KPX Amacron Uacute -50 KPX Amacron Ucircumflex -50 KPX Amacron Udieresis -50 KPX Amacron Ugrave -50 KPX Amacron Uhungarumlaut -50 KPX Amacron Umacron -50 KPX Amacron Uogonek -50 KPX Amacron Uring -50 KPX Amacron V -70 KPX Amacron W -50 KPX Amacron Y -100 KPX Amacron Yacute -100 KPX Amacron Ydieresis -100 KPX Amacron u -30 KPX Amacron uacute -30 KPX Amacron ucircumflex -30 KPX Amacron udieresis -30 KPX Amacron ugrave -30 KPX Amacron uhungarumlaut -30 KPX Amacron umacron -30 KPX Amacron uogonek -30 KPX Amacron uring -30 KPX Amacron v -40 KPX Amacron w -40 KPX Amacron y -40 KPX Amacron yacute -40 KPX Amacron ydieresis -40 KPX Aogonek C -30 KPX Aogonek Cacute -30 KPX Aogonek Ccaron -30 KPX Aogonek Ccedilla -30 KPX Aogonek G -30 KPX Aogonek Gbreve -30 KPX Aogonek Gcommaaccent -30 KPX Aogonek O -30 KPX Aogonek Oacute -30 KPX Aogonek Ocircumflex -30 KPX Aogonek Odieresis -30 KPX Aogonek Ograve -30 KPX Aogonek Ohungarumlaut -30 KPX Aogonek Omacron -30 KPX Aogonek Oslash -30 KPX Aogonek Otilde -30 KPX Aogonek Q -30 KPX Aogonek T -120 KPX Aogonek Tcaron -120 KPX Aogonek Tcommaaccent -120 KPX Aogonek U -50 KPX Aogonek Uacute -50 KPX Aogonek Ucircumflex -50 KPX Aogonek Udieresis -50 KPX Aogonek Ugrave -50 KPX Aogonek Uhungarumlaut -50 KPX Aogonek Umacron -50 KPX Aogonek Uogonek -50 KPX Aogonek Uring -50 KPX Aogonek V -70 KPX Aogonek W -50 KPX Aogonek Y -100 KPX Aogonek Yacute -100 KPX Aogonek Ydieresis -100 KPX Aogonek u -30 KPX Aogonek uacute -30 KPX Aogonek ucircumflex -30 KPX Aogonek udieresis -30 KPX Aogonek ugrave -30 KPX Aogonek uhungarumlaut -30 KPX Aogonek umacron -30 KPX Aogonek uogonek -30 KPX Aogonek uring -30 KPX Aogonek v -40 KPX Aogonek w -40 KPX Aogonek y -40 KPX Aogonek yacute -40 KPX Aogonek ydieresis -40 KPX Aring C -30 KPX Aring Cacute -30 KPX Aring Ccaron -30 KPX Aring Ccedilla -30 KPX Aring G -30 KPX Aring Gbreve -30 KPX Aring Gcommaaccent -30 KPX Aring O -30 KPX Aring Oacute -30 KPX Aring Ocircumflex -30 KPX Aring Odieresis -30 KPX Aring Ograve -30 KPX Aring Ohungarumlaut -30 KPX Aring Omacron -30 KPX Aring Oslash -30 KPX Aring Otilde -30 KPX Aring Q -30 KPX Aring T -120 KPX Aring Tcaron -120 KPX Aring Tcommaaccent -120 KPX Aring U -50 KPX Aring Uacute -50 KPX Aring Ucircumflex -50 KPX Aring Udieresis -50 KPX Aring Ugrave -50 KPX Aring Uhungarumlaut -50 KPX Aring Umacron -50 KPX Aring Uogonek -50 KPX Aring Uring -50 KPX Aring V -70 KPX Aring W -50 KPX Aring Y -100 KPX Aring Yacute -100 KPX Aring Ydieresis -100 KPX Aring u -30 KPX Aring uacute -30 KPX Aring ucircumflex -30 KPX Aring udieresis -30 KPX Aring ugrave -30 KPX Aring uhungarumlaut -30 KPX Aring umacron -30 KPX Aring uogonek -30 KPX Aring uring -30 KPX Aring v -40 KPX Aring w -40 KPX Aring y -40 KPX Aring yacute -40 KPX Aring ydieresis -40 KPX Atilde C -30 KPX Atilde Cacute -30 KPX Atilde Ccaron -30 KPX Atilde Ccedilla -30 KPX Atilde G -30 KPX Atilde Gbreve -30 KPX Atilde Gcommaaccent -30 KPX Atilde O -30 KPX Atilde Oacute -30 KPX Atilde Ocircumflex -30 KPX Atilde Odieresis -30 KPX Atilde Ograve -30 KPX Atilde Ohungarumlaut -30 KPX Atilde Omacron -30 KPX Atilde Oslash -30 KPX Atilde Otilde -30 KPX Atilde Q -30 KPX Atilde T -120 KPX Atilde Tcaron -120 KPX Atilde Tcommaaccent -120 KPX Atilde U -50 KPX Atilde Uacute -50 KPX Atilde Ucircumflex -50 KPX Atilde Udieresis -50 KPX Atilde Ugrave -50 KPX Atilde Uhungarumlaut -50 KPX Atilde Umacron -50 KPX Atilde Uogonek -50 KPX Atilde Uring -50 KPX Atilde V -70 KPX Atilde W -50 KPX Atilde Y -100 KPX Atilde Yacute -100 KPX Atilde Ydieresis -100 KPX Atilde u -30 KPX Atilde uacute -30 KPX Atilde ucircumflex -30 KPX Atilde udieresis -30 KPX Atilde ugrave -30 KPX Atilde uhungarumlaut -30 KPX Atilde umacron -30 KPX Atilde uogonek -30 KPX Atilde uring -30 KPX Atilde v -40 KPX Atilde w -40 KPX Atilde y -40 KPX Atilde yacute -40 KPX Atilde ydieresis -40 KPX B U -10 KPX B Uacute -10 KPX B Ucircumflex -10 KPX B Udieresis -10 KPX B Ugrave -10 KPX B Uhungarumlaut -10 KPX B Umacron -10 KPX B Uogonek -10 KPX B Uring -10 KPX B comma -20 KPX B period -20 KPX C comma -30 KPX C period -30 KPX Cacute comma -30 KPX Cacute period -30 KPX Ccaron comma -30 KPX Ccaron period -30 KPX Ccedilla comma -30 KPX Ccedilla period -30 KPX D A -40 KPX D Aacute -40 KPX D Abreve -40 KPX D Acircumflex -40 KPX D Adieresis -40 KPX D Agrave -40 KPX D Amacron -40 KPX D Aogonek -40 KPX D Aring -40 KPX D Atilde -40 KPX D V -70 KPX D W -40 KPX D Y -90 KPX D Yacute -90 KPX D Ydieresis -90 KPX D comma -70 KPX D period -70 KPX Dcaron A -40 KPX Dcaron Aacute -40 KPX Dcaron Abreve -40 KPX Dcaron Acircumflex -40 KPX Dcaron Adieresis -40 KPX Dcaron Agrave -40 KPX Dcaron Amacron -40 KPX Dcaron Aogonek -40 KPX Dcaron Aring -40 KPX Dcaron Atilde -40 KPX Dcaron V -70 KPX Dcaron W -40 KPX Dcaron Y -90 KPX Dcaron Yacute -90 KPX Dcaron Ydieresis -90 KPX Dcaron comma -70 KPX Dcaron period -70 KPX Dcroat A -40 KPX Dcroat Aacute -40 KPX Dcroat Abreve -40 KPX Dcroat Acircumflex -40 KPX Dcroat Adieresis -40 KPX Dcroat Agrave -40 KPX Dcroat Amacron -40 KPX Dcroat Aogonek -40 KPX Dcroat Aring -40 KPX Dcroat Atilde -40 KPX Dcroat V -70 KPX Dcroat W -40 KPX Dcroat Y -90 KPX Dcroat Yacute -90 KPX Dcroat Ydieresis -90 KPX Dcroat comma -70 KPX Dcroat period -70 KPX F A -80 KPX F Aacute -80 KPX F Abreve -80 KPX F Acircumflex -80 KPX F Adieresis -80 KPX F Agrave -80 KPX F Amacron -80 KPX F Aogonek -80 KPX F Aring -80 KPX F Atilde -80 KPX F a -50 KPX F aacute -50 KPX F abreve -50 KPX F acircumflex -50 KPX F adieresis -50 KPX F agrave -50 KPX F amacron -50 KPX F aogonek -50 KPX F aring -50 KPX F atilde -50 KPX F comma -150 KPX F e -30 KPX F eacute -30 KPX F ecaron -30 KPX F ecircumflex -30 KPX F edieresis -30 KPX F edotaccent -30 KPX F egrave -30 KPX F emacron -30 KPX F eogonek -30 KPX F o -30 KPX F oacute -30 KPX F ocircumflex -30 KPX F odieresis -30 KPX F ograve -30 KPX F ohungarumlaut -30 KPX F omacron -30 KPX F oslash -30 KPX F otilde -30 KPX F period -150 KPX F r -45 KPX F racute -45 KPX F rcaron -45 KPX F rcommaaccent -45 KPX J A -20 KPX J Aacute -20 KPX J Abreve -20 KPX J Acircumflex -20 KPX J Adieresis -20 KPX J Agrave -20 KPX J Amacron -20 KPX J Aogonek -20 KPX J Aring -20 KPX J Atilde -20 KPX J a -20 KPX J aacute -20 KPX J abreve -20 KPX J acircumflex -20 KPX J adieresis -20 KPX J agrave -20 KPX J amacron -20 KPX J aogonek -20 KPX J aring -20 KPX J atilde -20 KPX J comma -30 KPX J period -30 KPX J u -20 KPX J uacute -20 KPX J ucircumflex -20 KPX J udieresis -20 KPX J ugrave -20 KPX J uhungarumlaut -20 KPX J umacron -20 KPX J uogonek -20 KPX J uring -20 KPX K O -50 KPX K Oacute -50 KPX K Ocircumflex -50 KPX K Odieresis -50 KPX K Ograve -50 KPX K Ohungarumlaut -50 KPX K Omacron -50 KPX K Oslash -50 KPX K Otilde -50 KPX K e -40 KPX K eacute -40 KPX K ecaron -40 KPX K ecircumflex -40 KPX K edieresis -40 KPX K edotaccent -40 KPX K egrave -40 KPX K emacron -40 KPX K eogonek -40 KPX K o -40 KPX K oacute -40 KPX K ocircumflex -40 KPX K odieresis -40 KPX K ograve -40 KPX K ohungarumlaut -40 KPX K omacron -40 KPX K oslash -40 KPX K otilde -40 KPX K u -30 KPX K uacute -30 KPX K ucircumflex -30 KPX K udieresis -30 KPX K ugrave -30 KPX K uhungarumlaut -30 KPX K umacron -30 KPX K uogonek -30 KPX K uring -30 KPX K y -50 KPX K yacute -50 KPX K ydieresis -50 KPX Kcommaaccent O -50 KPX Kcommaaccent Oacute -50 KPX Kcommaaccent Ocircumflex -50 KPX Kcommaaccent Odieresis -50 KPX Kcommaaccent Ograve -50 KPX Kcommaaccent Ohungarumlaut -50 KPX Kcommaaccent Omacron -50 KPX Kcommaaccent Oslash -50 KPX Kcommaaccent Otilde -50 KPX Kcommaaccent e -40 KPX Kcommaaccent eacute -40 KPX Kcommaaccent ecaron -40 KPX Kcommaaccent ecircumflex -40 KPX Kcommaaccent edieresis -40 KPX Kcommaaccent edotaccent -40 KPX Kcommaaccent egrave -40 KPX Kcommaaccent emacron -40 KPX Kcommaaccent eogonek -40 KPX Kcommaaccent o -40 KPX Kcommaaccent oacute -40 KPX Kcommaaccent ocircumflex -40 KPX Kcommaaccent odieresis -40 KPX Kcommaaccent ograve -40 KPX Kcommaaccent ohungarumlaut -40 KPX Kcommaaccent omacron -40 KPX Kcommaaccent oslash -40 KPX Kcommaaccent otilde -40 KPX Kcommaaccent u -30 KPX Kcommaaccent uacute -30 KPX Kcommaaccent ucircumflex -30 KPX Kcommaaccent udieresis -30 KPX Kcommaaccent ugrave -30 KPX Kcommaaccent uhungarumlaut -30 KPX Kcommaaccent umacron -30 KPX Kcommaaccent uogonek -30 KPX Kcommaaccent uring -30 KPX Kcommaaccent y -50 KPX Kcommaaccent yacute -50 KPX Kcommaaccent ydieresis -50 KPX L T -110 KPX L Tcaron -110 KPX L Tcommaaccent -110 KPX L V -110 KPX L W -70 KPX L Y -140 KPX L Yacute -140 KPX L Ydieresis -140 KPX L quotedblright -140 KPX L quoteright -160 KPX L y -30 KPX L yacute -30 KPX L ydieresis -30 KPX Lacute T -110 KPX Lacute Tcaron -110 KPX Lacute Tcommaaccent -110 KPX Lacute V -110 KPX Lacute W -70 KPX Lacute Y -140 KPX Lacute Yacute -140 KPX Lacute Ydieresis -140 KPX Lacute quotedblright -140 KPX Lacute quoteright -160 KPX Lacute y -30 KPX Lacute yacute -30 KPX Lacute ydieresis -30 KPX Lcaron T -110 KPX Lcaron Tcaron -110 KPX Lcaron Tcommaaccent -110 KPX Lcaron V -110 KPX Lcaron W -70 KPX Lcaron Y -140 KPX Lcaron Yacute -140 KPX Lcaron Ydieresis -140 KPX Lcaron quotedblright -140 KPX Lcaron quoteright -160 KPX Lcaron y -30 KPX Lcaron yacute -30 KPX Lcaron ydieresis -30 KPX Lcommaaccent T -110 KPX Lcommaaccent Tcaron -110 KPX Lcommaaccent Tcommaaccent -110 KPX Lcommaaccent V -110 KPX Lcommaaccent W -70 KPX Lcommaaccent Y -140 KPX Lcommaaccent Yacute -140 KPX Lcommaaccent Ydieresis -140 KPX Lcommaaccent quotedblright -140 KPX Lcommaaccent quoteright -160 KPX Lcommaaccent y -30 KPX Lcommaaccent yacute -30 KPX Lcommaaccent ydieresis -30 KPX Lslash T -110 KPX Lslash Tcaron -110 KPX Lslash Tcommaaccent -110 KPX Lslash V -110 KPX Lslash W -70 KPX Lslash Y -140 KPX Lslash Yacute -140 KPX Lslash Ydieresis -140 KPX Lslash quotedblright -140 KPX Lslash quoteright -160 KPX Lslash y -30 KPX Lslash yacute -30 KPX Lslash ydieresis -30 KPX O A -20 KPX O Aacute -20 KPX O Abreve -20 KPX O Acircumflex -20 KPX O Adieresis -20 KPX O Agrave -20 KPX O Amacron -20 KPX O Aogonek -20 KPX O Aring -20 KPX O Atilde -20 KPX O T -40 KPX O Tcaron -40 KPX O Tcommaaccent -40 KPX O V -50 KPX O W -30 KPX O X -60 KPX O Y -70 KPX O Yacute -70 KPX O Ydieresis -70 KPX O comma -40 KPX O period -40 KPX Oacute A -20 KPX Oacute Aacute -20 KPX Oacute Abreve -20 KPX Oacute Acircumflex -20 KPX Oacute Adieresis -20 KPX Oacute Agrave -20 KPX Oacute Amacron -20 KPX Oacute Aogonek -20 KPX Oacute Aring -20 KPX Oacute Atilde -20 KPX Oacute T -40 KPX Oacute Tcaron -40 KPX Oacute Tcommaaccent -40 KPX Oacute V -50 KPX Oacute W -30 KPX Oacute X -60 KPX Oacute Y -70 KPX Oacute Yacute -70 KPX Oacute Ydieresis -70 KPX Oacute comma -40 KPX Oacute period -40 KPX Ocircumflex A -20 KPX Ocircumflex Aacute -20 KPX Ocircumflex Abreve -20 KPX Ocircumflex Acircumflex -20 KPX Ocircumflex Adieresis -20 KPX Ocircumflex Agrave -20 KPX Ocircumflex Amacron -20 KPX Ocircumflex Aogonek -20 KPX Ocircumflex Aring -20 KPX Ocircumflex Atilde -20 KPX Ocircumflex T -40 KPX Ocircumflex Tcaron -40 KPX Ocircumflex Tcommaaccent -40 KPX Ocircumflex V -50 KPX Ocircumflex W -30 KPX Ocircumflex X -60 KPX Ocircumflex Y -70 KPX Ocircumflex Yacute -70 KPX Ocircumflex Ydieresis -70 KPX Ocircumflex comma -40 KPX Ocircumflex period -40 KPX Odieresis A -20 KPX Odieresis Aacute -20 KPX Odieresis Abreve -20 KPX Odieresis Acircumflex -20 KPX Odieresis Adieresis -20 KPX Odieresis Agrave -20 KPX Odieresis Amacron -20 KPX Odieresis Aogonek -20 KPX Odieresis Aring -20 KPX Odieresis Atilde -20 KPX Odieresis T -40 KPX Odieresis Tcaron -40 KPX Odieresis Tcommaaccent -40 KPX Odieresis V -50 KPX Odieresis W -30 KPX Odieresis X -60 KPX Odieresis Y -70 KPX Odieresis Yacute -70 KPX Odieresis Ydieresis -70 KPX Odieresis comma -40 KPX Odieresis period -40 KPX Ograve A -20 KPX Ograve Aacute -20 KPX Ograve Abreve -20 KPX Ograve Acircumflex -20 KPX Ograve Adieresis -20 KPX Ograve Agrave -20 KPX Ograve Amacron -20 KPX Ograve Aogonek -20 KPX Ograve Aring -20 KPX Ograve Atilde -20 KPX Ograve T -40 KPX Ograve Tcaron -40 KPX Ograve Tcommaaccent -40 KPX Ograve V -50 KPX Ograve W -30 KPX Ograve X -60 KPX Ograve Y -70 KPX Ograve Yacute -70 KPX Ograve Ydieresis -70 KPX Ograve comma -40 KPX Ograve period -40 KPX Ohungarumlaut A -20 KPX Ohungarumlaut Aacute -20 KPX Ohungarumlaut Abreve -20 KPX Ohungarumlaut Acircumflex -20 KPX Ohungarumlaut Adieresis -20 KPX Ohungarumlaut Agrave -20 KPX Ohungarumlaut Amacron -20 KPX Ohungarumlaut Aogonek -20 KPX Ohungarumlaut Aring -20 KPX Ohungarumlaut Atilde -20 KPX Ohungarumlaut T -40 KPX Ohungarumlaut Tcaron -40 KPX Ohungarumlaut Tcommaaccent -40 KPX Ohungarumlaut V -50 KPX Ohungarumlaut W -30 KPX Ohungarumlaut X -60 KPX Ohungarumlaut Y -70 KPX Ohungarumlaut Yacute -70 KPX Ohungarumlaut Ydieresis -70 KPX Ohungarumlaut comma -40 KPX Ohungarumlaut period -40 KPX Omacron A -20 KPX Omacron Aacute -20 KPX Omacron Abreve -20 KPX Omacron Acircumflex -20 KPX Omacron Adieresis -20 KPX Omacron Agrave -20 KPX Omacron Amacron -20 KPX Omacron Aogonek -20 KPX Omacron Aring -20 KPX Omacron Atilde -20 KPX Omacron T -40 KPX Omacron Tcaron -40 KPX Omacron Tcommaaccent -40 KPX Omacron V -50 KPX Omacron W -30 KPX Omacron X -60 KPX Omacron Y -70 KPX Omacron Yacute -70 KPX Omacron Ydieresis -70 KPX Omacron comma -40 KPX Omacron period -40 KPX Oslash A -20 KPX Oslash Aacute -20 KPX Oslash Abreve -20 KPX Oslash Acircumflex -20 KPX Oslash Adieresis -20 KPX Oslash Agrave -20 KPX Oslash Amacron -20 KPX Oslash Aogonek -20 KPX Oslash Aring -20 KPX Oslash Atilde -20 KPX Oslash T -40 KPX Oslash Tcaron -40 KPX Oslash Tcommaaccent -40 KPX Oslash V -50 KPX Oslash W -30 KPX Oslash X -60 KPX Oslash Y -70 KPX Oslash Yacute -70 KPX Oslash Ydieresis -70 KPX Oslash comma -40 KPX Oslash period -40 KPX Otilde A -20 KPX Otilde Aacute -20 KPX Otilde Abreve -20 KPX Otilde Acircumflex -20 KPX Otilde Adieresis -20 KPX Otilde Agrave -20 KPX Otilde Amacron -20 KPX Otilde Aogonek -20 KPX Otilde Aring -20 KPX Otilde Atilde -20 KPX Otilde T -40 KPX Otilde Tcaron -40 KPX Otilde Tcommaaccent -40 KPX Otilde V -50 KPX Otilde W -30 KPX Otilde X -60 KPX Otilde Y -70 KPX Otilde Yacute -70 KPX Otilde Ydieresis -70 KPX Otilde comma -40 KPX Otilde period -40 KPX P A -120 KPX P Aacute -120 KPX P Abreve -120 KPX P Acircumflex -120 KPX P Adieresis -120 KPX P Agrave -120 KPX P Amacron -120 KPX P Aogonek -120 KPX P Aring -120 KPX P Atilde -120 KPX P a -40 KPX P aacute -40 KPX P abreve -40 KPX P acircumflex -40 KPX P adieresis -40 KPX P agrave -40 KPX P amacron -40 KPX P aogonek -40 KPX P aring -40 KPX P atilde -40 KPX P comma -180 KPX P e -50 KPX P eacute -50 KPX P ecaron -50 KPX P ecircumflex -50 KPX P edieresis -50 KPX P edotaccent -50 KPX P egrave -50 KPX P emacron -50 KPX P eogonek -50 KPX P o -50 KPX P oacute -50 KPX P ocircumflex -50 KPX P odieresis -50 KPX P ograve -50 KPX P ohungarumlaut -50 KPX P omacron -50 KPX P oslash -50 KPX P otilde -50 KPX P period -180 KPX Q U -10 KPX Q Uacute -10 KPX Q Ucircumflex -10 KPX Q Udieresis -10 KPX Q Ugrave -10 KPX Q Uhungarumlaut -10 KPX Q Umacron -10 KPX Q Uogonek -10 KPX Q Uring -10 KPX R O -20 KPX R Oacute -20 KPX R Ocircumflex -20 KPX R Odieresis -20 KPX R Ograve -20 KPX R Ohungarumlaut -20 KPX R Omacron -20 KPX R Oslash -20 KPX R Otilde -20 KPX R T -30 KPX R Tcaron -30 KPX R Tcommaaccent -30 KPX R U -40 KPX R Uacute -40 KPX R Ucircumflex -40 KPX R Udieresis -40 KPX R Ugrave -40 KPX R Uhungarumlaut -40 KPX R Umacron -40 KPX R Uogonek -40 KPX R Uring -40 KPX R V -50 KPX R W -30 KPX R Y -50 KPX R Yacute -50 KPX R Ydieresis -50 KPX Racute O -20 KPX Racute Oacute -20 KPX Racute Ocircumflex -20 KPX Racute Odieresis -20 KPX Racute Ograve -20 KPX Racute Ohungarumlaut -20 KPX Racute Omacron -20 KPX Racute Oslash -20 KPX Racute Otilde -20 KPX Racute T -30 KPX Racute Tcaron -30 KPX Racute Tcommaaccent -30 KPX Racute U -40 KPX Racute Uacute -40 KPX Racute Ucircumflex -40 KPX Racute Udieresis -40 KPX Racute Ugrave -40 KPX Racute Uhungarumlaut -40 KPX Racute Umacron -40 KPX Racute Uogonek -40 KPX Racute Uring -40 KPX Racute V -50 KPX Racute W -30 KPX Racute Y -50 KPX Racute Yacute -50 KPX Racute Ydieresis -50 KPX Rcaron O -20 KPX Rcaron Oacute -20 KPX Rcaron Ocircumflex -20 KPX Rcaron Odieresis -20 KPX Rcaron Ograve -20 KPX Rcaron Ohungarumlaut -20 KPX Rcaron Omacron -20 KPX Rcaron Oslash -20 KPX Rcaron Otilde -20 KPX Rcaron T -30 KPX Rcaron Tcaron -30 KPX Rcaron Tcommaaccent -30 KPX Rcaron U -40 KPX Rcaron Uacute -40 KPX Rcaron Ucircumflex -40 KPX Rcaron Udieresis -40 KPX Rcaron Ugrave -40 KPX Rcaron Uhungarumlaut -40 KPX Rcaron Umacron -40 KPX Rcaron Uogonek -40 KPX Rcaron Uring -40 KPX Rcaron V -50 KPX Rcaron W -30 KPX Rcaron Y -50 KPX Rcaron Yacute -50 KPX Rcaron Ydieresis -50 KPX Rcommaaccent O -20 KPX Rcommaaccent Oacute -20 KPX Rcommaaccent Ocircumflex -20 KPX Rcommaaccent Odieresis -20 KPX Rcommaaccent Ograve -20 KPX Rcommaaccent Ohungarumlaut -20 KPX Rcommaaccent Omacron -20 KPX Rcommaaccent Oslash -20 KPX Rcommaaccent Otilde -20 KPX Rcommaaccent T -30 KPX Rcommaaccent Tcaron -30 KPX Rcommaaccent Tcommaaccent -30 KPX Rcommaaccent U -40 KPX Rcommaaccent Uacute -40 KPX Rcommaaccent Ucircumflex -40 KPX Rcommaaccent Udieresis -40 KPX Rcommaaccent Ugrave -40 KPX Rcommaaccent Uhungarumlaut -40 KPX Rcommaaccent Umacron -40 KPX Rcommaaccent Uogonek -40 KPX Rcommaaccent Uring -40 KPX Rcommaaccent V -50 KPX Rcommaaccent W -30 KPX Rcommaaccent Y -50 KPX Rcommaaccent Yacute -50 KPX Rcommaaccent Ydieresis -50 KPX S comma -20 KPX S period -20 KPX Sacute comma -20 KPX Sacute period -20 KPX Scaron comma -20 KPX Scaron period -20 KPX Scedilla comma -20 KPX Scedilla period -20 KPX Scommaaccent comma -20 KPX Scommaaccent period -20 KPX T A -120 KPX T Aacute -120 KPX T Abreve -120 KPX T Acircumflex -120 KPX T Adieresis -120 KPX T Agrave -120 KPX T Amacron -120 KPX T Aogonek -120 KPX T Aring -120 KPX T Atilde -120 KPX T O -40 KPX T Oacute -40 KPX T Ocircumflex -40 KPX T Odieresis -40 KPX T Ograve -40 KPX T Ohungarumlaut -40 KPX T Omacron -40 KPX T Oslash -40 KPX T Otilde -40 KPX T a -120 KPX T aacute -120 KPX T abreve -60 KPX T acircumflex -120 KPX T adieresis -120 KPX T agrave -120 KPX T amacron -60 KPX T aogonek -120 KPX T aring -120 KPX T atilde -60 KPX T colon -20 KPX T comma -120 KPX T e -120 KPX T eacute -120 KPX T ecaron -120 KPX T ecircumflex -120 KPX T edieresis -120 KPX T edotaccent -120 KPX T egrave -60 KPX T emacron -60 KPX T eogonek -120 KPX T hyphen -140 KPX T o -120 KPX T oacute -120 KPX T ocircumflex -120 KPX T odieresis -120 KPX T ograve -120 KPX T ohungarumlaut -120 KPX T omacron -60 KPX T oslash -120 KPX T otilde -60 KPX T period -120 KPX T r -120 KPX T racute -120 KPX T rcaron -120 KPX T rcommaaccent -120 KPX T semicolon -20 KPX T u -120 KPX T uacute -120 KPX T ucircumflex -120 KPX T udieresis -120 KPX T ugrave -120 KPX T uhungarumlaut -120 KPX T umacron -60 KPX T uogonek -120 KPX T uring -120 KPX T w -120 KPX T y -120 KPX T yacute -120 KPX T ydieresis -60 KPX Tcaron A -120 KPX Tcaron Aacute -120 KPX Tcaron Abreve -120 KPX Tcaron Acircumflex -120 KPX Tcaron Adieresis -120 KPX Tcaron Agrave -120 KPX Tcaron Amacron -120 KPX Tcaron Aogonek -120 KPX Tcaron Aring -120 KPX Tcaron Atilde -120 KPX Tcaron O -40 KPX Tcaron Oacute -40 KPX Tcaron Ocircumflex -40 KPX Tcaron Odieresis -40 KPX Tcaron Ograve -40 KPX Tcaron Ohungarumlaut -40 KPX Tcaron Omacron -40 KPX Tcaron Oslash -40 KPX Tcaron Otilde -40 KPX Tcaron a -120 KPX Tcaron aacute -120 KPX Tcaron abreve -60 KPX Tcaron acircumflex -120 KPX Tcaron adieresis -120 KPX Tcaron agrave -120 KPX Tcaron amacron -60 KPX Tcaron aogonek -120 KPX Tcaron aring -120 KPX Tcaron atilde -60 KPX Tcaron colon -20 KPX Tcaron comma -120 KPX Tcaron e -120 KPX Tcaron eacute -120 KPX Tcaron ecaron -120 KPX Tcaron ecircumflex -120 KPX Tcaron edieresis -120 KPX Tcaron edotaccent -120 KPX Tcaron egrave -60 KPX Tcaron emacron -60 KPX Tcaron eogonek -120 KPX Tcaron hyphen -140 KPX Tcaron o -120 KPX Tcaron oacute -120 KPX Tcaron ocircumflex -120 KPX Tcaron odieresis -120 KPX Tcaron ograve -120 KPX Tcaron ohungarumlaut -120 KPX Tcaron omacron -60 KPX Tcaron oslash -120 KPX Tcaron otilde -60 KPX Tcaron period -120 KPX Tcaron r -120 KPX Tcaron racute -120 KPX Tcaron rcaron -120 KPX Tcaron rcommaaccent -120 KPX Tcaron semicolon -20 KPX Tcaron u -120 KPX Tcaron uacute -120 KPX Tcaron ucircumflex -120 KPX Tcaron udieresis -120 KPX Tcaron ugrave -120 KPX Tcaron uhungarumlaut -120 KPX Tcaron umacron -60 KPX Tcaron uogonek -120 KPX Tcaron uring -120 KPX Tcaron w -120 KPX Tcaron y -120 KPX Tcaron yacute -120 KPX Tcaron ydieresis -60 KPX Tcommaaccent A -120 KPX Tcommaaccent Aacute -120 KPX Tcommaaccent Abreve -120 KPX Tcommaaccent Acircumflex -120 KPX Tcommaaccent Adieresis -120 KPX Tcommaaccent Agrave -120 KPX Tcommaaccent Amacron -120 KPX Tcommaaccent Aogonek -120 KPX Tcommaaccent Aring -120 KPX Tcommaaccent Atilde -120 KPX Tcommaaccent O -40 KPX Tcommaaccent Oacute -40 KPX Tcommaaccent Ocircumflex -40 KPX Tcommaaccent Odieresis -40 KPX Tcommaaccent Ograve -40 KPX Tcommaaccent Ohungarumlaut -40 KPX Tcommaaccent Omacron -40 KPX Tcommaaccent Oslash -40 KPX Tcommaaccent Otilde -40 KPX Tcommaaccent a -120 KPX Tcommaaccent aacute -120 KPX Tcommaaccent abreve -60 KPX Tcommaaccent acircumflex -120 KPX Tcommaaccent adieresis -120 KPX Tcommaaccent agrave -120 KPX Tcommaaccent amacron -60 KPX Tcommaaccent aogonek -120 KPX Tcommaaccent aring -120 KPX Tcommaaccent atilde -60 KPX Tcommaaccent colon -20 KPX Tcommaaccent comma -120 KPX Tcommaaccent e -120 KPX Tcommaaccent eacute -120 KPX Tcommaaccent ecaron -120 KPX Tcommaaccent ecircumflex -120 KPX Tcommaaccent edieresis -120 KPX Tcommaaccent edotaccent -120 KPX Tcommaaccent egrave -60 KPX Tcommaaccent emacron -60 KPX Tcommaaccent eogonek -120 KPX Tcommaaccent hyphen -140 KPX Tcommaaccent o -120 KPX Tcommaaccent oacute -120 KPX Tcommaaccent ocircumflex -120 KPX Tcommaaccent odieresis -120 KPX Tcommaaccent ograve -120 KPX Tcommaaccent ohungarumlaut -120 KPX Tcommaaccent omacron -60 KPX Tcommaaccent oslash -120 KPX Tcommaaccent otilde -60 KPX Tcommaaccent period -120 KPX Tcommaaccent r -120 KPX Tcommaaccent racute -120 KPX Tcommaaccent rcaron -120 KPX Tcommaaccent rcommaaccent -120 KPX Tcommaaccent semicolon -20 KPX Tcommaaccent u -120 KPX Tcommaaccent uacute -120 KPX Tcommaaccent ucircumflex -120 KPX Tcommaaccent udieresis -120 KPX Tcommaaccent ugrave -120 KPX Tcommaaccent uhungarumlaut -120 KPX Tcommaaccent umacron -60 KPX Tcommaaccent uogonek -120 KPX Tcommaaccent uring -120 KPX Tcommaaccent w -120 KPX Tcommaaccent y -120 KPX Tcommaaccent yacute -120 KPX Tcommaaccent ydieresis -60 KPX U A -40 KPX U Aacute -40 KPX U Abreve -40 KPX U Acircumflex -40 KPX U Adieresis -40 KPX U Agrave -40 KPX U Amacron -40 KPX U Aogonek -40 KPX U Aring -40 KPX U Atilde -40 KPX U comma -40 KPX U period -40 KPX Uacute A -40 KPX Uacute Aacute -40 KPX Uacute Abreve -40 KPX Uacute Acircumflex -40 KPX Uacute Adieresis -40 KPX Uacute Agrave -40 KPX Uacute Amacron -40 KPX Uacute Aogonek -40 KPX Uacute Aring -40 KPX Uacute Atilde -40 KPX Uacute comma -40 KPX Uacute period -40 KPX Ucircumflex A -40 KPX Ucircumflex Aacute -40 KPX Ucircumflex Abreve -40 KPX Ucircumflex Acircumflex -40 KPX Ucircumflex Adieresis -40 KPX Ucircumflex Agrave -40 KPX Ucircumflex Amacron -40 KPX Ucircumflex Aogonek -40 KPX Ucircumflex Aring -40 KPX Ucircumflex Atilde -40 KPX Ucircumflex comma -40 KPX Ucircumflex period -40 KPX Udieresis A -40 KPX Udieresis Aacute -40 KPX Udieresis Abreve -40 KPX Udieresis Acircumflex -40 KPX Udieresis Adieresis -40 KPX Udieresis Agrave -40 KPX Udieresis Amacron -40 KPX Udieresis Aogonek -40 KPX Udieresis Aring -40 KPX Udieresis Atilde -40 KPX Udieresis comma -40 KPX Udieresis period -40 KPX Ugrave A -40 KPX Ugrave Aacute -40 KPX Ugrave Abreve -40 KPX Ugrave Acircumflex -40 KPX Ugrave Adieresis -40 KPX Ugrave Agrave -40 KPX Ugrave Amacron -40 KPX Ugrave Aogonek -40 KPX Ugrave Aring -40 KPX Ugrave Atilde -40 KPX Ugrave comma -40 KPX Ugrave period -40 KPX Uhungarumlaut A -40 KPX Uhungarumlaut Aacute -40 KPX Uhungarumlaut Abreve -40 KPX Uhungarumlaut Acircumflex -40 KPX Uhungarumlaut Adieresis -40 KPX Uhungarumlaut Agrave -40 KPX Uhungarumlaut Amacron -40 KPX Uhungarumlaut Aogonek -40 KPX Uhungarumlaut Aring -40 KPX Uhungarumlaut Atilde -40 KPX Uhungarumlaut comma -40 KPX Uhungarumlaut period -40 KPX Umacron A -40 KPX Umacron Aacute -40 KPX Umacron Abreve -40 KPX Umacron Acircumflex -40 KPX Umacron Adieresis -40 KPX Umacron Agrave -40 KPX Umacron Amacron -40 KPX Umacron Aogonek -40 KPX Umacron Aring -40 KPX Umacron Atilde -40 KPX Umacron comma -40 KPX Umacron period -40 KPX Uogonek A -40 KPX Uogonek Aacute -40 KPX Uogonek Abreve -40 KPX Uogonek Acircumflex -40 KPX Uogonek Adieresis -40 KPX Uogonek Agrave -40 KPX Uogonek Amacron -40 KPX Uogonek Aogonek -40 KPX Uogonek Aring -40 KPX Uogonek Atilde -40 KPX Uogonek comma -40 KPX Uogonek period -40 KPX Uring A -40 KPX Uring Aacute -40 KPX Uring Abreve -40 KPX Uring Acircumflex -40 KPX Uring Adieresis -40 KPX Uring Agrave -40 KPX Uring Amacron -40 KPX Uring Aogonek -40 KPX Uring Aring -40 KPX Uring Atilde -40 KPX Uring comma -40 KPX Uring period -40 KPX V A -80 KPX V Aacute -80 KPX V Abreve -80 KPX V Acircumflex -80 KPX V Adieresis -80 KPX V Agrave -80 KPX V Amacron -80 KPX V Aogonek -80 KPX V Aring -80 KPX V Atilde -80 KPX V G -40 KPX V Gbreve -40 KPX V Gcommaaccent -40 KPX V O -40 KPX V Oacute -40 KPX V Ocircumflex -40 KPX V Odieresis -40 KPX V Ograve -40 KPX V Ohungarumlaut -40 KPX V Omacron -40 KPX V Oslash -40 KPX V Otilde -40 KPX V a -70 KPX V aacute -70 KPX V abreve -70 KPX V acircumflex -70 KPX V adieresis -70 KPX V agrave -70 KPX V amacron -70 KPX V aogonek -70 KPX V aring -70 KPX V atilde -70 KPX V colon -40 KPX V comma -125 KPX V e -80 KPX V eacute -80 KPX V ecaron -80 KPX V ecircumflex -80 KPX V edieresis -80 KPX V edotaccent -80 KPX V egrave -80 KPX V emacron -80 KPX V eogonek -80 KPX V hyphen -80 KPX V o -80 KPX V oacute -80 KPX V ocircumflex -80 KPX V odieresis -80 KPX V ograve -80 KPX V ohungarumlaut -80 KPX V omacron -80 KPX V oslash -80 KPX V otilde -80 KPX V period -125 KPX V semicolon -40 KPX V u -70 KPX V uacute -70 KPX V ucircumflex -70 KPX V udieresis -70 KPX V ugrave -70 KPX V uhungarumlaut -70 KPX V umacron -70 KPX V uogonek -70 KPX V uring -70 KPX W A -50 KPX W Aacute -50 KPX W Abreve -50 KPX W Acircumflex -50 KPX W Adieresis -50 KPX W Agrave -50 KPX W Amacron -50 KPX W Aogonek -50 KPX W Aring -50 KPX W Atilde -50 KPX W O -20 KPX W Oacute -20 KPX W Ocircumflex -20 KPX W Odieresis -20 KPX W Ograve -20 KPX W Ohungarumlaut -20 KPX W Omacron -20 KPX W Oslash -20 KPX W Otilde -20 KPX W a -40 KPX W aacute -40 KPX W abreve -40 KPX W acircumflex -40 KPX W adieresis -40 KPX W agrave -40 KPX W amacron -40 KPX W aogonek -40 KPX W aring -40 KPX W atilde -40 KPX W comma -80 KPX W e -30 KPX W eacute -30 KPX W ecaron -30 KPX W ecircumflex -30 KPX W edieresis -30 KPX W edotaccent -30 KPX W egrave -30 KPX W emacron -30 KPX W eogonek -30 KPX W hyphen -40 KPX W o -30 KPX W oacute -30 KPX W ocircumflex -30 KPX W odieresis -30 KPX W ograve -30 KPX W ohungarumlaut -30 KPX W omacron -30 KPX W oslash -30 KPX W otilde -30 KPX W period -80 KPX W u -30 KPX W uacute -30 KPX W ucircumflex -30 KPX W udieresis -30 KPX W ugrave -30 KPX W uhungarumlaut -30 KPX W umacron -30 KPX W uogonek -30 KPX W uring -30 KPX W y -20 KPX W yacute -20 KPX W ydieresis -20 KPX Y A -110 KPX Y Aacute -110 KPX Y Abreve -110 KPX Y Acircumflex -110 KPX Y Adieresis -110 KPX Y Agrave -110 KPX Y Amacron -110 KPX Y Aogonek -110 KPX Y Aring -110 KPX Y Atilde -110 KPX Y O -85 KPX Y Oacute -85 KPX Y Ocircumflex -85 KPX Y Odieresis -85 KPX Y Ograve -85 KPX Y Ohungarumlaut -85 KPX Y Omacron -85 KPX Y Oslash -85 KPX Y Otilde -85 KPX Y a -140 KPX Y aacute -140 KPX Y abreve -70 KPX Y acircumflex -140 KPX Y adieresis -140 KPX Y agrave -140 KPX Y amacron -70 KPX Y aogonek -140 KPX Y aring -140 KPX Y atilde -140 KPX Y colon -60 KPX Y comma -140 KPX Y e -140 KPX Y eacute -140 KPX Y ecaron -140 KPX Y ecircumflex -140 KPX Y edieresis -140 KPX Y edotaccent -140 KPX Y egrave -140 KPX Y emacron -70 KPX Y eogonek -140 KPX Y hyphen -140 KPX Y i -20 KPX Y iacute -20 KPX Y iogonek -20 KPX Y o -140 KPX Y oacute -140 KPX Y ocircumflex -140 KPX Y odieresis -140 KPX Y ograve -140 KPX Y ohungarumlaut -140 KPX Y omacron -140 KPX Y oslash -140 KPX Y otilde -140 KPX Y period -140 KPX Y semicolon -60 KPX Y u -110 KPX Y uacute -110 KPX Y ucircumflex -110 KPX Y udieresis -110 KPX Y ugrave -110 KPX Y uhungarumlaut -110 KPX Y umacron -110 KPX Y uogonek -110 KPX Y uring -110 KPX Yacute A -110 KPX Yacute Aacute -110 KPX Yacute Abreve -110 KPX Yacute Acircumflex -110 KPX Yacute Adieresis -110 KPX Yacute Agrave -110 KPX Yacute Amacron -110 KPX Yacute Aogonek -110 KPX Yacute Aring -110 KPX Yacute Atilde -110 KPX Yacute O -85 KPX Yacute Oacute -85 KPX Yacute Ocircumflex -85 KPX Yacute Odieresis -85 KPX Yacute Ograve -85 KPX Yacute Ohungarumlaut -85 KPX Yacute Omacron -85 KPX Yacute Oslash -85 KPX Yacute Otilde -85 KPX Yacute a -140 KPX Yacute aacute -140 KPX Yacute abreve -70 KPX Yacute acircumflex -140 KPX Yacute adieresis -140 KPX Yacute agrave -140 KPX Yacute amacron -70 KPX Yacute aogonek -140 KPX Yacute aring -140 KPX Yacute atilde -70 KPX Yacute colon -60 KPX Yacute comma -140 KPX Yacute e -140 KPX Yacute eacute -140 KPX Yacute ecaron -140 KPX Yacute ecircumflex -140 KPX Yacute edieresis -140 KPX Yacute edotaccent -140 KPX Yacute egrave -140 KPX Yacute emacron -70 KPX Yacute eogonek -140 KPX Yacute hyphen -140 KPX Yacute i -20 KPX Yacute iacute -20 KPX Yacute iogonek -20 KPX Yacute o -140 KPX Yacute oacute -140 KPX Yacute ocircumflex -140 KPX Yacute odieresis -140 KPX Yacute ograve -140 KPX Yacute ohungarumlaut -140 KPX Yacute omacron -70 KPX Yacute oslash -140 KPX Yacute otilde -140 KPX Yacute period -140 KPX Yacute semicolon -60 KPX Yacute u -110 KPX Yacute uacute -110 KPX Yacute ucircumflex -110 KPX Yacute udieresis -110 KPX Yacute ugrave -110 KPX Yacute uhungarumlaut -110 KPX Yacute umacron -110 KPX Yacute uogonek -110 KPX Yacute uring -110 KPX Ydieresis A -110 KPX Ydieresis Aacute -110 KPX Ydieresis Abreve -110 KPX Ydieresis Acircumflex -110 KPX Ydieresis Adieresis -110 KPX Ydieresis Agrave -110 KPX Ydieresis Amacron -110 KPX Ydieresis Aogonek -110 KPX Ydieresis Aring -110 KPX Ydieresis Atilde -110 KPX Ydieresis O -85 KPX Ydieresis Oacute -85 KPX Ydieresis Ocircumflex -85 KPX Ydieresis Odieresis -85 KPX Ydieresis Ograve -85 KPX Ydieresis Ohungarumlaut -85 KPX Ydieresis Omacron -85 KPX Ydieresis Oslash -85 KPX Ydieresis Otilde -85 KPX Ydieresis a -140 KPX Ydieresis aacute -140 KPX Ydieresis abreve -70 KPX Ydieresis acircumflex -140 KPX Ydieresis adieresis -140 KPX Ydieresis agrave -140 KPX Ydieresis amacron -70 KPX Ydieresis aogonek -140 KPX Ydieresis aring -140 KPX Ydieresis atilde -70 KPX Ydieresis colon -60 KPX Ydieresis comma -140 KPX Ydieresis e -140 KPX Ydieresis eacute -140 KPX Ydieresis ecaron -140 KPX Ydieresis ecircumflex -140 KPX Ydieresis edieresis -140 KPX Ydieresis edotaccent -140 KPX Ydieresis egrave -140 KPX Ydieresis emacron -70 KPX Ydieresis eogonek -140 KPX Ydieresis hyphen -140 KPX Ydieresis i -20 KPX Ydieresis iacute -20 KPX Ydieresis iogonek -20 KPX Ydieresis o -140 KPX Ydieresis oacute -140 KPX Ydieresis ocircumflex -140 KPX Ydieresis odieresis -140 KPX Ydieresis ograve -140 KPX Ydieresis ohungarumlaut -140 KPX Ydieresis omacron -140 KPX Ydieresis oslash -140 KPX Ydieresis otilde -140 KPX Ydieresis period -140 KPX Ydieresis semicolon -60 KPX Ydieresis u -110 KPX Ydieresis uacute -110 KPX Ydieresis ucircumflex -110 KPX Ydieresis udieresis -110 KPX Ydieresis ugrave -110 KPX Ydieresis uhungarumlaut -110 KPX Ydieresis umacron -110 KPX Ydieresis uogonek -110 KPX Ydieresis uring -110 KPX a v -20 KPX a w -20 KPX a y -30 KPX a yacute -30 KPX a ydieresis -30 KPX aacute v -20 KPX aacute w -20 KPX aacute y -30 KPX aacute yacute -30 KPX aacute ydieresis -30 KPX abreve v -20 KPX abreve w -20 KPX abreve y -30 KPX abreve yacute -30 KPX abreve ydieresis -30 KPX acircumflex v -20 KPX acircumflex w -20 KPX acircumflex y -30 KPX acircumflex yacute -30 KPX acircumflex ydieresis -30 KPX adieresis v -20 KPX adieresis w -20 KPX adieresis y -30 KPX adieresis yacute -30 KPX adieresis ydieresis -30 KPX agrave v -20 KPX agrave w -20 KPX agrave y -30 KPX agrave yacute -30 KPX agrave ydieresis -30 KPX amacron v -20 KPX amacron w -20 KPX amacron y -30 KPX amacron yacute -30 KPX amacron ydieresis -30 KPX aogonek v -20 KPX aogonek w -20 KPX aogonek y -30 KPX aogonek yacute -30 KPX aogonek ydieresis -30 KPX aring v -20 KPX aring w -20 KPX aring y -30 KPX aring yacute -30 KPX aring ydieresis -30 KPX atilde v -20 KPX atilde w -20 KPX atilde y -30 KPX atilde yacute -30 KPX atilde ydieresis -30 KPX b b -10 KPX b comma -40 KPX b l -20 KPX b lacute -20 KPX b lcommaaccent -20 KPX b lslash -20 KPX b period -40 KPX b u -20 KPX b uacute -20 KPX b ucircumflex -20 KPX b udieresis -20 KPX b ugrave -20 KPX b uhungarumlaut -20 KPX b umacron -20 KPX b uogonek -20 KPX b uring -20 KPX b v -20 KPX b y -20 KPX b yacute -20 KPX b ydieresis -20 KPX c comma -15 KPX c k -20 KPX c kcommaaccent -20 KPX cacute comma -15 KPX cacute k -20 KPX cacute kcommaaccent -20 KPX ccaron comma -15 KPX ccaron k -20 KPX ccaron kcommaaccent -20 KPX ccedilla comma -15 KPX ccedilla k -20 KPX ccedilla kcommaaccent -20 KPX colon space -50 KPX comma quotedblright -100 KPX comma quoteright -100 KPX e comma -15 KPX e period -15 KPX e v -30 KPX e w -20 KPX e x -30 KPX e y -20 KPX e yacute -20 KPX e ydieresis -20 KPX eacute comma -15 KPX eacute period -15 KPX eacute v -30 KPX eacute w -20 KPX eacute x -30 KPX eacute y -20 KPX eacute yacute -20 KPX eacute ydieresis -20 KPX ecaron comma -15 KPX ecaron period -15 KPX ecaron v -30 KPX ecaron w -20 KPX ecaron x -30 KPX ecaron y -20 KPX ecaron yacute -20 KPX ecaron ydieresis -20 KPX ecircumflex comma -15 KPX ecircumflex period -15 KPX ecircumflex v -30 KPX ecircumflex w -20 KPX ecircumflex x -30 KPX ecircumflex y -20 KPX ecircumflex yacute -20 KPX ecircumflex ydieresis -20 KPX edieresis comma -15 KPX edieresis period -15 KPX edieresis v -30 KPX edieresis w -20 KPX edieresis x -30 KPX edieresis y -20 KPX edieresis yacute -20 KPX edieresis ydieresis -20 KPX edotaccent comma -15 KPX edotaccent period -15 KPX edotaccent v -30 KPX edotaccent w -20 KPX edotaccent x -30 KPX edotaccent y -20 KPX edotaccent yacute -20 KPX edotaccent ydieresis -20 KPX egrave comma -15 KPX egrave period -15 KPX egrave v -30 KPX egrave w -20 KPX egrave x -30 KPX egrave y -20 KPX egrave yacute -20 KPX egrave ydieresis -20 KPX emacron comma -15 KPX emacron period -15 KPX emacron v -30 KPX emacron w -20 KPX emacron x -30 KPX emacron y -20 KPX emacron yacute -20 KPX emacron ydieresis -20 KPX eogonek comma -15 KPX eogonek period -15 KPX eogonek v -30 KPX eogonek w -20 KPX eogonek x -30 KPX eogonek y -20 KPX eogonek yacute -20 KPX eogonek ydieresis -20 KPX f a -30 KPX f aacute -30 KPX f abreve -30 KPX f acircumflex -30 KPX f adieresis -30 KPX f agrave -30 KPX f amacron -30 KPX f aogonek -30 KPX f aring -30 KPX f atilde -30 KPX f comma -30 KPX f dotlessi -28 KPX f e -30 KPX f eacute -30 KPX f ecaron -30 KPX f ecircumflex -30 KPX f edieresis -30 KPX f edotaccent -30 KPX f egrave -30 KPX f emacron -30 KPX f eogonek -30 KPX f o -30 KPX f oacute -30 KPX f ocircumflex -30 KPX f odieresis -30 KPX f ograve -30 KPX f ohungarumlaut -30 KPX f omacron -30 KPX f oslash -30 KPX f otilde -30 KPX f period -30 KPX f quotedblright 60 KPX f quoteright 50 KPX g r -10 KPX g racute -10 KPX g rcaron -10 KPX g rcommaaccent -10 KPX gbreve r -10 KPX gbreve racute -10 KPX gbreve rcaron -10 KPX gbreve rcommaaccent -10 KPX gcommaaccent r -10 KPX gcommaaccent racute -10 KPX gcommaaccent rcaron -10 KPX gcommaaccent rcommaaccent -10 KPX h y -30 KPX h yacute -30 KPX h ydieresis -30 KPX k e -20 KPX k eacute -20 KPX k ecaron -20 KPX k ecircumflex -20 KPX k edieresis -20 KPX k edotaccent -20 KPX k egrave -20 KPX k emacron -20 KPX k eogonek -20 KPX k o -20 KPX k oacute -20 KPX k ocircumflex -20 KPX k odieresis -20 KPX k ograve -20 KPX k ohungarumlaut -20 KPX k omacron -20 KPX k oslash -20 KPX k otilde -20 KPX kcommaaccent e -20 KPX kcommaaccent eacute -20 KPX kcommaaccent ecaron -20 KPX kcommaaccent ecircumflex -20 KPX kcommaaccent edieresis -20 KPX kcommaaccent edotaccent -20 KPX kcommaaccent egrave -20 KPX kcommaaccent emacron -20 KPX kcommaaccent eogonek -20 KPX kcommaaccent o -20 KPX kcommaaccent oacute -20 KPX kcommaaccent ocircumflex -20 KPX kcommaaccent odieresis -20 KPX kcommaaccent ograve -20 KPX kcommaaccent ohungarumlaut -20 KPX kcommaaccent omacron -20 KPX kcommaaccent oslash -20 KPX kcommaaccent otilde -20 KPX m u -10 KPX m uacute -10 KPX m ucircumflex -10 KPX m udieresis -10 KPX m ugrave -10 KPX m uhungarumlaut -10 KPX m umacron -10 KPX m uogonek -10 KPX m uring -10 KPX m y -15 KPX m yacute -15 KPX m ydieresis -15 KPX n u -10 KPX n uacute -10 KPX n ucircumflex -10 KPX n udieresis -10 KPX n ugrave -10 KPX n uhungarumlaut -10 KPX n umacron -10 KPX n uogonek -10 KPX n uring -10 KPX n v -20 KPX n y -15 KPX n yacute -15 KPX n ydieresis -15 KPX nacute u -10 KPX nacute uacute -10 KPX nacute ucircumflex -10 KPX nacute udieresis -10 KPX nacute ugrave -10 KPX nacute uhungarumlaut -10 KPX nacute umacron -10 KPX nacute uogonek -10 KPX nacute uring -10 KPX nacute v -20 KPX nacute y -15 KPX nacute yacute -15 KPX nacute ydieresis -15 KPX ncaron u -10 KPX ncaron uacute -10 KPX ncaron ucircumflex -10 KPX ncaron udieresis -10 KPX ncaron ugrave -10 KPX ncaron uhungarumlaut -10 KPX ncaron umacron -10 KPX ncaron uogonek -10 KPX ncaron uring -10 KPX ncaron v -20 KPX ncaron y -15 KPX ncaron yacute -15 KPX ncaron ydieresis -15 KPX ncommaaccent u -10 KPX ncommaaccent uacute -10 KPX ncommaaccent ucircumflex -10 KPX ncommaaccent udieresis -10 KPX ncommaaccent ugrave -10 KPX ncommaaccent uhungarumlaut -10 KPX ncommaaccent umacron -10 KPX ncommaaccent uogonek -10 KPX ncommaaccent uring -10 KPX ncommaaccent v -20 KPX ncommaaccent y -15 KPX ncommaaccent yacute -15 KPX ncommaaccent ydieresis -15 KPX ntilde u -10 KPX ntilde uacute -10 KPX ntilde ucircumflex -10 KPX ntilde udieresis -10 KPX ntilde ugrave -10 KPX ntilde uhungarumlaut -10 KPX ntilde umacron -10 KPX ntilde uogonek -10 KPX ntilde uring -10 KPX ntilde v -20 KPX ntilde y -15 KPX ntilde yacute -15 KPX ntilde ydieresis -15 KPX o comma -40 KPX o period -40 KPX o v -15 KPX o w -15 KPX o x -30 KPX o y -30 KPX o yacute -30 KPX o ydieresis -30 KPX oacute comma -40 KPX oacute period -40 KPX oacute v -15 KPX oacute w -15 KPX oacute x -30 KPX oacute y -30 KPX oacute yacute -30 KPX oacute ydieresis -30 KPX ocircumflex comma -40 KPX ocircumflex period -40 KPX ocircumflex v -15 KPX ocircumflex w -15 KPX ocircumflex x -30 KPX ocircumflex y -30 KPX ocircumflex yacute -30 KPX ocircumflex ydieresis -30 KPX odieresis comma -40 KPX odieresis period -40 KPX odieresis v -15 KPX odieresis w -15 KPX odieresis x -30 KPX odieresis y -30 KPX odieresis yacute -30 KPX odieresis ydieresis -30 KPX ograve comma -40 KPX ograve period -40 KPX ograve v -15 KPX ograve w -15 KPX ograve x -30 KPX ograve y -30 KPX ograve yacute -30 KPX ograve ydieresis -30 KPX ohungarumlaut comma -40 KPX ohungarumlaut period -40 KPX ohungarumlaut v -15 KPX ohungarumlaut w -15 KPX ohungarumlaut x -30 KPX ohungarumlaut y -30 KPX ohungarumlaut yacute -30 KPX ohungarumlaut ydieresis -30 KPX omacron comma -40 KPX omacron period -40 KPX omacron v -15 KPX omacron w -15 KPX omacron x -30 KPX omacron y -30 KPX omacron yacute -30 KPX omacron ydieresis -30 KPX oslash a -55 KPX oslash aacute -55 KPX oslash abreve -55 KPX oslash acircumflex -55 KPX oslash adieresis -55 KPX oslash agrave -55 KPX oslash amacron -55 KPX oslash aogonek -55 KPX oslash aring -55 KPX oslash atilde -55 KPX oslash b -55 KPX oslash c -55 KPX oslash cacute -55 KPX oslash ccaron -55 KPX oslash ccedilla -55 KPX oslash comma -95 KPX oslash d -55 KPX oslash dcroat -55 KPX oslash e -55 KPX oslash eacute -55 KPX oslash ecaron -55 KPX oslash ecircumflex -55 KPX oslash edieresis -55 KPX oslash edotaccent -55 KPX oslash egrave -55 KPX oslash emacron -55 KPX oslash eogonek -55 KPX oslash f -55 KPX oslash g -55 KPX oslash gbreve -55 KPX oslash gcommaaccent -55 KPX oslash h -55 KPX oslash i -55 KPX oslash iacute -55 KPX oslash icircumflex -55 KPX oslash idieresis -55 KPX oslash igrave -55 KPX oslash imacron -55 KPX oslash iogonek -55 KPX oslash j -55 KPX oslash k -55 KPX oslash kcommaaccent -55 KPX oslash l -55 KPX oslash lacute -55 KPX oslash lcommaaccent -55 KPX oslash lslash -55 KPX oslash m -55 KPX oslash n -55 KPX oslash nacute -55 KPX oslash ncaron -55 KPX oslash ncommaaccent -55 KPX oslash ntilde -55 KPX oslash o -55 KPX oslash oacute -55 KPX oslash ocircumflex -55 KPX oslash odieresis -55 KPX oslash ograve -55 KPX oslash ohungarumlaut -55 KPX oslash omacron -55 KPX oslash oslash -55 KPX oslash otilde -55 KPX oslash p -55 KPX oslash period -95 KPX oslash q -55 KPX oslash r -55 KPX oslash racute -55 KPX oslash rcaron -55 KPX oslash rcommaaccent -55 KPX oslash s -55 KPX oslash sacute -55 KPX oslash scaron -55 KPX oslash scedilla -55 KPX oslash scommaaccent -55 KPX oslash t -55 KPX oslash tcommaaccent -55 KPX oslash u -55 KPX oslash uacute -55 KPX oslash ucircumflex -55 KPX oslash udieresis -55 KPX oslash ugrave -55 KPX oslash uhungarumlaut -55 KPX oslash umacron -55 KPX oslash uogonek -55 KPX oslash uring -55 KPX oslash v -70 KPX oslash w -70 KPX oslash x -85 KPX oslash y -70 KPX oslash yacute -70 KPX oslash ydieresis -70 KPX oslash z -55 KPX oslash zacute -55 KPX oslash zcaron -55 KPX oslash zdotaccent -55 KPX otilde comma -40 KPX otilde period -40 KPX otilde v -15 KPX otilde w -15 KPX otilde x -30 KPX otilde y -30 KPX otilde yacute -30 KPX otilde ydieresis -30 KPX p comma -35 KPX p period -35 KPX p y -30 KPX p yacute -30 KPX p ydieresis -30 KPX period quotedblright -100 KPX period quoteright -100 KPX period space -60 KPX quotedblright space -40 KPX quoteleft quoteleft -57 KPX quoteright d -50 KPX quoteright dcroat -50 KPX quoteright quoteright -57 KPX quoteright r -50 KPX quoteright racute -50 KPX quoteright rcaron -50 KPX quoteright rcommaaccent -50 KPX quoteright s -50 KPX quoteright sacute -50 KPX quoteright scaron -50 KPX quoteright scedilla -50 KPX quoteright scommaaccent -50 KPX quoteright space -70 KPX r a -10 KPX r aacute -10 KPX r abreve -10 KPX r acircumflex -10 KPX r adieresis -10 KPX r agrave -10 KPX r amacron -10 KPX r aogonek -10 KPX r aring -10 KPX r atilde -10 KPX r colon 30 KPX r comma -50 KPX r i 15 KPX r iacute 15 KPX r icircumflex 15 KPX r idieresis 15 KPX r igrave 15 KPX r imacron 15 KPX r iogonek 15 KPX r k 15 KPX r kcommaaccent 15 KPX r l 15 KPX r lacute 15 KPX r lcommaaccent 15 KPX r lslash 15 KPX r m 25 KPX r n 25 KPX r nacute 25 KPX r ncaron 25 KPX r ncommaaccent 25 KPX r ntilde 25 KPX r p 30 KPX r period -50 KPX r semicolon 30 KPX r t 40 KPX r tcommaaccent 40 KPX r u 15 KPX r uacute 15 KPX r ucircumflex 15 KPX r udieresis 15 KPX r ugrave 15 KPX r uhungarumlaut 15 KPX r umacron 15 KPX r uogonek 15 KPX r uring 15 KPX r v 30 KPX r y 30 KPX r yacute 30 KPX r ydieresis 30 KPX racute a -10 KPX racute aacute -10 KPX racute abreve -10 KPX racute acircumflex -10 KPX racute adieresis -10 KPX racute agrave -10 KPX racute amacron -10 KPX racute aogonek -10 KPX racute aring -10 KPX racute atilde -10 KPX racute colon 30 KPX racute comma -50 KPX racute i 15 KPX racute iacute 15 KPX racute icircumflex 15 KPX racute idieresis 15 KPX racute igrave 15 KPX racute imacron 15 KPX racute iogonek 15 KPX racute k 15 KPX racute kcommaaccent 15 KPX racute l 15 KPX racute lacute 15 KPX racute lcommaaccent 15 KPX racute lslash 15 KPX racute m 25 KPX racute n 25 KPX racute nacute 25 KPX racute ncaron 25 KPX racute ncommaaccent 25 KPX racute ntilde 25 KPX racute p 30 KPX racute period -50 KPX racute semicolon 30 KPX racute t 40 KPX racute tcommaaccent 40 KPX racute u 15 KPX racute uacute 15 KPX racute ucircumflex 15 KPX racute udieresis 15 KPX racute ugrave 15 KPX racute uhungarumlaut 15 KPX racute umacron 15 KPX racute uogonek 15 KPX racute uring 15 KPX racute v 30 KPX racute y 30 KPX racute yacute 30 KPX racute ydieresis 30 KPX rcaron a -10 KPX rcaron aacute -10 KPX rcaron abreve -10 KPX rcaron acircumflex -10 KPX rcaron adieresis -10 KPX rcaron agrave -10 KPX rcaron amacron -10 KPX rcaron aogonek -10 KPX rcaron aring -10 KPX rcaron atilde -10 KPX rcaron colon 30 KPX rcaron comma -50 KPX rcaron i 15 KPX rcaron iacute 15 KPX rcaron icircumflex 15 KPX rcaron idieresis 15 KPX rcaron igrave 15 KPX rcaron imacron 15 KPX rcaron iogonek 15 KPX rcaron k 15 KPX rcaron kcommaaccent 15 KPX rcaron l 15 KPX rcaron lacute 15 KPX rcaron lcommaaccent 15 KPX rcaron lslash 15 KPX rcaron m 25 KPX rcaron n 25 KPX rcaron nacute 25 KPX rcaron ncaron 25 KPX rcaron ncommaaccent 25 KPX rcaron ntilde 25 KPX rcaron p 30 KPX rcaron period -50 KPX rcaron semicolon 30 KPX rcaron t 40 KPX rcaron tcommaaccent 40 KPX rcaron u 15 KPX rcaron uacute 15 KPX rcaron ucircumflex 15 KPX rcaron udieresis 15 KPX rcaron ugrave 15 KPX rcaron uhungarumlaut 15 KPX rcaron umacron 15 KPX rcaron uogonek 15 KPX rcaron uring 15 KPX rcaron v 30 KPX rcaron y 30 KPX rcaron yacute 30 KPX rcaron ydieresis 30 KPX rcommaaccent a -10 KPX rcommaaccent aacute -10 KPX rcommaaccent abreve -10 KPX rcommaaccent acircumflex -10 KPX rcommaaccent adieresis -10 KPX rcommaaccent agrave -10 KPX rcommaaccent amacron -10 KPX rcommaaccent aogonek -10 KPX rcommaaccent aring -10 KPX rcommaaccent atilde -10 KPX rcommaaccent colon 30 KPX rcommaaccent comma -50 KPX rcommaaccent i 15 KPX rcommaaccent iacute 15 KPX rcommaaccent icircumflex 15 KPX rcommaaccent idieresis 15 KPX rcommaaccent igrave 15 KPX rcommaaccent imacron 15 KPX rcommaaccent iogonek 15 KPX rcommaaccent k 15 KPX rcommaaccent kcommaaccent 15 KPX rcommaaccent l 15 KPX rcommaaccent lacute 15 KPX rcommaaccent lcommaaccent 15 KPX rcommaaccent lslash 15 KPX rcommaaccent m 25 KPX rcommaaccent n 25 KPX rcommaaccent nacute 25 KPX rcommaaccent ncaron 25 KPX rcommaaccent ncommaaccent 25 KPX rcommaaccent ntilde 25 KPX rcommaaccent p 30 KPX rcommaaccent period -50 KPX rcommaaccent semicolon 30 KPX rcommaaccent t 40 KPX rcommaaccent tcommaaccent 40 KPX rcommaaccent u 15 KPX rcommaaccent uacute 15 KPX rcommaaccent ucircumflex 15 KPX rcommaaccent udieresis 15 KPX rcommaaccent ugrave 15 KPX rcommaaccent uhungarumlaut 15 KPX rcommaaccent umacron 15 KPX rcommaaccent uogonek 15 KPX rcommaaccent uring 15 KPX rcommaaccent v 30 KPX rcommaaccent y 30 KPX rcommaaccent yacute 30 KPX rcommaaccent ydieresis 30 KPX s comma -15 KPX s period -15 KPX s w -30 KPX sacute comma -15 KPX sacute period -15 KPX sacute w -30 KPX scaron comma -15 KPX scaron period -15 KPX scaron w -30 KPX scedilla comma -15 KPX scedilla period -15 KPX scedilla w -30 KPX scommaaccent comma -15 KPX scommaaccent period -15 KPX scommaaccent w -30 KPX semicolon space -50 KPX space T -50 KPX space Tcaron -50 KPX space Tcommaaccent -50 KPX space V -50 KPX space W -40 KPX space Y -90 KPX space Yacute -90 KPX space Ydieresis -90 KPX space quotedblleft -30 KPX space quoteleft -60 KPX v a -25 KPX v aacute -25 KPX v abreve -25 KPX v acircumflex -25 KPX v adieresis -25 KPX v agrave -25 KPX v amacron -25 KPX v aogonek -25 KPX v aring -25 KPX v atilde -25 KPX v comma -80 KPX v e -25 KPX v eacute -25 KPX v ecaron -25 KPX v ecircumflex -25 KPX v edieresis -25 KPX v edotaccent -25 KPX v egrave -25 KPX v emacron -25 KPX v eogonek -25 KPX v o -25 KPX v oacute -25 KPX v ocircumflex -25 KPX v odieresis -25 KPX v ograve -25 KPX v ohungarumlaut -25 KPX v omacron -25 KPX v oslash -25 KPX v otilde -25 KPX v period -80 KPX w a -15 KPX w aacute -15 KPX w abreve -15 KPX w acircumflex -15 KPX w adieresis -15 KPX w agrave -15 KPX w amacron -15 KPX w aogonek -15 KPX w aring -15 KPX w atilde -15 KPX w comma -60 KPX w e -10 KPX w eacute -10 KPX w ecaron -10 KPX w ecircumflex -10 KPX w edieresis -10 KPX w edotaccent -10 KPX w egrave -10 KPX w emacron -10 KPX w eogonek -10 KPX w o -10 KPX w oacute -10 KPX w ocircumflex -10 KPX w odieresis -10 KPX w ograve -10 KPX w ohungarumlaut -10 KPX w omacron -10 KPX w oslash -10 KPX w otilde -10 KPX w period -60 KPX x e -30 KPX x eacute -30 KPX x ecaron -30 KPX x ecircumflex -30 KPX x edieresis -30 KPX x edotaccent -30 KPX x egrave -30 KPX x emacron -30 KPX x eogonek -30 KPX y a -20 KPX y aacute -20 KPX y abreve -20 KPX y acircumflex -20 KPX y adieresis -20 KPX y agrave -20 KPX y amacron -20 KPX y aogonek -20 KPX y aring -20 KPX y atilde -20 KPX y comma -100 KPX y e -20 KPX y eacute -20 KPX y ecaron -20 KPX y ecircumflex -20 KPX y edieresis -20 KPX y edotaccent -20 KPX y egrave -20 KPX y emacron -20 KPX y eogonek -20 KPX y o -20 KPX y oacute -20 KPX y ocircumflex -20 KPX y odieresis -20 KPX y ograve -20 KPX y ohungarumlaut -20 KPX y omacron -20 KPX y oslash -20 KPX y otilde -20 KPX y period -100 KPX yacute a -20 KPX yacute aacute -20 KPX yacute abreve -20 KPX yacute acircumflex -20 KPX yacute adieresis -20 KPX yacute agrave -20 KPX yacute amacron -20 KPX yacute aogonek -20 KPX yacute aring -20 KPX yacute atilde -20 KPX yacute comma -100 KPX yacute e -20 KPX yacute eacute -20 KPX yacute ecaron -20 KPX yacute ecircumflex -20 KPX yacute edieresis -20 KPX yacute edotaccent -20 KPX yacute egrave -20 KPX yacute emacron -20 KPX yacute eogonek -20 KPX yacute o -20 KPX yacute oacute -20 KPX yacute ocircumflex -20 KPX yacute odieresis -20 KPX yacute ograve -20 KPX yacute ohungarumlaut -20 KPX yacute omacron -20 KPX yacute oslash -20 KPX yacute otilde -20 KPX yacute period -100 KPX ydieresis a -20 KPX ydieresis aacute -20 KPX ydieresis abreve -20 KPX ydieresis acircumflex -20 KPX ydieresis adieresis -20 KPX ydieresis agrave -20 KPX ydieresis amacron -20 KPX ydieresis aogonek -20 KPX ydieresis aring -20 KPX ydieresis atilde -20 KPX ydieresis comma -100 KPX ydieresis e -20 KPX ydieresis eacute -20 KPX ydieresis ecaron -20 KPX ydieresis ecircumflex -20 KPX ydieresis edieresis -20 KPX ydieresis edotaccent -20 KPX ydieresis egrave -20 KPX ydieresis emacron -20 KPX ydieresis eogonek -20 KPX ydieresis o -20 KPX ydieresis oacute -20 KPX ydieresis ocircumflex -20 KPX ydieresis odieresis -20 KPX ydieresis ograve -20 KPX ydieresis ohungarumlaut -20 KPX ydieresis omacron -20 KPX ydieresis oslash -20 KPX ydieresis otilde -20 KPX ydieresis period -100 KPX z e -15 KPX z eacute -15 KPX z ecaron -15 KPX z ecircumflex -15 KPX z edieresis -15 KPX z edotaccent -15 KPX z egrave -15 KPX z emacron -15 KPX z eogonek -15 KPX z o -15 KPX z oacute -15 KPX z ocircumflex -15 KPX z odieresis -15 KPX z ograve -15 KPX z ohungarumlaut -15 KPX z omacron -15 KPX z oslash -15 KPX z otilde -15 KPX zacute e -15 KPX zacute eacute -15 KPX zacute ecaron -15 KPX zacute ecircumflex -15 KPX zacute edieresis -15 KPX zacute edotaccent -15 KPX zacute egrave -15 KPX zacute emacron -15 KPX zacute eogonek -15 KPX zacute o -15 KPX zacute oacute -15 KPX zacute ocircumflex -15 KPX zacute odieresis -15 KPX zacute ograve -15 KPX zacute ohungarumlaut -15 KPX zacute omacron -15 KPX zacute oslash -15 KPX zacute otilde -15 KPX zcaron e -15 KPX zcaron eacute -15 KPX zcaron ecaron -15 KPX zcaron ecircumflex -15 KPX zcaron edieresis -15 KPX zcaron edotaccent -15 KPX zcaron egrave -15 KPX zcaron emacron -15 KPX zcaron eogonek -15 KPX zcaron o -15 KPX zcaron oacute -15 KPX zcaron ocircumflex -15 KPX zcaron odieresis -15 KPX zcaron ograve -15 KPX zcaron ohungarumlaut -15 KPX zcaron omacron -15 KPX zcaron oslash -15 KPX zcaron otilde -15 KPX zdotaccent e -15 KPX zdotaccent eacute -15 KPX zdotaccent ecaron -15 KPX zdotaccent ecircumflex -15 KPX zdotaccent edieresis -15 KPX zdotaccent edotaccent -15 KPX zdotaccent egrave -15 KPX zdotaccent emacron -15 KPX zdotaccent eogonek -15 KPX zdotaccent o -15 KPX zdotaccent oacute -15 KPX zdotaccent ocircumflex -15 KPX zdotaccent odieresis -15 KPX zdotaccent ograve -15 KPX zdotaccent ohungarumlaut -15 KPX zdotaccent omacron -15 KPX zdotaccent oslash -15 KPX zdotaccent otilde -15 EndKernPairs EndKernData EndFontMetrics a2ps-4.14/afm/pagdo.afm0000644000175000017500000010466110674335051014163 0ustar mhattamhattaStartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1989, 1990, 1991, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Mon Jun 23 16:39:52 1997 Comment UniqueID 43086 Comment VMusage 12316 64111 FontName AvantGarde-DemiOblique FullName ITC Avant Garde Gothic Demi Oblique FamilyName ITC Avant Garde Gothic Weight Demi ItalicAngle -10.5 IsFixedPitch false FontBBox -123 -251 1256 1021 UnderlinePosition -100 UnderlineThickness 50 Version 002.000 Notice Copyright (c) 1985, 1987, 1989, 1990, 1991, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.ITC Avant Garde Gothic is a registered trademark of International Typeface Corporation. EncodingScheme AdobeStandardEncoding CapHeight 740 XHeight 555 Ascender 740 Descender -192 StdHW 122 StdVW 133 StartCharMetrics 314 C 32 ; WX 280 ; N space ; B 0 0 0 0 ; C 33 ; WX 280 ; N exclam ; B 73 0 344 740 ; C 34 ; WX 360 ; N quotedbl ; B 127 444 479 740 ; C 35 ; WX 560 ; N numbersign ; B 65 0 619 700 ; C 36 ; WX 560 ; N dollar ; B 99 -86 582 857 ; C 37 ; WX 860 ; N percent ; B 139 -15 856 755 ; C 38 ; WX 680 ; N ampersand ; B 70 -15 742 755 ; C 39 ; WX 280 ; N quoteright ; B 159 466 343 740 ; C 40 ; WX 380 ; N parenleft ; B 119 -157 490 754 ; C 41 ; WX 380 ; N parenright ; B 7 -157 378 754 ; C 42 ; WX 440 ; N asterisk ; B 173 457 493 755 ; C 43 ; WX 600 ; N plus ; B 83 0 611 506 ; C 44 ; WX 280 ; N comma ; B 47 -141 231 133 ; C 45 ; WX 420 ; N hyphen ; B 113 230 414 348 ; C 46 ; WX 280 ; N period ; B 73 0 231 133 ; C 47 ; WX 460 ; N slash ; B -13 -100 592 740 ; C 48 ; WX 560 ; N zero ; B 69 -15 628 755 ; C 49 ; WX 560 ; N one ; B 230 0 501 740 ; C 50 ; WX 560 ; N two ; B 44 0 622 755 ; C 51 ; WX 560 ; N three ; B 67 -15 586 755 ; C 52 ; WX 560 ; N four ; B 35 0 605 740 ; C 53 ; WX 560 ; N five ; B 63 -15 601 740 ; C 54 ; WX 560 ; N six ; B 64 -15 588 739 ; C 55 ; WX 560 ; N seven ; B 83 0 636 740 ; C 56 ; WX 560 ; N eight ; B 70 -15 590 755 ; C 57 ; WX 560 ; N nine ; B 109 0 633 754 ; C 58 ; WX 280 ; N colon ; B 73 0 309 555 ; C 59 ; WX 280 ; N semicolon ; B 47 -141 309 555 ; C 60 ; WX 600 ; N less ; B 84 -8 650 514 ; C 61 ; WX 600 ; N equal ; B 63 81 631 425 ; C 62 ; WX 600 ; N greater ; B 44 -8 610 514 ; C 63 ; WX 560 ; N question ; B 135 0 594 755 ; C 64 ; WX 740 ; N at ; B 108 -12 832 712 ; C 65 ; WX 740 ; N A ; B 7 0 732 740 ; C 66 ; WX 580 ; N B ; B 70 0 611 740 ; C 67 ; WX 780 ; N C ; B 96 -15 865 755 ; C 68 ; WX 700 ; N D ; B 63 0 732 740 ; C 69 ; WX 520 ; N E ; B 61 0 597 740 ; C 70 ; WX 480 ; N F ; B 61 0 576 740 ; C 71 ; WX 840 ; N G ; B 89 -15 887 755 ; C 72 ; WX 680 ; N H ; B 71 0 748 740 ; C 73 ; WX 280 ; N I ; B 72 0 347 740 ; C 74 ; WX 480 ; N J ; B 34 -15 547 740 ; C 75 ; WX 620 ; N K ; B 89 0 758 740 ; C 76 ; WX 440 ; N L ; B 72 0 459 740 ; C 77 ; WX 900 ; N M ; B 63 0 975 740 ; C 78 ; WX 740 ; N N ; B 70 0 809 740 ; C 79 ; WX 840 ; N O ; B 94 -15 882 755 ; C 80 ; WX 560 ; N P ; B 72 0 645 740 ; C 81 ; WX 840 ; N Q ; B 93 -15 882 755 ; C 82 ; WX 580 ; N R ; B 64 0 657 740 ; C 83 ; WX 520 ; N S ; B 48 -15 579 755 ; C 84 ; WX 420 ; N T ; B 119 0 556 740 ; C 85 ; WX 640 ; N U ; B 96 -15 723 740 ; C 86 ; WX 700 ; N V ; B 145 0 833 740 ; C 87 ; WX 900 ; N W ; B 144 0 1037 740 ; C 88 ; WX 680 ; N X ; B 4 0 814 740 ; C 89 ; WX 620 ; N Y ; B 135 0 760 740 ; C 90 ; WX 500 ; N Z ; B 19 0 600 740 ; C 91 ; WX 320 ; N bracketleft ; B 88 -157 424 754 ; C 92 ; WX 640 ; N backslash ; B 233 -100 526 740 ; C 93 ; WX 320 ; N bracketright ; B 6 -157 342 754 ; C 94 ; WX 600 ; N asciicircum ; B 142 375 597 740 ; C 95 ; WX 500 ; N underscore ; B -24 -125 487 -75 ; C 96 ; WX 280 ; N quoteleft ; B 158 466 342 740 ; C 97 ; WX 660 ; N a ; B 72 -18 716 574 ; C 98 ; WX 660 ; N b ; B 47 -18 689 740 ; C 99 ; WX 640 ; N c ; B 83 -18 679 574 ; C 100 ; WX 660 ; N d ; B 79 -18 756 740 ; C 101 ; WX 640 ; N e ; B 76 -18 668 574 ; C 102 ; WX 280 ; N f ; B 62 0 420 755 ; L i fi ; L l fl ; C 103 ; WX 660 ; N g ; B 33 -226 726 574 ; C 104 ; WX 600 ; N h ; B 54 0 614 740 ; C 105 ; WX 240 ; N i ; B 53 0 324 740 ; C 106 ; WX 260 ; N j ; B -19 -185 343 740 ; C 107 ; WX 580 ; N k ; B 80 0 648 740 ; C 108 ; WX 240 ; N l ; B 54 0 325 740 ; C 109 ; WX 940 ; N m ; B 54 0 955 574 ; C 110 ; WX 600 ; N n ; B 54 0 614 574 ; C 111 ; WX 640 ; N o ; B 71 -18 672 574 ; C 112 ; WX 660 ; N p ; B 12 -185 687 574 ; C 113 ; WX 660 ; N q ; B 78 -185 716 574 ; C 114 ; WX 320 ; N r ; B 63 0 424 574 ; C 115 ; WX 440 ; N s ; B 49 -18 483 574 ; C 116 ; WX 300 ; N t ; B 86 0 402 740 ; C 117 ; WX 600 ; N u ; B 86 -18 647 555 ; C 118 ; WX 560 ; N v ; B 105 0 659 555 ; C 119 ; WX 800 ; N w ; B 113 0 892 555 ; C 120 ; WX 560 ; N x ; B 3 0 632 555 ; C 121 ; WX 580 ; N y ; B 74 -185 674 555 ; C 122 ; WX 460 ; N z ; B 20 0 528 555 ; C 123 ; WX 340 ; N braceleft ; B 40 -191 456 747 ; C 124 ; WX 600 ; N bar ; B 186 -250 505 750 ; C 125 ; WX 340 ; N braceright ; B -13 -191 405 747 ; C 126 ; WX 600 ; N asciitilde ; B 114 160 580 347 ; C 161 ; WX 280 ; N exclamdown ; B 39 -185 310 555 ; C 162 ; WX 560 ; N cent ; B 110 39 600 715 ; C 163 ; WX 560 ; N sterling ; B 38 0 616 755 ; C 164 ; WX 160 ; N fraction ; B -123 0 420 740 ; C 165 ; WX 560 ; N yen ; B 83 0 708 740 ; C 166 ; WX 560 ; N florin ; B -27 -151 665 824 ; C 167 ; WX 560 ; N section ; B 65 -158 602 755 ; C 168 ; WX 560 ; N currency ; B 52 69 628 577 ; C 169 ; WX 220 ; N quotesingle ; B 152 444 315 740 ; C 170 ; WX 480 ; N quotedblleft ; B 156 466 547 740 ; C 171 ; WX 460 ; N guillemotleft ; B 105 108 487 469 ; C 172 ; WX 240 ; N guilsinglleft ; B 94 108 277 469 ; C 173 ; WX 240 ; N guilsinglright ; B 70 108 254 469 ; C 174 ; WX 520 ; N fi ; B 72 0 599 755 ; C 175 ; WX 520 ; N fl ; B 72 0 599 755 ; C 177 ; WX 500 ; N endash ; B 77 230 530 348 ; C 178 ; WX 560 ; N dagger ; B 132 -142 612 740 ; C 179 ; WX 560 ; N daggerdbl ; B 63 -142 618 740 ; C 180 ; WX 280 ; N periodcentered ; B 107 187 266 320 ; C 182 ; WX 600 ; N paragraph ; B 89 -103 745 740 ; C 183 ; WX 600 ; N bullet ; B 215 222 526 532 ; C 184 ; WX 280 ; N quotesinglbase ; B 46 -141 230 133 ; C 185 ; WX 480 ; N quotedblbase ; B 44 -141 435 133 ; C 186 ; WX 480 ; N quotedblright ; B 157 466 548 740 ; C 187 ; WX 460 ; N guillemotright ; B 81 108 464 469 ; C 188 ; WX 1000 ; N ellipsis ; B 100 0 924 133 ; C 189 ; WX 1280 ; N perthousand ; B 139 -15 1256 755 ; C 191 ; WX 560 ; N questiondown ; B 68 -200 527 555 ; C 193 ; WX 420 ; N grave ; B 188 624 462 851 ; C 194 ; WX 420 ; N acute ; B 221 624 507 851 ; C 195 ; WX 540 ; N circumflex ; B 188 636 588 774 ; C 196 ; WX 480 ; N tilde ; B 178 636 564 767 ; C 197 ; WX 420 ; N macron ; B 192 648 490 759 ; C 198 ; WX 480 ; N breve ; B 184 633 582 770 ; C 199 ; WX 280 ; N dotaccent ; B 191 636 350 769 ; C 200 ; WX 500 ; N dieresis ; B 195 636 565 769 ; C 202 ; WX 360 ; N ring ; B 205 619 425 834 ; C 203 ; WX 340 ; N cedilla ; B 66 -251 272 6 ; C 205 ; WX 700 ; N hungarumlaut ; B 247 610 767 849 ; C 206 ; WX 340 ; N ogonek ; B 59 -195 243 9 ; C 207 ; WX 540 ; N caron ; B 214 636 614 774 ; C 208 ; WX 1000 ; N emdash ; B 77 230 1030 348 ; C 225 ; WX 900 ; N AE ; B -5 0 962 740 ; C 227 ; WX 360 ; N ordfeminine ; B 126 438 473 755 ; C 232 ; WX 480 ; N Lslash ; B 67 0 484 740 ; C 233 ; WX 840 ; N Oslash ; B 93 -71 891 814 ; C 234 ; WX 1060 ; N OE ; B 98 -15 1145 755 ; C 235 ; WX 360 ; N ordmasculine ; B 130 438 452 755 ; C 241 ; WX 1080 ; N ae ; B 75 -18 1106 574 ; C 245 ; WX 240 ; N dotlessi ; B 53 0 289 555 ; C 248 ; WX 320 ; N lslash ; B 74 0 405 740 ; C 249 ; WX 660 ; N oslash ; B 81 -50 685 608 ; C 250 ; WX 1080 ; N oe ; B 76 -18 1109 574 ; C 251 ; WX 600 ; N germandbls ; B 51 -18 629 755 ; C -1 ; WX 280 ; N Idieresis ; B 72 0 487 939 ; C -1 ; WX 640 ; N eacute ; B 76 -18 668 851 ; C -1 ; WX 660 ; N abreve ; B 72 -18 716 770 ; C -1 ; WX 600 ; N uhungarumlaut ; B 86 -18 717 849 ; C -1 ; WX 640 ; N ecaron ; B 76 -18 674 774 ; C -1 ; WX 620 ; N Ydieresis ; B 135 0 760 939 ; C -1 ; WX 600 ; N divide ; B 83 -20 611 526 ; C -1 ; WX 620 ; N Yacute ; B 135 0 760 1021 ; C -1 ; WX 740 ; N Acircumflex ; B 7 0 732 944 ; C -1 ; WX 660 ; N aacute ; B 72 -18 716 851 ; C -1 ; WX 640 ; N Ucircumflex ; B 96 -15 723 944 ; C -1 ; WX 580 ; N yacute ; B 74 -185 674 851 ; C -1 ; WX 440 ; N scommaaccent ; B 49 -229 483 574 ; C -1 ; WX 640 ; N ecircumflex ; B 76 -18 668 774 ; C -1 ; WX 640 ; N Uring ; B 96 -15 723 969 ; C -1 ; WX 640 ; N Udieresis ; B 96 -15 723 939 ; C -1 ; WX 660 ; N aogonek ; B 72 -195 716 574 ; C -1 ; WX 640 ; N Uacute ; B 96 -15 723 1021 ; C -1 ; WX 600 ; N uogonek ; B 86 -195 647 555 ; C -1 ; WX 520 ; N Edieresis ; B 61 0 607 939 ; C -1 ; WX 742 ; N Dcroat ; B 82 0 766 740 ; C -1 ; WX 351 ; N commaaccent ; B 5 -229 213 -54 ; C -1 ; WX 740 ; N copyright ; B 50 -12 828 752 ; C -1 ; WX 520 ; N Emacron ; B 61 0 597 944 ; C -1 ; WX 640 ; N ccaron ; B 83 -18 679 774 ; C -1 ; WX 660 ; N aring ; B 72 -18 716 834 ; C -1 ; WX 740 ; N Ncommaaccent ; B 70 -209 809 740 ; C -1 ; WX 240 ; N lacute ; B 54 0 447 1011 ; C -1 ; WX 660 ; N agrave ; B 72 -18 716 851 ; C -1 ; WX 420 ; N Tcommaaccent ; B 40 -229 556 740 ; C -1 ; WX 780 ; N Cacute ; B 96 -15 865 1021 ; C -1 ; WX 660 ; N atilde ; B 72 -18 716 767 ; C -1 ; WX 520 ; N Edotaccent ; B 61 0 597 954 ; C -1 ; WX 440 ; N scaron ; B 49 -18 564 774 ; C -1 ; WX 440 ; N scedilla ; B 49 -251 483 574 ; C -1 ; WX 240 ; N iacute ; B 53 0 442 851 ; C -1 ; WX 494 ; N lozenge ; B 79 0 554 745 ; C -1 ; WX 580 ; N Rcaron ; B 64 0 668 959 ; C -1 ; WX 840 ; N Gcommaaccent ; B 89 -229 887 755 ; C -1 ; WX 600 ; N ucircumflex ; B 86 -18 647 774 ; C -1 ; WX 660 ; N acircumflex ; B 72 -18 716 774 ; C -1 ; WX 740 ; N Amacron ; B 7 0 732 944 ; C -1 ; WX 320 ; N rcaron ; B 63 0 504 774 ; C -1 ; WX 640 ; N ccedilla ; B 83 -251 679 574 ; C -1 ; WX 500 ; N Zdotaccent ; B 19 0 600 954 ; C -1 ; WX 560 ; N Thorn ; B 72 0 619 740 ; C -1 ; WX 840 ; N Omacron ; B 94 -15 882 944 ; C -1 ; WX 580 ; N Racute ; B 64 0 657 1021 ; C -1 ; WX 520 ; N Sacute ; B 48 -15 589 1021 ; C -1 ; WX 800 ; N dcaron ; B 79 -18 966 740 ; C -1 ; WX 640 ; N Umacron ; B 96 -15 723 944 ; C -1 ; WX 600 ; N uring ; B 86 -18 647 834 ; C -1 ; WX 336 ; N threesuperior ; B 87 287 414 749 ; C -1 ; WX 840 ; N Ograve ; B 94 -15 882 1021 ; C -1 ; WX 740 ; N Agrave ; B 7 0 732 1021 ; C -1 ; WX 740 ; N Abreve ; B 7 0 746 955 ; C -1 ; WX 600 ; N multiply ; B 76 12 618 494 ; C -1 ; WX 600 ; N uacute ; B 86 -18 647 851 ; C -1 ; WX 420 ; N Tcaron ; B 119 0 588 959 ; C -1 ; WX 494 ; N partialdiff ; B 39 -21 573 750 ; C -1 ; WX 580 ; N ydieresis ; B 74 -185 674 769 ; C -1 ; WX 740 ; N Nacute ; B 70 0 809 1021 ; C -1 ; WX 240 ; N icircumflex ; B 38 0 438 774 ; C -1 ; WX 520 ; N Ecircumflex ; B 61 0 610 944 ; C -1 ; WX 660 ; N adieresis ; B 72 -18 716 769 ; C -1 ; WX 640 ; N edieresis ; B 76 -18 668 769 ; C -1 ; WX 640 ; N cacute ; B 83 -18 679 851 ; C -1 ; WX 600 ; N nacute ; B 54 0 614 851 ; C -1 ; WX 600 ; N umacron ; B 86 -18 647 759 ; C -1 ; WX 740 ; N Ncaron ; B 70 0 809 959 ; C -1 ; WX 280 ; N Iacute ; B 72 0 494 1021 ; C -1 ; WX 600 ; N plusminus ; B 36 -62 627 556 ; C -1 ; WX 600 ; N brokenbar ; B 200 -175 492 675 ; C -1 ; WX 740 ; N registered ; B 50 -12 828 752 ; C -1 ; WX 840 ; N Gbreve ; B 89 -15 887 955 ; C -1 ; WX 280 ; N Idotaccent ; B 72 0 384 954 ; C -1 ; WX 713 ; N summation ; B -5 -108 756 752 ; C -1 ; WX 520 ; N Egrave ; B 61 0 597 1021 ; C -1 ; WX 320 ; N racute ; B 63 0 487 851 ; C -1 ; WX 640 ; N omacron ; B 71 -18 672 759 ; C -1 ; WX 500 ; N Zacute ; B 19 0 600 1021 ; C -1 ; WX 500 ; N Zcaron ; B 19 0 650 944 ; C -1 ; WX 549 ; N greaterequal ; B 26 0 616 704 ; C -1 ; WX 742 ; N Eth ; B 82 0 766 740 ; C -1 ; WX 780 ; N Ccedilla ; B 96 -251 865 755 ; C -1 ; WX 240 ; N lcommaaccent ; B -50 -229 325 740 ; C -1 ; WX 400 ; N tcaron ; B 86 0 584 786 ; C -1 ; WX 640 ; N eogonek ; B 76 -195 668 574 ; C -1 ; WX 640 ; N Uogonek ; B 96 -195 723 740 ; C -1 ; WX 740 ; N Aacute ; B 7 0 732 1021 ; C -1 ; WX 740 ; N Adieresis ; B 7 0 732 939 ; C -1 ; WX 640 ; N egrave ; B 76 -18 668 851 ; C -1 ; WX 460 ; N zacute ; B 20 0 528 851 ; C -1 ; WX 240 ; N iogonek ; B -34 -195 324 740 ; C -1 ; WX 840 ; N Oacute ; B 94 -15 882 1021 ; C -1 ; WX 640 ; N oacute ; B 71 -18 672 851 ; C -1 ; WX 660 ; N amacron ; B 72 -18 716 759 ; C -1 ; WX 440 ; N sacute ; B 49 -18 517 851 ; C -1 ; WX 240 ; N idieresis ; B 53 0 435 769 ; C -1 ; WX 840 ; N Ocircumflex ; B 94 -15 882 944 ; C -1 ; WX 640 ; N Ugrave ; B 96 -15 723 1021 ; C -1 ; WX 612 ; N Delta ; B 2 0 612 692 ; C -1 ; WX 660 ; N thorn ; B 12 -185 687 740 ; C -1 ; WX 336 ; N twosuperior ; B 72 296 436 749 ; C -1 ; WX 840 ; N Odieresis ; B 94 -15 882 939 ; C -1 ; WX 576 ; N mu ; B 3 -187 642 555 ; C -1 ; WX 240 ; N igrave ; B 53 0 347 851 ; C -1 ; WX 640 ; N ohungarumlaut ; B 71 -18 737 849 ; C -1 ; WX 520 ; N Eogonek ; B 61 -195 597 740 ; C -1 ; WX 660 ; N dcroat ; B 79 -18 829 740 ; C -1 ; WX 840 ; N threequarters ; B 97 0 837 749 ; C -1 ; WX 520 ; N Scedilla ; B 49 -251 579 755 ; C -1 ; WX 380 ; N lcaron ; B 54 0 536 740 ; C -1 ; WX 620 ; N Kcommaaccent ; B 89 -209 758 740 ; C -1 ; WX 440 ; N Lacute ; B 72 0 549 1021 ; C -1 ; WX 1000 ; N trademark ; B 130 296 959 740 ; C -1 ; WX 640 ; N edotaccent ; B 76 -18 668 769 ; C -1 ; WX 280 ; N Igrave ; B 72 0 399 1021 ; C -1 ; WX 280 ; N Imacron ; B 72 0 454 944 ; C -1 ; WX 440 ; N Lcaron ; B 72 0 626 740 ; C -1 ; WX 840 ; N onehalf ; B 157 0 831 740 ; C -1 ; WX 549 ; N lessequal ; B 29 0 657 704 ; C -1 ; WX 640 ; N ocircumflex ; B 71 -18 672 774 ; C -1 ; WX 600 ; N ntilde ; B 54 0 624 767 ; C -1 ; WX 640 ; N Uhungarumlaut ; B 96 -15 769 1019 ; C -1 ; WX 520 ; N Eacute ; B 61 0 597 1021 ; C -1 ; WX 640 ; N emacron ; B 76 -18 668 759 ; C -1 ; WX 660 ; N gbreve ; B 33 -226 726 770 ; C -1 ; WX 840 ; N onequarter ; B 187 0 780 740 ; C -1 ; WX 520 ; N Scaron ; B 48 -15 635 944 ; C -1 ; WX 520 ; N Scommaaccent ; B 48 -229 579 755 ; C -1 ; WX 840 ; N Ohungarumlaut ; B 94 -15 882 1019 ; C -1 ; WX 400 ; N degree ; B 159 426 451 712 ; C -1 ; WX 640 ; N ograve ; B 71 -18 672 851 ; C -1 ; WX 780 ; N Ccaron ; B 96 -15 865 959 ; C -1 ; WX 600 ; N ugrave ; B 86 -18 647 851 ; C -1 ; WX 549 ; N radical ; B 99 -46 667 850 ; C -1 ; WX 700 ; N Dcaron ; B 63 0 732 959 ; C -1 ; WX 320 ; N rcommaaccent ; B -51 -229 424 574 ; C -1 ; WX 740 ; N Ntilde ; B 70 0 809 937 ; C -1 ; WX 640 ; N otilde ; B 71 -18 672 767 ; C -1 ; WX 580 ; N Rcommaaccent ; B 64 -209 657 740 ; C -1 ; WX 440 ; N Lcommaaccent ; B 72 -229 459 740 ; C -1 ; WX 740 ; N Atilde ; B 7 0 732 937 ; C -1 ; WX 740 ; N Aogonek ; B 7 -195 732 740 ; C -1 ; WX 740 ; N Aring ; B 7 0 732 969 ; C -1 ; WX 840 ; N Otilde ; B 94 -15 882 937 ; C -1 ; WX 460 ; N zdotaccent ; B 20 0 528 769 ; C -1 ; WX 520 ; N Ecaron ; B 61 0 638 959 ; C -1 ; WX 280 ; N Iogonek ; B -9 -195 347 740 ; C -1 ; WX 580 ; N kcommaaccent ; B 80 -209 648 740 ; C -1 ; WX 600 ; N minus ; B 83 193 611 313 ; C -1 ; WX 280 ; N Icircumflex ; B 72 0 490 944 ; C -1 ; WX 600 ; N ncaron ; B 54 0 644 774 ; C -1 ; WX 300 ; N tcommaaccent ; B -1 -229 402 740 ; C -1 ; WX 600 ; N logicalnot ; B 104 108 631 425 ; C -1 ; WX 640 ; N odieresis ; B 71 -18 672 769 ; C -1 ; WX 600 ; N udieresis ; B 86 -18 647 769 ; C -1 ; WX 549 ; N notequal ; B 30 -49 619 570 ; C -1 ; WX 660 ; N gcommaaccent ; B 33 -226 726 800 ; C -1 ; WX 640 ; N eth ; B 73 -18 699 754 ; C -1 ; WX 460 ; N zcaron ; B 20 0 599 774 ; C -1 ; WX 600 ; N ncommaaccent ; B 54 -209 614 574 ; C -1 ; WX 336 ; N onesuperior ; B 181 296 361 740 ; C -1 ; WX 240 ; N imacron ; B 53 0 400 759 ; EndCharMetrics StartKernData StartKernPairs 933 KPX A T -73 KPX A Tcaron -73 KPX A Tcommaaccent -73 KPX A V -127 KPX A W -96 KPX A Y -139 KPX A Yacute -139 KPX A Ydieresis -139 KPX A v -50 KPX A w -50 KPX A y -50 KPX A yacute -50 KPX A ydieresis -50 KPX Aacute T -73 KPX Aacute Tcaron -73 KPX Aacute Tcommaaccent -73 KPX Aacute V -127 KPX Aacute W -96 KPX Aacute Y -139 KPX Aacute Yacute -139 KPX Aacute Ydieresis -139 KPX Aacute v -50 KPX Aacute w -50 KPX Aacute y -50 KPX Aacute yacute -50 KPX Aacute ydieresis -50 KPX Abreve T -73 KPX Abreve Tcaron -73 KPX Abreve Tcommaaccent -73 KPX Abreve V -127 KPX Abreve W -96 KPX Abreve Y -139 KPX Abreve Yacute -139 KPX Abreve Ydieresis -139 KPX Abreve v -50 KPX Abreve w -50 KPX Abreve y -50 KPX Abreve yacute -50 KPX Abreve ydieresis -50 KPX Acircumflex T -73 KPX Acircumflex Tcaron -73 KPX Acircumflex Tcommaaccent -73 KPX Acircumflex V -127 KPX Acircumflex W -96 KPX Acircumflex Y -139 KPX Acircumflex Yacute -139 KPX Acircumflex Ydieresis -139 KPX Acircumflex v -50 KPX Acircumflex w -50 KPX Acircumflex y -50 KPX Acircumflex yacute -50 KPX Acircumflex ydieresis -50 KPX Adieresis T -73 KPX Adieresis Tcaron -73 KPX Adieresis Tcommaaccent -73 KPX Adieresis V -127 KPX Adieresis W -96 KPX Adieresis Y -139 KPX Adieresis Yacute -139 KPX Adieresis Ydieresis -139 KPX Adieresis v -50 KPX Adieresis w -50 KPX Adieresis y -50 KPX Adieresis yacute -50 KPX Adieresis ydieresis -50 KPX Agrave T -73 KPX Agrave Tcaron -73 KPX Agrave Tcommaaccent -73 KPX Agrave V -127 KPX Agrave W -96 KPX Agrave Y -139 KPX Agrave Yacute -139 KPX Agrave Ydieresis -139 KPX Agrave v -50 KPX Agrave w -50 KPX Agrave y -50 KPX Agrave yacute -50 KPX Agrave ydieresis -50 KPX Amacron T -73 KPX Amacron Tcaron -73 KPX Amacron Tcommaaccent -73 KPX Amacron V -127 KPX Amacron W -96 KPX Amacron Y -139 KPX Amacron Yacute -139 KPX Amacron Ydieresis -139 KPX Amacron v -50 KPX Amacron w -50 KPX Amacron y -50 KPX Amacron yacute -50 KPX Amacron ydieresis -50 KPX Aogonek T -73 KPX Aogonek Tcaron -73 KPX Aogonek Tcommaaccent -73 KPX Aogonek V -127 KPX Aogonek W -96 KPX Aogonek Y -139 KPX Aogonek Yacute -139 KPX Aogonek Ydieresis -139 KPX Aogonek v -50 KPX Aogonek w -50 KPX Aogonek y -50 KPX Aogonek yacute -50 KPX Aogonek ydieresis -50 KPX Aring T -73 KPX Aring Tcaron -73 KPX Aring Tcommaaccent -73 KPX Aring V -127 KPX Aring W -96 KPX Aring Y -139 KPX Aring Yacute -139 KPX Aring Ydieresis -139 KPX Aring v -50 KPX Aring w -50 KPX Aring y -50 KPX Aring yacute -50 KPX Aring ydieresis -50 KPX Atilde T -73 KPX Atilde Tcaron -73 KPX Atilde Tcommaaccent -73 KPX Atilde V -127 KPX Atilde W -96 KPX Atilde Y -139 KPX Atilde Yacute -139 KPX Atilde Ydieresis -139 KPX Atilde v -50 KPX Atilde w -50 KPX Atilde y -50 KPX Atilde yacute -50 KPX Atilde ydieresis -50 KPX F A -95 KPX F Aacute -95 KPX F Abreve -95 KPX F Acircumflex -95 KPX F Adieresis -95 KPX F Agrave -95 KPX F Amacron -95 KPX F Aogonek -95 KPX F Aring -95 KPX F Atilde -95 KPX F comma -42 KPX F period -42 KPX L T -50 KPX L Tcaron -50 KPX L Tcommaaccent -50 KPX L V -90 KPX L W -90 KPX L Y -90 KPX L Yacute -90 KPX L Ydieresis -90 KPX L y -75 KPX L yacute -75 KPX L ydieresis -75 KPX Lacute T -50 KPX Lacute Tcaron -50 KPX Lacute Tcommaaccent -50 KPX Lacute V -90 KPX Lacute W -90 KPX Lacute Y -90 KPX Lacute Yacute -90 KPX Lacute Ydieresis -90 KPX Lacute y -75 KPX Lacute yacute -75 KPX Lacute ydieresis -75 KPX Lcommaaccent T -50 KPX Lcommaaccent Tcaron -50 KPX Lcommaaccent Tcommaaccent -50 KPX Lcommaaccent V -90 KPX Lcommaaccent W -90 KPX Lcommaaccent Y -90 KPX Lcommaaccent Yacute -90 KPX Lcommaaccent Ydieresis -90 KPX Lcommaaccent y -75 KPX Lcommaaccent yacute -75 KPX Lcommaaccent ydieresis -75 KPX Lslash T -50 KPX Lslash Tcaron -50 KPX Lslash Tcommaaccent -50 KPX Lslash V -90 KPX Lslash W -90 KPX Lslash Y -90 KPX Lslash Yacute -90 KPX Lslash Ydieresis -90 KPX Lslash y -75 KPX Lslash yacute -75 KPX Lslash ydieresis -75 KPX P A -100 KPX P Aacute -100 KPX P Abreve -100 KPX P Acircumflex -100 KPX P Adieresis -100 KPX P Agrave -100 KPX P Amacron -100 KPX P Aogonek -100 KPX P Aring -100 KPX P Atilde -100 KPX P comma -16 KPX P period -16 KPX R T 16 KPX R Tcaron 16 KPX R Tcommaaccent 16 KPX R V -26 KPX R W -20 KPX R Y -20 KPX R Yacute -20 KPX R Ydieresis -20 KPX R y 31 KPX R yacute 31 KPX R ydieresis 31 KPX Racute T 16 KPX Racute Tcaron 16 KPX Racute Tcommaaccent 16 KPX Racute V -26 KPX Racute W -20 KPX Racute Y -20 KPX Racute Yacute -20 KPX Racute Ydieresis -20 KPX Racute y 31 KPX Racute yacute 31 KPX Racute ydieresis 31 KPX Rcaron T 16 KPX Rcaron Tcaron 16 KPX Rcaron Tcommaaccent 16 KPX Rcaron V -26 KPX Rcaron W -20 KPX Rcaron Y -20 KPX Rcaron Yacute -20 KPX Rcaron Ydieresis -20 KPX Rcaron y 31 KPX Rcaron yacute 31 KPX Rcaron ydieresis 31 KPX Rcommaaccent T 16 KPX Rcommaaccent Tcaron 16 KPX Rcommaaccent Tcommaaccent 16 KPX Rcommaaccent V -26 KPX Rcommaaccent W -20 KPX Rcommaaccent Y -20 KPX Rcommaaccent Yacute -20 KPX Rcommaaccent Ydieresis -20 KPX Rcommaaccent y 31 KPX Rcommaaccent yacute 31 KPX Rcommaaccent ydieresis 31 KPX T A -70 KPX T Aacute -70 KPX T Abreve -70 KPX T Acircumflex -70 KPX T Adieresis -70 KPX T Agrave -70 KPX T Amacron -70 KPX T Aogonek -70 KPX T Aring -70 KPX T Atilde -70 KPX T a -40 KPX T aacute -40 KPX T abreve -40 KPX T acircumflex -40 KPX T adieresis -40 KPX T agrave -40 KPX T amacron -40 KPX T aogonek -40 KPX T aring -40 KPX T atilde -40 KPX T c -50 KPX T cacute -50 KPX T ccaron -50 KPX T ccedilla -50 KPX T colon -12 KPX T comma 4 KPX T e -50 KPX T eacute -50 KPX T ecaron -50 KPX T ecircumflex -50 KPX T edieresis -50 KPX T edotaccent -50 KPX T egrave -50 KPX T emacron -50 KPX T eogonek -50 KPX T hyphen -10 KPX T i -5 KPX T iacute 10 KPX T icircumflex 10 KPX T idieresis 10 KPX T igrave 10 KPX T imacron 10 KPX T iogonek -5 KPX T o -50 KPX T oacute -50 KPX T ocircumflex -50 KPX T odieresis -50 KPX T ograve -50 KPX T ohungarumlaut -50 KPX T omacron -50 KPX T oslash -50 KPX T otilde -50 KPX T period 4 KPX T r -42 KPX T rcommaaccent -42 KPX T s -43 KPX T sacute -43 KPX T scedilla -43 KPX T scommaaccent -43 KPX T semicolon -12 KPX T u -56 KPX T uacute -56 KPX T ucircumflex -56 KPX T udieresis -56 KPX T ugrave -56 KPX T uhungarumlaut -56 KPX T umacron -56 KPX T uogonek -56 KPX T uring -56 KPX T w -15 KPX T y -12 KPX T yacute -12 KPX T ydieresis -12 KPX Tcaron A -70 KPX Tcaron Aacute -70 KPX Tcaron Abreve -70 KPX Tcaron Acircumflex -70 KPX Tcaron Adieresis -70 KPX Tcaron Agrave -70 KPX Tcaron Amacron -70 KPX Tcaron Aogonek -70 KPX Tcaron Aring -70 KPX Tcaron Atilde -70 KPX Tcaron a -40 KPX Tcaron aacute -40 KPX Tcaron abreve -40 KPX Tcaron acircumflex -40 KPX Tcaron adieresis -40 KPX Tcaron agrave -40 KPX Tcaron amacron -40 KPX Tcaron aogonek -40 KPX Tcaron aring -40 KPX Tcaron atilde -40 KPX Tcaron c -50 KPX Tcaron cacute -50 KPX Tcaron ccaron -50 KPX Tcaron ccedilla -50 KPX Tcaron colon -12 KPX Tcaron comma 4 KPX Tcaron e -50 KPX Tcaron eacute -50 KPX Tcaron ecaron -50 KPX Tcaron ecircumflex -50 KPX Tcaron edieresis -50 KPX Tcaron edotaccent -50 KPX Tcaron egrave -50 KPX Tcaron emacron -50 KPX Tcaron eogonek -50 KPX Tcaron hyphen -10 KPX Tcaron i -5 KPX Tcaron iacute 10 KPX Tcaron icircumflex 10 KPX Tcaron idieresis 10 KPX Tcaron igrave 10 KPX Tcaron imacron 10 KPX Tcaron iogonek -5 KPX Tcaron o -50 KPX Tcaron oacute -50 KPX Tcaron ocircumflex -50 KPX Tcaron odieresis -50 KPX Tcaron ograve -50 KPX Tcaron ohungarumlaut -50 KPX Tcaron omacron -50 KPX Tcaron oslash -50 KPX Tcaron otilde -50 KPX Tcaron period 4 KPX Tcaron r -42 KPX Tcaron racute -42 KPX Tcaron rcaron -42 KPX Tcaron rcommaaccent -42 KPX Tcaron s -43 KPX Tcaron sacute -43 KPX Tcaron scaron -43 KPX Tcaron scedilla -43 KPX Tcaron scommaaccent -43 KPX Tcaron semicolon -12 KPX Tcaron u -56 KPX Tcaron uacute -56 KPX Tcaron ucircumflex -56 KPX Tcaron udieresis -56 KPX Tcaron ugrave -56 KPX Tcaron uhungarumlaut -56 KPX Tcaron umacron -56 KPX Tcaron uogonek -56 KPX Tcaron uring -56 KPX Tcaron w -15 KPX Tcaron y -12 KPX Tcaron yacute -12 KPX Tcaron ydieresis -12 KPX Tcommaaccent A -70 KPX Tcommaaccent Aacute -70 KPX Tcommaaccent Abreve -70 KPX Tcommaaccent Acircumflex -70 KPX Tcommaaccent Adieresis -70 KPX Tcommaaccent Agrave -70 KPX Tcommaaccent Amacron -70 KPX Tcommaaccent Aogonek -70 KPX Tcommaaccent Aring -70 KPX Tcommaaccent Atilde -70 KPX Tcommaaccent a -40 KPX Tcommaaccent aacute -40 KPX Tcommaaccent abreve -40 KPX Tcommaaccent acircumflex -40 KPX Tcommaaccent adieresis -40 KPX Tcommaaccent agrave -40 KPX Tcommaaccent amacron -40 KPX Tcommaaccent aogonek -40 KPX Tcommaaccent aring -40 KPX Tcommaaccent atilde -40 KPX Tcommaaccent c -50 KPX Tcommaaccent cacute -50 KPX Tcommaaccent ccaron -50 KPX Tcommaaccent ccedilla -50 KPX Tcommaaccent colon -12 KPX Tcommaaccent comma 4 KPX Tcommaaccent e -50 KPX Tcommaaccent eacute -50 KPX Tcommaaccent ecaron -50 KPX Tcommaaccent ecircumflex -50 KPX Tcommaaccent edieresis -50 KPX Tcommaaccent edotaccent -50 KPX Tcommaaccent egrave -50 KPX Tcommaaccent emacron -50 KPX Tcommaaccent eogonek -50 KPX Tcommaaccent hyphen -10 KPX Tcommaaccent i -5 KPX Tcommaaccent iacute 10 KPX Tcommaaccent icircumflex 10 KPX Tcommaaccent idieresis 10 KPX Tcommaaccent igrave 10 KPX Tcommaaccent imacron 10 KPX Tcommaaccent iogonek -5 KPX Tcommaaccent o -50 KPX Tcommaaccent oacute -50 KPX Tcommaaccent ocircumflex -50 KPX Tcommaaccent odieresis -50 KPX Tcommaaccent ograve -50 KPX Tcommaaccent ohungarumlaut -50 KPX Tcommaaccent omacron -50 KPX Tcommaaccent oslash -50 KPX Tcommaaccent otilde -50 KPX Tcommaaccent period 4 KPX Tcommaaccent r -42 KPX Tcommaaccent racute -42 KPX Tcommaaccent rcaron -42 KPX Tcommaaccent rcommaaccent -42 KPX Tcommaaccent s -43 KPX Tcommaaccent sacute -43 KPX Tcommaaccent scaron -43 KPX Tcommaaccent scedilla -43 KPX Tcommaaccent scommaaccent -43 KPX Tcommaaccent semicolon -12 KPX Tcommaaccent u -56 KPX Tcommaaccent uacute -56 KPX Tcommaaccent ucircumflex -56 KPX Tcommaaccent udieresis -56 KPX Tcommaaccent ugrave -56 KPX Tcommaaccent uhungarumlaut -56 KPX Tcommaaccent umacron -56 KPX Tcommaaccent uogonek -56 KPX Tcommaaccent uring -56 KPX Tcommaaccent w -15 KPX Tcommaaccent y -12 KPX Tcommaaccent yacute -12 KPX Tcommaaccent ydieresis -12 KPX V A -125 KPX V Aacute -125 KPX V Abreve -125 KPX V Acircumflex -125 KPX V Adieresis -125 KPX V Agrave -125 KPX V Amacron -125 KPX V Aogonek -125 KPX V Aring -125 KPX V Atilde -125 KPX V a -80 KPX V aacute -80 KPX V abreve -80 KPX V acircumflex -80 KPX V adieresis -80 KPX V agrave -80 KPX V amacron -80 KPX V aogonek -80 KPX V aring -80 KPX V atilde -80 KPX V colon -13 KPX V comma -13 KPX V e -80 KPX V eacute -80 KPX V ecaron -80 KPX V ecircumflex -80 KPX V edieresis -80 KPX V edotaccent -80 KPX V egrave -80 KPX V emacron -80 KPX V eogonek -80 KPX V hyphen -20 KPX V i -9 KPX V iacute -9 KPX V iogonek -9 KPX V o -80 KPX V oacute -80 KPX V ocircumflex -80 KPX V odieresis -80 KPX V ograve -80 KPX V ohungarumlaut -80 KPX V omacron -80 KPX V oslash -80 KPX V otilde -80 KPX V period -13 KPX V r -40 KPX V racute -40 KPX V rcaron -40 KPX V rcommaaccent -40 KPX V semicolon -13 KPX V u -68 KPX V uacute -68 KPX V ucircumflex -68 KPX V udieresis -68 KPX V ugrave -68 KPX V uhungarumlaut -68 KPX V umacron -68 KPX V uogonek -68 KPX V uring -68 KPX V y -15 KPX V yacute -15 KPX V ydieresis -15 KPX W A -94 KPX W Aacute -94 KPX W Abreve -94 KPX W Acircumflex -94 KPX W Adieresis -94 KPX W Agrave -94 KPX W Amacron -94 KPX W Aogonek -94 KPX W Aring -94 KPX W Atilde -94 KPX W a -50 KPX W aacute -50 KPX W abreve -50 KPX W acircumflex -50 KPX W adieresis -50 KPX W agrave -50 KPX W amacron -50 KPX W aogonek -50 KPX W aring -50 KPX W atilde -50 KPX W colon -12 KPX W comma -12 KPX W e -50 KPX W eacute -50 KPX W ecaron -50 KPX W ecircumflex -50 KPX W edieresis -50 KPX W edotaccent -50 KPX W egrave -50 KPX W emacron -50 KPX W eogonek -50 KPX W hyphen -10 KPX W i -7 KPX W iacute 10 KPX W icircumflex 10 KPX W idieresis 10 KPX W igrave 10 KPX W imacron 10 KPX W iogonek -7 KPX W o -50 KPX W oacute -50 KPX W ocircumflex -50 KPX W odieresis -50 KPX W ograve -50 KPX W ohungarumlaut -50 KPX W omacron -50 KPX W oslash -50 KPX W otilde -50 KPX W period -12 KPX W r -39 KPX W racute -39 KPX W rcommaaccent -39 KPX W semicolon -12 KPX W u -40 KPX W uacute -40 KPX W ucircumflex -40 KPX W udieresis -40 KPX W ugrave -40 KPX W uhungarumlaut -40 KPX W umacron -40 KPX W uogonek -40 KPX W uring -40 KPX W y 1 KPX W yacute 1 KPX W ydieresis 1 KPX Y A -138 KPX Y Aacute -138 KPX Y Abreve -138 KPX Y Acircumflex -138 KPX Y Adieresis -138 KPX Y Agrave -138 KPX Y Amacron -138 KPX Y Aogonek -138 KPX Y Aring -138 KPX Y Atilde -138 KPX Y a -100 KPX Y aacute -100 KPX Y abreve -100 KPX Y acircumflex -100 KPX Y adieresis -100 KPX Y agrave -100 KPX Y amacron -100 KPX Y aogonek -100 KPX Y aring -100 KPX Y atilde -100 KPX Y colon -8 KPX Y comma -8 KPX Y e -100 KPX Y eacute -100 KPX Y ecaron -100 KPX Y ecircumflex -100 KPX Y edieresis -100 KPX Y edotaccent -100 KPX Y egrave -100 KPX Y emacron -100 KPX Y eogonek -100 KPX Y hyphen -60 KPX Y i -5 KPX Y iacute -5 KPX Y icircumflex 10 KPX Y idieresis 10 KPX Y igrave 10 KPX Y imacron 10 KPX Y iogonek -5 KPX Y o -100 KPX Y oacute -100 KPX Y ocircumflex -100 KPX Y odieresis -100 KPX Y ograve -100 KPX Y ohungarumlaut -100 KPX Y omacron -100 KPX Y oslash -100 KPX Y otilde -100 KPX Y p -60 KPX Y period -8 KPX Y q -100 KPX Y semicolon -8 KPX Y u -82 KPX Y uacute -82 KPX Y ucircumflex -82 KPX Y udieresis -82 KPX Y ugrave -82 KPX Y uhungarumlaut -82 KPX Y umacron -82 KPX Y uogonek -82 KPX Y uring -82 KPX Y v -25 KPX Yacute A -138 KPX Yacute Aacute -138 KPX Yacute Abreve -138 KPX Yacute Acircumflex -138 KPX Yacute Adieresis -138 KPX Yacute Agrave -138 KPX Yacute Amacron -138 KPX Yacute Aogonek -138 KPX Yacute Aring -138 KPX Yacute Atilde -138 KPX Yacute a -100 KPX Yacute aacute -100 KPX Yacute abreve -100 KPX Yacute acircumflex -100 KPX Yacute adieresis -100 KPX Yacute agrave -100 KPX Yacute amacron -100 KPX Yacute aogonek -100 KPX Yacute aring -100 KPX Yacute atilde -100 KPX Yacute colon -8 KPX Yacute comma -8 KPX Yacute e -100 KPX Yacute eacute -100 KPX Yacute ecaron -100 KPX Yacute ecircumflex -100 KPX Yacute edieresis -100 KPX Yacute edotaccent -100 KPX Yacute egrave -100 KPX Yacute emacron -100 KPX Yacute eogonek -100 KPX Yacute hyphen -60 KPX Yacute i -5 KPX Yacute iacute -5 KPX Yacute icircumflex 10 KPX Yacute idieresis 10 KPX Yacute igrave 10 KPX Yacute imacron 10 KPX Yacute iogonek -5 KPX Yacute o -100 KPX Yacute oacute -100 KPX Yacute ocircumflex -100 KPX Yacute odieresis -100 KPX Yacute ograve -100 KPX Yacute ohungarumlaut -100 KPX Yacute omacron -100 KPX Yacute oslash -100 KPX Yacute otilde -100 KPX Yacute p -60 KPX Yacute period -8 KPX Yacute q -100 KPX Yacute semicolon -8 KPX Yacute u -82 KPX Yacute uacute -82 KPX Yacute ucircumflex -82 KPX Yacute udieresis -82 KPX Yacute ugrave -82 KPX Yacute uhungarumlaut -82 KPX Yacute umacron -82 KPX Yacute uogonek -82 KPX Yacute uring -82 KPX Yacute v -25 KPX Ydieresis A -138 KPX Ydieresis Aacute -138 KPX Ydieresis Abreve -138 KPX Ydieresis Acircumflex -138 KPX Ydieresis Adieresis -138 KPX Ydieresis Agrave -138 KPX Ydieresis Amacron -138 KPX Ydieresis Aogonek -138 KPX Ydieresis Aring -138 KPX Ydieresis Atilde -138 KPX Ydieresis a -100 KPX Ydieresis aacute -100 KPX Ydieresis abreve -100 KPX Ydieresis acircumflex -100 KPX Ydieresis adieresis -100 KPX Ydieresis agrave -100 KPX Ydieresis amacron -100 KPX Ydieresis aogonek -100 KPX Ydieresis aring -100 KPX Ydieresis atilde -100 KPX Ydieresis colon -8 KPX Ydieresis comma -8 KPX Ydieresis e -100 KPX Ydieresis eacute -100 KPX Ydieresis ecaron -100 KPX Ydieresis ecircumflex -100 KPX Ydieresis edieresis -100 KPX Ydieresis edotaccent -100 KPX Ydieresis egrave -100 KPX Ydieresis emacron -100 KPX Ydieresis eogonek -100 KPX Ydieresis hyphen -60 KPX Ydieresis i -5 KPX Ydieresis iacute -5 KPX Ydieresis icircumflex 10 KPX Ydieresis idieresis 10 KPX Ydieresis igrave 10 KPX Ydieresis imacron 10 KPX Ydieresis iogonek -5 KPX Ydieresis o -100 KPX Ydieresis oacute -100 KPX Ydieresis ocircumflex -100 KPX Ydieresis odieresis -100 KPX Ydieresis ograve -100 KPX Ydieresis ohungarumlaut -100 KPX Ydieresis omacron -100 KPX Ydieresis oslash -100 KPX Ydieresis otilde -100 KPX Ydieresis p -60 KPX Ydieresis period -8 KPX Ydieresis q -100 KPX Ydieresis semicolon -8 KPX Ydieresis u -82 KPX Ydieresis uacute -82 KPX Ydieresis ucircumflex -82 KPX Ydieresis udieresis -82 KPX Ydieresis ugrave -82 KPX Ydieresis uhungarumlaut -82 KPX Ydieresis umacron -82 KPX Ydieresis uogonek -82 KPX Ydieresis uring -82 KPX Ydieresis v -25 KPX f f 38 KPX r c -27 KPX r cacute -27 KPX r ccaron -27 KPX r ccedilla -27 KPX r comma 9 KPX r d -8 KPX r dcroat -8 KPX r e -8 KPX r eacute -8 KPX r ecaron -8 KPX r ecircumflex -8 KPX r edieresis -8 KPX r edotaccent -8 KPX r egrave -8 KPX r emacron -8 KPX r eogonek -8 KPX r f 38 KPX r g -8 KPX r gbreve -8 KPX r gcommaaccent -8 KPX r hyphen -10 KPX r m 5 KPX r n 5 KPX r nacute 5 KPX r ncaron 5 KPX r ncommaaccent 5 KPX r ntilde 5 KPX r o -18 KPX r oacute -18 KPX r ocircumflex -18 KPX r odieresis -18 KPX r ograve -18 KPX r ohungarumlaut -18 KPX r omacron -18 KPX r oslash -18 KPX r otilde -18 KPX r period 9 KPX r q -18 KPX racute c -27 KPX racute cacute -27 KPX racute ccaron -27 KPX racute ccedilla -27 KPX racute comma 9 KPX racute d -8 KPX racute dcroat -8 KPX racute e -8 KPX racute eacute -8 KPX racute ecaron -8 KPX racute ecircumflex -8 KPX racute edieresis -8 KPX racute edotaccent -8 KPX racute egrave -8 KPX racute emacron -8 KPX racute eogonek -8 KPX racute f 38 KPX racute g -8 KPX racute gbreve -8 KPX racute gcommaaccent -8 KPX racute hyphen -10 KPX racute m 5 KPX racute n 5 KPX racute nacute 5 KPX racute ncaron 5 KPX racute ncommaaccent 5 KPX racute ntilde 5 KPX racute o -18 KPX racute oacute -18 KPX racute ocircumflex -18 KPX racute odieresis -18 KPX racute ograve -18 KPX racute ohungarumlaut -18 KPX racute omacron -18 KPX racute oslash -18 KPX racute otilde -18 KPX racute period 9 KPX racute q -18 KPX rcaron c -27 KPX rcaron cacute -27 KPX rcaron ccaron -27 KPX rcaron ccedilla -27 KPX rcaron comma 9 KPX rcaron d -8 KPX rcaron dcroat -8 KPX rcaron e -8 KPX rcaron eacute -8 KPX rcaron ecaron -8 KPX rcaron ecircumflex -8 KPX rcaron edieresis -8 KPX rcaron edotaccent -8 KPX rcaron egrave -8 KPX rcaron emacron -8 KPX rcaron eogonek -8 KPX rcaron f 38 KPX rcaron g -8 KPX rcaron gbreve -8 KPX rcaron gcommaaccent -8 KPX rcaron hyphen -10 KPX rcaron m 5 KPX rcaron n 5 KPX rcaron nacute 5 KPX rcaron ncaron 5 KPX rcaron ncommaaccent 5 KPX rcaron ntilde 5 KPX rcaron o -18 KPX rcaron oacute -18 KPX rcaron ocircumflex -18 KPX rcaron odieresis -18 KPX rcaron ograve -18 KPX rcaron ohungarumlaut -18 KPX rcaron omacron -18 KPX rcaron oslash -18 KPX rcaron otilde -18 KPX rcaron period 9 KPX rcaron q -18 KPX rcommaaccent c -27 KPX rcommaaccent cacute -27 KPX rcommaaccent ccaron -27 KPX rcommaaccent ccedilla -27 KPX rcommaaccent comma 9 KPX rcommaaccent d -8 KPX rcommaaccent dcroat -8 KPX rcommaaccent e -8 KPX rcommaaccent eacute -8 KPX rcommaaccent ecaron -8 KPX rcommaaccent ecircumflex -8 KPX rcommaaccent edieresis -8 KPX rcommaaccent edotaccent -8 KPX rcommaaccent egrave -8 KPX rcommaaccent emacron -8 KPX rcommaaccent eogonek -8 KPX rcommaaccent f 38 KPX rcommaaccent g -8 KPX rcommaaccent gbreve -8 KPX rcommaaccent gcommaaccent -8 KPX rcommaaccent hyphen -10 KPX rcommaaccent m 5 KPX rcommaaccent n 5 KPX rcommaaccent nacute 5 KPX rcommaaccent ncaron 5 KPX rcommaaccent ncommaaccent 5 KPX rcommaaccent ntilde 5 KPX rcommaaccent o -18 KPX rcommaaccent oacute -18 KPX rcommaaccent ocircumflex -18 KPX rcommaaccent odieresis -18 KPX rcommaaccent ograve -18 KPX rcommaaccent ohungarumlaut -18 KPX rcommaaccent omacron -18 KPX rcommaaccent oslash -18 KPX rcommaaccent otilde -18 KPX rcommaaccent period 9 KPX rcommaaccent q -18 EndKernPairs EndKernData EndFontMetrics a2ps-4.14/afm/phvr.afm0000644000175000017500000022076410674334152014054 0ustar mhattamhattaStartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Thu May 1 12:38:23 1997 Comment UniqueID 43054 Comment VMusage 37069 48094 FontName Helvetica FullName Helvetica FamilyName Helvetica Weight Medium ItalicAngle 0 IsFixedPitch false FontBBox -166 -225 1000 931 UnderlinePosition -100 UnderlineThickness 50 Version 002.000 Notice Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries. EncodingScheme AdobeStandardEncoding CapHeight 718 XHeight 523 Ascender 718 Descender -207 StdHW 76 StdVW 88 StartCharMetrics 314 C 32 ; WX 278 ; N space ; B 0 0 0 0 ; C 33 ; WX 278 ; N exclam ; B 90 0 187 718 ; C 34 ; WX 355 ; N quotedbl ; B 70 463 285 718 ; C 35 ; WX 556 ; N numbersign ; B 28 0 529 688 ; C 36 ; WX 556 ; N dollar ; B 32 -115 520 775 ; C 37 ; WX 889 ; N percent ; B 39 -19 850 703 ; C 38 ; WX 667 ; N ampersand ; B 44 -15 645 718 ; C 39 ; WX 222 ; N quoteright ; B 53 463 157 718 ; C 40 ; WX 333 ; N parenleft ; B 68 -207 299 733 ; C 41 ; WX 333 ; N parenright ; B 34 -207 265 733 ; C 42 ; WX 389 ; N asterisk ; B 39 431 349 718 ; C 43 ; WX 584 ; N plus ; B 39 0 545 505 ; C 44 ; WX 278 ; N comma ; B 87 -147 191 106 ; C 45 ; WX 333 ; N hyphen ; B 44 232 289 322 ; C 46 ; WX 278 ; N period ; B 87 0 191 106 ; C 47 ; WX 278 ; N slash ; B -17 -19 295 737 ; C 48 ; WX 556 ; N zero ; B 37 -19 519 703 ; C 49 ; WX 556 ; N one ; B 101 0 359 703 ; C 50 ; WX 556 ; N two ; B 26 0 507 703 ; C 51 ; WX 556 ; N three ; B 34 -19 522 703 ; C 52 ; WX 556 ; N four ; B 25 0 523 703 ; C 53 ; WX 556 ; N five ; B 32 -19 514 688 ; C 54 ; WX 556 ; N six ; B 38 -19 518 703 ; C 55 ; WX 556 ; N seven ; B 37 0 523 688 ; C 56 ; WX 556 ; N eight ; B 38 -19 517 703 ; C 57 ; WX 556 ; N nine ; B 42 -19 514 703 ; C 58 ; WX 278 ; N colon ; B 87 0 191 516 ; C 59 ; WX 278 ; N semicolon ; B 87 -147 191 516 ; C 60 ; WX 584 ; N less ; B 48 11 536 495 ; C 61 ; WX 584 ; N equal ; B 39 115 545 390 ; C 62 ; WX 584 ; N greater ; B 48 11 536 495 ; C 63 ; WX 556 ; N question ; B 56 0 492 727 ; C 64 ; WX 1015 ; N at ; B 147 -19 868 737 ; C 65 ; WX 667 ; N A ; B 14 0 654 718 ; C 66 ; WX 667 ; N B ; B 74 0 627 718 ; C 67 ; WX 722 ; N C ; B 44 -19 681 737 ; C 68 ; WX 722 ; N D ; B 81 0 674 718 ; C 69 ; WX 667 ; N E ; B 86 0 616 718 ; C 70 ; WX 611 ; N F ; B 86 0 583 718 ; C 71 ; WX 778 ; N G ; B 48 -19 704 737 ; C 72 ; WX 722 ; N H ; B 77 0 646 718 ; C 73 ; WX 278 ; N I ; B 91 0 188 718 ; C 74 ; WX 500 ; N J ; B 17 -19 428 718 ; C 75 ; WX 667 ; N K ; B 76 0 663 718 ; C 76 ; WX 556 ; N L ; B 76 0 537 718 ; C 77 ; WX 833 ; N M ; B 73 0 761 718 ; C 78 ; WX 722 ; N N ; B 76 0 646 718 ; C 79 ; WX 778 ; N O ; B 39 -19 739 737 ; C 80 ; WX 667 ; N P ; B 86 0 622 718 ; C 81 ; WX 778 ; N Q ; B 39 -56 739 737 ; C 82 ; WX 722 ; N R ; B 88 0 684 718 ; C 83 ; WX 667 ; N S ; B 49 -19 620 737 ; C 84 ; WX 611 ; N T ; B 14 0 597 718 ; C 85 ; WX 722 ; N U ; B 79 -19 644 718 ; C 86 ; WX 667 ; N V ; B 20 0 647 718 ; C 87 ; WX 944 ; N W ; B 16 0 928 718 ; C 88 ; WX 667 ; N X ; B 19 0 648 718 ; C 89 ; WX 667 ; N Y ; B 14 0 653 718 ; C 90 ; WX 611 ; N Z ; B 23 0 588 718 ; C 91 ; WX 278 ; N bracketleft ; B 63 -196 250 722 ; C 92 ; WX 278 ; N backslash ; B -17 -19 295 737 ; C 93 ; WX 278 ; N bracketright ; B 28 -196 215 722 ; C 94 ; WX 469 ; N asciicircum ; B -14 264 483 688 ; C 95 ; WX 556 ; N underscore ; B 0 -125 556 -75 ; C 96 ; WX 222 ; N quoteleft ; B 65 470 169 725 ; C 97 ; WX 556 ; N a ; B 36 -15 530 538 ; C 98 ; WX 556 ; N b ; B 58 -15 517 718 ; C 99 ; WX 500 ; N c ; B 30 -15 477 538 ; C 100 ; WX 556 ; N d ; B 35 -15 499 718 ; C 101 ; WX 556 ; N e ; B 40 -15 516 538 ; C 102 ; WX 278 ; N f ; B 14 0 262 728 ; L i fi ; L l fl ; C 103 ; WX 556 ; N g ; B 40 -220 499 538 ; C 104 ; WX 556 ; N h ; B 65 0 491 718 ; C 105 ; WX 222 ; N i ; B 67 0 155 718 ; C 106 ; WX 222 ; N j ; B -16 -210 155 718 ; C 107 ; WX 500 ; N k ; B 67 0 501 718 ; C 108 ; WX 222 ; N l ; B 67 0 155 718 ; C 109 ; WX 833 ; N m ; B 65 0 769 538 ; C 110 ; WX 556 ; N n ; B 65 0 491 538 ; C 111 ; WX 556 ; N o ; B 35 -14 521 538 ; C 112 ; WX 556 ; N p ; B 58 -207 517 538 ; C 113 ; WX 556 ; N q ; B 35 -207 494 538 ; C 114 ; WX 333 ; N r ; B 77 0 332 538 ; C 115 ; WX 500 ; N s ; B 32 -15 464 538 ; C 116 ; WX 278 ; N t ; B 14 -7 257 669 ; C 117 ; WX 556 ; N u ; B 68 -15 489 523 ; C 118 ; WX 500 ; N v ; B 8 0 492 523 ; C 119 ; WX 722 ; N w ; B 14 0 709 523 ; C 120 ; WX 500 ; N x ; B 11 0 490 523 ; C 121 ; WX 500 ; N y ; B 11 -214 489 523 ; C 122 ; WX 500 ; N z ; B 31 0 469 523 ; C 123 ; WX 334 ; N braceleft ; B 42 -196 292 722 ; C 124 ; WX 260 ; N bar ; B 94 -225 167 775 ; C 125 ; WX 334 ; N braceright ; B 42 -196 292 722 ; C 126 ; WX 584 ; N asciitilde ; B 61 180 523 326 ; C 161 ; WX 333 ; N exclamdown ; B 118 -195 215 523 ; C 162 ; WX 556 ; N cent ; B 51 -115 513 623 ; C 163 ; WX 556 ; N sterling ; B 33 -16 539 718 ; C 164 ; WX 167 ; N fraction ; B -166 -19 333 703 ; C 165 ; WX 556 ; N yen ; B 3 0 553 688 ; C 166 ; WX 556 ; N florin ; B -11 -207 501 737 ; C 167 ; WX 556 ; N section ; B 43 -191 512 737 ; C 168 ; WX 556 ; N currency ; B 28 99 528 603 ; C 169 ; WX 191 ; N quotesingle ; B 59 463 132 718 ; C 170 ; WX 333 ; N quotedblleft ; B 38 470 307 725 ; C 171 ; WX 556 ; N guillemotleft ; B 97 108 459 446 ; C 172 ; WX 333 ; N guilsinglleft ; B 88 108 245 446 ; C 173 ; WX 333 ; N guilsinglright ; B 88 108 245 446 ; C 174 ; WX 500 ; N fi ; B 14 0 434 728 ; C 175 ; WX 500 ; N fl ; B 14 0 432 728 ; C 177 ; WX 556 ; N endash ; B 0 240 556 313 ; C 178 ; WX 556 ; N dagger ; B 43 -159 514 718 ; C 179 ; WX 556 ; N daggerdbl ; B 43 -159 514 718 ; C 180 ; WX 278 ; N periodcentered ; B 77 190 202 315 ; C 182 ; WX 537 ; N paragraph ; B 18 -173 497 718 ; C 183 ; WX 350 ; N bullet ; B 18 202 333 517 ; C 184 ; WX 222 ; N quotesinglbase ; B 53 -149 157 106 ; C 185 ; WX 333 ; N quotedblbase ; B 26 -149 295 106 ; C 186 ; WX 333 ; N quotedblright ; B 26 463 295 718 ; C 187 ; WX 556 ; N guillemotright ; B 97 108 459 446 ; C 188 ; WX 1000 ; N ellipsis ; B 115 0 885 106 ; C 189 ; WX 1000 ; N perthousand ; B 7 -19 994 703 ; C 191 ; WX 611 ; N questiondown ; B 91 -201 527 525 ; C 193 ; WX 333 ; N grave ; B 14 593 211 734 ; C 194 ; WX 333 ; N acute ; B 122 593 319 734 ; C 195 ; WX 333 ; N circumflex ; B 21 593 312 734 ; C 196 ; WX 333 ; N tilde ; B -4 606 337 722 ; C 197 ; WX 333 ; N macron ; B 10 627 323 684 ; C 198 ; WX 333 ; N breve ; B 13 595 321 731 ; C 199 ; WX 333 ; N dotaccent ; B 121 604 212 706 ; C 200 ; WX 333 ; N dieresis ; B 40 604 293 706 ; C 202 ; WX 333 ; N ring ; B 75 572 259 756 ; C 203 ; WX 333 ; N cedilla ; B 45 -225 259 0 ; C 205 ; WX 333 ; N hungarumlaut ; B 31 593 409 734 ; C 206 ; WX 333 ; N ogonek ; B 73 -225 287 0 ; C 207 ; WX 333 ; N caron ; B 21 593 312 734 ; C 208 ; WX 1000 ; N emdash ; B 0 240 1000 313 ; C 225 ; WX 1000 ; N AE ; B 8 0 951 718 ; C 227 ; WX 370 ; N ordfeminine ; B 24 405 346 737 ; C 232 ; WX 556 ; N Lslash ; B -20 0 537 718 ; C 233 ; WX 778 ; N Oslash ; B 39 -19 740 737 ; C 234 ; WX 1000 ; N OE ; B 36 -19 965 737 ; C 235 ; WX 365 ; N ordmasculine ; B 25 405 341 737 ; C 241 ; WX 889 ; N ae ; B 36 -15 847 538 ; C 245 ; WX 278 ; N dotlessi ; B 95 0 183 523 ; C 248 ; WX 222 ; N lslash ; B -20 0 242 718 ; C 249 ; WX 611 ; N oslash ; B 28 -22 537 545 ; C 250 ; WX 944 ; N oe ; B 35 -15 902 538 ; C 251 ; WX 611 ; N germandbls ; B 67 -15 571 728 ; C -1 ; WX 278 ; N Idieresis ; B 13 0 266 901 ; C -1 ; WX 556 ; N eacute ; B 40 -15 516 734 ; C -1 ; WX 556 ; N abreve ; B 36 -15 530 731 ; C -1 ; WX 556 ; N uhungarumlaut ; B 68 -15 521 734 ; C -1 ; WX 556 ; N ecaron ; B 40 -15 516 734 ; C -1 ; WX 667 ; N Ydieresis ; B 14 0 653 901 ; C -1 ; WX 584 ; N divide ; B 39 -19 545 524 ; C -1 ; WX 667 ; N Yacute ; B 14 0 653 929 ; C -1 ; WX 667 ; N Acircumflex ; B 14 0 654 929 ; C -1 ; WX 556 ; N aacute ; B 36 -15 530 734 ; C -1 ; WX 722 ; N Ucircumflex ; B 79 -19 644 929 ; C -1 ; WX 500 ; N yacute ; B 11 -214 489 734 ; C -1 ; WX 500 ; N scommaaccent ; B 32 -225 464 538 ; C -1 ; WX 556 ; N ecircumflex ; B 40 -15 516 734 ; C -1 ; WX 722 ; N Uring ; B 79 -19 644 931 ; C -1 ; WX 722 ; N Udieresis ; B 79 -19 644 901 ; C -1 ; WX 556 ; N aogonek ; B 36 -220 547 538 ; C -1 ; WX 722 ; N Uacute ; B 79 -19 644 929 ; C -1 ; WX 556 ; N uogonek ; B 68 -225 519 523 ; C -1 ; WX 667 ; N Edieresis ; B 86 0 616 901 ; C -1 ; WX 722 ; N Dcroat ; B 0 0 674 718 ; C -1 ; WX 250 ; N commaaccent ; B 87 -225 181 -40 ; C -1 ; WX 737 ; N copyright ; B -14 -19 752 737 ; C -1 ; WX 667 ; N Emacron ; B 86 0 616 879 ; C -1 ; WX 500 ; N ccaron ; B 30 -15 477 734 ; C -1 ; WX 556 ; N aring ; B 36 -15 530 756 ; C -1 ; WX 722 ; N Ncommaaccent ; B 76 -225 646 718 ; C -1 ; WX 222 ; N lacute ; B 67 0 264 929 ; C -1 ; WX 556 ; N agrave ; B 36 -15 530 734 ; C -1 ; WX 611 ; N Tcommaaccent ; B 14 -225 597 718 ; C -1 ; WX 722 ; N Cacute ; B 44 -19 681 929 ; C -1 ; WX 556 ; N atilde ; B 36 -15 530 722 ; C -1 ; WX 667 ; N Edotaccent ; B 86 0 616 901 ; C -1 ; WX 500 ; N scaron ; B 32 -15 464 734 ; C -1 ; WX 500 ; N scedilla ; B 32 -225 464 538 ; C -1 ; WX 278 ; N iacute ; B 95 0 292 734 ; C -1 ; WX 471 ; N lozenge ; B 10 0 462 728 ; C -1 ; WX 722 ; N Rcaron ; B 88 0 684 929 ; C -1 ; WX 778 ; N Gcommaaccent ; B 48 -225 704 737 ; C -1 ; WX 556 ; N ucircumflex ; B 68 -15 489 734 ; C -1 ; WX 556 ; N acircumflex ; B 36 -15 530 734 ; C -1 ; WX 667 ; N Amacron ; B 14 0 654 879 ; C -1 ; WX 333 ; N rcaron ; B 61 0 352 734 ; C -1 ; WX 500 ; N ccedilla ; B 30 -225 477 538 ; C -1 ; WX 611 ; N Zdotaccent ; B 23 0 588 901 ; C -1 ; WX 667 ; N Thorn ; B 86 0 622 718 ; C -1 ; WX 778 ; N Omacron ; B 39 -19 739 879 ; C -1 ; WX 722 ; N Racute ; B 88 0 684 929 ; C -1 ; WX 667 ; N Sacute ; B 49 -19 620 929 ; C -1 ; WX 643 ; N dcaron ; B 35 -15 655 718 ; C -1 ; WX 722 ; N Umacron ; B 79 -19 644 879 ; C -1 ; WX 556 ; N uring ; B 68 -15 489 756 ; C -1 ; WX 333 ; N threesuperior ; B 5 270 325 703 ; C -1 ; WX 778 ; N Ograve ; B 39 -19 739 929 ; C -1 ; WX 667 ; N Agrave ; B 14 0 654 929 ; C -1 ; WX 667 ; N Abreve ; B 14 0 654 926 ; C -1 ; WX 584 ; N multiply ; B 39 0 545 506 ; C -1 ; WX 556 ; N uacute ; B 68 -15 489 734 ; C -1 ; WX 611 ; N Tcaron ; B 14 0 597 929 ; C -1 ; WX 476 ; N partialdiff ; B 13 -38 463 714 ; C -1 ; WX 500 ; N ydieresis ; B 11 -214 489 706 ; C -1 ; WX 722 ; N Nacute ; B 76 0 646 929 ; C -1 ; WX 278 ; N icircumflex ; B -6 0 285 734 ; C -1 ; WX 667 ; N Ecircumflex ; B 86 0 616 929 ; C -1 ; WX 556 ; N adieresis ; B 36 -15 530 706 ; C -1 ; WX 556 ; N edieresis ; B 40 -15 516 706 ; C -1 ; WX 500 ; N cacute ; B 30 -15 477 734 ; C -1 ; WX 556 ; N nacute ; B 65 0 491 734 ; C -1 ; WX 556 ; N umacron ; B 68 -15 489 684 ; C -1 ; WX 722 ; N Ncaron ; B 76 0 646 929 ; C -1 ; WX 278 ; N Iacute ; B 91 0 292 929 ; C -1 ; WX 584 ; N plusminus ; B 39 0 545 506 ; C -1 ; WX 260 ; N brokenbar ; B 94 -150 167 700 ; C -1 ; WX 737 ; N registered ; B -14 -19 752 737 ; C -1 ; WX 778 ; N Gbreve ; B 48 -19 704 926 ; C -1 ; WX 278 ; N Idotaccent ; B 91 0 188 901 ; C -1 ; WX 600 ; N summation ; B 15 -10 586 706 ; C -1 ; WX 667 ; N Egrave ; B 86 0 616 929 ; C -1 ; WX 333 ; N racute ; B 77 0 332 734 ; C -1 ; WX 556 ; N omacron ; B 35 -14 521 684 ; C -1 ; WX 611 ; N Zacute ; B 23 0 588 929 ; C -1 ; WX 611 ; N Zcaron ; B 23 0 588 929 ; C -1 ; WX 549 ; N greaterequal ; B 26 0 523 674 ; C -1 ; WX 722 ; N Eth ; B 0 0 674 718 ; C -1 ; WX 722 ; N Ccedilla ; B 44 -225 681 737 ; C -1 ; WX 222 ; N lcommaaccent ; B 67 -225 167 718 ; C -1 ; WX 317 ; N tcaron ; B 14 -7 329 808 ; C -1 ; WX 556 ; N eogonek ; B 40 -225 516 538 ; C -1 ; WX 722 ; N Uogonek ; B 79 -225 644 718 ; C -1 ; WX 667 ; N Aacute ; B 14 0 654 929 ; C -1 ; WX 667 ; N Adieresis ; B 14 0 654 901 ; C -1 ; WX 556 ; N egrave ; B 40 -15 516 734 ; C -1 ; WX 500 ; N zacute ; B 31 0 469 734 ; C -1 ; WX 222 ; N iogonek ; B -31 -225 183 718 ; C -1 ; WX 778 ; N Oacute ; B 39 -19 739 929 ; C -1 ; WX 556 ; N oacute ; B 35 -14 521 734 ; C -1 ; WX 556 ; N amacron ; B 36 -15 530 684 ; C -1 ; WX 500 ; N sacute ; B 32 -15 464 734 ; C -1 ; WX 278 ; N idieresis ; B 13 0 266 706 ; C -1 ; WX 778 ; N Ocircumflex ; B 39 -19 739 929 ; C -1 ; WX 722 ; N Ugrave ; B 79 -19 644 929 ; C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ; C -1 ; WX 556 ; N thorn ; B 58 -207 517 718 ; C -1 ; WX 333 ; N twosuperior ; B 4 281 323 703 ; C -1 ; WX 778 ; N Odieresis ; B 39 -19 739 901 ; C -1 ; WX 556 ; N mu ; B 68 -207 489 523 ; C -1 ; WX 278 ; N igrave ; B -13 0 184 734 ; C -1 ; WX 556 ; N ohungarumlaut ; B 35 -14 521 734 ; C -1 ; WX 667 ; N Eogonek ; B 86 -220 633 718 ; C -1 ; WX 556 ; N dcroat ; B 35 -15 550 718 ; C -1 ; WX 834 ; N threequarters ; B 45 -19 810 703 ; C -1 ; WX 667 ; N Scedilla ; B 49 -225 620 737 ; C -1 ; WX 299 ; N lcaron ; B 67 0 311 718 ; C -1 ; WX 667 ; N Kcommaaccent ; B 76 -225 663 718 ; C -1 ; WX 556 ; N Lacute ; B 76 0 537 929 ; C -1 ; WX 1000 ; N trademark ; B 46 306 903 718 ; C -1 ; WX 556 ; N edotaccent ; B 40 -15 516 706 ; C -1 ; WX 278 ; N Igrave ; B -13 0 188 929 ; C -1 ; WX 278 ; N Imacron ; B -17 0 296 879 ; C -1 ; WX 556 ; N Lcaron ; B 76 0 537 718 ; C -1 ; WX 834 ; N onehalf ; B 43 -19 773 703 ; C -1 ; WX 549 ; N lessequal ; B 26 0 523 674 ; C -1 ; WX 556 ; N ocircumflex ; B 35 -14 521 734 ; C -1 ; WX 556 ; N ntilde ; B 65 0 491 722 ; C -1 ; WX 722 ; N Uhungarumlaut ; B 79 -19 644 929 ; C -1 ; WX 667 ; N Eacute ; B 86 0 616 929 ; C -1 ; WX 556 ; N emacron ; B 40 -15 516 684 ; C -1 ; WX 556 ; N gbreve ; B 40 -220 499 731 ; C -1 ; WX 834 ; N onequarter ; B 73 -19 756 703 ; C -1 ; WX 667 ; N Scaron ; B 49 -19 620 929 ; C -1 ; WX 667 ; N Scommaaccent ; B 49 -225 620 737 ; C -1 ; WX 778 ; N Ohungarumlaut ; B 39 -19 739 929 ; C -1 ; WX 400 ; N degree ; B 54 411 346 703 ; C -1 ; WX 556 ; N ograve ; B 35 -14 521 734 ; C -1 ; WX 722 ; N Ccaron ; B 44 -19 681 929 ; C -1 ; WX 556 ; N ugrave ; B 68 -15 489 734 ; C -1 ; WX 453 ; N radical ; B -4 -80 458 762 ; C -1 ; WX 722 ; N Dcaron ; B 81 0 674 929 ; C -1 ; WX 333 ; N rcommaaccent ; B 77 -225 332 538 ; C -1 ; WX 722 ; N Ntilde ; B 76 0 646 917 ; C -1 ; WX 556 ; N otilde ; B 35 -14 521 722 ; C -1 ; WX 722 ; N Rcommaaccent ; B 88 -225 684 718 ; C -1 ; WX 556 ; N Lcommaaccent ; B 76 -225 537 718 ; C -1 ; WX 667 ; N Atilde ; B 14 0 654 917 ; C -1 ; WX 667 ; N Aogonek ; B 14 -225 654 718 ; C -1 ; WX 667 ; N Aring ; B 14 0 654 931 ; C -1 ; WX 778 ; N Otilde ; B 39 -19 739 917 ; C -1 ; WX 500 ; N zdotaccent ; B 31 0 469 706 ; C -1 ; WX 667 ; N Ecaron ; B 86 0 616 929 ; C -1 ; WX 278 ; N Iogonek ; B -3 -225 211 718 ; C -1 ; WX 500 ; N kcommaaccent ; B 67 -225 501 718 ; C -1 ; WX 584 ; N minus ; B 39 216 545 289 ; C -1 ; WX 278 ; N Icircumflex ; B -6 0 285 929 ; C -1 ; WX 556 ; N ncaron ; B 65 0 491 734 ; C -1 ; WX 278 ; N tcommaaccent ; B 14 -225 257 669 ; C -1 ; WX 584 ; N logicalnot ; B 39 108 545 390 ; C -1 ; WX 556 ; N odieresis ; B 35 -14 521 706 ; C -1 ; WX 556 ; N udieresis ; B 68 -15 489 706 ; C -1 ; WX 549 ; N notequal ; B 12 -35 537 551 ; C -1 ; WX 556 ; N gcommaaccent ; B 40 -220 499 822 ; C -1 ; WX 556 ; N eth ; B 35 -15 522 737 ; C -1 ; WX 500 ; N zcaron ; B 31 0 469 734 ; C -1 ; WX 556 ; N ncommaaccent ; B 65 -225 491 538 ; C -1 ; WX 333 ; N onesuperior ; B 43 281 222 703 ; C -1 ; WX 278 ; N imacron ; B 5 0 272 684 ; EndCharMetrics StartKernData StartKernPairs 2705 KPX A C -30 KPX A Cacute -30 KPX A Ccaron -30 KPX A Ccedilla -30 KPX A G -30 KPX A Gbreve -30 KPX A Gcommaaccent -30 KPX A O -30 KPX A Oacute -30 KPX A Ocircumflex -30 KPX A Odieresis -30 KPX A Ograve -30 KPX A Ohungarumlaut -30 KPX A Omacron -30 KPX A Oslash -30 KPX A Otilde -30 KPX A Q -30 KPX A T -120 KPX A Tcaron -120 KPX A Tcommaaccent -120 KPX A U -50 KPX A Uacute -50 KPX A Ucircumflex -50 KPX A Udieresis -50 KPX A Ugrave -50 KPX A Uhungarumlaut -50 KPX A Umacron -50 KPX A Uogonek -50 KPX A Uring -50 KPX A V -70 KPX A W -50 KPX A Y -100 KPX A Yacute -100 KPX A Ydieresis -100 KPX A u -30 KPX A uacute -30 KPX A ucircumflex -30 KPX A udieresis -30 KPX A ugrave -30 KPX A uhungarumlaut -30 KPX A umacron -30 KPX A uogonek -30 KPX A uring -30 KPX A v -40 KPX A w -40 KPX A y -40 KPX A yacute -40 KPX A ydieresis -40 KPX Aacute C -30 KPX Aacute Cacute -30 KPX Aacute Ccaron -30 KPX Aacute Ccedilla -30 KPX Aacute G -30 KPX Aacute Gbreve -30 KPX Aacute Gcommaaccent -30 KPX Aacute O -30 KPX Aacute Oacute -30 KPX Aacute Ocircumflex -30 KPX Aacute Odieresis -30 KPX Aacute Ograve -30 KPX Aacute Ohungarumlaut -30 KPX Aacute Omacron -30 KPX Aacute Oslash -30 KPX Aacute Otilde -30 KPX Aacute Q -30 KPX Aacute T -120 KPX Aacute Tcaron -120 KPX Aacute Tcommaaccent -120 KPX Aacute U -50 KPX Aacute Uacute -50 KPX Aacute Ucircumflex -50 KPX Aacute Udieresis -50 KPX Aacute Ugrave -50 KPX Aacute Uhungarumlaut -50 KPX Aacute Umacron -50 KPX Aacute Uogonek -50 KPX Aacute Uring -50 KPX Aacute V -70 KPX Aacute W -50 KPX Aacute Y -100 KPX Aacute Yacute -100 KPX Aacute Ydieresis -100 KPX Aacute u -30 KPX Aacute uacute -30 KPX Aacute ucircumflex -30 KPX Aacute udieresis -30 KPX Aacute ugrave -30 KPX Aacute uhungarumlaut -30 KPX Aacute umacron -30 KPX Aacute uogonek -30 KPX Aacute uring -30 KPX Aacute v -40 KPX Aacute w -40 KPX Aacute y -40 KPX Aacute yacute -40 KPX Aacute ydieresis -40 KPX Abreve C -30 KPX Abreve Cacute -30 KPX Abreve Ccaron -30 KPX Abreve Ccedilla -30 KPX Abreve G -30 KPX Abreve Gbreve -30 KPX Abreve Gcommaaccent -30 KPX Abreve O -30 KPX Abreve Oacute -30 KPX Abreve Ocircumflex -30 KPX Abreve Odieresis -30 KPX Abreve Ograve -30 KPX Abreve Ohungarumlaut -30 KPX Abreve Omacron -30 KPX Abreve Oslash -30 KPX Abreve Otilde -30 KPX Abreve Q -30 KPX Abreve T -120 KPX Abreve Tcaron -120 KPX Abreve Tcommaaccent -120 KPX Abreve U -50 KPX Abreve Uacute -50 KPX Abreve Ucircumflex -50 KPX Abreve Udieresis -50 KPX Abreve Ugrave -50 KPX Abreve Uhungarumlaut -50 KPX Abreve Umacron -50 KPX Abreve Uogonek -50 KPX Abreve Uring -50 KPX Abreve V -70 KPX Abreve W -50 KPX Abreve Y -100 KPX Abreve Yacute -100 KPX Abreve Ydieresis -100 KPX Abreve u -30 KPX Abreve uacute -30 KPX Abreve ucircumflex -30 KPX Abreve udieresis -30 KPX Abreve ugrave -30 KPX Abreve uhungarumlaut -30 KPX Abreve umacron -30 KPX Abreve uogonek -30 KPX Abreve uring -30 KPX Abreve v -40 KPX Abreve w -40 KPX Abreve y -40 KPX Abreve yacute -40 KPX Abreve ydieresis -40 KPX Acircumflex C -30 KPX Acircumflex Cacute -30 KPX Acircumflex Ccaron -30 KPX Acircumflex Ccedilla -30 KPX Acircumflex G -30 KPX Acircumflex Gbreve -30 KPX Acircumflex Gcommaaccent -30 KPX Acircumflex O -30 KPX Acircumflex Oacute -30 KPX Acircumflex Ocircumflex -30 KPX Acircumflex Odieresis -30 KPX Acircumflex Ograve -30 KPX Acircumflex Ohungarumlaut -30 KPX Acircumflex Omacron -30 KPX Acircumflex Oslash -30 KPX Acircumflex Otilde -30 KPX Acircumflex Q -30 KPX Acircumflex T -120 KPX Acircumflex Tcaron -120 KPX Acircumflex Tcommaaccent -120 KPX Acircumflex U -50 KPX Acircumflex Uacute -50 KPX Acircumflex Ucircumflex -50 KPX Acircumflex Udieresis -50 KPX Acircumflex Ugrave -50 KPX Acircumflex Uhungarumlaut -50 KPX Acircumflex Umacron -50 KPX Acircumflex Uogonek -50 KPX Acircumflex Uring -50 KPX Acircumflex V -70 KPX Acircumflex W -50 KPX Acircumflex Y -100 KPX Acircumflex Yacute -100 KPX Acircumflex Ydieresis -100 KPX Acircumflex u -30 KPX Acircumflex uacute -30 KPX Acircumflex ucircumflex -30 KPX Acircumflex udieresis -30 KPX Acircumflex ugrave -30 KPX Acircumflex uhungarumlaut -30 KPX Acircumflex umacron -30 KPX Acircumflex uogonek -30 KPX Acircumflex uring -30 KPX Acircumflex v -40 KPX Acircumflex w -40 KPX Acircumflex y -40 KPX Acircumflex yacute -40 KPX Acircumflex ydieresis -40 KPX Adieresis C -30 KPX Adieresis Cacute -30 KPX Adieresis Ccaron -30 KPX Adieresis Ccedilla -30 KPX Adieresis G -30 KPX Adieresis Gbreve -30 KPX Adieresis Gcommaaccent -30 KPX Adieresis O -30 KPX Adieresis Oacute -30 KPX Adieresis Ocircumflex -30 KPX Adieresis Odieresis -30 KPX Adieresis Ograve -30 KPX Adieresis Ohungarumlaut -30 KPX Adieresis Omacron -30 KPX Adieresis Oslash -30 KPX Adieresis Otilde -30 KPX Adieresis Q -30 KPX Adieresis T -120 KPX Adieresis Tcaron -120 KPX Adieresis Tcommaaccent -120 KPX Adieresis U -50 KPX Adieresis Uacute -50 KPX Adieresis Ucircumflex -50 KPX Adieresis Udieresis -50 KPX Adieresis Ugrave -50 KPX Adieresis Uhungarumlaut -50 KPX Adieresis Umacron -50 KPX Adieresis Uogonek -50 KPX Adieresis Uring -50 KPX Adieresis V -70 KPX Adieresis W -50 KPX Adieresis Y -100 KPX Adieresis Yacute -100 KPX Adieresis Ydieresis -100 KPX Adieresis u -30 KPX Adieresis uacute -30 KPX Adieresis ucircumflex -30 KPX Adieresis udieresis -30 KPX Adieresis ugrave -30 KPX Adieresis uhungarumlaut -30 KPX Adieresis umacron -30 KPX Adieresis uogonek -30 KPX Adieresis uring -30 KPX Adieresis v -40 KPX Adieresis w -40 KPX Adieresis y -40 KPX Adieresis yacute -40 KPX Adieresis ydieresis -40 KPX Agrave C -30 KPX Agrave Cacute -30 KPX Agrave Ccaron -30 KPX Agrave Ccedilla -30 KPX Agrave G -30 KPX Agrave Gbreve -30 KPX Agrave Gcommaaccent -30 KPX Agrave O -30 KPX Agrave Oacute -30 KPX Agrave Ocircumflex -30 KPX Agrave Odieresis -30 KPX Agrave Ograve -30 KPX Agrave Ohungarumlaut -30 KPX Agrave Omacron -30 KPX Agrave Oslash -30 KPX Agrave Otilde -30 KPX Agrave Q -30 KPX Agrave T -120 KPX Agrave Tcaron -120 KPX Agrave Tcommaaccent -120 KPX Agrave U -50 KPX Agrave Uacute -50 KPX Agrave Ucircumflex -50 KPX Agrave Udieresis -50 KPX Agrave Ugrave -50 KPX Agrave Uhungarumlaut -50 KPX Agrave Umacron -50 KPX Agrave Uogonek -50 KPX Agrave Uring -50 KPX Agrave V -70 KPX Agrave W -50 KPX Agrave Y -100 KPX Agrave Yacute -100 KPX Agrave Ydieresis -100 KPX Agrave u -30 KPX Agrave uacute -30 KPX Agrave ucircumflex -30 KPX Agrave udieresis -30 KPX Agrave ugrave -30 KPX Agrave uhungarumlaut -30 KPX Agrave umacron -30 KPX Agrave uogonek -30 KPX Agrave uring -30 KPX Agrave v -40 KPX Agrave w -40 KPX Agrave y -40 KPX Agrave yacute -40 KPX Agrave ydieresis -40 KPX Amacron C -30 KPX Amacron Cacute -30 KPX Amacron Ccaron -30 KPX Amacron Ccedilla -30 KPX Amacron G -30 KPX Amacron Gbreve -30 KPX Amacron Gcommaaccent -30 KPX Amacron O -30 KPX Amacron Oacute -30 KPX Amacron Ocircumflex -30 KPX Amacron Odieresis -30 KPX Amacron Ograve -30 KPX Amacron Ohungarumlaut -30 KPX Amacron Omacron -30 KPX Amacron Oslash -30 KPX Amacron Otilde -30 KPX Amacron Q -30 KPX Amacron T -120 KPX Amacron Tcaron -120 KPX Amacron Tcommaaccent -120 KPX Amacron U -50 KPX Amacron Uacute -50 KPX Amacron Ucircumflex -50 KPX Amacron Udieresis -50 KPX Amacron Ugrave -50 KPX Amacron Uhungarumlaut -50 KPX Amacron Umacron -50 KPX Amacron Uogonek -50 KPX Amacron Uring -50 KPX Amacron V -70 KPX Amacron W -50 KPX Amacron Y -100 KPX Amacron Yacute -100 KPX Amacron Ydieresis -100 KPX Amacron u -30 KPX Amacron uacute -30 KPX Amacron ucircumflex -30 KPX Amacron udieresis -30 KPX Amacron ugrave -30 KPX Amacron uhungarumlaut -30 KPX Amacron umacron -30 KPX Amacron uogonek -30 KPX Amacron uring -30 KPX Amacron v -40 KPX Amacron w -40 KPX Amacron y -40 KPX Amacron yacute -40 KPX Amacron ydieresis -40 KPX Aogonek C -30 KPX Aogonek Cacute -30 KPX Aogonek Ccaron -30 KPX Aogonek Ccedilla -30 KPX Aogonek G -30 KPX Aogonek Gbreve -30 KPX Aogonek Gcommaaccent -30 KPX Aogonek O -30 KPX Aogonek Oacute -30 KPX Aogonek Ocircumflex -30 KPX Aogonek Odieresis -30 KPX Aogonek Ograve -30 KPX Aogonek Ohungarumlaut -30 KPX Aogonek Omacron -30 KPX Aogonek Oslash -30 KPX Aogonek Otilde -30 KPX Aogonek Q -30 KPX Aogonek T -120 KPX Aogonek Tcaron -120 KPX Aogonek Tcommaaccent -120 KPX Aogonek U -50 KPX Aogonek Uacute -50 KPX Aogonek Ucircumflex -50 KPX Aogonek Udieresis -50 KPX Aogonek Ugrave -50 KPX Aogonek Uhungarumlaut -50 KPX Aogonek Umacron -50 KPX Aogonek Uogonek -50 KPX Aogonek Uring -50 KPX Aogonek V -70 KPX Aogonek W -50 KPX Aogonek Y -100 KPX Aogonek Yacute -100 KPX Aogonek Ydieresis -100 KPX Aogonek u -30 KPX Aogonek uacute -30 KPX Aogonek ucircumflex -30 KPX Aogonek udieresis -30 KPX Aogonek ugrave -30 KPX Aogonek uhungarumlaut -30 KPX Aogonek umacron -30 KPX Aogonek uogonek -30 KPX Aogonek uring -30 KPX Aogonek v -40 KPX Aogonek w -40 KPX Aogonek y -40 KPX Aogonek yacute -40 KPX Aogonek ydieresis -40 KPX Aring C -30 KPX Aring Cacute -30 KPX Aring Ccaron -30 KPX Aring Ccedilla -30 KPX Aring G -30 KPX Aring Gbreve -30 KPX Aring Gcommaaccent -30 KPX Aring O -30 KPX Aring Oacute -30 KPX Aring Ocircumflex -30 KPX Aring Odieresis -30 KPX Aring Ograve -30 KPX Aring Ohungarumlaut -30 KPX Aring Omacron -30 KPX Aring Oslash -30 KPX Aring Otilde -30 KPX Aring Q -30 KPX Aring T -120 KPX Aring Tcaron -120 KPX Aring Tcommaaccent -120 KPX Aring U -50 KPX Aring Uacute -50 KPX Aring Ucircumflex -50 KPX Aring Udieresis -50 KPX Aring Ugrave -50 KPX Aring Uhungarumlaut -50 KPX Aring Umacron -50 KPX Aring Uogonek -50 KPX Aring Uring -50 KPX Aring V -70 KPX Aring W -50 KPX Aring Y -100 KPX Aring Yacute -100 KPX Aring Ydieresis -100 KPX Aring u -30 KPX Aring uacute -30 KPX Aring ucircumflex -30 KPX Aring udieresis -30 KPX Aring ugrave -30 KPX Aring uhungarumlaut -30 KPX Aring umacron -30 KPX Aring uogonek -30 KPX Aring uring -30 KPX Aring v -40 KPX Aring w -40 KPX Aring y -40 KPX Aring yacute -40 KPX Aring ydieresis -40 KPX Atilde C -30 KPX Atilde Cacute -30 KPX Atilde Ccaron -30 KPX Atilde Ccedilla -30 KPX Atilde G -30 KPX Atilde Gbreve -30 KPX Atilde Gcommaaccent -30 KPX Atilde O -30 KPX Atilde Oacute -30 KPX Atilde Ocircumflex -30 KPX Atilde Odieresis -30 KPX Atilde Ograve -30 KPX Atilde Ohungarumlaut -30 KPX Atilde Omacron -30 KPX Atilde Oslash -30 KPX Atilde Otilde -30 KPX Atilde Q -30 KPX Atilde T -120 KPX Atilde Tcaron -120 KPX Atilde Tcommaaccent -120 KPX Atilde U -50 KPX Atilde Uacute -50 KPX Atilde Ucircumflex -50 KPX Atilde Udieresis -50 KPX Atilde Ugrave -50 KPX Atilde Uhungarumlaut -50 KPX Atilde Umacron -50 KPX Atilde Uogonek -50 KPX Atilde Uring -50 KPX Atilde V -70 KPX Atilde W -50 KPX Atilde Y -100 KPX Atilde Yacute -100 KPX Atilde Ydieresis -100 KPX Atilde u -30 KPX Atilde uacute -30 KPX Atilde ucircumflex -30 KPX Atilde udieresis -30 KPX Atilde ugrave -30 KPX Atilde uhungarumlaut -30 KPX Atilde umacron -30 KPX Atilde uogonek -30 KPX Atilde uring -30 KPX Atilde v -40 KPX Atilde w -40 KPX Atilde y -40 KPX Atilde yacute -40 KPX Atilde ydieresis -40 KPX B U -10 KPX B Uacute -10 KPX B Ucircumflex -10 KPX B Udieresis -10 KPX B Ugrave -10 KPX B Uhungarumlaut -10 KPX B Umacron -10 KPX B Uogonek -10 KPX B Uring -10 KPX B comma -20 KPX B period -20 KPX C comma -30 KPX C period -30 KPX Cacute comma -30 KPX Cacute period -30 KPX Ccaron comma -30 KPX Ccaron period -30 KPX Ccedilla comma -30 KPX Ccedilla period -30 KPX D A -40 KPX D Aacute -40 KPX D Abreve -40 KPX D Acircumflex -40 KPX D Adieresis -40 KPX D Agrave -40 KPX D Amacron -40 KPX D Aogonek -40 KPX D Aring -40 KPX D Atilde -40 KPX D V -70 KPX D W -40 KPX D Y -90 KPX D Yacute -90 KPX D Ydieresis -90 KPX D comma -70 KPX D period -70 KPX Dcaron A -40 KPX Dcaron Aacute -40 KPX Dcaron Abreve -40 KPX Dcaron Acircumflex -40 KPX Dcaron Adieresis -40 KPX Dcaron Agrave -40 KPX Dcaron Amacron -40 KPX Dcaron Aogonek -40 KPX Dcaron Aring -40 KPX Dcaron Atilde -40 KPX Dcaron V -70 KPX Dcaron W -40 KPX Dcaron Y -90 KPX Dcaron Yacute -90 KPX Dcaron Ydieresis -90 KPX Dcaron comma -70 KPX Dcaron period -70 KPX Dcroat A -40 KPX Dcroat Aacute -40 KPX Dcroat Abreve -40 KPX Dcroat Acircumflex -40 KPX Dcroat Adieresis -40 KPX Dcroat Agrave -40 KPX Dcroat Amacron -40 KPX Dcroat Aogonek -40 KPX Dcroat Aring -40 KPX Dcroat Atilde -40 KPX Dcroat V -70 KPX Dcroat W -40 KPX Dcroat Y -90 KPX Dcroat Yacute -90 KPX Dcroat Ydieresis -90 KPX Dcroat comma -70 KPX Dcroat period -70 KPX F A -80 KPX F Aacute -80 KPX F Abreve -80 KPX F Acircumflex -80 KPX F Adieresis -80 KPX F Agrave -80 KPX F Amacron -80 KPX F Aogonek -80 KPX F Aring -80 KPX F Atilde -80 KPX F a -50 KPX F aacute -50 KPX F abreve -50 KPX F acircumflex -50 KPX F adieresis -50 KPX F agrave -50 KPX F amacron -50 KPX F aogonek -50 KPX F aring -50 KPX F atilde -50 KPX F comma -150 KPX F e -30 KPX F eacute -30 KPX F ecaron -30 KPX F ecircumflex -30 KPX F edieresis -30 KPX F edotaccent -30 KPX F egrave -30 KPX F emacron -30 KPX F eogonek -30 KPX F o -30 KPX F oacute -30 KPX F ocircumflex -30 KPX F odieresis -30 KPX F ograve -30 KPX F ohungarumlaut -30 KPX F omacron -30 KPX F oslash -30 KPX F otilde -30 KPX F period -150 KPX F r -45 KPX F racute -45 KPX F rcaron -45 KPX F rcommaaccent -45 KPX J A -20 KPX J Aacute -20 KPX J Abreve -20 KPX J Acircumflex -20 KPX J Adieresis -20 KPX J Agrave -20 KPX J Amacron -20 KPX J Aogonek -20 KPX J Aring -20 KPX J Atilde -20 KPX J a -20 KPX J aacute -20 KPX J abreve -20 KPX J acircumflex -20 KPX J adieresis -20 KPX J agrave -20 KPX J amacron -20 KPX J aogonek -20 KPX J aring -20 KPX J atilde -20 KPX J comma -30 KPX J period -30 KPX J u -20 KPX J uacute -20 KPX J ucircumflex -20 KPX J udieresis -20 KPX J ugrave -20 KPX J uhungarumlaut -20 KPX J umacron -20 KPX J uogonek -20 KPX J uring -20 KPX K O -50 KPX K Oacute -50 KPX K Ocircumflex -50 KPX K Odieresis -50 KPX K Ograve -50 KPX K Ohungarumlaut -50 KPX K Omacron -50 KPX K Oslash -50 KPX K Otilde -50 KPX K e -40 KPX K eacute -40 KPX K ecaron -40 KPX K ecircumflex -40 KPX K edieresis -40 KPX K edotaccent -40 KPX K egrave -40 KPX K emacron -40 KPX K eogonek -40 KPX K o -40 KPX K oacute -40 KPX K ocircumflex -40 KPX K odieresis -40 KPX K ograve -40 KPX K ohungarumlaut -40 KPX K omacron -40 KPX K oslash -40 KPX K otilde -40 KPX K u -30 KPX K uacute -30 KPX K ucircumflex -30 KPX K udieresis -30 KPX K ugrave -30 KPX K uhungarumlaut -30 KPX K umacron -30 KPX K uogonek -30 KPX K uring -30 KPX K y -50 KPX K yacute -50 KPX K ydieresis -50 KPX Kcommaaccent O -50 KPX Kcommaaccent Oacute -50 KPX Kcommaaccent Ocircumflex -50 KPX Kcommaaccent Odieresis -50 KPX Kcommaaccent Ograve -50 KPX Kcommaaccent Ohungarumlaut -50 KPX Kcommaaccent Omacron -50 KPX Kcommaaccent Oslash -50 KPX Kcommaaccent Otilde -50 KPX Kcommaaccent e -40 KPX Kcommaaccent eacute -40 KPX Kcommaaccent ecaron -40 KPX Kcommaaccent ecircumflex -40 KPX Kcommaaccent edieresis -40 KPX Kcommaaccent edotaccent -40 KPX Kcommaaccent egrave -40 KPX Kcommaaccent emacron -40 KPX Kcommaaccent eogonek -40 KPX Kcommaaccent o -40 KPX Kcommaaccent oacute -40 KPX Kcommaaccent ocircumflex -40 KPX Kcommaaccent odieresis -40 KPX Kcommaaccent ograve -40 KPX Kcommaaccent ohungarumlaut -40 KPX Kcommaaccent omacron -40 KPX Kcommaaccent oslash -40 KPX Kcommaaccent otilde -40 KPX Kcommaaccent u -30 KPX Kcommaaccent uacute -30 KPX Kcommaaccent ucircumflex -30 KPX Kcommaaccent udieresis -30 KPX Kcommaaccent ugrave -30 KPX Kcommaaccent uhungarumlaut -30 KPX Kcommaaccent umacron -30 KPX Kcommaaccent uogonek -30 KPX Kcommaaccent uring -30 KPX Kcommaaccent y -50 KPX Kcommaaccent yacute -50 KPX Kcommaaccent ydieresis -50 KPX L T -110 KPX L Tcaron -110 KPX L Tcommaaccent -110 KPX L V -110 KPX L W -70 KPX L Y -140 KPX L Yacute -140 KPX L Ydieresis -140 KPX L quotedblright -140 KPX L quoteright -160 KPX L y -30 KPX L yacute -30 KPX L ydieresis -30 KPX Lacute T -110 KPX Lacute Tcaron -110 KPX Lacute Tcommaaccent -110 KPX Lacute V -110 KPX Lacute W -70 KPX Lacute Y -140 KPX Lacute Yacute -140 KPX Lacute Ydieresis -140 KPX Lacute quotedblright -140 KPX Lacute quoteright -160 KPX Lacute y -30 KPX Lacute yacute -30 KPX Lacute ydieresis -30 KPX Lcaron T -110 KPX Lcaron Tcaron -110 KPX Lcaron Tcommaaccent -110 KPX Lcaron V -110 KPX Lcaron W -70 KPX Lcaron Y -140 KPX Lcaron Yacute -140 KPX Lcaron Ydieresis -140 KPX Lcaron quotedblright -140 KPX Lcaron quoteright -160 KPX Lcaron y -30 KPX Lcaron yacute -30 KPX Lcaron ydieresis -30 KPX Lcommaaccent T -110 KPX Lcommaaccent Tcaron -110 KPX Lcommaaccent Tcommaaccent -110 KPX Lcommaaccent V -110 KPX Lcommaaccent W -70 KPX Lcommaaccent Y -140 KPX Lcommaaccent Yacute -140 KPX Lcommaaccent Ydieresis -140 KPX Lcommaaccent quotedblright -140 KPX Lcommaaccent quoteright -160 KPX Lcommaaccent y -30 KPX Lcommaaccent yacute -30 KPX Lcommaaccent ydieresis -30 KPX Lslash T -110 KPX Lslash Tcaron -110 KPX Lslash Tcommaaccent -110 KPX Lslash V -110 KPX Lslash W -70 KPX Lslash Y -140 KPX Lslash Yacute -140 KPX Lslash Ydieresis -140 KPX Lslash quotedblright -140 KPX Lslash quoteright -160 KPX Lslash y -30 KPX Lslash yacute -30 KPX Lslash ydieresis -30 KPX O A -20 KPX O Aacute -20 KPX O Abreve -20 KPX O Acircumflex -20 KPX O Adieresis -20 KPX O Agrave -20 KPX O Amacron -20 KPX O Aogonek -20 KPX O Aring -20 KPX O Atilde -20 KPX O T -40 KPX O Tcaron -40 KPX O Tcommaaccent -40 KPX O V -50 KPX O W -30 KPX O X -60 KPX O Y -70 KPX O Yacute -70 KPX O Ydieresis -70 KPX O comma -40 KPX O period -40 KPX Oacute A -20 KPX Oacute Aacute -20 KPX Oacute Abreve -20 KPX Oacute Acircumflex -20 KPX Oacute Adieresis -20 KPX Oacute Agrave -20 KPX Oacute Amacron -20 KPX Oacute Aogonek -20 KPX Oacute Aring -20 KPX Oacute Atilde -20 KPX Oacute T -40 KPX Oacute Tcaron -40 KPX Oacute Tcommaaccent -40 KPX Oacute V -50 KPX Oacute W -30 KPX Oacute X -60 KPX Oacute Y -70 KPX Oacute Yacute -70 KPX Oacute Ydieresis -70 KPX Oacute comma -40 KPX Oacute period -40 KPX Ocircumflex A -20 KPX Ocircumflex Aacute -20 KPX Ocircumflex Abreve -20 KPX Ocircumflex Acircumflex -20 KPX Ocircumflex Adieresis -20 KPX Ocircumflex Agrave -20 KPX Ocircumflex Amacron -20 KPX Ocircumflex Aogonek -20 KPX Ocircumflex Aring -20 KPX Ocircumflex Atilde -20 KPX Ocircumflex T -40 KPX Ocircumflex Tcaron -40 KPX Ocircumflex Tcommaaccent -40 KPX Ocircumflex V -50 KPX Ocircumflex W -30 KPX Ocircumflex X -60 KPX Ocircumflex Y -70 KPX Ocircumflex Yacute -70 KPX Ocircumflex Ydieresis -70 KPX Ocircumflex comma -40 KPX Ocircumflex period -40 KPX Odieresis A -20 KPX Odieresis Aacute -20 KPX Odieresis Abreve -20 KPX Odieresis Acircumflex -20 KPX Odieresis Adieresis -20 KPX Odieresis Agrave -20 KPX Odieresis Amacron -20 KPX Odieresis Aogonek -20 KPX Odieresis Aring -20 KPX Odieresis Atilde -20 KPX Odieresis T -40 KPX Odieresis Tcaron -40 KPX Odieresis Tcommaaccent -40 KPX Odieresis V -50 KPX Odieresis W -30 KPX Odieresis X -60 KPX Odieresis Y -70 KPX Odieresis Yacute -70 KPX Odieresis Ydieresis -70 KPX Odieresis comma -40 KPX Odieresis period -40 KPX Ograve A -20 KPX Ograve Aacute -20 KPX Ograve Abreve -20 KPX Ograve Acircumflex -20 KPX Ograve Adieresis -20 KPX Ograve Agrave -20 KPX Ograve Amacron -20 KPX Ograve Aogonek -20 KPX Ograve Aring -20 KPX Ograve Atilde -20 KPX Ograve T -40 KPX Ograve Tcaron -40 KPX Ograve Tcommaaccent -40 KPX Ograve V -50 KPX Ograve W -30 KPX Ograve X -60 KPX Ograve Y -70 KPX Ograve Yacute -70 KPX Ograve Ydieresis -70 KPX Ograve comma -40 KPX Ograve period -40 KPX Ohungarumlaut A -20 KPX Ohungarumlaut Aacute -20 KPX Ohungarumlaut Abreve -20 KPX Ohungarumlaut Acircumflex -20 KPX Ohungarumlaut Adieresis -20 KPX Ohungarumlaut Agrave -20 KPX Ohungarumlaut Amacron -20 KPX Ohungarumlaut Aogonek -20 KPX Ohungarumlaut Aring -20 KPX Ohungarumlaut Atilde -20 KPX Ohungarumlaut T -40 KPX Ohungarumlaut Tcaron -40 KPX Ohungarumlaut Tcommaaccent -40 KPX Ohungarumlaut V -50 KPX Ohungarumlaut W -30 KPX Ohungarumlaut X -60 KPX Ohungarumlaut Y -70 KPX Ohungarumlaut Yacute -70 KPX Ohungarumlaut Ydieresis -70 KPX Ohungarumlaut comma -40 KPX Ohungarumlaut period -40 KPX Omacron A -20 KPX Omacron Aacute -20 KPX Omacron Abreve -20 KPX Omacron Acircumflex -20 KPX Omacron Adieresis -20 KPX Omacron Agrave -20 KPX Omacron Amacron -20 KPX Omacron Aogonek -20 KPX Omacron Aring -20 KPX Omacron Atilde -20 KPX Omacron T -40 KPX Omacron Tcaron -40 KPX Omacron Tcommaaccent -40 KPX Omacron V -50 KPX Omacron W -30 KPX Omacron X -60 KPX Omacron Y -70 KPX Omacron Yacute -70 KPX Omacron Ydieresis -70 KPX Omacron comma -40 KPX Omacron period -40 KPX Oslash A -20 KPX Oslash Aacute -20 KPX Oslash Abreve -20 KPX Oslash Acircumflex -20 KPX Oslash Adieresis -20 KPX Oslash Agrave -20 KPX Oslash Amacron -20 KPX Oslash Aogonek -20 KPX Oslash Aring -20 KPX Oslash Atilde -20 KPX Oslash T -40 KPX Oslash Tcaron -40 KPX Oslash Tcommaaccent -40 KPX Oslash V -50 KPX Oslash W -30 KPX Oslash X -60 KPX Oslash Y -70 KPX Oslash Yacute -70 KPX Oslash Ydieresis -70 KPX Oslash comma -40 KPX Oslash period -40 KPX Otilde A -20 KPX Otilde Aacute -20 KPX Otilde Abreve -20 KPX Otilde Acircumflex -20 KPX Otilde Adieresis -20 KPX Otilde Agrave -20 KPX Otilde Amacron -20 KPX Otilde Aogonek -20 KPX Otilde Aring -20 KPX Otilde Atilde -20 KPX Otilde T -40 KPX Otilde Tcaron -40 KPX Otilde Tcommaaccent -40 KPX Otilde V -50 KPX Otilde W -30 KPX Otilde X -60 KPX Otilde Y -70 KPX Otilde Yacute -70 KPX Otilde Ydieresis -70 KPX Otilde comma -40 KPX Otilde period -40 KPX P A -120 KPX P Aacute -120 KPX P Abreve -120 KPX P Acircumflex -120 KPX P Adieresis -120 KPX P Agrave -120 KPX P Amacron -120 KPX P Aogonek -120 KPX P Aring -120 KPX P Atilde -120 KPX P a -40 KPX P aacute -40 KPX P abreve -40 KPX P acircumflex -40 KPX P adieresis -40 KPX P agrave -40 KPX P amacron -40 KPX P aogonek -40 KPX P aring -40 KPX P atilde -40 KPX P comma -180 KPX P e -50 KPX P eacute -50 KPX P ecaron -50 KPX P ecircumflex -50 KPX P edieresis -50 KPX P edotaccent -50 KPX P egrave -50 KPX P emacron -50 KPX P eogonek -50 KPX P o -50 KPX P oacute -50 KPX P ocircumflex -50 KPX P odieresis -50 KPX P ograve -50 KPX P ohungarumlaut -50 KPX P omacron -50 KPX P oslash -50 KPX P otilde -50 KPX P period -180 KPX Q U -10 KPX Q Uacute -10 KPX Q Ucircumflex -10 KPX Q Udieresis -10 KPX Q Ugrave -10 KPX Q Uhungarumlaut -10 KPX Q Umacron -10 KPX Q Uogonek -10 KPX Q Uring -10 KPX R O -20 KPX R Oacute -20 KPX R Ocircumflex -20 KPX R Odieresis -20 KPX R Ograve -20 KPX R Ohungarumlaut -20 KPX R Omacron -20 KPX R Oslash -20 KPX R Otilde -20 KPX R T -30 KPX R Tcaron -30 KPX R Tcommaaccent -30 KPX R U -40 KPX R Uacute -40 KPX R Ucircumflex -40 KPX R Udieresis -40 KPX R Ugrave -40 KPX R Uhungarumlaut -40 KPX R Umacron -40 KPX R Uogonek -40 KPX R Uring -40 KPX R V -50 KPX R W -30 KPX R Y -50 KPX R Yacute -50 KPX R Ydieresis -50 KPX Racute O -20 KPX Racute Oacute -20 KPX Racute Ocircumflex -20 KPX Racute Odieresis -20 KPX Racute Ograve -20 KPX Racute Ohungarumlaut -20 KPX Racute Omacron -20 KPX Racute Oslash -20 KPX Racute Otilde -20 KPX Racute T -30 KPX Racute Tcaron -30 KPX Racute Tcommaaccent -30 KPX Racute U -40 KPX Racute Uacute -40 KPX Racute Ucircumflex -40 KPX Racute Udieresis -40 KPX Racute Ugrave -40 KPX Racute Uhungarumlaut -40 KPX Racute Umacron -40 KPX Racute Uogonek -40 KPX Racute Uring -40 KPX Racute V -50 KPX Racute W -30 KPX Racute Y -50 KPX Racute Yacute -50 KPX Racute Ydieresis -50 KPX Rcaron O -20 KPX Rcaron Oacute -20 KPX Rcaron Ocircumflex -20 KPX Rcaron Odieresis -20 KPX Rcaron Ograve -20 KPX Rcaron Ohungarumlaut -20 KPX Rcaron Omacron -20 KPX Rcaron Oslash -20 KPX Rcaron Otilde -20 KPX Rcaron T -30 KPX Rcaron Tcaron -30 KPX Rcaron Tcommaaccent -30 KPX Rcaron U -40 KPX Rcaron Uacute -40 KPX Rcaron Ucircumflex -40 KPX Rcaron Udieresis -40 KPX Rcaron Ugrave -40 KPX Rcaron Uhungarumlaut -40 KPX Rcaron Umacron -40 KPX Rcaron Uogonek -40 KPX Rcaron Uring -40 KPX Rcaron V -50 KPX Rcaron W -30 KPX Rcaron Y -50 KPX Rcaron Yacute -50 KPX Rcaron Ydieresis -50 KPX Rcommaaccent O -20 KPX Rcommaaccent Oacute -20 KPX Rcommaaccent Ocircumflex -20 KPX Rcommaaccent Odieresis -20 KPX Rcommaaccent Ograve -20 KPX Rcommaaccent Ohungarumlaut -20 KPX Rcommaaccent Omacron -20 KPX Rcommaaccent Oslash -20 KPX Rcommaaccent Otilde -20 KPX Rcommaaccent T -30 KPX Rcommaaccent Tcaron -30 KPX Rcommaaccent Tcommaaccent -30 KPX Rcommaaccent U -40 KPX Rcommaaccent Uacute -40 KPX Rcommaaccent Ucircumflex -40 KPX Rcommaaccent Udieresis -40 KPX Rcommaaccent Ugrave -40 KPX Rcommaaccent Uhungarumlaut -40 KPX Rcommaaccent Umacron -40 KPX Rcommaaccent Uogonek -40 KPX Rcommaaccent Uring -40 KPX Rcommaaccent V -50 KPX Rcommaaccent W -30 KPX Rcommaaccent Y -50 KPX Rcommaaccent Yacute -50 KPX Rcommaaccent Ydieresis -50 KPX S comma -20 KPX S period -20 KPX Sacute comma -20 KPX Sacute period -20 KPX Scaron comma -20 KPX Scaron period -20 KPX Scedilla comma -20 KPX Scedilla period -20 KPX Scommaaccent comma -20 KPX Scommaaccent period -20 KPX T A -120 KPX T Aacute -120 KPX T Abreve -120 KPX T Acircumflex -120 KPX T Adieresis -120 KPX T Agrave -120 KPX T Amacron -120 KPX T Aogonek -120 KPX T Aring -120 KPX T Atilde -120 KPX T O -40 KPX T Oacute -40 KPX T Ocircumflex -40 KPX T Odieresis -40 KPX T Ograve -40 KPX T Ohungarumlaut -40 KPX T Omacron -40 KPX T Oslash -40 KPX T Otilde -40 KPX T a -120 KPX T aacute -120 KPX T abreve -60 KPX T acircumflex -120 KPX T adieresis -120 KPX T agrave -120 KPX T amacron -60 KPX T aogonek -120 KPX T aring -120 KPX T atilde -60 KPX T colon -20 KPX T comma -120 KPX T e -120 KPX T eacute -120 KPX T ecaron -120 KPX T ecircumflex -120 KPX T edieresis -120 KPX T edotaccent -120 KPX T egrave -60 KPX T emacron -60 KPX T eogonek -120 KPX T hyphen -140 KPX T o -120 KPX T oacute -120 KPX T ocircumflex -120 KPX T odieresis -120 KPX T ograve -120 KPX T ohungarumlaut -120 KPX T omacron -60 KPX T oslash -120 KPX T otilde -60 KPX T period -120 KPX T r -120 KPX T racute -120 KPX T rcaron -120 KPX T rcommaaccent -120 KPX T semicolon -20 KPX T u -120 KPX T uacute -120 KPX T ucircumflex -120 KPX T udieresis -120 KPX T ugrave -120 KPX T uhungarumlaut -120 KPX T umacron -60 KPX T uogonek -120 KPX T uring -120 KPX T w -120 KPX T y -120 KPX T yacute -120 KPX T ydieresis -60 KPX Tcaron A -120 KPX Tcaron Aacute -120 KPX Tcaron Abreve -120 KPX Tcaron Acircumflex -120 KPX Tcaron Adieresis -120 KPX Tcaron Agrave -120 KPX Tcaron Amacron -120 KPX Tcaron Aogonek -120 KPX Tcaron Aring -120 KPX Tcaron Atilde -120 KPX Tcaron O -40 KPX Tcaron Oacute -40 KPX Tcaron Ocircumflex -40 KPX Tcaron Odieresis -40 KPX Tcaron Ograve -40 KPX Tcaron Ohungarumlaut -40 KPX Tcaron Omacron -40 KPX Tcaron Oslash -40 KPX Tcaron Otilde -40 KPX Tcaron a -120 KPX Tcaron aacute -120 KPX Tcaron abreve -60 KPX Tcaron acircumflex -120 KPX Tcaron adieresis -120 KPX Tcaron agrave -120 KPX Tcaron amacron -60 KPX Tcaron aogonek -120 KPX Tcaron aring -120 KPX Tcaron atilde -60 KPX Tcaron colon -20 KPX Tcaron comma -120 KPX Tcaron e -120 KPX Tcaron eacute -120 KPX Tcaron ecaron -120 KPX Tcaron ecircumflex -120 KPX Tcaron edieresis -120 KPX Tcaron edotaccent -120 KPX Tcaron egrave -60 KPX Tcaron emacron -60 KPX Tcaron eogonek -120 KPX Tcaron hyphen -140 KPX Tcaron o -120 KPX Tcaron oacute -120 KPX Tcaron ocircumflex -120 KPX Tcaron odieresis -120 KPX Tcaron ograve -120 KPX Tcaron ohungarumlaut -120 KPX Tcaron omacron -60 KPX Tcaron oslash -120 KPX Tcaron otilde -60 KPX Tcaron period -120 KPX Tcaron r -120 KPX Tcaron racute -120 KPX Tcaron rcaron -120 KPX Tcaron rcommaaccent -120 KPX Tcaron semicolon -20 KPX Tcaron u -120 KPX Tcaron uacute -120 KPX Tcaron ucircumflex -120 KPX Tcaron udieresis -120 KPX Tcaron ugrave -120 KPX Tcaron uhungarumlaut -120 KPX Tcaron umacron -60 KPX Tcaron uogonek -120 KPX Tcaron uring -120 KPX Tcaron w -120 KPX Tcaron y -120 KPX Tcaron yacute -120 KPX Tcaron ydieresis -60 KPX Tcommaaccent A -120 KPX Tcommaaccent Aacute -120 KPX Tcommaaccent Abreve -120 KPX Tcommaaccent Acircumflex -120 KPX Tcommaaccent Adieresis -120 KPX Tcommaaccent Agrave -120 KPX Tcommaaccent Amacron -120 KPX Tcommaaccent Aogonek -120 KPX Tcommaaccent Aring -120 KPX Tcommaaccent Atilde -120 KPX Tcommaaccent O -40 KPX Tcommaaccent Oacute -40 KPX Tcommaaccent Ocircumflex -40 KPX Tcommaaccent Odieresis -40 KPX Tcommaaccent Ograve -40 KPX Tcommaaccent Ohungarumlaut -40 KPX Tcommaaccent Omacron -40 KPX Tcommaaccent Oslash -40 KPX Tcommaaccent Otilde -40 KPX Tcommaaccent a -120 KPX Tcommaaccent aacute -120 KPX Tcommaaccent abreve -60 KPX Tcommaaccent acircumflex -120 KPX Tcommaaccent adieresis -120 KPX Tcommaaccent agrave -120 KPX Tcommaaccent amacron -60 KPX Tcommaaccent aogonek -120 KPX Tcommaaccent aring -120 KPX Tcommaaccent atilde -60 KPX Tcommaaccent colon -20 KPX Tcommaaccent comma -120 KPX Tcommaaccent e -120 KPX Tcommaaccent eacute -120 KPX Tcommaaccent ecaron -120 KPX Tcommaaccent ecircumflex -120 KPX Tcommaaccent edieresis -120 KPX Tcommaaccent edotaccent -120 KPX Tcommaaccent egrave -60 KPX Tcommaaccent emacron -60 KPX Tcommaaccent eogonek -120 KPX Tcommaaccent hyphen -140 KPX Tcommaaccent o -120 KPX Tcommaaccent oacute -120 KPX Tcommaaccent ocircumflex -120 KPX Tcommaaccent odieresis -120 KPX Tcommaaccent ograve -120 KPX Tcommaaccent ohungarumlaut -120 KPX Tcommaaccent omacron -60 KPX Tcommaaccent oslash -120 KPX Tcommaaccent otilde -60 KPX Tcommaaccent period -120 KPX Tcommaaccent r -120 KPX Tcommaaccent racute -120 KPX Tcommaaccent rcaron -120 KPX Tcommaaccent rcommaaccent -120 KPX Tcommaaccent semicolon -20 KPX Tcommaaccent u -120 KPX Tcommaaccent uacute -120 KPX Tcommaaccent ucircumflex -120 KPX Tcommaaccent udieresis -120 KPX Tcommaaccent ugrave -120 KPX Tcommaaccent uhungarumlaut -120 KPX Tcommaaccent umacron -60 KPX Tcommaaccent uogonek -120 KPX Tcommaaccent uring -120 KPX Tcommaaccent w -120 KPX Tcommaaccent y -120 KPX Tcommaaccent yacute -120 KPX Tcommaaccent ydieresis -60 KPX U A -40 KPX U Aacute -40 KPX U Abreve -40 KPX U Acircumflex -40 KPX U Adieresis -40 KPX U Agrave -40 KPX U Amacron -40 KPX U Aogonek -40 KPX U Aring -40 KPX U Atilde -40 KPX U comma -40 KPX U period -40 KPX Uacute A -40 KPX Uacute Aacute -40 KPX Uacute Abreve -40 KPX Uacute Acircumflex -40 KPX Uacute Adieresis -40 KPX Uacute Agrave -40 KPX Uacute Amacron -40 KPX Uacute Aogonek -40 KPX Uacute Aring -40 KPX Uacute Atilde -40 KPX Uacute comma -40 KPX Uacute period -40 KPX Ucircumflex A -40 KPX Ucircumflex Aacute -40 KPX Ucircumflex Abreve -40 KPX Ucircumflex Acircumflex -40 KPX Ucircumflex Adieresis -40 KPX Ucircumflex Agrave -40 KPX Ucircumflex Amacron -40 KPX Ucircumflex Aogonek -40 KPX Ucircumflex Aring -40 KPX Ucircumflex Atilde -40 KPX Ucircumflex comma -40 KPX Ucircumflex period -40 KPX Udieresis A -40 KPX Udieresis Aacute -40 KPX Udieresis Abreve -40 KPX Udieresis Acircumflex -40 KPX Udieresis Adieresis -40 KPX Udieresis Agrave -40 KPX Udieresis Amacron -40 KPX Udieresis Aogonek -40 KPX Udieresis Aring -40 KPX Udieresis Atilde -40 KPX Udieresis comma -40 KPX Udieresis period -40 KPX Ugrave A -40 KPX Ugrave Aacute -40 KPX Ugrave Abreve -40 KPX Ugrave Acircumflex -40 KPX Ugrave Adieresis -40 KPX Ugrave Agrave -40 KPX Ugrave Amacron -40 KPX Ugrave Aogonek -40 KPX Ugrave Aring -40 KPX Ugrave Atilde -40 KPX Ugrave comma -40 KPX Ugrave period -40 KPX Uhungarumlaut A -40 KPX Uhungarumlaut Aacute -40 KPX Uhungarumlaut Abreve -40 KPX Uhungarumlaut Acircumflex -40 KPX Uhungarumlaut Adieresis -40 KPX Uhungarumlaut Agrave -40 KPX Uhungarumlaut Amacron -40 KPX Uhungarumlaut Aogonek -40 KPX Uhungarumlaut Aring -40 KPX Uhungarumlaut Atilde -40 KPX Uhungarumlaut comma -40 KPX Uhungarumlaut period -40 KPX Umacron A -40 KPX Umacron Aacute -40 KPX Umacron Abreve -40 KPX Umacron Acircumflex -40 KPX Umacron Adieresis -40 KPX Umacron Agrave -40 KPX Umacron Amacron -40 KPX Umacron Aogonek -40 KPX Umacron Aring -40 KPX Umacron Atilde -40 KPX Umacron comma -40 KPX Umacron period -40 KPX Uogonek A -40 KPX Uogonek Aacute -40 KPX Uogonek Abreve -40 KPX Uogonek Acircumflex -40 KPX Uogonek Adieresis -40 KPX Uogonek Agrave -40 KPX Uogonek Amacron -40 KPX Uogonek Aogonek -40 KPX Uogonek Aring -40 KPX Uogonek Atilde -40 KPX Uogonek comma -40 KPX Uogonek period -40 KPX Uring A -40 KPX Uring Aacute -40 KPX Uring Abreve -40 KPX Uring Acircumflex -40 KPX Uring Adieresis -40 KPX Uring Agrave -40 KPX Uring Amacron -40 KPX Uring Aogonek -40 KPX Uring Aring -40 KPX Uring Atilde -40 KPX Uring comma -40 KPX Uring period -40 KPX V A -80 KPX V Aacute -80 KPX V Abreve -80 KPX V Acircumflex -80 KPX V Adieresis -80 KPX V Agrave -80 KPX V Amacron -80 KPX V Aogonek -80 KPX V Aring -80 KPX V Atilde -80 KPX V G -40 KPX V Gbreve -40 KPX V Gcommaaccent -40 KPX V O -40 KPX V Oacute -40 KPX V Ocircumflex -40 KPX V Odieresis -40 KPX V Ograve -40 KPX V Ohungarumlaut -40 KPX V Omacron -40 KPX V Oslash -40 KPX V Otilde -40 KPX V a -70 KPX V aacute -70 KPX V abreve -70 KPX V acircumflex -70 KPX V adieresis -70 KPX V agrave -70 KPX V amacron -70 KPX V aogonek -70 KPX V aring -70 KPX V atilde -70 KPX V colon -40 KPX V comma -125 KPX V e -80 KPX V eacute -80 KPX V ecaron -80 KPX V ecircumflex -80 KPX V edieresis -80 KPX V edotaccent -80 KPX V egrave -80 KPX V emacron -80 KPX V eogonek -80 KPX V hyphen -80 KPX V o -80 KPX V oacute -80 KPX V ocircumflex -80 KPX V odieresis -80 KPX V ograve -80 KPX V ohungarumlaut -80 KPX V omacron -80 KPX V oslash -80 KPX V otilde -80 KPX V period -125 KPX V semicolon -40 KPX V u -70 KPX V uacute -70 KPX V ucircumflex -70 KPX V udieresis -70 KPX V ugrave -70 KPX V uhungarumlaut -70 KPX V umacron -70 KPX V uogonek -70 KPX V uring -70 KPX W A -50 KPX W Aacute -50 KPX W Abreve -50 KPX W Acircumflex -50 KPX W Adieresis -50 KPX W Agrave -50 KPX W Amacron -50 KPX W Aogonek -50 KPX W Aring -50 KPX W Atilde -50 KPX W O -20 KPX W Oacute -20 KPX W Ocircumflex -20 KPX W Odieresis -20 KPX W Ograve -20 KPX W Ohungarumlaut -20 KPX W Omacron -20 KPX W Oslash -20 KPX W Otilde -20 KPX W a -40 KPX W aacute -40 KPX W abreve -40 KPX W acircumflex -40 KPX W adieresis -40 KPX W agrave -40 KPX W amacron -40 KPX W aogonek -40 KPX W aring -40 KPX W atilde -40 KPX W comma -80 KPX W e -30 KPX W eacute -30 KPX W ecaron -30 KPX W ecircumflex -30 KPX W edieresis -30 KPX W edotaccent -30 KPX W egrave -30 KPX W emacron -30 KPX W eogonek -30 KPX W hyphen -40 KPX W o -30 KPX W oacute -30 KPX W ocircumflex -30 KPX W odieresis -30 KPX W ograve -30 KPX W ohungarumlaut -30 KPX W omacron -30 KPX W oslash -30 KPX W otilde -30 KPX W period -80 KPX W u -30 KPX W uacute -30 KPX W ucircumflex -30 KPX W udieresis -30 KPX W ugrave -30 KPX W uhungarumlaut -30 KPX W umacron -30 KPX W uogonek -30 KPX W uring -30 KPX W y -20 KPX W yacute -20 KPX W ydieresis -20 KPX Y A -110 KPX Y Aacute -110 KPX Y Abreve -110 KPX Y Acircumflex -110 KPX Y Adieresis -110 KPX Y Agrave -110 KPX Y Amacron -110 KPX Y Aogonek -110 KPX Y Aring -110 KPX Y Atilde -110 KPX Y O -85 KPX Y Oacute -85 KPX Y Ocircumflex -85 KPX Y Odieresis -85 KPX Y Ograve -85 KPX Y Ohungarumlaut -85 KPX Y Omacron -85 KPX Y Oslash -85 KPX Y Otilde -85 KPX Y a -140 KPX Y aacute -140 KPX Y abreve -70 KPX Y acircumflex -140 KPX Y adieresis -140 KPX Y agrave -140 KPX Y amacron -70 KPX Y aogonek -140 KPX Y aring -140 KPX Y atilde -140 KPX Y colon -60 KPX Y comma -140 KPX Y e -140 KPX Y eacute -140 KPX Y ecaron -140 KPX Y ecircumflex -140 KPX Y edieresis -140 KPX Y edotaccent -140 KPX Y egrave -140 KPX Y emacron -70 KPX Y eogonek -140 KPX Y hyphen -140 KPX Y i -20 KPX Y iacute -20 KPX Y iogonek -20 KPX Y o -140 KPX Y oacute -140 KPX Y ocircumflex -140 KPX Y odieresis -140 KPX Y ograve -140 KPX Y ohungarumlaut -140 KPX Y omacron -140 KPX Y oslash -140 KPX Y otilde -140 KPX Y period -140 KPX Y semicolon -60 KPX Y u -110 KPX Y uacute -110 KPX Y ucircumflex -110 KPX Y udieresis -110 KPX Y ugrave -110 KPX Y uhungarumlaut -110 KPX Y umacron -110 KPX Y uogonek -110 KPX Y uring -110 KPX Yacute A -110 KPX Yacute Aacute -110 KPX Yacute Abreve -110 KPX Yacute Acircumflex -110 KPX Yacute Adieresis -110 KPX Yacute Agrave -110 KPX Yacute Amacron -110 KPX Yacute Aogonek -110 KPX Yacute Aring -110 KPX Yacute Atilde -110 KPX Yacute O -85 KPX Yacute Oacute -85 KPX Yacute Ocircumflex -85 KPX Yacute Odieresis -85 KPX Yacute Ograve -85 KPX Yacute Ohungarumlaut -85 KPX Yacute Omacron -85 KPX Yacute Oslash -85 KPX Yacute Otilde -85 KPX Yacute a -140 KPX Yacute aacute -140 KPX Yacute abreve -70 KPX Yacute acircumflex -140 KPX Yacute adieresis -140 KPX Yacute agrave -140 KPX Yacute amacron -70 KPX Yacute aogonek -140 KPX Yacute aring -140 KPX Yacute atilde -70 KPX Yacute colon -60 KPX Yacute comma -140 KPX Yacute e -140 KPX Yacute eacute -140 KPX Yacute ecaron -140 KPX Yacute ecircumflex -140 KPX Yacute edieresis -140 KPX Yacute edotaccent -140 KPX Yacute egrave -140 KPX Yacute emacron -70 KPX Yacute eogonek -140 KPX Yacute hyphen -140 KPX Yacute i -20 KPX Yacute iacute -20 KPX Yacute iogonek -20 KPX Yacute o -140 KPX Yacute oacute -140 KPX Yacute ocircumflex -140 KPX Yacute odieresis -140 KPX Yacute ograve -140 KPX Yacute ohungarumlaut -140 KPX Yacute omacron -70 KPX Yacute oslash -140 KPX Yacute otilde -140 KPX Yacute period -140 KPX Yacute semicolon -60 KPX Yacute u -110 KPX Yacute uacute -110 KPX Yacute ucircumflex -110 KPX Yacute udieresis -110 KPX Yacute ugrave -110 KPX Yacute uhungarumlaut -110 KPX Yacute umacron -110 KPX Yacute uogonek -110 KPX Yacute uring -110 KPX Ydieresis A -110 KPX Ydieresis Aacute -110 KPX Ydieresis Abreve -110 KPX Ydieresis Acircumflex -110 KPX Ydieresis Adieresis -110 KPX Ydieresis Agrave -110 KPX Ydieresis Amacron -110 KPX Ydieresis Aogonek -110 KPX Ydieresis Aring -110 KPX Ydieresis Atilde -110 KPX Ydieresis O -85 KPX Ydieresis Oacute -85 KPX Ydieresis Ocircumflex -85 KPX Ydieresis Odieresis -85 KPX Ydieresis Ograve -85 KPX Ydieresis Ohungarumlaut -85 KPX Ydieresis Omacron -85 KPX Ydieresis Oslash -85 KPX Ydieresis Otilde -85 KPX Ydieresis a -140 KPX Ydieresis aacute -140 KPX Ydieresis abreve -70 KPX Ydieresis acircumflex -140 KPX Ydieresis adieresis -140 KPX Ydieresis agrave -140 KPX Ydieresis amacron -70 KPX Ydieresis aogonek -140 KPX Ydieresis aring -140 KPX Ydieresis atilde -70 KPX Ydieresis colon -60 KPX Ydieresis comma -140 KPX Ydieresis e -140 KPX Ydieresis eacute -140 KPX Ydieresis ecaron -140 KPX Ydieresis ecircumflex -140 KPX Ydieresis edieresis -140 KPX Ydieresis edotaccent -140 KPX Ydieresis egrave -140 KPX Ydieresis emacron -70 KPX Ydieresis eogonek -140 KPX Ydieresis hyphen -140 KPX Ydieresis i -20 KPX Ydieresis iacute -20 KPX Ydieresis iogonek -20 KPX Ydieresis o -140 KPX Ydieresis oacute -140 KPX Ydieresis ocircumflex -140 KPX Ydieresis odieresis -140 KPX Ydieresis ograve -140 KPX Ydieresis ohungarumlaut -140 KPX Ydieresis omacron -140 KPX Ydieresis oslash -140 KPX Ydieresis otilde -140 KPX Ydieresis period -140 KPX Ydieresis semicolon -60 KPX Ydieresis u -110 KPX Ydieresis uacute -110 KPX Ydieresis ucircumflex -110 KPX Ydieresis udieresis -110 KPX Ydieresis ugrave -110 KPX Ydieresis uhungarumlaut -110 KPX Ydieresis umacron -110 KPX Ydieresis uogonek -110 KPX Ydieresis uring -110 KPX a v -20 KPX a w -20 KPX a y -30 KPX a yacute -30 KPX a ydieresis -30 KPX aacute v -20 KPX aacute w -20 KPX aacute y -30 KPX aacute yacute -30 KPX aacute ydieresis -30 KPX abreve v -20 KPX abreve w -20 KPX abreve y -30 KPX abreve yacute -30 KPX abreve ydieresis -30 KPX acircumflex v -20 KPX acircumflex w -20 KPX acircumflex y -30 KPX acircumflex yacute -30 KPX acircumflex ydieresis -30 KPX adieresis v -20 KPX adieresis w -20 KPX adieresis y -30 KPX adieresis yacute -30 KPX adieresis ydieresis -30 KPX agrave v -20 KPX agrave w -20 KPX agrave y -30 KPX agrave yacute -30 KPX agrave ydieresis -30 KPX amacron v -20 KPX amacron w -20 KPX amacron y -30 KPX amacron yacute -30 KPX amacron ydieresis -30 KPX aogonek v -20 KPX aogonek w -20 KPX aogonek y -30 KPX aogonek yacute -30 KPX aogonek ydieresis -30 KPX aring v -20 KPX aring w -20 KPX aring y -30 KPX aring yacute -30 KPX aring ydieresis -30 KPX atilde v -20 KPX atilde w -20 KPX atilde y -30 KPX atilde yacute -30 KPX atilde ydieresis -30 KPX b b -10 KPX b comma -40 KPX b l -20 KPX b lacute -20 KPX b lcommaaccent -20 KPX b lslash -20 KPX b period -40 KPX b u -20 KPX b uacute -20 KPX b ucircumflex -20 KPX b udieresis -20 KPX b ugrave -20 KPX b uhungarumlaut -20 KPX b umacron -20 KPX b uogonek -20 KPX b uring -20 KPX b v -20 KPX b y -20 KPX b yacute -20 KPX b ydieresis -20 KPX c comma -15 KPX c k -20 KPX c kcommaaccent -20 KPX cacute comma -15 KPX cacute k -20 KPX cacute kcommaaccent -20 KPX ccaron comma -15 KPX ccaron k -20 KPX ccaron kcommaaccent -20 KPX ccedilla comma -15 KPX ccedilla k -20 KPX ccedilla kcommaaccent -20 KPX colon space -50 KPX comma quotedblright -100 KPX comma quoteright -100 KPX e comma -15 KPX e period -15 KPX e v -30 KPX e w -20 KPX e x -30 KPX e y -20 KPX e yacute -20 KPX e ydieresis -20 KPX eacute comma -15 KPX eacute period -15 KPX eacute v -30 KPX eacute w -20 KPX eacute x -30 KPX eacute y -20 KPX eacute yacute -20 KPX eacute ydieresis -20 KPX ecaron comma -15 KPX ecaron period -15 KPX ecaron v -30 KPX ecaron w -20 KPX ecaron x -30 KPX ecaron y -20 KPX ecaron yacute -20 KPX ecaron ydieresis -20 KPX ecircumflex comma -15 KPX ecircumflex period -15 KPX ecircumflex v -30 KPX ecircumflex w -20 KPX ecircumflex x -30 KPX ecircumflex y -20 KPX ecircumflex yacute -20 KPX ecircumflex ydieresis -20 KPX edieresis comma -15 KPX edieresis period -15 KPX edieresis v -30 KPX edieresis w -20 KPX edieresis x -30 KPX edieresis y -20 KPX edieresis yacute -20 KPX edieresis ydieresis -20 KPX edotaccent comma -15 KPX edotaccent period -15 KPX edotaccent v -30 KPX edotaccent w -20 KPX edotaccent x -30 KPX edotaccent y -20 KPX edotaccent yacute -20 KPX edotaccent ydieresis -20 KPX egrave comma -15 KPX egrave period -15 KPX egrave v -30 KPX egrave w -20 KPX egrave x -30 KPX egrave y -20 KPX egrave yacute -20 KPX egrave ydieresis -20 KPX emacron comma -15 KPX emacron period -15 KPX emacron v -30 KPX emacron w -20 KPX emacron x -30 KPX emacron y -20 KPX emacron yacute -20 KPX emacron ydieresis -20 KPX eogonek comma -15 KPX eogonek period -15 KPX eogonek v -30 KPX eogonek w -20 KPX eogonek x -30 KPX eogonek y -20 KPX eogonek yacute -20 KPX eogonek ydieresis -20 KPX f a -30 KPX f aacute -30 KPX f abreve -30 KPX f acircumflex -30 KPX f adieresis -30 KPX f agrave -30 KPX f amacron -30 KPX f aogonek -30 KPX f aring -30 KPX f atilde -30 KPX f comma -30 KPX f dotlessi -28 KPX f e -30 KPX f eacute -30 KPX f ecaron -30 KPX f ecircumflex -30 KPX f edieresis -30 KPX f edotaccent -30 KPX f egrave -30 KPX f emacron -30 KPX f eogonek -30 KPX f o -30 KPX f oacute -30 KPX f ocircumflex -30 KPX f odieresis -30 KPX f ograve -30 KPX f ohungarumlaut -30 KPX f omacron -30 KPX f oslash -30 KPX f otilde -30 KPX f period -30 KPX f quotedblright 60 KPX f quoteright 50 KPX g r -10 KPX g racute -10 KPX g rcaron -10 KPX g rcommaaccent -10 KPX gbreve r -10 KPX gbreve racute -10 KPX gbreve rcaron -10 KPX gbreve rcommaaccent -10 KPX gcommaaccent r -10 KPX gcommaaccent racute -10 KPX gcommaaccent rcaron -10 KPX gcommaaccent rcommaaccent -10 KPX h y -30 KPX h yacute -30 KPX h ydieresis -30 KPX k e -20 KPX k eacute -20 KPX k ecaron -20 KPX k ecircumflex -20 KPX k edieresis -20 KPX k edotaccent -20 KPX k egrave -20 KPX k emacron -20 KPX k eogonek -20 KPX k o -20 KPX k oacute -20 KPX k ocircumflex -20 KPX k odieresis -20 KPX k ograve -20 KPX k ohungarumlaut -20 KPX k omacron -20 KPX k oslash -20 KPX k otilde -20 KPX kcommaaccent e -20 KPX kcommaaccent eacute -20 KPX kcommaaccent ecaron -20 KPX kcommaaccent ecircumflex -20 KPX kcommaaccent edieresis -20 KPX kcommaaccent edotaccent -20 KPX kcommaaccent egrave -20 KPX kcommaaccent emacron -20 KPX kcommaaccent eogonek -20 KPX kcommaaccent o -20 KPX kcommaaccent oacute -20 KPX kcommaaccent ocircumflex -20 KPX kcommaaccent odieresis -20 KPX kcommaaccent ograve -20 KPX kcommaaccent ohungarumlaut -20 KPX kcommaaccent omacron -20 KPX kcommaaccent oslash -20 KPX kcommaaccent otilde -20 KPX m u -10 KPX m uacute -10 KPX m ucircumflex -10 KPX m udieresis -10 KPX m ugrave -10 KPX m uhungarumlaut -10 KPX m umacron -10 KPX m uogonek -10 KPX m uring -10 KPX m y -15 KPX m yacute -15 KPX m ydieresis -15 KPX n u -10 KPX n uacute -10 KPX n ucircumflex -10 KPX n udieresis -10 KPX n ugrave -10 KPX n uhungarumlaut -10 KPX n umacron -10 KPX n uogonek -10 KPX n uring -10 KPX n v -20 KPX n y -15 KPX n yacute -15 KPX n ydieresis -15 KPX nacute u -10 KPX nacute uacute -10 KPX nacute ucircumflex -10 KPX nacute udieresis -10 KPX nacute ugrave -10 KPX nacute uhungarumlaut -10 KPX nacute umacron -10 KPX nacute uogonek -10 KPX nacute uring -10 KPX nacute v -20 KPX nacute y -15 KPX nacute yacute -15 KPX nacute ydieresis -15 KPX ncaron u -10 KPX ncaron uacute -10 KPX ncaron ucircumflex -10 KPX ncaron udieresis -10 KPX ncaron ugrave -10 KPX ncaron uhungarumlaut -10 KPX ncaron umacron -10 KPX ncaron uogonek -10 KPX ncaron uring -10 KPX ncaron v -20 KPX ncaron y -15 KPX ncaron yacute -15 KPX ncaron ydieresis -15 KPX ncommaaccent u -10 KPX ncommaaccent uacute -10 KPX ncommaaccent ucircumflex -10 KPX ncommaaccent udieresis -10 KPX ncommaaccent ugrave -10 KPX ncommaaccent uhungarumlaut -10 KPX ncommaaccent umacron -10 KPX ncommaaccent uogonek -10 KPX ncommaaccent uring -10 KPX ncommaaccent v -20 KPX ncommaaccent y -15 KPX ncommaaccent yacute -15 KPX ncommaaccent ydieresis -15 KPX ntilde u -10 KPX ntilde uacute -10 KPX ntilde ucircumflex -10 KPX ntilde udieresis -10 KPX ntilde ugrave -10 KPX ntilde uhungarumlaut -10 KPX ntilde umacron -10 KPX ntilde uogonek -10 KPX ntilde uring -10 KPX ntilde v -20 KPX ntilde y -15 KPX ntilde yacute -15 KPX ntilde ydieresis -15 KPX o comma -40 KPX o period -40 KPX o v -15 KPX o w -15 KPX o x -30 KPX o y -30 KPX o yacute -30 KPX o ydieresis -30 KPX oacute comma -40 KPX oacute period -40 KPX oacute v -15 KPX oacute w -15 KPX oacute x -30 KPX oacute y -30 KPX oacute yacute -30 KPX oacute ydieresis -30 KPX ocircumflex comma -40 KPX ocircumflex period -40 KPX ocircumflex v -15 KPX ocircumflex w -15 KPX ocircumflex x -30 KPX ocircumflex y -30 KPX ocircumflex yacute -30 KPX ocircumflex ydieresis -30 KPX odieresis comma -40 KPX odieresis period -40 KPX odieresis v -15 KPX odieresis w -15 KPX odieresis x -30 KPX odieresis y -30 KPX odieresis yacute -30 KPX odieresis ydieresis -30 KPX ograve comma -40 KPX ograve period -40 KPX ograve v -15 KPX ograve w -15 KPX ograve x -30 KPX ograve y -30 KPX ograve yacute -30 KPX ograve ydieresis -30 KPX ohungarumlaut comma -40 KPX ohungarumlaut period -40 KPX ohungarumlaut v -15 KPX ohungarumlaut w -15 KPX ohungarumlaut x -30 KPX ohungarumlaut y -30 KPX ohungarumlaut yacute -30 KPX ohungarumlaut ydieresis -30 KPX omacron comma -40 KPX omacron period -40 KPX omacron v -15 KPX omacron w -15 KPX omacron x -30 KPX omacron y -30 KPX omacron yacute -30 KPX omacron ydieresis -30 KPX oslash a -55 KPX oslash aacute -55 KPX oslash abreve -55 KPX oslash acircumflex -55 KPX oslash adieresis -55 KPX oslash agrave -55 KPX oslash amacron -55 KPX oslash aogonek -55 KPX oslash aring -55 KPX oslash atilde -55 KPX oslash b -55 KPX oslash c -55 KPX oslash cacute -55 KPX oslash ccaron -55 KPX oslash ccedilla -55 KPX oslash comma -95 KPX oslash d -55 KPX oslash dcroat -55 KPX oslash e -55 KPX oslash eacute -55 KPX oslash ecaron -55 KPX oslash ecircumflex -55 KPX oslash edieresis -55 KPX oslash edotaccent -55 KPX oslash egrave -55 KPX oslash emacron -55 KPX oslash eogonek -55 KPX oslash f -55 KPX oslash g -55 KPX oslash gbreve -55 KPX oslash gcommaaccent -55 KPX oslash h -55 KPX oslash i -55 KPX oslash iacute -55 KPX oslash icircumflex -55 KPX oslash idieresis -55 KPX oslash igrave -55 KPX oslash imacron -55 KPX oslash iogonek -55 KPX oslash j -55 KPX oslash k -55 KPX oslash kcommaaccent -55 KPX oslash l -55 KPX oslash lacute -55 KPX oslash lcommaaccent -55 KPX oslash lslash -55 KPX oslash m -55 KPX oslash n -55 KPX oslash nacute -55 KPX oslash ncaron -55 KPX oslash ncommaaccent -55 KPX oslash ntilde -55 KPX oslash o -55 KPX oslash oacute -55 KPX oslash ocircumflex -55 KPX oslash odieresis -55 KPX oslash ograve -55 KPX oslash ohungarumlaut -55 KPX oslash omacron -55 KPX oslash oslash -55 KPX oslash otilde -55 KPX oslash p -55 KPX oslash period -95 KPX oslash q -55 KPX oslash r -55 KPX oslash racute -55 KPX oslash rcaron -55 KPX oslash rcommaaccent -55 KPX oslash s -55 KPX oslash sacute -55 KPX oslash scaron -55 KPX oslash scedilla -55 KPX oslash scommaaccent -55 KPX oslash t -55 KPX oslash tcommaaccent -55 KPX oslash u -55 KPX oslash uacute -55 KPX oslash ucircumflex -55 KPX oslash udieresis -55 KPX oslash ugrave -55 KPX oslash uhungarumlaut -55 KPX oslash umacron -55 KPX oslash uogonek -55 KPX oslash uring -55 KPX oslash v -70 KPX oslash w -70 KPX oslash x -85 KPX oslash y -70 KPX oslash yacute -70 KPX oslash ydieresis -70 KPX oslash z -55 KPX oslash zacute -55 KPX oslash zcaron -55 KPX oslash zdotaccent -55 KPX otilde comma -40 KPX otilde period -40 KPX otilde v -15 KPX otilde w -15 KPX otilde x -30 KPX otilde y -30 KPX otilde yacute -30 KPX otilde ydieresis -30 KPX p comma -35 KPX p period -35 KPX p y -30 KPX p yacute -30 KPX p ydieresis -30 KPX period quotedblright -100 KPX period quoteright -100 KPX period space -60 KPX quotedblright space -40 KPX quoteleft quoteleft -57 KPX quoteright d -50 KPX quoteright dcroat -50 KPX quoteright quoteright -57 KPX quoteright r -50 KPX quoteright racute -50 KPX quoteright rcaron -50 KPX quoteright rcommaaccent -50 KPX quoteright s -50 KPX quoteright sacute -50 KPX quoteright scaron -50 KPX quoteright scedilla -50 KPX quoteright scommaaccent -50 KPX quoteright space -70 KPX r a -10 KPX r aacute -10 KPX r abreve -10 KPX r acircumflex -10 KPX r adieresis -10 KPX r agrave -10 KPX r amacron -10 KPX r aogonek -10 KPX r aring -10 KPX r atilde -10 KPX r colon 30 KPX r comma -50 KPX r i 15 KPX r iacute 15 KPX r icircumflex 15 KPX r idieresis 15 KPX r igrave 15 KPX r imacron 15 KPX r iogonek 15 KPX r k 15 KPX r kcommaaccent 15 KPX r l 15 KPX r lacute 15 KPX r lcommaaccent 15 KPX r lslash 15 KPX r m 25 KPX r n 25 KPX r nacute 25 KPX r ncaron 25 KPX r ncommaaccent 25 KPX r ntilde 25 KPX r p 30 KPX r period -50 KPX r semicolon 30 KPX r t 40 KPX r tcommaaccent 40 KPX r u 15 KPX r uacute 15 KPX r ucircumflex 15 KPX r udieresis 15 KPX r ugrave 15 KPX r uhungarumlaut 15 KPX r umacron 15 KPX r uogonek 15 KPX r uring 15 KPX r v 30 KPX r y 30 KPX r yacute 30 KPX r ydieresis 30 KPX racute a -10 KPX racute aacute -10 KPX racute abreve -10 KPX racute acircumflex -10 KPX racute adieresis -10 KPX racute agrave -10 KPX racute amacron -10 KPX racute aogonek -10 KPX racute aring -10 KPX racute atilde -10 KPX racute colon 30 KPX racute comma -50 KPX racute i 15 KPX racute iacute 15 KPX racute icircumflex 15 KPX racute idieresis 15 KPX racute igrave 15 KPX racute imacron 15 KPX racute iogonek 15 KPX racute k 15 KPX racute kcommaaccent 15 KPX racute l 15 KPX racute lacute 15 KPX racute lcommaaccent 15 KPX racute lslash 15 KPX racute m 25 KPX racute n 25 KPX racute nacute 25 KPX racute ncaron 25 KPX racute ncommaaccent 25 KPX racute ntilde 25 KPX racute p 30 KPX racute period -50 KPX racute semicolon 30 KPX racute t 40 KPX racute tcommaaccent 40 KPX racute u 15 KPX racute uacute 15 KPX racute ucircumflex 15 KPX racute udieresis 15 KPX racute ugrave 15 KPX racute uhungarumlaut 15 KPX racute umacron 15 KPX racute uogonek 15 KPX racute uring 15 KPX racute v 30 KPX racute y 30 KPX racute yacute 30 KPX racute ydieresis 30 KPX rcaron a -10 KPX rcaron aacute -10 KPX rcaron abreve -10 KPX rcaron acircumflex -10 KPX rcaron adieresis -10 KPX rcaron agrave -10 KPX rcaron amacron -10 KPX rcaron aogonek -10 KPX rcaron aring -10 KPX rcaron atilde -10 KPX rcaron colon 30 KPX rcaron comma -50 KPX rcaron i 15 KPX rcaron iacute 15 KPX rcaron icircumflex 15 KPX rcaron idieresis 15 KPX rcaron igrave 15 KPX rcaron imacron 15 KPX rcaron iogonek 15 KPX rcaron k 15 KPX rcaron kcommaaccent 15 KPX rcaron l 15 KPX rcaron lacute 15 KPX rcaron lcommaaccent 15 KPX rcaron lslash 15 KPX rcaron m 25 KPX rcaron n 25 KPX rcaron nacute 25 KPX rcaron ncaron 25 KPX rcaron ncommaaccent 25 KPX rcaron ntilde 25 KPX rcaron p 30 KPX rcaron period -50 KPX rcaron semicolon 30 KPX rcaron t 40 KPX rcaron tcommaaccent 40 KPX rcaron u 15 KPX rcaron uacute 15 KPX rcaron ucircumflex 15 KPX rcaron udieresis 15 KPX rcaron ugrave 15 KPX rcaron uhungarumlaut 15 KPX rcaron umacron 15 KPX rcaron uogonek 15 KPX rcaron uring 15 KPX rcaron v 30 KPX rcaron y 30 KPX rcaron yacute 30 KPX rcaron ydieresis 30 KPX rcommaaccent a -10 KPX rcommaaccent aacute -10 KPX rcommaaccent abreve -10 KPX rcommaaccent acircumflex -10 KPX rcommaaccent adieresis -10 KPX rcommaaccent agrave -10 KPX rcommaaccent amacron -10 KPX rcommaaccent aogonek -10 KPX rcommaaccent aring -10 KPX rcommaaccent atilde -10 KPX rcommaaccent colon 30 KPX rcommaaccent comma -50 KPX rcommaaccent i 15 KPX rcommaaccent iacute 15 KPX rcommaaccent icircumflex 15 KPX rcommaaccent idieresis 15 KPX rcommaaccent igrave 15 KPX rcommaaccent imacron 15 KPX rcommaaccent iogonek 15 KPX rcommaaccent k 15 KPX rcommaaccent kcommaaccent 15 KPX rcommaaccent l 15 KPX rcommaaccent lacute 15 KPX rcommaaccent lcommaaccent 15 KPX rcommaaccent lslash 15 KPX rcommaaccent m 25 KPX rcommaaccent n 25 KPX rcommaaccent nacute 25 KPX rcommaaccent ncaron 25 KPX rcommaaccent ncommaaccent 25 KPX rcommaaccent ntilde 25 KPX rcommaaccent p 30 KPX rcommaaccent period -50 KPX rcommaaccent semicolon 30 KPX rcommaaccent t 40 KPX rcommaaccent tcommaaccent 40 KPX rcommaaccent u 15 KPX rcommaaccent uacute 15 KPX rcommaaccent ucircumflex 15 KPX rcommaaccent udieresis 15 KPX rcommaaccent ugrave 15 KPX rcommaaccent uhungarumlaut 15 KPX rcommaaccent umacron 15 KPX rcommaaccent uogonek 15 KPX rcommaaccent uring 15 KPX rcommaaccent v 30 KPX rcommaaccent y 30 KPX rcommaaccent yacute 30 KPX rcommaaccent ydieresis 30 KPX s comma -15 KPX s period -15 KPX s w -30 KPX sacute comma -15 KPX sacute period -15 KPX sacute w -30 KPX scaron comma -15 KPX scaron period -15 KPX scaron w -30 KPX scedilla comma -15 KPX scedilla period -15 KPX scedilla w -30 KPX scommaaccent comma -15 KPX scommaaccent period -15 KPX scommaaccent w -30 KPX semicolon space -50 KPX space T -50 KPX space Tcaron -50 KPX space Tcommaaccent -50 KPX space V -50 KPX space W -40 KPX space Y -90 KPX space Yacute -90 KPX space Ydieresis -90 KPX space quotedblleft -30 KPX space quoteleft -60 KPX v a -25 KPX v aacute -25 KPX v abreve -25 KPX v acircumflex -25 KPX v adieresis -25 KPX v agrave -25 KPX v amacron -25 KPX v aogonek -25 KPX v aring -25 KPX v atilde -25 KPX v comma -80 KPX v e -25 KPX v eacute -25 KPX v ecaron -25 KPX v ecircumflex -25 KPX v edieresis -25 KPX v edotaccent -25 KPX v egrave -25 KPX v emacron -25 KPX v eogonek -25 KPX v o -25 KPX v oacute -25 KPX v ocircumflex -25 KPX v odieresis -25 KPX v ograve -25 KPX v ohungarumlaut -25 KPX v omacron -25 KPX v oslash -25 KPX v otilde -25 KPX v period -80 KPX w a -15 KPX w aacute -15 KPX w abreve -15 KPX w acircumflex -15 KPX w adieresis -15 KPX w agrave -15 KPX w amacron -15 KPX w aogonek -15 KPX w aring -15 KPX w atilde -15 KPX w comma -60 KPX w e -10 KPX w eacute -10 KPX w ecaron -10 KPX w ecircumflex -10 KPX w edieresis -10 KPX w edotaccent -10 KPX w egrave -10 KPX w emacron -10 KPX w eogonek -10 KPX w o -10 KPX w oacute -10 KPX w ocircumflex -10 KPX w odieresis -10 KPX w ograve -10 KPX w ohungarumlaut -10 KPX w omacron -10 KPX w oslash -10 KPX w otilde -10 KPX w period -60 KPX x e -30 KPX x eacute -30 KPX x ecaron -30 KPX x ecircumflex -30 KPX x edieresis -30 KPX x edotaccent -30 KPX x egrave -30 KPX x emacron -30 KPX x eogonek -30 KPX y a -20 KPX y aacute -20 KPX y abreve -20 KPX y acircumflex -20 KPX y adieresis -20 KPX y agrave -20 KPX y amacron -20 KPX y aogonek -20 KPX y aring -20 KPX y atilde -20 KPX y comma -100 KPX y e -20 KPX y eacute -20 KPX y ecaron -20 KPX y ecircumflex -20 KPX y edieresis -20 KPX y edotaccent -20 KPX y egrave -20 KPX y emacron -20 KPX y eogonek -20 KPX y o -20 KPX y oacute -20 KPX y ocircumflex -20 KPX y odieresis -20 KPX y ograve -20 KPX y ohungarumlaut -20 KPX y omacron -20 KPX y oslash -20 KPX y otilde -20 KPX y period -100 KPX yacute a -20 KPX yacute aacute -20 KPX yacute abreve -20 KPX yacute acircumflex -20 KPX yacute adieresis -20 KPX yacute agrave -20 KPX yacute amacron -20 KPX yacute aogonek -20 KPX yacute aring -20 KPX yacute atilde -20 KPX yacute comma -100 KPX yacute e -20 KPX yacute eacute -20 KPX yacute ecaron -20 KPX yacute ecircumflex -20 KPX yacute edieresis -20 KPX yacute edotaccent -20 KPX yacute egrave -20 KPX yacute emacron -20 KPX yacute eogonek -20 KPX yacute o -20 KPX yacute oacute -20 KPX yacute ocircumflex -20 KPX yacute odieresis -20 KPX yacute ograve -20 KPX yacute ohungarumlaut -20 KPX yacute omacron -20 KPX yacute oslash -20 KPX yacute otilde -20 KPX yacute period -100 KPX ydieresis a -20 KPX ydieresis aacute -20 KPX ydieresis abreve -20 KPX ydieresis acircumflex -20 KPX ydieresis adieresis -20 KPX ydieresis agrave -20 KPX ydieresis amacron -20 KPX ydieresis aogonek -20 KPX ydieresis aring -20 KPX ydieresis atilde -20 KPX ydieresis comma -100 KPX ydieresis e -20 KPX ydieresis eacute -20 KPX ydieresis ecaron -20 KPX ydieresis ecircumflex -20 KPX ydieresis edieresis -20 KPX ydieresis edotaccent -20 KPX ydieresis egrave -20 KPX ydieresis emacron -20 KPX ydieresis eogonek -20 KPX ydieresis o -20 KPX ydieresis oacute -20 KPX ydieresis ocircumflex -20 KPX ydieresis odieresis -20 KPX ydieresis ograve -20 KPX ydieresis ohungarumlaut -20 KPX ydieresis omacron -20 KPX ydieresis oslash -20 KPX ydieresis otilde -20 KPX ydieresis period -100 KPX z e -15 KPX z eacute -15 KPX z ecaron -15 KPX z ecircumflex -15 KPX z edieresis -15 KPX z edotaccent -15 KPX z egrave -15 KPX z emacron -15 KPX z eogonek -15 KPX z o -15 KPX z oacute -15 KPX z ocircumflex -15 KPX z odieresis -15 KPX z ograve -15 KPX z ohungarumlaut -15 KPX z omacron -15 KPX z oslash -15 KPX z otilde -15 KPX zacute e -15 KPX zacute eacute -15 KPX zacute ecaron -15 KPX zacute ecircumflex -15 KPX zacute edieresis -15 KPX zacute edotaccent -15 KPX zacute egrave -15 KPX zacute emacron -15 KPX zacute eogonek -15 KPX zacute o -15 KPX zacute oacute -15 KPX zacute ocircumflex -15 KPX zacute odieresis -15 KPX zacute ograve -15 KPX zacute ohungarumlaut -15 KPX zacute omacron -15 KPX zacute oslash -15 KPX zacute otilde -15 KPX zcaron e -15 KPX zcaron eacute -15 KPX zcaron ecaron -15 KPX zcaron ecircumflex -15 KPX zcaron edieresis -15 KPX zcaron edotaccent -15 KPX zcaron egrave -15 KPX zcaron emacron -15 KPX zcaron eogonek -15 KPX zcaron o -15 KPX zcaron oacute -15 KPX zcaron ocircumflex -15 KPX zcaron odieresis -15 KPX zcaron ograve -15 KPX zcaron ohungarumlaut -15 KPX zcaron omacron -15 KPX zcaron oslash -15 KPX zcaron otilde -15 KPX zdotaccent e -15 KPX zdotaccent eacute -15 KPX zdotaccent ecaron -15 KPX zdotaccent ecircumflex -15 KPX zdotaccent edieresis -15 KPX zdotaccent edotaccent -15 KPX zdotaccent egrave -15 KPX zdotaccent emacron -15 KPX zdotaccent eogonek -15 KPX zdotaccent o -15 KPX zdotaccent oacute -15 KPX zdotaccent ocircumflex -15 KPX zdotaccent odieresis -15 KPX zdotaccent ograve -15 KPX zdotaccent ohungarumlaut -15 KPX zdotaccent omacron -15 KPX zdotaccent oslash -15 KPX zdotaccent otilde -15 EndKernPairs EndKernData EndFontMetrics a2ps-4.14/afm/pbkd.afm0000644000175000017500000010300410674334151013777 0ustar mhattamhattaStartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1989, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Thu May 1 13:44:58 1997 Comment UniqueID 43079 Comment VMusage 45854 56879 FontName Bookman-Demi FullName ITC Bookman Demi FamilyName ITC Bookman Weight Demi ItalicAngle 0 IsFixedPitch false FontBBox -194 -250 1346 934 UnderlinePosition -100 UnderlineThickness 50 Version 002.000 Notice Copyright (c) 1985, 1987, 1989, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.ITC Bookman is a registered trademark of International Typeface Corporation. EncodingScheme AdobeStandardEncoding CapHeight 681 XHeight 502 Ascender 717 Descender -228 StdHW 82 StdVW 167 StartCharMetrics 314 C 32 ; WX 340 ; N space ; B 0 0 0 0 ; C 33 ; WX 360 ; N exclam ; B 82 -8 282 698 ; C 34 ; WX 420 ; N quotedbl ; B 11 379 369 698 ; C 35 ; WX 660 ; N numbersign ; B 84 0 576 681 ; C 36 ; WX 660 ; N dollar ; B 48 -119 620 805 ; C 37 ; WX 940 ; N percent ; B 12 -8 924 698 ; C 38 ; WX 800 ; N ampersand ; B 21 -17 772 698 ; C 39 ; WX 320 ; N quoteright ; B 82 440 242 698 ; C 40 ; WX 320 ; N parenleft ; B 48 -150 289 749 ; C 41 ; WX 320 ; N parenright ; B 20 -150 262 749 ; C 42 ; WX 460 ; N asterisk ; B 62 317 405 697 ; C 43 ; WX 600 ; N plus ; B 51 9 555 514 ; C 44 ; WX 340 ; N comma ; B 78 -124 257 162 ; C 45 ; WX 360 ; N hyphen ; B 20 210 340 318 ; C 46 ; WX 340 ; N period ; B 76 -8 258 172 ; C 47 ; WX 600 ; N slash ; B 50 -149 555 725 ; C 48 ; WX 660 ; N zero ; B 30 -17 639 698 ; C 49 ; WX 660 ; N one ; B 137 0 568 681 ; C 50 ; WX 660 ; N two ; B 41 0 628 698 ; C 51 ; WX 660 ; N three ; B 37 -17 631 698 ; C 52 ; WX 660 ; N four ; B 19 0 649 681 ; C 53 ; WX 660 ; N five ; B 44 -17 623 723 ; C 54 ; WX 660 ; N six ; B 34 -17 634 698 ; C 55 ; WX 660 ; N seven ; B 36 0 632 681 ; C 56 ; WX 660 ; N eight ; B 36 -17 633 698 ; C 57 ; WX 660 ; N nine ; B 33 -17 636 698 ; C 58 ; WX 340 ; N colon ; B 76 -8 258 515 ; C 59 ; WX 340 ; N semicolon ; B 75 -124 259 515 ; C 60 ; WX 600 ; N less ; B 49 -9 558 542 ; C 61 ; WX 600 ; N equal ; B 51 109 555 421 ; C 62 ; WX 600 ; N greater ; B 48 -9 557 542 ; C 63 ; WX 660 ; N question ; B 61 -8 608 698 ; C 64 ; WX 820 ; N at ; B 60 -17 758 698 ; C 65 ; WX 720 ; N A ; B -34 0 763 681 ; C 66 ; WX 720 ; N B ; B 20 0 693 681 ; C 67 ; WX 740 ; N C ; B 35 -17 724 698 ; C 68 ; WX 780 ; N D ; B 20 0 748 681 ; C 69 ; WX 720 ; N E ; B 20 0 724 681 ; C 70 ; WX 680 ; N F ; B 20 0 686 681 ; C 71 ; WX 780 ; N G ; B 35 -17 773 698 ; C 72 ; WX 820 ; N H ; B 20 0 800 681 ; C 73 ; WX 400 ; N I ; B 20 0 379 681 ; C 74 ; WX 640 ; N J ; B -12 -17 622 681 ; C 75 ; WX 800 ; N K ; B 20 0 796 681 ; C 76 ; WX 640 ; N L ; B 20 0 668 681 ; C 77 ; WX 940 ; N M ; B 20 0 924 681 ; C 78 ; WX 740 ; N N ; B 20 0 724 681 ; C 79 ; WX 800 ; N O ; B 35 -17 769 698 ; C 80 ; WX 660 ; N P ; B 20 0 658 681 ; C 81 ; WX 800 ; N Q ; B 35 -226 775 698 ; C 82 ; WX 780 ; N R ; B 20 0 783 681 ; C 83 ; WX 660 ; N S ; B 21 -17 639 698 ; C 84 ; WX 700 ; N T ; B -4 0 703 681 ; C 85 ; WX 740 ; N U ; B 15 -17 724 681 ; C 86 ; WX 720 ; N V ; B -20 0 730 681 ; C 87 ; WX 940 ; N W ; B -20 0 963 681 ; C 88 ; WX 780 ; N X ; B 1 0 770 681 ; C 89 ; WX 700 ; N Y ; B -20 0 718 681 ; C 90 ; WX 640 ; N Z ; B 6 0 635 681 ; C 91 ; WX 300 ; N bracketleft ; B 75 -138 285 725 ; C 92 ; WX 600 ; N backslash ; B 50 0 555 725 ; C 93 ; WX 300 ; N bracketright ; B 21 -138 231 725 ; C 94 ; WX 600 ; N asciicircum ; B 52 281 554 681 ; C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; C 96 ; WX 320 ; N quoteleft ; B 82 440 242 698 ; C 97 ; WX 580 ; N a ; B 28 -8 588 515 ; C 98 ; WX 600 ; N b ; B -20 -8 568 725 ; C 99 ; WX 580 ; N c ; B 31 -8 550 515 ; C 100 ; WX 640 ; N d ; B 31 -8 622 725 ; C 101 ; WX 580 ; N e ; B 31 -8 548 515 ; C 102 ; WX 380 ; N f ; B 22 0 461 741 ; L i fi ; L l fl ; C 103 ; WX 580 ; N g ; B 9 -243 583 595 ; C 104 ; WX 680 ; N h ; B 22 0 654 725 ; C 105 ; WX 360 ; N i ; B 22 0 335 729 ; C 106 ; WX 340 ; N j ; B -94 -221 278 729 ; C 107 ; WX 660 ; N k ; B 22 0 643 725 ; C 108 ; WX 340 ; N l ; B 9 0 322 725 ; C 109 ; WX 1000 ; N m ; B 22 0 980 515 ; C 110 ; WX 680 ; N n ; B 22 0 652 515 ; C 111 ; WX 620 ; N o ; B 31 -8 585 515 ; C 112 ; WX 640 ; N p ; B 22 -212 611 515 ; C 113 ; WX 620 ; N q ; B 31 -212 633 515 ; C 114 ; WX 460 ; N r ; B 22 0 462 502 ; C 115 ; WX 520 ; N s ; B 22 -8 492 515 ; C 116 ; WX 460 ; N t ; B 22 -8 445 660 ; C 117 ; WX 660 ; N u ; B 22 -8 653 502 ; C 118 ; WX 600 ; N v ; B -6 0 593 502 ; C 119 ; WX 800 ; N w ; B -6 0 810 502 ; C 120 ; WX 600 ; N x ; B 8 0 591 502 ; C 121 ; WX 620 ; N y ; B 6 -221 613 502 ; C 122 ; WX 560 ; N z ; B 22 0 547 502 ; C 123 ; WX 320 ; N braceleft ; B 14 -139 301 726 ; C 124 ; WX 600 ; N bar ; B 243 -250 362 750 ; C 125 ; WX 320 ; N braceright ; B 15 -140 302 725 ; C 126 ; WX 600 ; N asciitilde ; B 51 162 555 368 ; C 161 ; WX 360 ; N exclamdown ; B 84 -191 284 515 ; C 162 ; WX 660 ; N cent ; B 133 17 535 674 ; C 163 ; WX 660 ; N sterling ; B 10 -17 659 698 ; C 164 ; WX 120 ; N fraction ; B -194 0 312 681 ; C 165 ; WX 660 ; N yen ; B -28 0 696 681 ; C 166 ; WX 660 ; N florin ; B -46 -209 674 749 ; C 167 ; WX 600 ; N section ; B 36 -153 560 698 ; C 168 ; WX 660 ; N currency ; B 77 88 584 593 ; C 169 ; WX 240 ; N quotesingle ; B 42 379 178 698 ; C 170 ; WX 540 ; N quotedblleft ; B 82 439 449 698 ; C 171 ; WX 400 ; N guillemotleft ; B 34 101 360 457 ; C 172 ; WX 220 ; N guilsinglleft ; B 34 101 188 457 ; C 173 ; WX 220 ; N guilsinglright ; B 34 101 188 457 ; C 174 ; WX 740 ; N fi ; B 22 0 710 741 ; C 175 ; WX 740 ; N fl ; B 22 0 710 741 ; C 177 ; WX 500 ; N endash ; B -25 212 525 318 ; C 178 ; WX 440 ; N dagger ; B 33 -156 398 698 ; C 179 ; WX 380 ; N daggerdbl ; B 8 -156 380 698 ; C 180 ; WX 340 ; N periodcentered ; B 76 175 258 355 ; C 182 ; WX 800 ; N paragraph ; B 51 0 698 681 ; C 183 ; WX 460 ; N bullet ; B 60 170 404 511 ; C 184 ; WX 320 ; N quotesinglbase ; B 82 -114 242 144 ; C 185 ; WX 540 ; N quotedblbase ; B 82 -114 450 144 ; C 186 ; WX 540 ; N quotedblright ; B 82 440 449 698 ; C 187 ; WX 400 ; N guillemotright ; B 34 101 360 457 ; C 188 ; WX 1000 ; N ellipsis ; B 76 -8 924 172 ; C 189 ; WX 1360 ; N perthousand ; B 12 -8 1346 698 ; C 191 ; WX 660 ; N questiondown ; B 62 -191 609 515 ; C 193 ; WX 400 ; N grave ; B 68 547 327 730 ; C 194 ; WX 400 ; N acute ; B 98 547 357 731 ; C 195 ; WX 500 ; N circumflex ; B 68 555 430 731 ; C 196 ; WX 480 ; N tilde ; B 69 556 421 691 ; C 197 ; WX 460 ; N macron ; B 68 577 383 663 ; C 198 ; WX 500 ; N breve ; B 68 553 429 722 ; C 199 ; WX 320 ; N dotaccent ; B 68 535 259 729 ; C 200 ; WX 500 ; N dieresis ; B 68 535 441 673 ; C 202 ; WX 340 ; N ring ; B 68 552 275 755 ; C 203 ; WX 360 ; N cedilla ; B 68 -213 284 0 ; C 205 ; WX 440 ; N hungarumlaut ; B 68 554 365 741 ; C 206 ; WX 320 ; N ogonek ; B 82 -199 314 0 ; C 207 ; WX 500 ; N caron ; B 68 541 430 717 ; C 208 ; WX 1000 ; N emdash ; B -25 212 1025 318 ; C 225 ; WX 1140 ; N AE ; B -34 0 1149 681 ; C 227 ; WX 400 ; N ordfeminine ; B 27 383 396 698 ; C 232 ; WX 640 ; N Lslash ; B 20 0 668 681 ; C 233 ; WX 800 ; N Oslash ; B 35 -110 771 781 ; C 234 ; WX 1220 ; N OE ; B 35 -17 1219 698 ; C 235 ; WX 400 ; N ordmasculine ; B 17 383 383 698 ; C 241 ; WX 880 ; N ae ; B 28 -8 852 515 ; C 245 ; WX 360 ; N dotlessi ; B 22 0 335 502 ; C 248 ; WX 340 ; N lslash ; B 9 0 322 725 ; C 249 ; WX 620 ; N oslash ; B 31 -40 586 551 ; C 250 ; WX 940 ; N oe ; B 31 -8 908 515 ; C 251 ; WX 660 ; N germandbls ; B -61 -91 644 699 ; C -1 ; WX 400 ; N Idieresis ; B 18 0 391 877 ; C -1 ; WX 580 ; N eacute ; B 31 -8 548 731 ; C -1 ; WX 580 ; N abreve ; B 28 -8 588 722 ; C -1 ; WX 660 ; N uhungarumlaut ; B 22 -8 653 741 ; C -1 ; WX 580 ; N ecaron ; B 31 -8 548 717 ; C -1 ; WX 700 ; N Ydieresis ; B -20 0 718 877 ; C -1 ; WX 600 ; N divide ; B 51 9 555 521 ; C -1 ; WX 700 ; N Yacute ; B -20 0 718 910 ; C -1 ; WX 720 ; N Acircumflex ; B -34 0 763 910 ; C -1 ; WX 580 ; N aacute ; B 28 -8 588 731 ; C -1 ; WX 740 ; N Ucircumflex ; B 15 -17 724 910 ; C -1 ; WX 620 ; N yacute ; B 6 -221 613 731 ; C -1 ; WX 520 ; N scommaaccent ; B 22 -249 492 515 ; C -1 ; WX 580 ; N ecircumflex ; B 31 -8 548 731 ; C -1 ; WX 740 ; N Uring ; B 15 -17 724 934 ; C -1 ; WX 740 ; N Udieresis ; B 15 -17 724 877 ; C -1 ; WX 580 ; N aogonek ; B 28 -206 594 515 ; C -1 ; WX 740 ; N Uacute ; B 15 -17 724 910 ; C -1 ; WX 660 ; N uogonek ; B 22 -199 663 502 ; C -1 ; WX 720 ; N Edieresis ; B 20 0 724 877 ; C -1 ; WX 780 ; N Dcroat ; B 20 0 748 681 ; C -1 ; WX 250 ; N commaaccent ; B 53 -249 197 -40 ; C -1 ; WX 740 ; N copyright ; B 23 -17 723 698 ; C -1 ; WX 720 ; N Emacron ; B 20 0 724 842 ; C -1 ; WX 580 ; N ccaron ; B 31 -8 550 717 ; C -1 ; WX 580 ; N aring ; B 28 -8 588 755 ; C -1 ; WX 740 ; N Ncommaaccent ; B 20 -249 724 681 ; C -1 ; WX 340 ; N lacute ; B 9 0 367 930 ; C -1 ; WX 580 ; N agrave ; B 28 -8 588 730 ; C -1 ; WX 700 ; N Tcommaaccent ; B -4 -249 703 681 ; C -1 ; WX 740 ; N Cacute ; B 35 -17 724 910 ; C -1 ; WX 580 ; N atilde ; B 28 -8 588 691 ; C -1 ; WX 720 ; N Edotaccent ; B 20 0 724 933 ; C -1 ; WX 520 ; N scaron ; B 22 -8 492 717 ; C -1 ; WX 520 ; N scedilla ; B 22 -213 492 515 ; C -1 ; WX 360 ; N iacute ; B 22 0 337 731 ; C -1 ; WX 494 ; N lozenge ; B 10 0 484 745 ; C -1 ; WX 780 ; N Rcaron ; B 20 0 783 896 ; C -1 ; WX 780 ; N Gcommaaccent ; B 35 -249 773 698 ; C -1 ; WX 660 ; N ucircumflex ; B 22 -8 653 731 ; C -1 ; WX 580 ; N acircumflex ; B 28 -8 588 731 ; C -1 ; WX 720 ; N Amacron ; B -34 0 763 842 ; C -1 ; WX 460 ; N rcaron ; B 22 0 462 717 ; C -1 ; WX 580 ; N ccedilla ; B 31 -213 550 515 ; C -1 ; WX 640 ; N Zdotaccent ; B 6 0 635 933 ; C -1 ; WX 660 ; N Thorn ; B 20 0 658 681 ; C -1 ; WX 800 ; N Omacron ; B 35 -17 769 842 ; C -1 ; WX 780 ; N Racute ; B 20 0 783 910 ; C -1 ; WX 660 ; N Sacute ; B 21 -17 639 910 ; C -1 ; WX 737 ; N dcaron ; B 31 -8 726 731 ; C -1 ; WX 740 ; N Umacron ; B 15 -17 724 842 ; C -1 ; WX 660 ; N uring ; B 22 -8 653 755 ; C -1 ; WX 396 ; N threesuperior ; B 5 269 391 698 ; C -1 ; WX 800 ; N Ograve ; B 35 -17 769 909 ; C -1 ; WX 720 ; N Agrave ; B -34 0 763 909 ; C -1 ; WX 720 ; N Abreve ; B -34 0 763 901 ; C -1 ; WX 600 ; N multiply ; B 48 10 552 514 ; C -1 ; WX 660 ; N uacute ; B 22 -8 653 731 ; C -1 ; WX 700 ; N Tcaron ; B -4 0 703 896 ; C -1 ; WX 494 ; N partialdiff ; B 11 -21 494 750 ; C -1 ; WX 620 ; N ydieresis ; B 6 -221 613 698 ; C -1 ; WX 740 ; N Nacute ; B 20 0 724 910 ; C -1 ; WX 360 ; N icircumflex ; B -2 0 360 731 ; C -1 ; WX 720 ; N Ecircumflex ; B 20 0 724 910 ; C -1 ; WX 580 ; N adieresis ; B 28 -8 588 698 ; C -1 ; WX 580 ; N edieresis ; B 31 -8 548 698 ; C -1 ; WX 580 ; N cacute ; B 31 -8 550 731 ; C -1 ; WX 680 ; N nacute ; B 22 0 652 731 ; C -1 ; WX 660 ; N umacron ; B 22 -8 653 663 ; C -1 ; WX 740 ; N Ncaron ; B 20 0 724 896 ; C -1 ; WX 400 ; N Iacute ; B 20 0 379 910 ; C -1 ; WX 600 ; N plusminus ; B 51 0 555 514 ; C -1 ; WX 600 ; N brokenbar ; B 243 -175 362 675 ; C -1 ; WX 740 ; N registered ; B 23 -17 723 698 ; C -1 ; WX 780 ; N Gbreve ; B 35 -17 773 901 ; C -1 ; WX 400 ; N Idotaccent ; B 20 0 379 933 ; C -1 ; WX 600 ; N summation ; B 14 -10 585 706 ; C -1 ; WX 720 ; N Egrave ; B 20 0 724 909 ; C -1 ; WX 460 ; N racute ; B 22 0 462 731 ; C -1 ; WX 620 ; N omacron ; B 31 -8 585 663 ; C -1 ; WX 640 ; N Zacute ; B 6 0 635 910 ; C -1 ; WX 640 ; N Zcaron ; B 6 0 635 896 ; C -1 ; WX 549 ; N greaterequal ; B 26 0 523 704 ; C -1 ; WX 780 ; N Eth ; B 20 0 748 681 ; C -1 ; WX 740 ; N Ccedilla ; B 35 -213 724 698 ; C -1 ; WX 340 ; N lcommaaccent ; B 9 -249 322 725 ; C -1 ; WX 460 ; N tcaron ; B 22 -8 445 794 ; C -1 ; WX 580 ; N eogonek ; B 31 -204 548 515 ; C -1 ; WX 740 ; N Uogonek ; B 15 -199 724 681 ; C -1 ; WX 720 ; N Aacute ; B -34 0 763 910 ; C -1 ; WX 720 ; N Adieresis ; B -34 0 763 877 ; C -1 ; WX 580 ; N egrave ; B 31 -8 548 730 ; C -1 ; WX 560 ; N zacute ; B 22 0 547 731 ; C -1 ; WX 360 ; N iogonek ; B 22 -199 335 729 ; C -1 ; WX 800 ; N Oacute ; B 35 -17 769 910 ; C -1 ; WX 620 ; N oacute ; B 31 -8 585 731 ; C -1 ; WX 580 ; N amacron ; B 28 -8 588 663 ; C -1 ; WX 520 ; N sacute ; B 22 -8 492 731 ; C -1 ; WX 360 ; N idieresis ; B -2 0 371 698 ; C -1 ; WX 800 ; N Ocircumflex ; B 35 -17 769 910 ; C -1 ; WX 740 ; N Ugrave ; B 15 -17 724 909 ; C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ; C -1 ; WX 640 ; N thorn ; B 22 -212 611 725 ; C -1 ; WX 396 ; N twosuperior ; B 14 279 396 698 ; C -1 ; WX 800 ; N Odieresis ; B 35 -17 769 877 ; C -1 ; WX 660 ; N mu ; B 22 -221 653 502 ; C -1 ; WX 360 ; N igrave ; B 18 0 335 730 ; C -1 ; WX 620 ; N ohungarumlaut ; B 31 -8 585 741 ; C -1 ; WX 720 ; N Eogonek ; B 20 -204 724 681 ; C -1 ; WX 640 ; N dcroat ; B 31 -8 622 725 ; C -1 ; WX 990 ; N threequarters ; B 15 0 967 692 ; C -1 ; WX 660 ; N Scedilla ; B 21 -213 639 698 ; C -1 ; WX 450 ; N lcaron ; B 9 0 434 731 ; C -1 ; WX 800 ; N Kcommaaccent ; B 20 -249 796 681 ; C -1 ; WX 640 ; N Lacute ; B 20 0 668 910 ; C -1 ; WX 980 ; N trademark ; B 42 277 982 681 ; C -1 ; WX 580 ; N edotaccent ; B 31 -8 548 754 ; C -1 ; WX 400 ; N Igrave ; B 20 0 379 909 ; C -1 ; WX 400 ; N Imacron ; B 20 0 379 842 ; C -1 ; WX 640 ; N Lcaron ; B 20 0 668 698 ; C -1 ; WX 990 ; N onehalf ; B 65 0 980 681 ; C -1 ; WX 549 ; N lessequal ; B 29 0 526 704 ; C -1 ; WX 620 ; N ocircumflex ; B 31 -8 585 731 ; C -1 ; WX 680 ; N ntilde ; B 22 0 652 691 ; C -1 ; WX 740 ; N Uhungarumlaut ; B 15 -17 724 920 ; C -1 ; WX 720 ; N Eacute ; B 20 0 724 910 ; C -1 ; WX 580 ; N emacron ; B 31 -8 548 663 ; C -1 ; WX 580 ; N gbreve ; B 9 -243 583 722 ; C -1 ; WX 990 ; N onequarter ; B 65 0 967 681 ; C -1 ; WX 660 ; N Scaron ; B 21 -17 639 896 ; C -1 ; WX 660 ; N Scommaaccent ; B 21 -249 639 698 ; C -1 ; WX 800 ; N Ohungarumlaut ; B 35 -17 769 920 ; C -1 ; WX 400 ; N degree ; B 50 398 350 698 ; C -1 ; WX 620 ; N ograve ; B 31 -8 585 730 ; C -1 ; WX 740 ; N Ccaron ; B 35 -17 724 896 ; C -1 ; WX 660 ; N ugrave ; B 22 -8 653 730 ; C -1 ; WX 549 ; N radical ; B 10 -46 512 850 ; C -1 ; WX 780 ; N Dcaron ; B 20 0 748 896 ; C -1 ; WX 460 ; N rcommaaccent ; B 22 -249 462 502 ; C -1 ; WX 740 ; N Ntilde ; B 20 0 724 870 ; C -1 ; WX 620 ; N otilde ; B 31 -8 585 691 ; C -1 ; WX 780 ; N Rcommaaccent ; B 20 -249 783 681 ; C -1 ; WX 640 ; N Lcommaaccent ; B 20 -249 668 681 ; C -1 ; WX 720 ; N Atilde ; B -34 0 763 870 ; C -1 ; WX 720 ; N Aogonek ; B -34 -199 763 681 ; C -1 ; WX 720 ; N Aring ; B -34 0 763 934 ; C -1 ; WX 800 ; N Otilde ; B 35 -17 769 870 ; C -1 ; WX 560 ; N zdotaccent ; B 22 0 547 754 ; C -1 ; WX 720 ; N Ecaron ; B 20 0 724 896 ; C -1 ; WX 400 ; N Iogonek ; B 20 -204 379 681 ; C -1 ; WX 660 ; N kcommaaccent ; B 22 -249 643 725 ; C -1 ; WX 600 ; N minus ; B 51 207 555 323 ; C -1 ; WX 400 ; N Icircumflex ; B 18 0 380 910 ; C -1 ; WX 680 ; N ncaron ; B 22 0 652 717 ; C -1 ; WX 460 ; N tcommaaccent ; B 22 -249 445 660 ; C -1 ; WX 600 ; N logicalnot ; B 51 129 555 421 ; C -1 ; WX 620 ; N odieresis ; B 31 -8 585 698 ; C -1 ; WX 660 ; N udieresis ; B 22 -8 653 698 ; C -1 ; WX 549 ; N notequal ; B 15 -49 540 570 ; C -1 ; WX 580 ; N gcommaaccent ; B 9 -243 583 785 ; C -1 ; WX 620 ; N eth ; B 31 -8 585 741 ; C -1 ; WX 560 ; N zcaron ; B 22 0 547 717 ; C -1 ; WX 680 ; N ncommaaccent ; B 22 -249 652 515 ; C -1 ; WX 396 ; N onesuperior ; B 65 279 345 687 ; C -1 ; WX 360 ; N imacron ; B 18 0 335 663 ; EndCharMetrics StartKernData StartKernPairs 912 KPX A T -40 KPX A Tcaron -40 KPX A Tcommaaccent -40 KPX A V -68 KPX A W -20 KPX A Y -52 KPX A Yacute -52 KPX A Ydieresis -52 KPX A v -8 KPX A w -9 KPX A y -1 KPX A yacute -1 KPX A ydieresis -1 KPX Aacute T -40 KPX Aacute Tcaron -40 KPX Aacute Tcommaaccent -40 KPX Aacute V -68 KPX Aacute W -20 KPX Aacute Y -52 KPX Aacute Yacute -52 KPX Aacute Ydieresis -52 KPX Aacute v -8 KPX Aacute w -9 KPX Aacute y -1 KPX Aacute yacute -1 KPX Aacute ydieresis -1 KPX Abreve T -40 KPX Abreve Tcaron -40 KPX Abreve Tcommaaccent -40 KPX Abreve V -68 KPX Abreve W -20 KPX Abreve Y -52 KPX Abreve Yacute -52 KPX Abreve Ydieresis -52 KPX Abreve v -8 KPX Abreve w -9 KPX Abreve y -1 KPX Abreve yacute -1 KPX Abreve ydieresis -1 KPX Acircumflex T -40 KPX Acircumflex Tcaron -40 KPX Acircumflex Tcommaaccent -40 KPX Acircumflex V -68 KPX Acircumflex W -20 KPX Acircumflex Y -52 KPX Acircumflex Yacute -52 KPX Acircumflex Ydieresis -52 KPX Acircumflex v -8 KPX Acircumflex w -9 KPX Acircumflex y -1 KPX Acircumflex yacute -1 KPX Acircumflex ydieresis -1 KPX Adieresis T -40 KPX Adieresis Tcaron -40 KPX Adieresis Tcommaaccent -40 KPX Adieresis V -68 KPX Adieresis W -20 KPX Adieresis Y -52 KPX Adieresis Yacute -52 KPX Adieresis Ydieresis -52 KPX Adieresis v -8 KPX Adieresis w -9 KPX Adieresis y -1 KPX Adieresis yacute -1 KPX Adieresis ydieresis -1 KPX Agrave T -40 KPX Agrave Tcaron -40 KPX Agrave Tcommaaccent -40 KPX Agrave V -68 KPX Agrave W -20 KPX Agrave Y -52 KPX Agrave Yacute -52 KPX Agrave Ydieresis -52 KPX Agrave v -8 KPX Agrave w -9 KPX Agrave y -1 KPX Agrave yacute -1 KPX Agrave ydieresis -1 KPX Amacron T -40 KPX Amacron Tcaron -40 KPX Amacron Tcommaaccent -40 KPX Amacron V -68 KPX Amacron W -20 KPX Amacron Y -52 KPX Amacron Yacute -52 KPX Amacron Ydieresis -52 KPX Amacron v -8 KPX Amacron w -9 KPX Amacron y -1 KPX Amacron yacute -1 KPX Amacron ydieresis -1 KPX Aogonek T -40 KPX Aogonek Tcaron -40 KPX Aogonek Tcommaaccent -40 KPX Aogonek V -68 KPX Aogonek W -20 KPX Aogonek Y -52 KPX Aogonek Yacute -52 KPX Aogonek Ydieresis -52 KPX Aogonek v -8 KPX Aogonek w -9 KPX Aogonek y -1 KPX Aogonek yacute -1 KPX Aogonek ydieresis -1 KPX Aring T -40 KPX Aring Tcaron -40 KPX Aring Tcommaaccent -40 KPX Aring V -68 KPX Aring W -20 KPX Aring Y -52 KPX Aring Yacute -52 KPX Aring Ydieresis -52 KPX Aring v -8 KPX Aring w -9 KPX Aring y -1 KPX Aring yacute -1 KPX Aring ydieresis -1 KPX Atilde T -40 KPX Atilde Tcaron -40 KPX Atilde Tcommaaccent -40 KPX Atilde V -68 KPX Atilde W -20 KPX Atilde Y -52 KPX Atilde Yacute -52 KPX Atilde Ydieresis -52 KPX Atilde v -8 KPX Atilde w -9 KPX Atilde y -1 KPX Atilde yacute -1 KPX Atilde ydieresis -1 KPX F A -59 KPX F Aacute -59 KPX F Abreve -59 KPX F Acircumflex -59 KPX F Adieresis -59 KPX F Agrave -59 KPX F Amacron -59 KPX F Aogonek -59 KPX F Aring -59 KPX F Atilde -59 KPX F comma -130 KPX F period -132 KPX L T -4 KPX L Tcaron -4 KPX L Tcommaaccent -4 KPX L V -50 KPX L W -41 KPX L Y -35 KPX L Yacute -35 KPX L Ydieresis -35 KPX L y 19 KPX L yacute 19 KPX L ydieresis 19 KPX Lacute T -4 KPX Lacute Tcaron -4 KPX Lacute Tcommaaccent -4 KPX Lacute V -50 KPX Lacute W -41 KPX Lacute Y -35 KPX Lacute Yacute -35 KPX Lacute Ydieresis -35 KPX Lacute y 19 KPX Lacute yacute 19 KPX Lacute ydieresis 19 KPX Lcaron T -4 KPX Lcaron Tcaron -4 KPX Lcaron Tcommaaccent -4 KPX Lcaron y 19 KPX Lcaron yacute 19 KPX Lcaron ydieresis 19 KPX Lcommaaccent T -4 KPX Lcommaaccent Tcaron -4 KPX Lcommaaccent Tcommaaccent -4 KPX Lcommaaccent V -50 KPX Lcommaaccent W -41 KPX Lcommaaccent Y -35 KPX Lcommaaccent Yacute -35 KPX Lcommaaccent Ydieresis -35 KPX Lcommaaccent y 19 KPX Lcommaaccent yacute 19 KPX Lcommaaccent ydieresis 19 KPX Lslash T -4 KPX Lslash Tcaron -4 KPX Lslash Tcommaaccent -4 KPX Lslash V -50 KPX Lslash W -41 KPX Lslash Y -35 KPX Lslash Yacute -35 KPX Lslash Ydieresis -35 KPX Lslash y 19 KPX Lslash yacute 19 KPX Lslash ydieresis 19 KPX P A -46 KPX P Aacute -46 KPX P Abreve -46 KPX P Acircumflex -46 KPX P Adieresis -46 KPX P Agrave -46 KPX P Amacron -46 KPX P Aogonek -46 KPX P Aring -46 KPX P Atilde -46 KPX P comma -129 KPX P period -128 KPX R T -4 KPX R Tcaron -4 KPX R Tcommaaccent -4 KPX R V -29 KPX R W -24 KPX R Y -20 KPX R Yacute -20 KPX R Ydieresis -20 KPX R y -8 KPX R yacute -8 KPX R ydieresis -8 KPX Racute T -4 KPX Racute Tcaron -4 KPX Racute Tcommaaccent -4 KPX Racute V -29 KPX Racute W -24 KPX Racute Y -20 KPX Racute Yacute -20 KPX Racute Ydieresis -20 KPX Racute y -8 KPX Racute yacute -8 KPX Racute ydieresis -8 KPX Rcaron T -4 KPX Rcaron Tcaron -4 KPX Rcaron Tcommaaccent -4 KPX Rcaron V -29 KPX Rcaron W -24 KPX Rcaron Y -20 KPX Rcaron Yacute -20 KPX Rcaron Ydieresis -20 KPX Rcaron y -8 KPX Rcaron yacute -8 KPX Rcaron ydieresis -8 KPX Rcommaaccent T -4 KPX Rcommaaccent Tcaron -4 KPX Rcommaaccent Tcommaaccent -4 KPX Rcommaaccent V -29 KPX Rcommaaccent W -24 KPX Rcommaaccent Y -20 KPX Rcommaaccent Yacute -20 KPX Rcommaaccent Ydieresis -20 KPX Rcommaaccent y -8 KPX Rcommaaccent yacute -8 KPX Rcommaaccent ydieresis -8 KPX T A -42 KPX T Aacute -42 KPX T Abreve -42 KPX T Acircumflex -42 KPX T Adieresis -42 KPX T Agrave -42 KPX T Amacron -42 KPX T Aogonek -42 KPX T Aring -42 KPX T Atilde -42 KPX T a -24 KPX T aacute -24 KPX T abreve -24 KPX T acircumflex -24 KPX T adieresis -24 KPX T agrave -24 KPX T amacron -24 KPX T aogonek -24 KPX T aring -24 KPX T atilde -24 KPX T c -29 KPX T cacute -29 KPX T ccaron -29 KPX T ccedilla -29 KPX T colon 7 KPX T comma -122 KPX T e -29 KPX T eacute -29 KPX T ecaron -29 KPX T ecircumflex -29 KPX T edieresis -29 KPX T edotaccent -29 KPX T egrave -29 KPX T emacron -29 KPX T eogonek -29 KPX T hyphen -10 KPX T i 27 KPX T iacute 27 KPX T icircumflex 27 KPX T idieresis 27 KPX T igrave 27 KPX T imacron 27 KPX T iogonek 27 KPX T o -28 KPX T oacute -28 KPX T ocircumflex -28 KPX T odieresis -28 KPX T ograve -28 KPX T ohungarumlaut -28 KPX T omacron -28 KPX T oslash -28 KPX T otilde -28 KPX T period -122 KPX T r 27 KPX T racute 27 KPX T rcaron 27 KPX T rcommaaccent 27 KPX T s -10 KPX T sacute -10 KPX T scaron -10 KPX T scedilla -10 KPX T scommaaccent -10 KPX T semicolon 5 KPX Tcaron A -42 KPX Tcaron Aacute -42 KPX Tcaron Abreve -42 KPX Tcaron Acircumflex -42 KPX Tcaron Adieresis -42 KPX Tcaron Agrave -42 KPX Tcaron Amacron -42 KPX Tcaron Aogonek -42 KPX Tcaron Aring -42 KPX Tcaron Atilde -42 KPX Tcaron a -24 KPX Tcaron aacute -24 KPX Tcaron abreve -24 KPX Tcaron acircumflex -24 KPX Tcaron adieresis -24 KPX Tcaron agrave -24 KPX Tcaron amacron -24 KPX Tcaron aogonek -24 KPX Tcaron aring -24 KPX Tcaron atilde -24 KPX Tcaron c -29 KPX Tcaron cacute -29 KPX Tcaron ccaron -29 KPX Tcaron ccedilla -29 KPX Tcaron colon 7 KPX Tcaron comma -122 KPX Tcaron e -29 KPX Tcaron eacute -29 KPX Tcaron ecaron -29 KPX Tcaron ecircumflex -29 KPX Tcaron edieresis -29 KPX Tcaron edotaccent -29 KPX Tcaron egrave -29 KPX Tcaron emacron -29 KPX Tcaron eogonek -29 KPX Tcaron hyphen -10 KPX Tcaron i 27 KPX Tcaron iacute 27 KPX Tcaron icircumflex 27 KPX Tcaron idieresis 27 KPX Tcaron igrave 27 KPX Tcaron imacron 27 KPX Tcaron iogonek 27 KPX Tcaron o -28 KPX Tcaron oacute -28 KPX Tcaron ocircumflex -28 KPX Tcaron odieresis -28 KPX Tcaron ograve -28 KPX Tcaron ohungarumlaut -28 KPX Tcaron omacron -28 KPX Tcaron oslash -28 KPX Tcaron otilde -28 KPX Tcaron period -122 KPX Tcaron r 27 KPX Tcaron racute 27 KPX Tcaron rcaron 27 KPX Tcaron rcommaaccent 27 KPX Tcaron s -10 KPX Tcaron sacute -10 KPX Tcaron scaron -10 KPX Tcaron scedilla -10 KPX Tcaron scommaaccent -10 KPX Tcaron semicolon 5 KPX Tcommaaccent A -42 KPX Tcommaaccent Aacute -42 KPX Tcommaaccent Abreve -42 KPX Tcommaaccent Acircumflex -42 KPX Tcommaaccent Adieresis -42 KPX Tcommaaccent Agrave -42 KPX Tcommaaccent Amacron -42 KPX Tcommaaccent Aogonek -42 KPX Tcommaaccent Aring -42 KPX Tcommaaccent Atilde -42 KPX Tcommaaccent a -24 KPX Tcommaaccent aacute -24 KPX Tcommaaccent abreve -24 KPX Tcommaaccent acircumflex -24 KPX Tcommaaccent adieresis -24 KPX Tcommaaccent agrave -24 KPX Tcommaaccent amacron -24 KPX Tcommaaccent aogonek -24 KPX Tcommaaccent aring -24 KPX Tcommaaccent atilde -24 KPX Tcommaaccent c -29 KPX Tcommaaccent cacute -29 KPX Tcommaaccent ccaron -29 KPX Tcommaaccent ccedilla -29 KPX Tcommaaccent colon 7 KPX Tcommaaccent comma -122 KPX Tcommaaccent e -29 KPX Tcommaaccent eacute -29 KPX Tcommaaccent ecaron -29 KPX Tcommaaccent ecircumflex -29 KPX Tcommaaccent edieresis -29 KPX Tcommaaccent edotaccent -29 KPX Tcommaaccent egrave -29 KPX Tcommaaccent emacron -29 KPX Tcommaaccent eogonek -29 KPX Tcommaaccent hyphen -10 KPX Tcommaaccent i 27 KPX Tcommaaccent iacute 27 KPX Tcommaaccent icircumflex 27 KPX Tcommaaccent idieresis 27 KPX Tcommaaccent igrave 27 KPX Tcommaaccent imacron 27 KPX Tcommaaccent iogonek 27 KPX Tcommaaccent o -28 KPX Tcommaaccent oacute -28 KPX Tcommaaccent ocircumflex -28 KPX Tcommaaccent odieresis -28 KPX Tcommaaccent ograve -28 KPX Tcommaaccent ohungarumlaut -28 KPX Tcommaaccent omacron -28 KPX Tcommaaccent oslash -28 KPX Tcommaaccent otilde -28 KPX Tcommaaccent period -122 KPX Tcommaaccent r 27 KPX Tcommaaccent racute 27 KPX Tcommaaccent rcaron 27 KPX Tcommaaccent rcommaaccent 27 KPX Tcommaaccent s -10 KPX Tcommaaccent sacute -10 KPX Tcommaaccent scaron -10 KPX Tcommaaccent scedilla -10 KPX Tcommaaccent scommaaccent -10 KPX Tcommaaccent semicolon 5 KPX V A -88 KPX V Aacute -88 KPX V Abreve -88 KPX V Acircumflex -88 KPX V Adieresis -88 KPX V Agrave -88 KPX V Amacron -88 KPX V Aogonek -88 KPX V Aring -88 KPX V Atilde -88 KPX V a -74 KPX V aacute -74 KPX V abreve -74 KPX V acircumflex -74 KPX V adieresis -74 KPX V agrave -74 KPX V amacron -74 KPX V aogonek -74 KPX V aring -74 KPX V atilde -74 KPX V colon -37 KPX V comma -103 KPX V e -80 KPX V eacute -80 KPX V ecaron -80 KPX V ecircumflex -80 KPX V edieresis -80 KPX V edotaccent -80 KPX V egrave -80 KPX V emacron -80 KPX V eogonek -80 KPX V hyphen -10 KPX V i 15 KPX V iacute 15 KPX V icircumflex 15 KPX V idieresis 15 KPX V igrave 15 KPX V imacron 15 KPX V iogonek 15 KPX V o -79 KPX V oacute -79 KPX V ocircumflex -79 KPX V odieresis -79 KPX V ograve -79 KPX V ohungarumlaut -79 KPX V omacron -79 KPX V oslash -79 KPX V otilde -79 KPX V period -105 KPX V r -15 KPX V racute -15 KPX V rcaron -15 KPX V rcommaaccent -15 KPX V semicolon -38 KPX V u -11 KPX V uacute -11 KPX V ucircumflex -11 KPX V udieresis -11 KPX V ugrave -11 KPX V uhungarumlaut -11 KPX V umacron -11 KPX V uogonek -11 KPX V uring -11 KPX V y 12 KPX V yacute 12 KPX V ydieresis 12 KPX W A -60 KPX W Aacute -60 KPX W Abreve -60 KPX W Acircumflex -60 KPX W Adieresis -60 KPX W Agrave -60 KPX W Amacron -60 KPX W Aogonek -60 KPX W Aring -60 KPX W Atilde -60 KPX W a -73 KPX W aacute -73 KPX W abreve -73 KPX W acircumflex -73 KPX W adieresis -73 KPX W agrave -73 KPX W amacron -73 KPX W aogonek -73 KPX W aring -73 KPX W atilde -73 KPX W colon -37 KPX W comma -103 KPX W e -79 KPX W eacute -79 KPX W ecaron -79 KPX W ecircumflex -79 KPX W edieresis -79 KPX W edotaccent -79 KPX W egrave -79 KPX W emacron -79 KPX W eogonek -79 KPX W hyphen -10 KPX W i 15 KPX W iacute 15 KPX W icircumflex 15 KPX W idieresis 15 KPX W igrave 15 KPX W imacron 15 KPX W iogonek 15 KPX W o -78 KPX W oacute -78 KPX W ocircumflex -78 KPX W odieresis -78 KPX W ograve -78 KPX W ohungarumlaut -78 KPX W omacron -78 KPX W oslash -78 KPX W otilde -78 KPX W period -105 KPX W r -15 KPX W racute -15 KPX W rcaron -15 KPX W rcommaaccent -15 KPX W semicolon -38 KPX W u -11 KPX W uacute -11 KPX W ucircumflex -11 KPX W udieresis -11 KPX W ugrave -11 KPX W uhungarumlaut -11 KPX W umacron -11 KPX W uogonek -11 KPX W uring -11 KPX W y 12 KPX W yacute 12 KPX W ydieresis 12 KPX Y A -56 KPX Y Aacute -56 KPX Y Abreve -56 KPX Y Acircumflex -56 KPX Y Adieresis -56 KPX Y Agrave -56 KPX Y Amacron -56 KPX Y Aogonek -56 KPX Y Aring -56 KPX Y Atilde -56 KPX Y a -60 KPX Y aacute -60 KPX Y abreve -60 KPX Y acircumflex -60 KPX Y adieresis -60 KPX Y agrave -60 KPX Y amacron -60 KPX Y aogonek -60 KPX Y aring -60 KPX Y atilde -60 KPX Y colon -32 KPX Y comma -103 KPX Y e -67 KPX Y eacute -67 KPX Y ecaron -67 KPX Y ecircumflex -67 KPX Y edieresis -67 KPX Y edotaccent -67 KPX Y egrave -67 KPX Y emacron -67 KPX Y eogonek -67 KPX Y hyphen -10 KPX Y i 2 KPX Y iacute 2 KPX Y icircumflex 12 KPX Y idieresis 12 KPX Y igrave 12 KPX Y imacron 12 KPX Y iogonek 2 KPX Y o -66 KPX Y oacute -66 KPX Y ocircumflex -66 KPX Y odieresis -66 KPX Y ograve -66 KPX Y ohungarumlaut -66 KPX Y omacron -66 KPX Y oslash -66 KPX Y otilde -66 KPX Y p -23 KPX Y period -105 KPX Y q -66 KPX Y semicolon -34 KPX Y u -13 KPX Y uacute -13 KPX Y ucircumflex -13 KPX Y udieresis -13 KPX Y ugrave -13 KPX Y uhungarumlaut -13 KPX Y umacron -13 KPX Y uogonek -13 KPX Y uring -13 KPX Y v 24 KPX Yacute A -56 KPX Yacute Aacute -56 KPX Yacute Abreve -56 KPX Yacute Acircumflex -56 KPX Yacute Adieresis -56 KPX Yacute Agrave -56 KPX Yacute Amacron -56 KPX Yacute Aogonek -56 KPX Yacute Aring -56 KPX Yacute Atilde -56 KPX Yacute a -60 KPX Yacute aacute -60 KPX Yacute abreve -60 KPX Yacute acircumflex -60 KPX Yacute adieresis -60 KPX Yacute agrave -60 KPX Yacute amacron -60 KPX Yacute aogonek -60 KPX Yacute aring -60 KPX Yacute atilde -60 KPX Yacute colon -32 KPX Yacute comma -103 KPX Yacute e -67 KPX Yacute eacute -67 KPX Yacute ecaron -67 KPX Yacute ecircumflex -67 KPX Yacute edieresis -67 KPX Yacute edotaccent -67 KPX Yacute egrave -67 KPX Yacute emacron -67 KPX Yacute eogonek -67 KPX Yacute hyphen -10 KPX Yacute i 2 KPX Yacute iacute 2 KPX Yacute icircumflex 12 KPX Yacute idieresis 12 KPX Yacute igrave 12 KPX Yacute imacron 12 KPX Yacute iogonek 2 KPX Yacute o -66 KPX Yacute oacute -66 KPX Yacute ocircumflex -66 KPX Yacute odieresis -66 KPX Yacute ograve -66 KPX Yacute ohungarumlaut -66 KPX Yacute omacron -66 KPX Yacute oslash -66 KPX Yacute otilde -66 KPX Yacute p -23 KPX Yacute period -105 KPX Yacute q -66 KPX Yacute semicolon -34 KPX Yacute u -13 KPX Yacute uacute -13 KPX Yacute ucircumflex -13 KPX Yacute udieresis -13 KPX Yacute ugrave -13 KPX Yacute uhungarumlaut -13 KPX Yacute umacron -13 KPX Yacute uogonek -13 KPX Yacute uring -13 KPX Yacute v 24 KPX Ydieresis A -56 KPX Ydieresis Aacute -56 KPX Ydieresis Abreve -56 KPX Ydieresis Acircumflex -56 KPX Ydieresis Adieresis -56 KPX Ydieresis Agrave -56 KPX Ydieresis Amacron -56 KPX Ydieresis Aogonek -56 KPX Ydieresis Aring -56 KPX Ydieresis Atilde -56 KPX Ydieresis a -60 KPX Ydieresis aacute -60 KPX Ydieresis abreve -60 KPX Ydieresis acircumflex -60 KPX Ydieresis adieresis -60 KPX Ydieresis agrave -60 KPX Ydieresis amacron -60 KPX Ydieresis aogonek -60 KPX Ydieresis aring -60 KPX Ydieresis atilde -60 KPX Ydieresis colon -32 KPX Ydieresis comma -103 KPX Ydieresis e -67 KPX Ydieresis eacute -67 KPX Ydieresis ecaron -67 KPX Ydieresis ecircumflex -67 KPX Ydieresis edieresis -67 KPX Ydieresis edotaccent -67 KPX Ydieresis egrave -67 KPX Ydieresis emacron -67 KPX Ydieresis eogonek -67 KPX Ydieresis hyphen -10 KPX Ydieresis i 2 KPX Ydieresis iacute 2 KPX Ydieresis icircumflex 12 KPX Ydieresis idieresis 12 KPX Ydieresis igrave 12 KPX Ydieresis imacron 12 KPX Ydieresis iogonek 2 KPX Ydieresis o -66 KPX Ydieresis oacute -66 KPX Ydieresis ocircumflex -66 KPX Ydieresis odieresis -66 KPX Ydieresis ograve -66 KPX Ydieresis ohungarumlaut -66 KPX Ydieresis omacron -66 KPX Ydieresis oslash -66 KPX Ydieresis otilde -66 KPX Ydieresis p -23 KPX Ydieresis period -105 KPX Ydieresis q -66 KPX Ydieresis semicolon -34 KPX Ydieresis u -13 KPX Ydieresis uacute -13 KPX Ydieresis ucircumflex -13 KPX Ydieresis udieresis -13 KPX Ydieresis ugrave -13 KPX Ydieresis uhungarumlaut -13 KPX Ydieresis umacron -13 KPX Ydieresis uogonek -13 KPX Ydieresis uring -13 KPX Ydieresis v 24 KPX f f 21 KPX r c -9 KPX r cacute -9 KPX r ccaron -9 KPX r ccedilla -9 KPX r comma -101 KPX r d -10 KPX r dcroat -10 KPX r e -10 KPX r eacute -10 KPX r ecaron -10 KPX r ecircumflex -10 KPX r edieresis -10 KPX r edotaccent -10 KPX r egrave -10 KPX r emacron -10 KPX r eogonek -10 KPX r f 20 KPX r g -9 KPX r gbreve -9 KPX r gcommaaccent -9 KPX r h -23 KPX r hyphen -10 KPX r m 20 KPX r n 20 KPX r nacute 20 KPX r ncaron 20 KPX r ncommaaccent 20 KPX r ntilde 20 KPX r o -9 KPX r oacute -9 KPX r ocircumflex -9 KPX r odieresis -9 KPX r ograve -9 KPX r ohungarumlaut -9 KPX r omacron -9 KPX r oslash -9 KPX r otilde -9 KPX r period -102 KPX r q -9 KPX racute c -9 KPX racute cacute -9 KPX racute ccaron -9 KPX racute ccedilla -9 KPX racute comma -101 KPX racute d -10 KPX racute dcroat -10 KPX racute e -10 KPX racute eacute -10 KPX racute ecaron -10 KPX racute ecircumflex -10 KPX racute edieresis -10 KPX racute edotaccent -10 KPX racute egrave -10 KPX racute emacron -10 KPX racute eogonek -10 KPX racute f 20 KPX racute g -9 KPX racute gbreve -9 KPX racute gcommaaccent -9 KPX racute h -23 KPX racute hyphen -10 KPX racute m 20 KPX racute n 20 KPX racute nacute 20 KPX racute ncaron 20 KPX racute ncommaaccent 20 KPX racute ntilde 20 KPX racute o -9 KPX racute oacute -9 KPX racute ocircumflex -9 KPX racute odieresis -9 KPX racute ograve -9 KPX racute ohungarumlaut -9 KPX racute omacron -9 KPX racute oslash -9 KPX racute otilde -9 KPX racute period -102 KPX racute q -9 KPX rcaron c -9 KPX rcaron cacute -9 KPX rcaron ccaron -9 KPX rcaron ccedilla -9 KPX rcaron comma -101 KPX rcaron d -10 KPX rcaron dcroat -10 KPX rcaron e -10 KPX rcaron eacute -10 KPX rcaron ecaron -10 KPX rcaron ecircumflex -10 KPX rcaron edieresis -10 KPX rcaron edotaccent -10 KPX rcaron egrave -10 KPX rcaron emacron -10 KPX rcaron eogonek -10 KPX rcaron f 20 KPX rcaron g -9 KPX rcaron gbreve -9 KPX rcaron gcommaaccent -9 KPX rcaron h -23 KPX rcaron hyphen -10 KPX rcaron m 20 KPX rcaron n 20 KPX rcaron nacute 20 KPX rcaron ncaron 20 KPX rcaron ncommaaccent 20 KPX rcaron ntilde 20 KPX rcaron o -9 KPX rcaron oacute -9 KPX rcaron ocircumflex -9 KPX rcaron odieresis -9 KPX rcaron ograve -9 KPX rcaron ohungarumlaut -9 KPX rcaron omacron -9 KPX rcaron oslash -9 KPX rcaron otilde -9 KPX rcaron period -102 KPX rcaron q -9 KPX rcommaaccent c -9 KPX rcommaaccent cacute -9 KPX rcommaaccent ccaron -9 KPX rcommaaccent ccedilla -9 KPX rcommaaccent comma -101 KPX rcommaaccent d -10 KPX rcommaaccent dcroat -10 KPX rcommaaccent e -10 KPX rcommaaccent eacute -10 KPX rcommaaccent ecaron -10 KPX rcommaaccent ecircumflex -10 KPX rcommaaccent edieresis -10 KPX rcommaaccent edotaccent -10 KPX rcommaaccent egrave -10 KPX rcommaaccent emacron -10 KPX rcommaaccent eogonek -10 KPX rcommaaccent f 20 KPX rcommaaccent g -9 KPX rcommaaccent gbreve -9 KPX rcommaaccent gcommaaccent -9 KPX rcommaaccent h -23 KPX rcommaaccent hyphen -10 KPX rcommaaccent m 20 KPX rcommaaccent n 20 KPX rcommaaccent nacute 20 KPX rcommaaccent ncaron 20 KPX rcommaaccent ncommaaccent 20 KPX rcommaaccent ntilde 20 KPX rcommaaccent o -9 KPX rcommaaccent oacute -9 KPX rcommaaccent ocircumflex -9 KPX rcommaaccent odieresis -9 KPX rcommaaccent ograve -9 KPX rcommaaccent ohungarumlaut -9 KPX rcommaaccent omacron -9 KPX rcommaaccent oslash -9 KPX rcommaaccent otilde -9 KPX rcommaaccent period -102 KPX rcommaaccent q -9 EndKernPairs EndKernData EndFontMetrics a2ps-4.14/afm/psyr.afm0000644000175000017500000002276710674334154014077 0ustar mhattamhattaStartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All rights reserved. Comment Creation Date: Thu May 1 15:12:25 1997 Comment UniqueID 43064 Comment VMusage 30820 39997 FontName Symbol FullName Symbol FamilyName Symbol Weight Medium ItalicAngle 0 IsFixedPitch false FontBBox -180 -293 1090 1010 UnderlinePosition -100 UnderlineThickness 50 Version 001.008 Notice Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All rights reserved. EncodingScheme FontSpecific StdHW 92 StdVW 85 StartCharMetrics 190 C 32 ; WX 250 ; N space ; B 0 0 0 0 ; C 33 ; WX 333 ; N exclam ; B 128 -17 240 672 ; C 34 ; WX 713 ; N universal ; B 31 0 681 705 ; C 35 ; WX 500 ; N numbersign ; B 20 -16 481 673 ; C 36 ; WX 549 ; N existential ; B 25 0 478 707 ; C 37 ; WX 833 ; N percent ; B 63 -36 771 655 ; C 38 ; WX 778 ; N ampersand ; B 41 -18 750 661 ; C 39 ; WX 439 ; N suchthat ; B 48 -17 414 500 ; C 40 ; WX 333 ; N parenleft ; B 53 -191 300 673 ; C 41 ; WX 333 ; N parenright ; B 30 -191 277 673 ; C 42 ; WX 500 ; N asteriskmath ; B 65 134 427 551 ; C 43 ; WX 549 ; N plus ; B 10 0 539 533 ; C 44 ; WX 250 ; N comma ; B 56 -152 194 104 ; C 45 ; WX 549 ; N minus ; B 11 233 535 288 ; C 46 ; WX 250 ; N period ; B 69 -17 181 95 ; C 47 ; WX 278 ; N slash ; B 0 -18 254 646 ; C 48 ; WX 500 ; N zero ; B 24 -14 476 685 ; C 49 ; WX 500 ; N one ; B 117 0 390 673 ; C 50 ; WX 500 ; N two ; B 25 0 475 685 ; C 51 ; WX 500 ; N three ; B 43 -14 435 685 ; C 52 ; WX 500 ; N four ; B 15 0 469 685 ; C 53 ; WX 500 ; N five ; B 32 -14 445 690 ; C 54 ; WX 500 ; N six ; B 34 -14 468 685 ; C 55 ; WX 500 ; N seven ; B 24 -16 448 673 ; C 56 ; WX 500 ; N eight ; B 56 -14 445 685 ; C 57 ; WX 500 ; N nine ; B 30 -18 459 685 ; C 58 ; WX 278 ; N colon ; B 81 -17 193 460 ; C 59 ; WX 278 ; N semicolon ; B 83 -152 221 460 ; C 60 ; WX 549 ; N less ; B 26 0 523 522 ; C 61 ; WX 549 ; N equal ; B 11 141 537 390 ; C 62 ; WX 549 ; N greater ; B 26 0 523 522 ; C 63 ; WX 444 ; N question ; B 70 -17 412 686 ; C 64 ; WX 549 ; N congruent ; B 11 0 537 475 ; C 65 ; WX 722 ; N Alpha ; B 4 0 684 673 ; C 66 ; WX 667 ; N Beta ; B 29 0 592 673 ; C 67 ; WX 722 ; N Chi ; B -9 0 704 673 ; C 68 ; WX 612 ; N Delta ; B 6 0 608 688 ; C 69 ; WX 611 ; N Epsilon ; B 32 0 617 673 ; C 70 ; WX 763 ; N Phi ; B 26 0 741 673 ; C 71 ; WX 603 ; N Gamma ; B 24 0 609 673 ; C 72 ; WX 722 ; N Eta ; B 39 0 729 673 ; C 73 ; WX 333 ; N Iota ; B 32 0 316 673 ; C 74 ; WX 631 ; N theta1 ; B 18 -18 623 689 ; C 75 ; WX 722 ; N Kappa ; B 35 0 722 673 ; C 76 ; WX 686 ; N Lambda ; B 6 0 680 688 ; C 77 ; WX 889 ; N Mu ; B 28 0 887 673 ; C 78 ; WX 722 ; N Nu ; B 29 -8 720 673 ; C 79 ; WX 722 ; N Omicron ; B 41 -17 715 685 ; C 80 ; WX 768 ; N Pi ; B 25 0 745 673 ; C 81 ; WX 741 ; N Theta ; B 41 -17 715 685 ; C 82 ; WX 556 ; N Rho ; B 28 0 563 673 ; C 83 ; WX 592 ; N Sigma ; B 5 0 589 673 ; C 84 ; WX 611 ; N Tau ; B 33 0 607 673 ; C 85 ; WX 690 ; N Upsilon ; B -8 0 694 673 ; C 86 ; WX 439 ; N sigma1 ; B 40 -233 436 500 ; C 87 ; WX 768 ; N Omega ; B 34 0 736 688 ; C 88 ; WX 645 ; N Xi ; B 40 0 599 673 ; C 89 ; WX 795 ; N Psi ; B 15 0 781 684 ; C 90 ; WX 611 ; N Zeta ; B 44 0 636 673 ; C 91 ; WX 333 ; N bracketleft ; B 86 -155 299 674 ; C 92 ; WX 863 ; N therefore ; B 163 0 701 487 ; C 93 ; WX 333 ; N bracketright ; B 33 -155 246 674 ; C 94 ; WX 658 ; N perpendicular ; B 15 0 652 674 ; C 95 ; WX 500 ; N underscore ; B -2 -125 502 -75 ; C 96 ; WX 500 ; N radicalex ; B 480 881 1090 917 ; C 97 ; WX 631 ; N alpha ; B 41 -18 622 500 ; C 98 ; WX 549 ; N beta ; B 61 -223 515 741 ; C 99 ; WX 549 ; N chi ; B 12 -231 522 499 ; C 100 ; WX 494 ; N delta ; B 40 -19 481 740 ; C 101 ; WX 439 ; N epsilon ; B 22 -19 427 502 ; C 102 ; WX 521 ; N phi ; B 28 -224 492 673 ; C 103 ; WX 411 ; N gamma ; B 5 -225 484 499 ; C 104 ; WX 603 ; N eta ; B 0 -202 527 514 ; C 105 ; WX 329 ; N iota ; B 0 -17 301 503 ; C 106 ; WX 603 ; N phi1 ; B 36 -224 587 499 ; C 107 ; WX 549 ; N kappa ; B 33 0 558 501 ; C 108 ; WX 549 ; N lambda ; B 24 -17 548 739 ; C 109 ; WX 576 ; N mu ; B 33 -223 567 500 ; C 110 ; WX 521 ; N nu ; B -9 -16 475 507 ; C 111 ; WX 549 ; N omicron ; B 35 -19 501 499 ; C 112 ; WX 549 ; N pi ; B 10 -19 530 487 ; C 113 ; WX 521 ; N theta ; B 43 -17 485 690 ; C 114 ; WX 549 ; N rho ; B 50 -230 490 499 ; C 115 ; WX 603 ; N sigma ; B 30 -21 588 500 ; C 116 ; WX 439 ; N tau ; B 10 -19 418 500 ; C 117 ; WX 576 ; N upsilon ; B 7 -18 535 507 ; C 118 ; WX 713 ; N omega1 ; B 12 -18 671 583 ; C 119 ; WX 686 ; N omega ; B 42 -17 684 500 ; C 120 ; WX 493 ; N xi ; B 27 -224 469 766 ; C 121 ; WX 686 ; N psi ; B 12 -228 701 500 ; C 122 ; WX 494 ; N zeta ; B 60 -225 467 756 ; C 123 ; WX 480 ; N braceleft ; B 58 -183 397 673 ; C 124 ; WX 200 ; N bar ; B 65 -293 135 707 ; C 125 ; WX 480 ; N braceright ; B 79 -183 418 673 ; C 126 ; WX 549 ; N similar ; B 17 203 529 307 ; C 160 ; WX 750 ; N Euro ; B 20 -12 714 685 ; C 161 ; WX 620 ; N Upsilon1 ; B -2 0 610 685 ; C 162 ; WX 247 ; N minute ; B 27 459 228 735 ; C 163 ; WX 549 ; N lessequal ; B 29 0 526 639 ; C 164 ; WX 167 ; N fraction ; B -180 -12 340 677 ; C 165 ; WX 713 ; N infinity ; B 26 124 688 404 ; C 166 ; WX 500 ; N florin ; B 2 -193 494 686 ; C 167 ; WX 753 ; N club ; B 86 -26 660 533 ; C 168 ; WX 753 ; N diamond ; B 142 -36 600 550 ; C 169 ; WX 753 ; N heart ; B 117 -33 631 532 ; C 170 ; WX 753 ; N spade ; B 113 -36 629 548 ; C 171 ; WX 1042 ; N arrowboth ; B 24 -15 1024 511 ; C 172 ; WX 987 ; N arrowleft ; B 32 -15 942 511 ; C 173 ; WX 603 ; N arrowup ; B 45 0 571 910 ; C 174 ; WX 987 ; N arrowright ; B 49 -15 959 511 ; C 175 ; WX 603 ; N arrowdown ; B 45 -22 571 888 ; C 176 ; WX 400 ; N degree ; B 50 385 350 685 ; C 177 ; WX 549 ; N plusminus ; B 10 0 539 645 ; C 178 ; WX 411 ; N second ; B 20 459 413 737 ; C 179 ; WX 549 ; N greaterequal ; B 29 0 526 639 ; C 180 ; WX 549 ; N multiply ; B 17 8 533 524 ; C 181 ; WX 713 ; N proportional ; B 27 123 639 404 ; C 182 ; WX 494 ; N partialdiff ; B 26 -20 462 746 ; C 183 ; WX 460 ; N bullet ; B 50 113 410 473 ; C 184 ; WX 549 ; N divide ; B 10 71 536 456 ; C 185 ; WX 549 ; N notequal ; B 15 -25 540 549 ; C 186 ; WX 549 ; N equivalence ; B 14 82 538 443 ; C 187 ; WX 549 ; N approxequal ; B 14 135 527 394 ; C 188 ; WX 1000 ; N ellipsis ; B 111 -17 889 95 ; C 189 ; WX 603 ; N arrowvertex ; B 280 -120 336 1010 ; C 190 ; WX 1000 ; N arrowhorizex ; B -60 220 1050 276 ; C 191 ; WX 658 ; N carriagereturn ; B 15 -16 602 629 ; C 192 ; WX 823 ; N aleph ; B 175 -18 661 658 ; C 193 ; WX 686 ; N Ifraktur ; B 10 -53 578 740 ; C 194 ; WX 795 ; N Rfraktur ; B 26 -15 759 734 ; C 195 ; WX 987 ; N weierstrass ; B 159 -211 870 573 ; C 196 ; WX 768 ; N circlemultiply ; B 43 -17 733 673 ; C 197 ; WX 768 ; N circleplus ; B 43 -15 733 675 ; C 198 ; WX 823 ; N emptyset ; B 39 -24 781 719 ; C 199 ; WX 768 ; N intersection ; B 40 0 732 509 ; C 200 ; WX 768 ; N union ; B 40 -17 732 492 ; C 201 ; WX 713 ; N propersuperset ; B 20 0 673 470 ; C 202 ; WX 713 ; N reflexsuperset ; B 20 -125 673 470 ; C 203 ; WX 713 ; N notsubset ; B 36 -70 690 540 ; C 204 ; WX 713 ; N propersubset ; B 37 0 690 470 ; C 205 ; WX 713 ; N reflexsubset ; B 37 -125 690 470 ; C 206 ; WX 713 ; N element ; B 45 0 505 468 ; C 207 ; WX 713 ; N notelement ; B 45 -58 505 555 ; C 208 ; WX 768 ; N angle ; B 26 0 738 673 ; C 209 ; WX 713 ; N gradient ; B 36 -19 681 718 ; C 210 ; WX 790 ; N registerserif ; B 50 -17 740 673 ; C 211 ; WX 790 ; N copyrightserif ; B 51 -15 741 675 ; C 212 ; WX 890 ; N trademarkserif ; B 18 293 855 673 ; C 213 ; WX 823 ; N product ; B 25 -101 803 751 ; C 214 ; WX 549 ; N radical ; B 10 -38 515 917 ; C 215 ; WX 250 ; N dotmath ; B 69 210 169 310 ; C 216 ; WX 713 ; N logicalnot ; B 15 0 680 288 ; C 217 ; WX 603 ; N logicaland ; B 23 0 583 454 ; C 218 ; WX 603 ; N logicalor ; B 30 0 578 477 ; C 219 ; WX 1042 ; N arrowdblboth ; B 27 -20 1023 510 ; C 220 ; WX 987 ; N arrowdblleft ; B 30 -15 939 513 ; C 221 ; WX 603 ; N arrowdblup ; B 39 2 567 911 ; C 222 ; WX 987 ; N arrowdblright ; B 45 -20 954 508 ; C 223 ; WX 603 ; N arrowdbldown ; B 44 -19 572 890 ; C 224 ; WX 494 ; N lozenge ; B 18 0 466 745 ; C 225 ; WX 329 ; N angleleft ; B 25 -198 306 746 ; C 226 ; WX 790 ; N registersans ; B 50 -20 740 670 ; C 227 ; WX 790 ; N copyrightsans ; B 49 -15 739 675 ; C 228 ; WX 786 ; N trademarksans ; B 5 293 725 673 ; C 229 ; WX 713 ; N summation ; B 14 -108 695 752 ; C 230 ; WX 384 ; N parenlefttp ; B 24 -293 436 926 ; C 231 ; WX 384 ; N parenleftex ; B 24 -85 108 925 ; C 232 ; WX 384 ; N parenleftbt ; B 24 -293 436 926 ; C 233 ; WX 384 ; N bracketlefttp ; B 0 -80 349 926 ; C 234 ; WX 384 ; N bracketleftex ; B 0 -79 77 925 ; C 235 ; WX 384 ; N bracketleftbt ; B 0 -80 349 926 ; C 236 ; WX 494 ; N bracelefttp ; B 209 -85 445 925 ; C 237 ; WX 494 ; N braceleftmid ; B 20 -85 284 935 ; C 238 ; WX 494 ; N braceleftbt ; B 209 -75 445 935 ; C 239 ; WX 494 ; N braceex ; B 209 -85 284 935 ; C 241 ; WX 329 ; N angleright ; B 21 -198 302 746 ; C 242 ; WX 274 ; N integral ; B 2 -107 291 916 ; C 243 ; WX 686 ; N integraltp ; B 308 -88 675 920 ; C 244 ; WX 686 ; N integralex ; B 308 -88 378 975 ; C 245 ; WX 686 ; N integralbt ; B 11 -87 378 921 ; C 246 ; WX 384 ; N parenrighttp ; B 54 -293 466 926 ; C 247 ; WX 384 ; N parenrightex ; B 382 -85 466 925 ; C 248 ; WX 384 ; N parenrightbt ; B 54 -293 466 926 ; C 249 ; WX 384 ; N bracketrighttp ; B 22 -80 371 926 ; C 250 ; WX 384 ; N bracketrightex ; B 294 -79 371 925 ; C 251 ; WX 384 ; N bracketrightbt ; B 22 -80 371 926 ; C 252 ; WX 494 ; N bracerighttp ; B 48 -85 284 925 ; C 253 ; WX 494 ; N bracerightmid ; B 209 -85 473 935 ; C 254 ; WX 494 ; N bracerightbt ; B 48 -75 284 935 ; C -1 ; WX 790 ; N apple ; B 56 -3 733 808 ; EndCharMetrics EndFontMetrics a2ps-4.14/afm/ps-ref/0000755000175000017500000000000010735337371013575 5ustar mhattamhattaa2ps-4.14/afm/pbkl.afm0000644000175000017500000010070710674334151014016 0ustar mhattamhattaStartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1989, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Thu May 1 13:40:29 1997 Comment UniqueID 43077 Comment VMusage 44500 55525 FontName Bookman-Light FullName ITC Bookman Light FamilyName ITC Bookman Weight Light ItalicAngle 0 IsFixedPitch false FontBBox -188 -251 1266 908 UnderlinePosition -100 UnderlineThickness 50 Version 002.000 Notice Copyright (c) 1985, 1987, 1989, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.ITC Bookman is a registered trademark of International Typeface Corporation. EncodingScheme AdobeStandardEncoding CapHeight 681 XHeight 484 Ascender 717 Descender -228 StdHW 42 StdVW 96 StartCharMetrics 314 C 32 ; WX 320 ; N space ; B 0 0 0 0 ; C 33 ; WX 300 ; N exclam ; B 75 -8 219 698 ; C 34 ; WX 380 ; N quotedbl ; B 56 458 323 698 ; C 35 ; WX 620 ; N numbersign ; B 65 0 556 681 ; C 36 ; WX 620 ; N dollar ; B 34 -109 593 791 ; C 37 ; WX 900 ; N percent ; B 22 -8 873 698 ; C 38 ; WX 800 ; N ampersand ; B 45 -17 787 698 ; C 39 ; WX 220 ; N quoteright ; B 46 480 178 698 ; C 40 ; WX 300 ; N parenleft ; B 76 -145 278 727 ; C 41 ; WX 300 ; N parenright ; B 17 -146 219 727 ; C 42 ; WX 440 ; N asterisk ; B 54 325 391 698 ; C 43 ; WX 600 ; N plus ; B 51 8 555 513 ; C 44 ; WX 320 ; N comma ; B 90 -114 223 114 ; C 45 ; WX 400 ; N hyphen ; B 50 232 350 292 ; C 46 ; WX 320 ; N period ; B 92 -8 220 123 ; C 47 ; WX 600 ; N slash ; B 74 -149 532 717 ; C 48 ; WX 620 ; N zero ; B 40 -17 586 698 ; C 49 ; WX 620 ; N one ; B 160 0 501 681 ; C 50 ; WX 620 ; N two ; B 42 0 576 698 ; C 51 ; WX 620 ; N three ; B 40 -17 576 698 ; C 52 ; WX 620 ; N four ; B 25 0 600 681 ; C 53 ; WX 620 ; N five ; B 60 -17 584 717 ; C 54 ; WX 620 ; N six ; B 45 -17 590 698 ; C 55 ; WX 620 ; N seven ; B 60 0 586 681 ; C 56 ; WX 620 ; N eight ; B 44 -17 583 698 ; C 57 ; WX 620 ; N nine ; B 37 -17 576 698 ; C 58 ; WX 320 ; N colon ; B 92 -8 220 494 ; C 59 ; WX 320 ; N semicolon ; B 90 -114 223 494 ; C 60 ; WX 600 ; N less ; B 49 -2 558 526 ; C 61 ; WX 600 ; N equal ; B 51 126 555 398 ; C 62 ; WX 600 ; N greater ; B 48 -2 557 526 ; C 63 ; WX 540 ; N question ; B 27 -8 514 698 ; C 64 ; WX 820 ; N at ; B 55 -17 755 698 ; C 65 ; WX 680 ; N A ; B -37 0 714 681 ; C 66 ; WX 740 ; N B ; B 31 0 702 681 ; C 67 ; WX 740 ; N C ; B 44 -17 702 698 ; C 68 ; WX 800 ; N D ; B 31 0 752 681 ; C 69 ; WX 720 ; N E ; B 31 0 705 681 ; C 70 ; WX 640 ; N F ; B 31 0 654 681 ; C 71 ; WX 800 ; N G ; B 44 -17 778 698 ; C 72 ; WX 800 ; N H ; B 31 0 769 681 ; C 73 ; WX 340 ; N I ; B 31 0 301 681 ; C 74 ; WX 600 ; N J ; B -23 -17 567 681 ; C 75 ; WX 720 ; N K ; B 31 0 750 681 ; C 76 ; WX 600 ; N L ; B 31 0 629 681 ; C 77 ; WX 920 ; N M ; B 26 0 894 681 ; C 78 ; WX 740 ; N N ; B 26 0 722 681 ; C 79 ; WX 800 ; N O ; B 44 -17 758 698 ; C 80 ; WX 620 ; N P ; B 31 0 613 681 ; C 81 ; WX 820 ; N Q ; B 44 -189 769 698 ; C 82 ; WX 720 ; N R ; B 31 0 757 681 ; C 83 ; WX 660 ; N S ; B 28 -17 634 698 ; C 84 ; WX 620 ; N T ; B -37 0 656 681 ; C 85 ; WX 780 ; N U ; B 25 -17 754 681 ; C 86 ; WX 700 ; N V ; B -30 0 725 681 ; C 87 ; WX 960 ; N W ; B -30 0 984 681 ; C 88 ; WX 720 ; N X ; B -30 0 755 681 ; C 89 ; WX 640 ; N Y ; B -30 0 666 681 ; C 90 ; WX 640 ; N Z ; B 10 0 656 681 ; C 91 ; WX 300 ; N bracketleft ; B 92 -136 258 717 ; C 92 ; WX 600 ; N backslash ; B 74 0 532 717 ; C 93 ; WX 300 ; N bracketright ; B 41 -136 207 717 ; C 94 ; WX 600 ; N asciicircum ; B 52 276 554 681 ; C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; C 96 ; WX 220 ; N quoteleft ; B 46 479 178 698 ; C 97 ; WX 580 ; N a ; B 35 -8 587 494 ; C 98 ; WX 620 ; N b ; B -2 -8 582 717 ; C 99 ; WX 520 ; N c ; B 37 -8 498 494 ; C 100 ; WX 620 ; N d ; B 37 -8 591 717 ; C 101 ; WX 520 ; N e ; B 37 -8 491 494 ; C 102 ; WX 320 ; N f ; B 20 0 414 734 ; L i fi ; L l fl ; C 103 ; WX 540 ; N g ; B 17 -243 542 567 ; C 104 ; WX 660 ; N h ; B 20 0 643 717 ; C 105 ; WX 300 ; N i ; B 20 0 288 654 ; C 106 ; WX 300 ; N j ; B -109 -251 214 654 ; C 107 ; WX 620 ; N k ; B 20 0 628 717 ; C 108 ; WX 300 ; N l ; B 20 0 286 717 ; C 109 ; WX 940 ; N m ; B 17 0 928 494 ; C 110 ; WX 660 ; N n ; B 20 0 649 494 ; C 111 ; WX 560 ; N o ; B 37 -8 526 494 ; C 112 ; WX 620 ; N p ; B 20 -228 583 494 ; C 113 ; WX 580 ; N q ; B 37 -228 589 494 ; C 114 ; WX 440 ; N r ; B 20 0 447 494 ; C 115 ; WX 520 ; N s ; B 40 -8 487 494 ; C 116 ; WX 380 ; N t ; B 20 -8 388 667 ; C 117 ; WX 680 ; N u ; B 20 -8 653 484 ; C 118 ; WX 520 ; N v ; B -23 0 534 484 ; C 119 ; WX 780 ; N w ; B -19 0 804 484 ; C 120 ; WX 560 ; N x ; B -16 0 576 484 ; C 121 ; WX 540 ; N y ; B -23 -236 549 484 ; C 122 ; WX 480 ; N z ; B 7 0 476 484 ; C 123 ; WX 280 ; N braceleft ; B 21 -136 260 717 ; C 124 ; WX 600 ; N bar ; B 264 -250 342 750 ; C 125 ; WX 280 ; N braceright ; B 21 -136 260 717 ; C 126 ; WX 600 ; N asciitilde ; B 52 173 556 352 ; C 161 ; WX 300 ; N exclamdown ; B 75 -214 219 494 ; C 162 ; WX 620 ; N cent ; B 116 20 511 651 ; C 163 ; WX 620 ; N sterling ; B 8 -17 631 698 ; C 164 ; WX 140 ; N fraction ; B -188 0 335 681 ; C 165 ; WX 620 ; N yen ; B -22 0 647 681 ; C 166 ; WX 620 ; N florin ; B -29 -155 633 749 ; C 167 ; WX 520 ; N section ; B 33 -178 486 698 ; C 168 ; WX 620 ; N currency ; B 58 89 563 591 ; C 169 ; WX 220 ; N quotesingle ; B 67 458 153 698 ; C 170 ; WX 400 ; N quotedblleft ; B 46 479 348 698 ; C 171 ; WX 360 ; N guillemotleft ; B 51 89 312 437 ; C 172 ; WX 240 ; N guilsinglleft ; B 51 89 189 437 ; C 173 ; WX 240 ; N guilsinglright ; B 51 89 189 437 ; C 174 ; WX 620 ; N fi ; B 20 0 608 734 ; C 175 ; WX 620 ; N fl ; B 20 0 606 734 ; C 177 ; WX 500 ; N endash ; B -15 232 515 292 ; C 178 ; WX 540 ; N dagger ; B 79 -156 455 698 ; C 179 ; WX 540 ; N daggerdbl ; B 79 -156 455 698 ; C 180 ; WX 320 ; N periodcentered ; B 92 196 220 327 ; C 182 ; WX 600 ; N paragraph ; B 14 0 577 681 ; C 183 ; WX 460 ; N bullet ; B 60 170 404 511 ; C 184 ; WX 220 ; N quotesinglbase ; B 46 -108 178 110 ; C 185 ; WX 400 ; N quotedblbase ; B 46 -108 348 110 ; C 186 ; WX 400 ; N quotedblright ; B 46 480 348 698 ; C 187 ; WX 360 ; N guillemotright ; B 51 89 312 437 ; C 188 ; WX 1000 ; N ellipsis ; B 101 -8 898 123 ; C 189 ; WX 1280 ; N perthousand ; B 22 -8 1266 698 ; C 191 ; WX 540 ; N questiondown ; B 23 -217 510 494 ; C 193 ; WX 340 ; N grave ; B 68 571 274 689 ; C 194 ; WX 340 ; N acute ; B 68 571 274 689 ; C 195 ; WX 420 ; N circumflex ; B 68 567 352 685 ; C 196 ; WX 440 ; N tilde ; B 68 572 375 661 ; C 197 ; WX 440 ; N macron ; B 68 587 364 635 ; C 198 ; WX 460 ; N breve ; B 68 568 396 687 ; C 199 ; WX 260 ; N dotaccent ; B 68 564 186 684 ; C 200 ; WX 420 ; N dieresis ; B 68 533 349 655 ; C 202 ; WX 320 ; N ring ; B 68 546 252 731 ; C 203 ; WX 320 ; N cedilla ; B 68 -200 257 0 ; C 205 ; WX 380 ; N hungarumlaut ; B 68 538 311 698 ; C 206 ; WX 320 ; N ogonek ; B 38 -153 258 0 ; C 207 ; WX 420 ; N caron ; B 68 554 352 672 ; C 208 ; WX 1000 ; N emdash ; B -15 232 1015 292 ; C 225 ; WX 1260 ; N AE ; B -36 0 1250 681 ; C 227 ; WX 420 ; N ordfeminine ; B 49 395 393 698 ; C 232 ; WX 600 ; N Lslash ; B 31 0 629 681 ; C 233 ; WX 800 ; N Oslash ; B 44 -53 758 733 ; C 234 ; WX 1240 ; N OE ; B 44 -17 1214 698 ; C 235 ; WX 420 ; N ordmasculine ; B 56 394 361 698 ; C 241 ; WX 860 ; N ae ; B 35 -8 832 494 ; C 245 ; WX 300 ; N dotlessi ; B 20 0 288 484 ; C 248 ; WX 320 ; N lslash ; B 20 0 291 717 ; C 249 ; WX 560 ; N oslash ; B 37 -40 526 534 ; C 250 ; WX 900 ; N oe ; B 37 -8 876 494 ; C 251 ; WX 660 ; N germandbls ; B -109 -110 614 698 ; C -1 ; WX 340 ; N Idieresis ; B 28 0 309 851 ; C -1 ; WX 520 ; N eacute ; B 37 -8 491 689 ; C -1 ; WX 580 ; N abreve ; B 35 -8 587 687 ; C -1 ; WX 680 ; N uhungarumlaut ; B 20 -8 653 698 ; C -1 ; WX 520 ; N ecaron ; B 37 -8 491 672 ; C -1 ; WX 640 ; N Ydieresis ; B -30 0 666 851 ; C -1 ; WX 600 ; N divide ; B 51 10 555 514 ; C -1 ; WX 640 ; N Yacute ; B -30 0 666 866 ; C -1 ; WX 680 ; N Acircumflex ; B -37 0 714 862 ; C -1 ; WX 580 ; N aacute ; B 35 -8 587 689 ; C -1 ; WX 780 ; N Ucircumflex ; B 25 -17 754 862 ; C -1 ; WX 540 ; N yacute ; B -23 -236 549 689 ; C -1 ; WX 520 ; N scommaaccent ; B 40 -251 487 494 ; C -1 ; WX 520 ; N ecircumflex ; B 37 -8 491 685 ; C -1 ; WX 780 ; N Uring ; B 25 -17 754 908 ; C -1 ; WX 780 ; N Udieresis ; B 25 -17 754 851 ; C -1 ; WX 580 ; N aogonek ; B 35 -153 588 494 ; C -1 ; WX 780 ; N Uacute ; B 25 -17 754 866 ; C -1 ; WX 680 ; N uogonek ; B 20 -153 653 484 ; C -1 ; WX 720 ; N Edieresis ; B 31 0 705 851 ; C -1 ; WX 800 ; N Dcroat ; B 31 0 752 681 ; C -1 ; WX 250 ; N commaaccent ; B 66 -251 185 -50 ; C -1 ; WX 740 ; N copyright ; B 24 -17 724 698 ; C -1 ; WX 720 ; N Emacron ; B 31 0 705 812 ; C -1 ; WX 520 ; N ccaron ; B 37 -8 498 672 ; C -1 ; WX 580 ; N aring ; B 35 -8 587 731 ; C -1 ; WX 740 ; N Ncommaaccent ; B 26 -251 722 681 ; C -1 ; WX 300 ; N lacute ; B 20 0 294 866 ; C -1 ; WX 580 ; N agrave ; B 35 -8 587 689 ; C -1 ; WX 620 ; N Tcommaaccent ; B -37 -251 656 681 ; C -1 ; WX 740 ; N Cacute ; B 44 -17 702 866 ; C -1 ; WX 580 ; N atilde ; B 35 -8 587 661 ; C -1 ; WX 720 ; N Edotaccent ; B 31 0 705 880 ; C -1 ; WX 520 ; N scaron ; B 40 -8 487 672 ; C -1 ; WX 520 ; N scedilla ; B 40 -200 487 494 ; C -1 ; WX 300 ; N iacute ; B 20 0 294 689 ; C -1 ; WX 471 ; N lozenge ; B 10 0 462 728 ; C -1 ; WX 720 ; N Rcaron ; B 31 0 757 849 ; C -1 ; WX 800 ; N Gcommaaccent ; B 44 -251 778 698 ; C -1 ; WX 680 ; N ucircumflex ; B 20 -8 653 685 ; C -1 ; WX 580 ; N acircumflex ; B 35 -8 587 685 ; C -1 ; WX 680 ; N Amacron ; B -37 0 714 812 ; C -1 ; WX 440 ; N rcaron ; B 20 0 447 672 ; C -1 ; WX 520 ; N ccedilla ; B 37 -200 498 494 ; C -1 ; WX 640 ; N Zdotaccent ; B 10 0 656 880 ; C -1 ; WX 620 ; N Thorn ; B 31 0 613 681 ; C -1 ; WX 800 ; N Omacron ; B 44 -17 758 812 ; C -1 ; WX 720 ; N Racute ; B 31 0 757 866 ; C -1 ; WX 660 ; N Sacute ; B 28 -17 634 866 ; C -1 ; WX 690 ; N dcaron ; B 37 -8 701 732 ; C -1 ; WX 780 ; N Umacron ; B 25 -17 754 812 ; C -1 ; WX 680 ; N uring ; B 20 -8 653 731 ; C -1 ; WX 372 ; N threesuperior ; B 12 269 360 698 ; C -1 ; WX 800 ; N Ograve ; B 44 -17 758 866 ; C -1 ; WX 680 ; N Agrave ; B -37 0 714 866 ; C -1 ; WX 680 ; N Abreve ; B -37 0 714 864 ; C -1 ; WX 600 ; N multiply ; B 51 9 555 513 ; C -1 ; WX 680 ; N uacute ; B 20 -8 653 689 ; C -1 ; WX 620 ; N Tcaron ; B -37 0 656 849 ; C -1 ; WX 476 ; N partialdiff ; B 34 -21 442 707 ; C -1 ; WX 540 ; N ydieresis ; B -23 -236 549 674 ; C -1 ; WX 740 ; N Nacute ; B 26 0 722 866 ; C -1 ; WX 300 ; N icircumflex ; B 8 0 292 685 ; C -1 ; WX 720 ; N Ecircumflex ; B 31 0 705 862 ; C -1 ; WX 580 ; N adieresis ; B 35 -8 587 674 ; C -1 ; WX 520 ; N edieresis ; B 37 -8 491 674 ; C -1 ; WX 520 ; N cacute ; B 37 -8 498 689 ; C -1 ; WX 660 ; N nacute ; B 20 0 649 689 ; C -1 ; WX 680 ; N umacron ; B 20 -8 653 635 ; C -1 ; WX 740 ; N Ncaron ; B 26 0 722 849 ; C -1 ; WX 340 ; N Iacute ; B 31 0 301 866 ; C -1 ; WX 600 ; N plusminus ; B 51 0 555 513 ; C -1 ; WX 600 ; N brokenbar ; B 264 -175 342 675 ; C -1 ; WX 740 ; N registered ; B 23 -17 723 698 ; C -1 ; WX 800 ; N Gbreve ; B 44 -17 778 864 ; C -1 ; WX 340 ; N Idotaccent ; B 31 0 301 880 ; C -1 ; WX 600 ; N summation ; B 15 -10 586 706 ; C -1 ; WX 720 ; N Egrave ; B 31 0 705 866 ; C -1 ; WX 440 ; N racute ; B 20 0 447 689 ; C -1 ; WX 560 ; N omacron ; B 37 -8 526 635 ; C -1 ; WX 640 ; N Zacute ; B 10 0 656 866 ; C -1 ; WX 640 ; N Zcaron ; B 10 0 656 849 ; C -1 ; WX 549 ; N greaterequal ; B 29 0 526 635 ; C -1 ; WX 800 ; N Eth ; B 31 0 752 681 ; C -1 ; WX 740 ; N Ccedilla ; B 44 -200 702 698 ; C -1 ; WX 300 ; N lcommaaccent ; B 20 -251 286 717 ; C -1 ; WX 380 ; N tcaron ; B 20 -8 388 747 ; C -1 ; WX 520 ; N eogonek ; B 37 -154 491 494 ; C -1 ; WX 780 ; N Uogonek ; B 25 -153 754 681 ; C -1 ; WX 680 ; N Aacute ; B -37 0 714 866 ; C -1 ; WX 680 ; N Adieresis ; B -37 0 714 851 ; C -1 ; WX 520 ; N egrave ; B 37 -8 491 689 ; C -1 ; WX 480 ; N zacute ; B 7 0 476 689 ; C -1 ; WX 300 ; N iogonek ; B 20 -153 289 654 ; C -1 ; WX 800 ; N Oacute ; B 44 -17 758 866 ; C -1 ; WX 560 ; N oacute ; B 37 -8 526 689 ; C -1 ; WX 580 ; N amacron ; B 35 -8 587 635 ; C -1 ; WX 520 ; N sacute ; B 40 -8 487 689 ; C -1 ; WX 300 ; N idieresis ; B 8 0 289 674 ; C -1 ; WX 800 ; N Ocircumflex ; B 44 -17 758 862 ; C -1 ; WX 780 ; N Ugrave ; B 25 -17 754 866 ; C -1 ; WX 614 ; N Delta ; B 6 0 608 688 ; C -1 ; WX 620 ; N thorn ; B 20 -228 583 717 ; C -1 ; WX 372 ; N twosuperior ; B 20 279 367 698 ; C -1 ; WX 800 ; N Odieresis ; B 44 -17 758 851 ; C -1 ; WX 680 ; N mu ; B 20 -251 653 484 ; C -1 ; WX 300 ; N igrave ; B 20 0 288 689 ; C -1 ; WX 560 ; N ohungarumlaut ; B 37 -8 526 698 ; C -1 ; WX 720 ; N Eogonek ; B 31 -153 705 681 ; C -1 ; WX 620 ; N dcroat ; B 37 -8 612 717 ; C -1 ; WX 930 ; N threequarters ; B 52 0 889 691 ; C -1 ; WX 660 ; N Scedilla ; B 28 -200 634 698 ; C -1 ; WX 372 ; N lcaron ; B 20 0 383 732 ; C -1 ; WX 720 ; N Kcommaaccent ; B 31 -251 750 681 ; C -1 ; WX 600 ; N Lacute ; B 31 0 629 866 ; C -1 ; WX 980 ; N trademark ; B 34 277 930 681 ; C -1 ; WX 520 ; N edotaccent ; B 37 -8 491 703 ; C -1 ; WX 340 ; N Igrave ; B 31 0 301 866 ; C -1 ; WX 340 ; N Imacron ; B 18 0 314 812 ; C -1 ; WX 600 ; N Lcaron ; B 31 0 629 707 ; C -1 ; WX 930 ; N onehalf ; B 80 0 885 681 ; C -1 ; WX 549 ; N lessequal ; B 29 0 526 635 ; C -1 ; WX 560 ; N ocircumflex ; B 37 -8 526 685 ; C -1 ; WX 660 ; N ntilde ; B 20 0 649 661 ; C -1 ; WX 780 ; N Uhungarumlaut ; B 25 -17 754 875 ; C -1 ; WX 720 ; N Eacute ; B 31 0 705 866 ; C -1 ; WX 520 ; N emacron ; B 37 -8 491 635 ; C -1 ; WX 540 ; N gbreve ; B 17 -243 542 687 ; C -1 ; WX 930 ; N onequarter ; B 80 0 869 681 ; C -1 ; WX 660 ; N Scaron ; B 28 -17 634 849 ; C -1 ; WX 660 ; N Scommaaccent ; B 28 -251 634 698 ; C -1 ; WX 800 ; N Ohungarumlaut ; B 44 -17 758 875 ; C -1 ; WX 400 ; N degree ; B 50 398 350 698 ; C -1 ; WX 560 ; N ograve ; B 37 -8 526 689 ; C -1 ; WX 740 ; N Ccaron ; B 44 -17 702 849 ; C -1 ; WX 680 ; N ugrave ; B 20 -8 653 689 ; C -1 ; WX 453 ; N radical ; B -4 -80 458 762 ; C -1 ; WX 800 ; N Dcaron ; B 31 0 752 849 ; C -1 ; WX 440 ; N rcommaaccent ; B 20 -251 447 494 ; C -1 ; WX 740 ; N Ntilde ; B 26 0 722 838 ; C -1 ; WX 560 ; N otilde ; B 37 -8 526 661 ; C -1 ; WX 720 ; N Rcommaaccent ; B 31 -251 757 681 ; C -1 ; WX 600 ; N Lcommaaccent ; B 31 -251 629 681 ; C -1 ; WX 680 ; N Atilde ; B -37 0 714 838 ; C -1 ; WX 680 ; N Aogonek ; B -37 -153 718 681 ; C -1 ; WX 680 ; N Aring ; B -37 0 714 908 ; C -1 ; WX 800 ; N Otilde ; B 44 -17 758 838 ; C -1 ; WX 480 ; N zdotaccent ; B 7 0 476 703 ; C -1 ; WX 720 ; N Ecaron ; B 31 0 705 849 ; C -1 ; WX 340 ; N Iogonek ; B 31 -153 302 681 ; C -1 ; WX 620 ; N kcommaaccent ; B 20 -251 628 717 ; C -1 ; WX 600 ; N minus ; B 51 224 555 300 ; C -1 ; WX 340 ; N Icircumflex ; B 28 0 312 862 ; C -1 ; WX 660 ; N ncaron ; B 20 0 649 672 ; C -1 ; WX 380 ; N tcommaaccent ; B 20 -251 388 667 ; C -1 ; WX 600 ; N logicalnot ; B 51 128 555 398 ; C -1 ; WX 560 ; N odieresis ; B 37 -8 526 674 ; C -1 ; WX 680 ; N udieresis ; B 20 -8 653 674 ; C -1 ; WX 549 ; N notequal ; B 15 -16 540 529 ; C -1 ; WX 540 ; N gcommaaccent ; B 17 -243 542 765 ; C -1 ; WX 560 ; N eth ; B 37 -8 526 734 ; C -1 ; WX 480 ; N zcaron ; B 7 0 476 672 ; C -1 ; WX 660 ; N ncommaaccent ; B 20 -251 649 494 ; C -1 ; WX 372 ; N onesuperior ; B 80 279 302 688 ; C -1 ; WX 300 ; N imacron ; B -2 0 294 635 ; EndCharMetrics StartKernData StartKernPairs 882 KPX A T 1 KPX A Tcaron 1 KPX A Tcommaaccent 1 KPX A V -56 KPX A W -40 KPX A Y -35 KPX A Yacute -35 KPX A Ydieresis -35 KPX A v 7 KPX A w 4 KPX A y 32 KPX A yacute 32 KPX A ydieresis 32 KPX Aacute T 1 KPX Aacute Tcaron 1 KPX Aacute Tcommaaccent 1 KPX Aacute V -56 KPX Aacute W -40 KPX Aacute Y -35 KPX Aacute Yacute -35 KPX Aacute Ydieresis -35 KPX Aacute v 7 KPX Aacute w 4 KPX Aacute y 32 KPX Aacute yacute 32 KPX Aacute ydieresis 32 KPX Abreve T 1 KPX Abreve Tcaron 1 KPX Abreve Tcommaaccent 1 KPX Abreve V -56 KPX Abreve W -40 KPX Abreve Y -35 KPX Abreve Yacute -35 KPX Abreve Ydieresis -35 KPX Abreve v 7 KPX Abreve w 4 KPX Abreve y 32 KPX Abreve yacute 32 KPX Abreve ydieresis 32 KPX Acircumflex T 1 KPX Acircumflex Tcaron 1 KPX Acircumflex Tcommaaccent 1 KPX Acircumflex V -56 KPX Acircumflex W -40 KPX Acircumflex Y -35 KPX Acircumflex Yacute -35 KPX Acircumflex Ydieresis -35 KPX Acircumflex v 7 KPX Acircumflex w 4 KPX Acircumflex y 32 KPX Acircumflex yacute 32 KPX Acircumflex ydieresis 32 KPX Adieresis T 1 KPX Adieresis Tcaron 1 KPX Adieresis Tcommaaccent 1 KPX Adieresis V -56 KPX Adieresis W -40 KPX Adieresis Y -35 KPX Adieresis Yacute -35 KPX Adieresis Ydieresis -35 KPX Adieresis v 7 KPX Adieresis w 4 KPX Adieresis y 32 KPX Adieresis yacute 32 KPX Adieresis ydieresis 32 KPX Agrave T 1 KPX Agrave Tcaron 1 KPX Agrave Tcommaaccent 1 KPX Agrave V -56 KPX Agrave W -40 KPX Agrave Y -35 KPX Agrave Yacute -35 KPX Agrave Ydieresis -35 KPX Agrave v 7 KPX Agrave w 4 KPX Agrave y 32 KPX Agrave yacute 32 KPX Agrave ydieresis 32 KPX Amacron T 1 KPX Amacron Tcaron 1 KPX Amacron Tcommaaccent 1 KPX Amacron V -56 KPX Amacron W -40 KPX Amacron Y -35 KPX Amacron Yacute -35 KPX Amacron Ydieresis -35 KPX Amacron v 7 KPX Amacron w 4 KPX Amacron y 32 KPX Amacron yacute 32 KPX Amacron ydieresis 32 KPX Aogonek T 1 KPX Aogonek Tcaron 1 KPX Aogonek Tcommaaccent 1 KPX Aogonek V -56 KPX Aogonek W -40 KPX Aogonek Y -35 KPX Aogonek Yacute -35 KPX Aogonek Ydieresis -35 KPX Aogonek v 7 KPX Aogonek w 4 KPX Aogonek y 32 KPX Aogonek yacute 32 KPX Aogonek ydieresis 32 KPX Aring T 1 KPX Aring Tcaron 1 KPX Aring Tcommaaccent 1 KPX Aring V -56 KPX Aring W -40 KPX Aring Y -35 KPX Aring Yacute -35 KPX Aring Ydieresis -35 KPX Aring v 7 KPX Aring w 4 KPX Aring y 32 KPX Aring yacute 32 KPX Aring ydieresis 32 KPX Atilde T 1 KPX Atilde Tcaron 1 KPX Atilde Tcommaaccent 1 KPX Atilde V -56 KPX Atilde W -40 KPX Atilde Y -35 KPX Atilde Yacute -35 KPX Atilde Ydieresis -35 KPX Atilde v 7 KPX Atilde w 4 KPX Atilde y 32 KPX Atilde yacute 32 KPX Atilde ydieresis 32 KPX F A -21 KPX F Aacute -21 KPX F Abreve -21 KPX F Acircumflex -21 KPX F Adieresis -21 KPX F Agrave -21 KPX F Amacron -21 KPX F Aogonek -21 KPX F Aring -21 KPX F Atilde -21 KPX F comma -41 KPX F period -46 KPX L T 28 KPX L Tcaron 28 KPX L Tcommaaccent 28 KPX L V -4 KPX L W 1 KPX L Y 13 KPX L Yacute 13 KPX L Ydieresis 13 KPX L y 79 KPX L yacute 79 KPX L ydieresis 79 KPX Lacute T 28 KPX Lacute Tcaron 28 KPX Lacute Tcommaaccent 28 KPX Lacute V -4 KPX Lacute W 1 KPX Lacute Y 13 KPX Lacute Yacute 13 KPX Lacute Ydieresis 13 KPX Lacute y 79 KPX Lacute yacute 79 KPX Lacute ydieresis 79 KPX Lcaron T 28 KPX Lcaron Tcaron 28 KPX Lcaron Tcommaaccent 28 KPX Lcaron V -4 KPX Lcaron W 1 KPX Lcaron Y 13 KPX Lcaron Yacute 13 KPX Lcaron Ydieresis 13 KPX Lcaron y 79 KPX Lcaron yacute 79 KPX Lcaron ydieresis 79 KPX Lcommaaccent T 28 KPX Lcommaaccent Tcaron 28 KPX Lcommaaccent Tcommaaccent 28 KPX Lcommaaccent V -4 KPX Lcommaaccent W 1 KPX Lcommaaccent Y 13 KPX Lcommaaccent Yacute 13 KPX Lcommaaccent Ydieresis 13 KPX Lcommaaccent y 79 KPX Lcommaaccent yacute 79 KPX Lcommaaccent ydieresis 79 KPX Lslash T 28 KPX Lslash Tcaron 28 KPX Lslash Tcommaaccent 28 KPX Lslash V -4 KPX Lslash W 1 KPX Lslash Y 13 KPX Lslash Yacute 13 KPX Lslash Ydieresis 13 KPX Lslash y 79 KPX Lslash yacute 79 KPX Lslash ydieresis 79 KPX P A -8 KPX P Aacute -8 KPX P Abreve -8 KPX P Acircumflex -8 KPX P Adieresis -8 KPX P Agrave -8 KPX P Amacron -8 KPX P Aogonek -8 KPX P Aring -8 KPX P Atilde -8 KPX P comma -55 KPX P period -60 KPX R T 71 KPX R Tcaron 71 KPX R Tcommaaccent 71 KPX R V 8 KPX R W 13 KPX R Y 26 KPX R Yacute 26 KPX R Ydieresis 26 KPX R y 59 KPX R yacute 59 KPX R ydieresis 59 KPX Racute T 71 KPX Racute Tcaron 71 KPX Racute Tcommaaccent 71 KPX Racute V 8 KPX Racute W 13 KPX Racute Y 26 KPX Racute Yacute 26 KPX Racute Ydieresis 26 KPX Racute y 59 KPX Racute yacute 59 KPX Racute ydieresis 59 KPX Rcaron T 71 KPX Rcaron Tcaron 71 KPX Rcaron Tcommaaccent 71 KPX Rcaron V 8 KPX Rcaron W 13 KPX Rcaron Y 26 KPX Rcaron Yacute 26 KPX Rcaron Ydieresis 26 KPX Rcaron y 59 KPX Rcaron yacute 59 KPX Rcaron ydieresis 59 KPX Rcommaaccent T 71 KPX Rcommaaccent Tcaron 71 KPX Rcommaaccent Tcommaaccent 71 KPX Rcommaaccent V 8 KPX Rcommaaccent W 13 KPX Rcommaaccent Y 26 KPX Rcommaaccent Yacute 26 KPX Rcommaaccent Ydieresis 26 KPX Rcommaaccent y 59 KPX Rcommaaccent yacute 59 KPX Rcommaaccent ydieresis 59 KPX T A 1 KPX T Aacute 1 KPX T Abreve 1 KPX T Acircumflex 1 KPX T Adieresis 1 KPX T Agrave 1 KPX T Amacron 1 KPX T Aogonek 1 KPX T Aring 1 KPX T Atilde 1 KPX T a 17 KPX T aacute 17 KPX T abreve 17 KPX T acircumflex 17 KPX T adieresis 17 KPX T agrave 17 KPX T amacron 17 KPX T aogonek 17 KPX T aring 17 KPX T atilde 17 KPX T c 14 KPX T cacute 14 KPX T ccaron 14 KPX T ccedilla 14 KPX T comma -28 KPX T e 13 KPX T eacute 13 KPX T ecaron 13 KPX T ecircumflex 13 KPX T edieresis 13 KPX T edotaccent 13 KPX T egrave 13 KPX T emacron 13 KPX T eogonek 13 KPX T hyphen 90 KPX T i 42 KPX T iacute 42 KPX T icircumflex 42 KPX T idieresis 42 KPX T igrave 42 KPX T imacron 42 KPX T iogonek 42 KPX T o 15 KPX T oacute 15 KPX T ocircumflex 15 KPX T odieresis 15 KPX T ograve 15 KPX T ohungarumlaut 15 KPX T omacron 15 KPX T oslash 15 KPX T otilde 15 KPX T period -33 KPX T r 38 KPX T racute 38 KPX T rcaron 38 KPX T rcommaaccent 38 KPX T s 16 KPX T sacute 16 KPX T scaron 16 KPX T scedilla 16 KPX T scommaaccent 16 KPX Tcaron A 1 KPX Tcaron Aacute 1 KPX Tcaron Abreve 1 KPX Tcaron Acircumflex 1 KPX Tcaron Adieresis 1 KPX Tcaron Agrave 1 KPX Tcaron Amacron 1 KPX Tcaron Aogonek 1 KPX Tcaron Aring 1 KPX Tcaron Atilde 1 KPX Tcaron a 17 KPX Tcaron aacute 17 KPX Tcaron abreve 17 KPX Tcaron acircumflex 17 KPX Tcaron adieresis 17 KPX Tcaron agrave 17 KPX Tcaron amacron 17 KPX Tcaron aogonek 17 KPX Tcaron aring 17 KPX Tcaron atilde 17 KPX Tcaron c 14 KPX Tcaron cacute 14 KPX Tcaron ccaron 14 KPX Tcaron ccedilla 14 KPX Tcaron comma -28 KPX Tcaron e 13 KPX Tcaron eacute 13 KPX Tcaron ecaron 13 KPX Tcaron ecircumflex 13 KPX Tcaron edieresis 13 KPX Tcaron edotaccent 13 KPX Tcaron egrave 13 KPX Tcaron emacron 13 KPX Tcaron eogonek 13 KPX Tcaron hyphen 90 KPX Tcaron i 42 KPX Tcaron iacute 42 KPX Tcaron icircumflex 42 KPX Tcaron idieresis 42 KPX Tcaron igrave 42 KPX Tcaron imacron 42 KPX Tcaron iogonek 42 KPX Tcaron o 15 KPX Tcaron oacute 15 KPX Tcaron ocircumflex 15 KPX Tcaron odieresis 15 KPX Tcaron ograve 15 KPX Tcaron ohungarumlaut 15 KPX Tcaron omacron 15 KPX Tcaron oslash 15 KPX Tcaron otilde 15 KPX Tcaron period -33 KPX Tcaron r 38 KPX Tcaron racute 38 KPX Tcaron rcaron 38 KPX Tcaron rcommaaccent 38 KPX Tcaron s 16 KPX Tcaron sacute 16 KPX Tcaron scaron 16 KPX Tcaron scedilla 16 KPX Tcaron scommaaccent 16 KPX Tcommaaccent A 1 KPX Tcommaaccent Aacute 1 KPX Tcommaaccent Abreve 1 KPX Tcommaaccent Acircumflex 1 KPX Tcommaaccent Adieresis 1 KPX Tcommaaccent Agrave 1 KPX Tcommaaccent Amacron 1 KPX Tcommaaccent Aogonek 1 KPX Tcommaaccent Aring 1 KPX Tcommaaccent Atilde 1 KPX Tcommaaccent a 17 KPX Tcommaaccent aacute 17 KPX Tcommaaccent abreve 17 KPX Tcommaaccent acircumflex 17 KPX Tcommaaccent adieresis 17 KPX Tcommaaccent agrave 17 KPX Tcommaaccent amacron 17 KPX Tcommaaccent aogonek 17 KPX Tcommaaccent aring 17 KPX Tcommaaccent atilde 17 KPX Tcommaaccent c 14 KPX Tcommaaccent cacute 14 KPX Tcommaaccent ccaron 14 KPX Tcommaaccent ccedilla 14 KPX Tcommaaccent comma -28 KPX Tcommaaccent e 13 KPX Tcommaaccent eacute 13 KPX Tcommaaccent ecaron 13 KPX Tcommaaccent ecircumflex 13 KPX Tcommaaccent edieresis 13 KPX Tcommaaccent edotaccent 13 KPX Tcommaaccent egrave 13 KPX Tcommaaccent emacron 13 KPX Tcommaaccent eogonek 13 KPX Tcommaaccent hyphen 90 KPX Tcommaaccent i 42 KPX Tcommaaccent iacute 42 KPX Tcommaaccent icircumflex 42 KPX Tcommaaccent idieresis 42 KPX Tcommaaccent igrave 42 KPX Tcommaaccent imacron 42 KPX Tcommaaccent iogonek 42 KPX Tcommaaccent o 15 KPX Tcommaaccent oacute 15 KPX Tcommaaccent ocircumflex 15 KPX Tcommaaccent odieresis 15 KPX Tcommaaccent ograve 15 KPX Tcommaaccent ohungarumlaut 15 KPX Tcommaaccent omacron 15 KPX Tcommaaccent oslash 15 KPX Tcommaaccent otilde 15 KPX Tcommaaccent period -33 KPX Tcommaaccent r 38 KPX Tcommaaccent racute 38 KPX Tcommaaccent rcaron 38 KPX Tcommaaccent rcommaaccent 38 KPX Tcommaaccent s 16 KPX Tcommaaccent sacute 16 KPX Tcommaaccent scaron 16 KPX Tcommaaccent scedilla 16 KPX Tcommaaccent scommaaccent 16 KPX V A -66 KPX V Aacute -66 KPX V Abreve -66 KPX V Acircumflex -66 KPX V Adieresis -66 KPX V Agrave -66 KPX V Amacron -66 KPX V Aogonek -66 KPX V Aring -66 KPX V Atilde -66 KPX V a -69 KPX V aacute -69 KPX V abreve -69 KPX V acircumflex -69 KPX V adieresis -69 KPX V agrave -69 KPX V amacron -69 KPX V aogonek -69 KPX V aring -69 KPX V atilde -69 KPX V comma -34 KPX V e -72 KPX V eacute -72 KPX V ecaron -72 KPX V ecircumflex -72 KPX V edieresis -72 KPX V edotaccent -72 KPX V egrave -72 KPX V emacron -72 KPX V eogonek -72 KPX V hyphen 11 KPX V i -20 KPX V iacute -20 KPX V iogonek -20 KPX V o -71 KPX V oacute -71 KPX V ocircumflex -71 KPX V odieresis -71 KPX V ograve -71 KPX V ohungarumlaut -71 KPX V omacron -71 KPX V oslash -71 KPX V otilde -71 KPX V period -40 KPX V r -41 KPX V racute -41 KPX V rcaron -41 KPX V rcommaaccent -41 KPX V u -38 KPX V uacute -38 KPX V ucircumflex -38 KPX V udieresis -38 KPX V ugrave -38 KPX V uhungarumlaut -38 KPX V umacron -38 KPX V uogonek -38 KPX V uring -38 KPX V y 15 KPX V yacute 15 KPX V ydieresis 15 KPX W A -64 KPX W Aacute -64 KPX W Abreve -64 KPX W Acircumflex -64 KPX W Adieresis -64 KPX W Agrave -64 KPX W Amacron -64 KPX W Aogonek -64 KPX W Aring -64 KPX W Atilde -64 KPX W a -66 KPX W aacute -66 KPX W abreve -66 KPX W acircumflex -66 KPX W adieresis -66 KPX W agrave -66 KPX W amacron -66 KPX W aogonek -66 KPX W aring -66 KPX W atilde -66 KPX W comma -34 KPX W e -69 KPX W eacute -69 KPX W ecaron -69 KPX W ecircumflex -69 KPX W edieresis -69 KPX W edotaccent -69 KPX W egrave -69 KPX W emacron -69 KPX W eogonek -69 KPX W hyphen 11 KPX W i -20 KPX W iacute -20 KPX W iogonek -20 KPX W o -68 KPX W oacute -68 KPX W ocircumflex -68 KPX W odieresis -68 KPX W ograve -68 KPX W ohungarumlaut -68 KPX W omacron -68 KPX W oslash -68 KPX W otilde -68 KPX W period -40 KPX W r -41 KPX W racute -41 KPX W rcaron -41 KPX W rcommaaccent -41 KPX W u -38 KPX W uacute -38 KPX W ucircumflex -38 KPX W udieresis -38 KPX W ugrave -38 KPX W uhungarumlaut -38 KPX W umacron -38 KPX W uogonek -38 KPX W uring -38 KPX W y 15 KPX W yacute 15 KPX W ydieresis 15 KPX Y A -53 KPX Y Aacute -53 KPX Y Abreve -53 KPX Y Acircumflex -53 KPX Y Adieresis -53 KPX Y Agrave -53 KPX Y Amacron -53 KPX Y Aogonek -53 KPX Y Aring -53 KPX Y Atilde -53 KPX Y a -54 KPX Y aacute -54 KPX Y abreve -54 KPX Y acircumflex -54 KPX Y adieresis -54 KPX Y agrave -54 KPX Y amacron -54 KPX Y aogonek -54 KPX Y aring -54 KPX Y atilde -54 KPX Y comma -34 KPX Y e -58 KPX Y eacute -58 KPX Y ecaron -58 KPX Y ecircumflex -58 KPX Y edieresis -58 KPX Y edotaccent -58 KPX Y egrave -58 KPX Y emacron -58 KPX Y eogonek -58 KPX Y hyphen 11 KPX Y i -37 KPX Y iacute -37 KPX Y icircumflex -37 KPX Y iogonek -37 KPX Y o -57 KPX Y oacute -57 KPX Y ocircumflex -57 KPX Y odieresis -57 KPX Y ograve -57 KPX Y ohungarumlaut -57 KPX Y omacron -57 KPX Y oslash -57 KPX Y otilde -57 KPX Y p -31 KPX Y period -40 KPX Y q -55 KPX Y u -38 KPX Y uacute -38 KPX Y ucircumflex -38 KPX Y udieresis -38 KPX Y ugrave -38 KPX Y uhungarumlaut -38 KPX Y umacron -38 KPX Y uogonek -38 KPX Y uring -38 KPX Y v 15 KPX Yacute A -53 KPX Yacute Aacute -53 KPX Yacute Abreve -53 KPX Yacute Acircumflex -53 KPX Yacute Adieresis -53 KPX Yacute Agrave -53 KPX Yacute Amacron -53 KPX Yacute Aogonek -53 KPX Yacute Aring -53 KPX Yacute Atilde -53 KPX Yacute a -54 KPX Yacute aacute -54 KPX Yacute abreve -54 KPX Yacute acircumflex -54 KPX Yacute adieresis -54 KPX Yacute agrave -54 KPX Yacute amacron -54 KPX Yacute aogonek -54 KPX Yacute aring -54 KPX Yacute atilde -54 KPX Yacute comma -34 KPX Yacute e -58 KPX Yacute eacute -58 KPX Yacute ecaron -58 KPX Yacute ecircumflex -58 KPX Yacute edieresis -58 KPX Yacute edotaccent -58 KPX Yacute egrave -58 KPX Yacute emacron -58 KPX Yacute eogonek -58 KPX Yacute hyphen 11 KPX Yacute i -37 KPX Yacute iacute -37 KPX Yacute iogonek -37 KPX Yacute o -57 KPX Yacute oacute -57 KPX Yacute ocircumflex -57 KPX Yacute odieresis -57 KPX Yacute ograve -57 KPX Yacute ohungarumlaut -57 KPX Yacute omacron -57 KPX Yacute oslash -57 KPX Yacute otilde -57 KPX Yacute p -31 KPX Yacute period -40 KPX Yacute q -55 KPX Yacute u -38 KPX Yacute uacute -38 KPX Yacute ucircumflex -38 KPX Yacute udieresis -38 KPX Yacute ugrave -38 KPX Yacute uhungarumlaut -38 KPX Yacute umacron -38 KPX Yacute uogonek -38 KPX Yacute uring -38 KPX Yacute v 15 KPX Ydieresis A -53 KPX Ydieresis Aacute -53 KPX Ydieresis Abreve -53 KPX Ydieresis Acircumflex -53 KPX Ydieresis Adieresis -53 KPX Ydieresis Agrave -53 KPX Ydieresis Amacron -53 KPX Ydieresis Aogonek -53 KPX Ydieresis Aring -53 KPX Ydieresis Atilde -53 KPX Ydieresis a -54 KPX Ydieresis aacute -54 KPX Ydieresis abreve -54 KPX Ydieresis acircumflex -54 KPX Ydieresis adieresis -54 KPX Ydieresis agrave -54 KPX Ydieresis amacron -54 KPX Ydieresis aogonek -54 KPX Ydieresis aring -54 KPX Ydieresis atilde -54 KPX Ydieresis comma -34 KPX Ydieresis e -58 KPX Ydieresis eacute -58 KPX Ydieresis ecaron -58 KPX Ydieresis ecircumflex -58 KPX Ydieresis edieresis -58 KPX Ydieresis edotaccent -58 KPX Ydieresis egrave -58 KPX Ydieresis emacron -58 KPX Ydieresis eogonek -58 KPX Ydieresis hyphen 11 KPX Ydieresis i -37 KPX Ydieresis iacute -37 KPX Ydieresis iogonek -37 KPX Ydieresis o -57 KPX Ydieresis oacute -57 KPX Ydieresis ocircumflex -57 KPX Ydieresis odieresis -57 KPX Ydieresis ograve -57 KPX Ydieresis ohungarumlaut -57 KPX Ydieresis omacron -57 KPX Ydieresis oslash -57 KPX Ydieresis otilde -57 KPX Ydieresis p -31 KPX Ydieresis period -40 KPX Ydieresis q -55 KPX Ydieresis u -38 KPX Ydieresis uacute -38 KPX Ydieresis ucircumflex -38 KPX Ydieresis udieresis -38 KPX Ydieresis ugrave -38 KPX Ydieresis uhungarumlaut -38 KPX Ydieresis umacron -38 KPX Ydieresis uogonek -38 KPX Ydieresis uring -38 KPX Ydieresis v 15 KPX f f 29 KPX r c 7 KPX r cacute 7 KPX r ccaron 7 KPX r ccedilla 7 KPX r comma -58 KPX r d 7 KPX r dcroat 7 KPX r e 7 KPX r eacute 7 KPX r ecaron 7 KPX r ecircumflex 7 KPX r edieresis 7 KPX r edotaccent 7 KPX r egrave 7 KPX r emacron 7 KPX r eogonek 7 KPX r f 33 KPX r g -4 KPX r gbreve -4 KPX r gcommaaccent -4 KPX r h -21 KPX r hyphen 70 KPX r m 31 KPX r n 31 KPX r nacute 31 KPX r ncaron 31 KPX r ncommaaccent 31 KPX r ntilde 31 KPX r o 8 KPX r oacute 8 KPX r ocircumflex 8 KPX r odieresis 8 KPX r ograve 8 KPX r ohungarumlaut 8 KPX r omacron 8 KPX r oslash 8 KPX r otilde 8 KPX r period -64 KPX r q 9 KPX racute c 7 KPX racute cacute 7 KPX racute ccaron 7 KPX racute ccedilla 7 KPX racute comma -58 KPX racute d 7 KPX racute dcroat 7 KPX racute e 7 KPX racute eacute 7 KPX racute ecaron 7 KPX racute ecircumflex 7 KPX racute edieresis 7 KPX racute edotaccent 7 KPX racute egrave 7 KPX racute emacron 7 KPX racute eogonek 7 KPX racute f 33 KPX racute g -4 KPX racute gbreve -4 KPX racute gcommaaccent -4 KPX racute h -21 KPX racute hyphen 70 KPX racute m 31 KPX racute n 31 KPX racute nacute 31 KPX racute ncaron 31 KPX racute ncommaaccent 31 KPX racute ntilde 31 KPX racute o 8 KPX racute oacute 8 KPX racute ocircumflex 8 KPX racute odieresis 8 KPX racute ograve 8 KPX racute ohungarumlaut 8 KPX racute omacron 8 KPX racute oslash 8 KPX racute otilde 8 KPX racute period -64 KPX racute q 9 KPX rcaron c 7 KPX rcaron cacute 7 KPX rcaron ccaron 7 KPX rcaron ccedilla 7 KPX rcaron comma -58 KPX rcaron d 7 KPX rcaron dcroat 7 KPX rcaron e 7 KPX rcaron eacute 7 KPX rcaron ecaron 7 KPX rcaron ecircumflex 7 KPX rcaron edieresis 7 KPX rcaron edotaccent 7 KPX rcaron egrave 7 KPX rcaron emacron 7 KPX rcaron eogonek 7 KPX rcaron f 33 KPX rcaron g -4 KPX rcaron gbreve -4 KPX rcaron gcommaaccent -4 KPX rcaron h -21 KPX rcaron hyphen 70 KPX rcaron m 31 KPX rcaron n 31 KPX rcaron nacute 31 KPX rcaron ncaron 31 KPX rcaron ncommaaccent 31 KPX rcaron ntilde 31 KPX rcaron o 8 KPX rcaron oacute 8 KPX rcaron ocircumflex 8 KPX rcaron odieresis 8 KPX rcaron ograve 8 KPX rcaron ohungarumlaut 8 KPX rcaron omacron 8 KPX rcaron oslash 8 KPX rcaron otilde 8 KPX rcaron period -64 KPX rcaron q 9 KPX rcommaaccent c 7 KPX rcommaaccent cacute 7 KPX rcommaaccent ccaron 7 KPX rcommaaccent ccedilla 7 KPX rcommaaccent comma -58 KPX rcommaaccent d 7 KPX rcommaaccent dcroat 7 KPX rcommaaccent e 7 KPX rcommaaccent eacute 7 KPX rcommaaccent ecaron 7 KPX rcommaaccent ecircumflex 7 KPX rcommaaccent edieresis 7 KPX rcommaaccent edotaccent 7 KPX rcommaaccent egrave 7 KPX rcommaaccent emacron 7 KPX rcommaaccent eogonek 7 KPX rcommaaccent f 33 KPX rcommaaccent g -4 KPX rcommaaccent gbreve -4 KPX rcommaaccent gcommaaccent -4 KPX rcommaaccent h -21 KPX rcommaaccent hyphen 70 KPX rcommaaccent m 31 KPX rcommaaccent n 31 KPX rcommaaccent nacute 31 KPX rcommaaccent ncaron 31 KPX rcommaaccent ncommaaccent 31 KPX rcommaaccent ntilde 31 KPX rcommaaccent o 8 KPX rcommaaccent oacute 8 KPX rcommaaccent ocircumflex 8 KPX rcommaaccent odieresis 8 KPX rcommaaccent ograve 8 KPX rcommaaccent ohungarumlaut 8 KPX rcommaaccent omacron 8 KPX rcommaaccent oslash 8 KPX rcommaaccent otilde 8 KPX rcommaaccent period -64 KPX rcommaaccent q 9 EndKernPairs EndKernData EndFontMetrics a2ps-4.14/afm/ptmr.afm0000644000175000017500000016575410674334154014070 0ustar mhattamhattaStartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Thu May 1 12:49:17 1997 Comment UniqueID 43068 Comment VMusage 43909 54934 FontName Times-Roman FullName Times Roman FamilyName Times Weight Roman ItalicAngle 0 IsFixedPitch false FontBBox -168 -218 1000 898 UnderlinePosition -100 UnderlineThickness 50 Version 002.000 Notice Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype-Hell AG and/or its subsidiaries. EncodingScheme AdobeStandardEncoding CapHeight 662 XHeight 450 Ascender 683 Descender -217 StdHW 28 StdVW 84 StartCharMetrics 314 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 -218 133 782 ; 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 581 216 681 ; C 200 ; WX 333 ; N dieresis ; B 18 581 315 681 ; 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 62 -165 243 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 333 ; N Idieresis ; B 18 0 315 835 ; C -1 ; WX 444 ; N eacute ; B 25 -10 424 678 ; C -1 ; WX 444 ; N abreve ; B 37 -10 442 664 ; C -1 ; WX 500 ; N uhungarumlaut ; B 9 -10 501 678 ; C -1 ; WX 444 ; N ecaron ; B 25 -10 424 674 ; C -1 ; WX 722 ; N Ydieresis ; B 22 0 703 835 ; C -1 ; WX 564 ; N divide ; B 30 -10 534 516 ; C -1 ; WX 722 ; N Yacute ; B 22 0 703 890 ; C -1 ; WX 722 ; N Acircumflex ; B 15 0 706 886 ; C -1 ; WX 444 ; N aacute ; B 37 -10 442 678 ; C -1 ; WX 722 ; N Ucircumflex ; B 14 -14 705 886 ; C -1 ; WX 500 ; N yacute ; B 14 -218 475 678 ; C -1 ; WX 389 ; N scommaaccent ; B 51 -218 348 460 ; C -1 ; WX 444 ; N ecircumflex ; B 25 -10 424 674 ; C -1 ; WX 722 ; N Uring ; B 14 -14 705 898 ; C -1 ; WX 722 ; N Udieresis ; B 14 -14 705 835 ; C -1 ; WX 444 ; N aogonek ; B 37 -165 469 460 ; C -1 ; WX 722 ; N Uacute ; B 14 -14 705 890 ; C -1 ; WX 500 ; N uogonek ; B 9 -155 487 450 ; C -1 ; WX 611 ; N Edieresis ; B 12 0 597 835 ; C -1 ; WX 722 ; N Dcroat ; B 16 0 685 662 ; C -1 ; WX 250 ; N commaaccent ; B 59 -218 184 -50 ; C -1 ; WX 760 ; N copyright ; B 38 -14 722 676 ; C -1 ; WX 611 ; N Emacron ; B 12 0 597 813 ; C -1 ; WX 444 ; N ccaron ; B 25 -10 412 674 ; C -1 ; WX 444 ; N aring ; B 37 -10 442 711 ; C -1 ; WX 722 ; N Ncommaaccent ; B 12 -198 707 662 ; C -1 ; WX 278 ; N lacute ; B 19 0 290 890 ; C -1 ; WX 444 ; N agrave ; B 37 -10 442 678 ; C -1 ; WX 611 ; N Tcommaaccent ; B 17 -218 593 662 ; C -1 ; WX 667 ; N Cacute ; B 28 -14 633 890 ; C -1 ; WX 444 ; N atilde ; B 37 -10 442 638 ; C -1 ; WX 611 ; N Edotaccent ; B 12 0 597 835 ; C -1 ; WX 389 ; N scaron ; B 39 -10 350 674 ; C -1 ; WX 389 ; N scedilla ; B 51 -215 348 460 ; C -1 ; WX 278 ; N iacute ; B 16 0 290 678 ; C -1 ; WX 471 ; N lozenge ; B 13 0 459 724 ; C -1 ; WX 667 ; N Rcaron ; B 17 0 659 886 ; C -1 ; WX 722 ; N Gcommaaccent ; B 32 -218 709 676 ; C -1 ; WX 500 ; N ucircumflex ; B 9 -10 479 674 ; C -1 ; WX 444 ; N acircumflex ; B 37 -10 442 674 ; C -1 ; WX 722 ; N Amacron ; B 15 0 706 813 ; C -1 ; WX 333 ; N rcaron ; B 5 0 335 674 ; C -1 ; WX 444 ; N ccedilla ; B 25 -215 412 460 ; C -1 ; WX 611 ; N Zdotaccent ; B 9 0 597 835 ; C -1 ; WX 556 ; N Thorn ; B 16 0 542 662 ; C -1 ; WX 722 ; N Omacron ; B 34 -14 688 813 ; C -1 ; WX 667 ; N Racute ; B 17 0 659 890 ; C -1 ; WX 556 ; N Sacute ; B 42 -14 491 890 ; C -1 ; WX 588 ; N dcaron ; B 27 -10 589 695 ; C -1 ; WX 722 ; N Umacron ; B 14 -14 705 813 ; C -1 ; WX 500 ; N uring ; B 9 -10 479 711 ; C -1 ; WX 300 ; N threesuperior ; B 15 262 291 676 ; C -1 ; WX 722 ; N Ograve ; B 34 -14 688 890 ; C -1 ; WX 722 ; N Agrave ; B 15 0 706 890 ; C -1 ; WX 722 ; N Abreve ; B 15 0 706 876 ; C -1 ; WX 564 ; N multiply ; B 38 8 527 497 ; C -1 ; WX 500 ; N uacute ; B 9 -10 479 678 ; C -1 ; WX 611 ; N Tcaron ; B 17 0 593 886 ; C -1 ; WX 476 ; N partialdiff ; B 17 -38 459 710 ; C -1 ; WX 500 ; N ydieresis ; B 14 -218 475 623 ; C -1 ; WX 722 ; N Nacute ; B 12 -11 707 890 ; C -1 ; WX 278 ; N icircumflex ; B -16 0 295 674 ; C -1 ; WX 611 ; N Ecircumflex ; B 12 0 597 886 ; C -1 ; WX 444 ; N adieresis ; B 37 -10 442 623 ; C -1 ; WX 444 ; N edieresis ; B 25 -10 424 623 ; C -1 ; WX 444 ; N cacute ; B 25 -10 413 678 ; C -1 ; WX 500 ; N nacute ; B 16 0 485 678 ; C -1 ; WX 500 ; N umacron ; B 9 -10 479 601 ; C -1 ; WX 722 ; N Ncaron ; B 12 -11 707 886 ; C -1 ; WX 333 ; N Iacute ; B 18 0 317 890 ; C -1 ; WX 564 ; N plusminus ; B 30 0 534 506 ; C -1 ; WX 200 ; N brokenbar ; B 67 -143 133 707 ; C -1 ; WX 760 ; N registered ; B 38 -14 722 676 ; 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 600 ; N summation ; B 15 -10 585 706 ; C -1 ; WX 611 ; N Egrave ; B 12 0 597 890 ; C -1 ; WX 333 ; N racute ; B 5 0 335 678 ; C -1 ; WX 500 ; N omacron ; B 29 -10 470 601 ; C -1 ; WX 611 ; N Zacute ; B 9 0 597 890 ; C -1 ; WX 611 ; N Zcaron ; B 9 0 597 886 ; C -1 ; WX 549 ; N greaterequal ; B 26 0 523 666 ; C -1 ; WX 722 ; N Eth ; B 16 0 685 662 ; C -1 ; WX 667 ; N Ccedilla ; B 28 -215 633 676 ; C -1 ; WX 278 ; N lcommaaccent ; B 19 -218 257 683 ; C -1 ; WX 326 ; N tcaron ; B 13 -10 318 722 ; C -1 ; WX 444 ; N eogonek ; B 25 -165 424 460 ; C -1 ; WX 722 ; N Uogonek ; B 14 -165 705 662 ; C -1 ; WX 722 ; N Aacute ; B 15 0 706 890 ; C -1 ; WX 722 ; N Adieresis ; B 15 0 706 835 ; C -1 ; WX 444 ; N egrave ; B 25 -10 424 678 ; C -1 ; WX 444 ; N zacute ; B 27 0 418 678 ; C -1 ; WX 278 ; N iogonek ; B 16 -165 265 683 ; C -1 ; WX 722 ; N Oacute ; B 34 -14 688 890 ; C -1 ; WX 500 ; N oacute ; B 29 -10 470 678 ; C -1 ; WX 444 ; N amacron ; B 37 -10 442 601 ; C -1 ; WX 389 ; N sacute ; B 51 -10 348 678 ; C -1 ; WX 278 ; N idieresis ; B -9 0 288 623 ; C -1 ; WX 722 ; N Ocircumflex ; B 34 -14 688 886 ; C -1 ; WX 722 ; N Ugrave ; B 14 -14 705 890 ; C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ; C -1 ; WX 500 ; N thorn ; B 5 -217 470 683 ; C -1 ; WX 300 ; N twosuperior ; B 1 270 296 676 ; C -1 ; WX 722 ; N Odieresis ; B 34 -14 688 835 ; C -1 ; WX 500 ; N mu ; B 36 -218 512 450 ; C -1 ; WX 278 ; N igrave ; B -8 0 253 678 ; C -1 ; WX 500 ; N ohungarumlaut ; B 29 -10 491 678 ; C -1 ; WX 611 ; N Eogonek ; B 12 -165 597 662 ; C -1 ; WX 500 ; N dcroat ; B 27 -10 500 683 ; C -1 ; WX 750 ; N threequarters ; B 15 -14 718 676 ; C -1 ; WX 556 ; N Scedilla ; B 42 -215 491 676 ; C -1 ; WX 344 ; N lcaron ; B 19 0 347 695 ; C -1 ; WX 722 ; N Kcommaaccent ; B 34 -198 723 662 ; C -1 ; WX 611 ; N Lacute ; B 12 0 598 890 ; C -1 ; WX 980 ; N trademark ; B 30 256 957 662 ; C -1 ; WX 444 ; N edotaccent ; B 25 -10 424 623 ; C -1 ; WX 333 ; N Igrave ; B 18 0 315 890 ; C -1 ; WX 333 ; N Imacron ; B 11 0 322 813 ; C -1 ; WX 611 ; N Lcaron ; B 12 0 598 676 ; C -1 ; WX 750 ; N onehalf ; B 31 -14 746 676 ; C -1 ; WX 549 ; N lessequal ; B 26 0 523 666 ; C -1 ; WX 500 ; N ocircumflex ; B 29 -10 470 674 ; C -1 ; WX 500 ; N ntilde ; B 16 0 485 638 ; C -1 ; WX 722 ; N Uhungarumlaut ; B 14 -14 705 890 ; C -1 ; WX 611 ; N Eacute ; B 12 0 597 890 ; C -1 ; WX 444 ; N emacron ; B 25 -10 424 601 ; C -1 ; WX 500 ; N gbreve ; B 28 -218 470 664 ; C -1 ; WX 750 ; N onequarter ; B 37 -14 718 676 ; C -1 ; WX 556 ; N Scaron ; B 42 -14 491 886 ; C -1 ; WX 556 ; N Scommaaccent ; B 42 -218 491 676 ; C -1 ; WX 722 ; N Ohungarumlaut ; B 34 -14 688 890 ; C -1 ; WX 400 ; N degree ; B 57 390 343 676 ; C -1 ; WX 500 ; N ograve ; B 29 -10 470 678 ; C -1 ; WX 667 ; N Ccaron ; B 28 -14 633 886 ; C -1 ; WX 500 ; N ugrave ; B 9 -10 479 678 ; C -1 ; WX 453 ; N radical ; B 2 -60 452 768 ; C -1 ; WX 722 ; N Dcaron ; B 16 0 685 886 ; C -1 ; WX 333 ; N rcommaaccent ; B 5 -218 335 460 ; C -1 ; WX 722 ; N Ntilde ; B 12 -11 707 850 ; C -1 ; WX 500 ; N otilde ; B 29 -10 470 638 ; C -1 ; WX 667 ; N Rcommaaccent ; B 17 -198 659 662 ; C -1 ; WX 611 ; N Lcommaaccent ; B 12 -218 598 662 ; C -1 ; WX 722 ; N Atilde ; B 15 0 706 850 ; C -1 ; WX 722 ; N Aogonek ; B 15 -165 738 674 ; C -1 ; WX 722 ; N Aring ; B 15 0 706 898 ; C -1 ; WX 722 ; N Otilde ; B 34 -14 688 850 ; C -1 ; WX 444 ; N zdotaccent ; B 27 0 418 623 ; C -1 ; WX 611 ; N Ecaron ; B 12 0 597 886 ; C -1 ; WX 333 ; N Iogonek ; B 18 -165 315 662 ; C -1 ; WX 500 ; N kcommaaccent ; B 7 -218 505 683 ; C -1 ; WX 564 ; N minus ; B 30 220 534 286 ; C -1 ; WX 333 ; N Icircumflex ; B 11 0 322 886 ; C -1 ; WX 500 ; N ncaron ; B 16 0 485 674 ; C -1 ; WX 278 ; N tcommaaccent ; B 13 -218 279 579 ; C -1 ; WX 564 ; N logicalnot ; B 30 108 534 386 ; C -1 ; WX 500 ; N odieresis ; B 29 -10 470 623 ; C -1 ; WX 500 ; N udieresis ; B 9 -10 479 623 ; C -1 ; WX 549 ; N notequal ; B 12 -31 537 547 ; C -1 ; WX 500 ; N gcommaaccent ; B 28 -218 470 749 ; C -1 ; WX 500 ; N eth ; B 29 -10 471 686 ; C -1 ; WX 444 ; N zcaron ; B 27 0 418 674 ; C -1 ; WX 500 ; N ncommaaccent ; B 16 -218 485 460 ; C -1 ; WX 300 ; N onesuperior ; B 57 270 248 676 ; C -1 ; WX 278 ; N imacron ; B 6 0 271 601 ; EndCharMetrics StartKernData StartKernPairs 2073 KPX A C -40 KPX A Cacute -40 KPX A Ccaron -40 KPX A Ccedilla -40 KPX A G -40 KPX A Gbreve -40 KPX A Gcommaaccent -40 KPX A O -55 KPX A Oacute -55 KPX A Ocircumflex -55 KPX A Odieresis -55 KPX A Ograve -55 KPX A Ohungarumlaut -55 KPX A Omacron -55 KPX A Oslash -55 KPX A Otilde -55 KPX A Q -55 KPX A T -111 KPX A Tcaron -111 KPX A Tcommaaccent -111 KPX A U -55 KPX A Uacute -55 KPX A Ucircumflex -55 KPX A Udieresis -55 KPX A Ugrave -55 KPX A Uhungarumlaut -55 KPX A Umacron -55 KPX A Uogonek -55 KPX A Uring -55 KPX A V -135 KPX A W -90 KPX A Y -105 KPX A Yacute -105 KPX A Ydieresis -105 KPX A quoteright -111 KPX A v -74 KPX A w -92 KPX A y -92 KPX A yacute -92 KPX A ydieresis -92 KPX Aacute C -40 KPX Aacute Cacute -40 KPX Aacute Ccaron -40 KPX Aacute Ccedilla -40 KPX Aacute G -40 KPX Aacute Gbreve -40 KPX Aacute Gcommaaccent -40 KPX Aacute O -55 KPX Aacute Oacute -55 KPX Aacute Ocircumflex -55 KPX Aacute Odieresis -55 KPX Aacute Ograve -55 KPX Aacute Ohungarumlaut -55 KPX Aacute Omacron -55 KPX Aacute Oslash -55 KPX Aacute Otilde -55 KPX Aacute Q -55 KPX Aacute T -111 KPX Aacute Tcaron -111 KPX Aacute Tcommaaccent -111 KPX Aacute U -55 KPX Aacute Uacute -55 KPX Aacute Ucircumflex -55 KPX Aacute Udieresis -55 KPX Aacute Ugrave -55 KPX Aacute Uhungarumlaut -55 KPX Aacute Umacron -55 KPX Aacute Uogonek -55 KPX Aacute Uring -55 KPX Aacute V -135 KPX Aacute W -90 KPX Aacute Y -105 KPX Aacute Yacute -105 KPX Aacute Ydieresis -105 KPX Aacute quoteright -111 KPX Aacute v -74 KPX Aacute w -92 KPX Aacute y -92 KPX Aacute yacute -92 KPX Aacute ydieresis -92 KPX Abreve C -40 KPX Abreve Cacute -40 KPX Abreve Ccaron -40 KPX Abreve Ccedilla -40 KPX Abreve G -40 KPX Abreve Gbreve -40 KPX Abreve Gcommaaccent -40 KPX Abreve O -55 KPX Abreve Oacute -55 KPX Abreve Ocircumflex -55 KPX Abreve Odieresis -55 KPX Abreve Ograve -55 KPX Abreve Ohungarumlaut -55 KPX Abreve Omacron -55 KPX Abreve Oslash -55 KPX Abreve Otilde -55 KPX Abreve Q -55 KPX Abreve T -111 KPX Abreve Tcaron -111 KPX Abreve Tcommaaccent -111 KPX Abreve U -55 KPX Abreve Uacute -55 KPX Abreve Ucircumflex -55 KPX Abreve Udieresis -55 KPX Abreve Ugrave -55 KPX Abreve Uhungarumlaut -55 KPX Abreve Umacron -55 KPX Abreve Uogonek -55 KPX Abreve Uring -55 KPX Abreve V -135 KPX Abreve W -90 KPX Abreve Y -105 KPX Abreve Yacute -105 KPX Abreve Ydieresis -105 KPX Abreve quoteright -111 KPX Abreve v -74 KPX Abreve w -92 KPX Abreve y -92 KPX Abreve yacute -92 KPX Abreve ydieresis -92 KPX Acircumflex C -40 KPX Acircumflex Cacute -40 KPX Acircumflex Ccaron -40 KPX Acircumflex Ccedilla -40 KPX Acircumflex G -40 KPX Acircumflex Gbreve -40 KPX Acircumflex Gcommaaccent -40 KPX Acircumflex O -55 KPX Acircumflex Oacute -55 KPX Acircumflex Ocircumflex -55 KPX Acircumflex Odieresis -55 KPX Acircumflex Ograve -55 KPX Acircumflex Ohungarumlaut -55 KPX Acircumflex Omacron -55 KPX Acircumflex Oslash -55 KPX Acircumflex Otilde -55 KPX Acircumflex Q -55 KPX Acircumflex T -111 KPX Acircumflex Tcaron -111 KPX Acircumflex Tcommaaccent -111 KPX Acircumflex U -55 KPX Acircumflex Uacute -55 KPX Acircumflex Ucircumflex -55 KPX Acircumflex Udieresis -55 KPX Acircumflex Ugrave -55 KPX Acircumflex Uhungarumlaut -55 KPX Acircumflex Umacron -55 KPX Acircumflex Uogonek -55 KPX Acircumflex Uring -55 KPX Acircumflex V -135 KPX Acircumflex W -90 KPX Acircumflex Y -105 KPX Acircumflex Yacute -105 KPX Acircumflex Ydieresis -105 KPX Acircumflex quoteright -111 KPX Acircumflex v -74 KPX Acircumflex w -92 KPX Acircumflex y -92 KPX Acircumflex yacute -92 KPX Acircumflex ydieresis -92 KPX Adieresis C -40 KPX Adieresis Cacute -40 KPX Adieresis Ccaron -40 KPX Adieresis Ccedilla -40 KPX Adieresis G -40 KPX Adieresis Gbreve -40 KPX Adieresis Gcommaaccent -40 KPX Adieresis O -55 KPX Adieresis Oacute -55 KPX Adieresis Ocircumflex -55 KPX Adieresis Odieresis -55 KPX Adieresis Ograve -55 KPX Adieresis Ohungarumlaut -55 KPX Adieresis Omacron -55 KPX Adieresis Oslash -55 KPX Adieresis Otilde -55 KPX Adieresis Q -55 KPX Adieresis T -111 KPX Adieresis Tcaron -111 KPX Adieresis Tcommaaccent -111 KPX Adieresis U -55 KPX Adieresis Uacute -55 KPX Adieresis Ucircumflex -55 KPX Adieresis Udieresis -55 KPX Adieresis Ugrave -55 KPX Adieresis Uhungarumlaut -55 KPX Adieresis Umacron -55 KPX Adieresis Uogonek -55 KPX Adieresis Uring -55 KPX Adieresis V -135 KPX Adieresis W -90 KPX Adieresis Y -105 KPX Adieresis Yacute -105 KPX Adieresis Ydieresis -105 KPX Adieresis quoteright -111 KPX Adieresis v -74 KPX Adieresis w -92 KPX Adieresis y -92 KPX Adieresis yacute -92 KPX Adieresis ydieresis -92 KPX Agrave C -40 KPX Agrave Cacute -40 KPX Agrave Ccaron -40 KPX Agrave Ccedilla -40 KPX Agrave G -40 KPX Agrave Gbreve -40 KPX Agrave Gcommaaccent -40 KPX Agrave O -55 KPX Agrave Oacute -55 KPX Agrave Ocircumflex -55 KPX Agrave Odieresis -55 KPX Agrave Ograve -55 KPX Agrave Ohungarumlaut -55 KPX Agrave Omacron -55 KPX Agrave Oslash -55 KPX Agrave Otilde -55 KPX Agrave Q -55 KPX Agrave T -111 KPX Agrave Tcaron -111 KPX Agrave Tcommaaccent -111 KPX Agrave U -55 KPX Agrave Uacute -55 KPX Agrave Ucircumflex -55 KPX Agrave Udieresis -55 KPX Agrave Ugrave -55 KPX Agrave Uhungarumlaut -55 KPX Agrave Umacron -55 KPX Agrave Uogonek -55 KPX Agrave Uring -55 KPX Agrave V -135 KPX Agrave W -90 KPX Agrave Y -105 KPX Agrave Yacute -105 KPX Agrave Ydieresis -105 KPX Agrave quoteright -111 KPX Agrave v -74 KPX Agrave w -92 KPX Agrave y -92 KPX Agrave yacute -92 KPX Agrave ydieresis -92 KPX Amacron C -40 KPX Amacron Cacute -40 KPX Amacron Ccaron -40 KPX Amacron Ccedilla -40 KPX Amacron G -40 KPX Amacron Gbreve -40 KPX Amacron Gcommaaccent -40 KPX Amacron O -55 KPX Amacron Oacute -55 KPX Amacron Ocircumflex -55 KPX Amacron Odieresis -55 KPX Amacron Ograve -55 KPX Amacron Ohungarumlaut -55 KPX Amacron Omacron -55 KPX Amacron Oslash -55 KPX Amacron Otilde -55 KPX Amacron Q -55 KPX Amacron T -111 KPX Amacron Tcaron -111 KPX Amacron Tcommaaccent -111 KPX Amacron U -55 KPX Amacron Uacute -55 KPX Amacron Ucircumflex -55 KPX Amacron Udieresis -55 KPX Amacron Ugrave -55 KPX Amacron Uhungarumlaut -55 KPX Amacron Umacron -55 KPX Amacron Uogonek -55 KPX Amacron Uring -55 KPX Amacron V -135 KPX Amacron W -90 KPX Amacron Y -105 KPX Amacron Yacute -105 KPX Amacron Ydieresis -105 KPX Amacron quoteright -111 KPX Amacron v -74 KPX Amacron w -92 KPX Amacron y -92 KPX Amacron yacute -92 KPX Amacron ydieresis -92 KPX Aogonek C -40 KPX Aogonek Cacute -40 KPX Aogonek Ccaron -40 KPX Aogonek Ccedilla -40 KPX Aogonek G -40 KPX Aogonek Gbreve -40 KPX Aogonek Gcommaaccent -40 KPX Aogonek O -55 KPX Aogonek Oacute -55 KPX Aogonek Ocircumflex -55 KPX Aogonek Odieresis -55 KPX Aogonek Ograve -55 KPX Aogonek Ohungarumlaut -55 KPX Aogonek Omacron -55 KPX Aogonek Oslash -55 KPX Aogonek Otilde -55 KPX Aogonek Q -55 KPX Aogonek T -111 KPX Aogonek Tcaron -111 KPX Aogonek Tcommaaccent -111 KPX Aogonek U -55 KPX Aogonek Uacute -55 KPX Aogonek Ucircumflex -55 KPX Aogonek Udieresis -55 KPX Aogonek Ugrave -55 KPX Aogonek Uhungarumlaut -55 KPX Aogonek Umacron -55 KPX Aogonek Uogonek -55 KPX Aogonek Uring -55 KPX Aogonek V -135 KPX Aogonek W -90 KPX Aogonek Y -105 KPX Aogonek Yacute -105 KPX Aogonek Ydieresis -105 KPX Aogonek quoteright -111 KPX Aogonek v -74 KPX Aogonek w -52 KPX Aogonek y -52 KPX Aogonek yacute -52 KPX Aogonek ydieresis -52 KPX Aring C -40 KPX Aring Cacute -40 KPX Aring Ccaron -40 KPX Aring Ccedilla -40 KPX Aring G -40 KPX Aring Gbreve -40 KPX Aring Gcommaaccent -40 KPX Aring O -55 KPX Aring Oacute -55 KPX Aring Ocircumflex -55 KPX Aring Odieresis -55 KPX Aring Ograve -55 KPX Aring Ohungarumlaut -55 KPX Aring Omacron -55 KPX Aring Oslash -55 KPX Aring Otilde -55 KPX Aring Q -55 KPX Aring T -111 KPX Aring Tcaron -111 KPX Aring Tcommaaccent -111 KPX Aring U -55 KPX Aring Uacute -55 KPX Aring Ucircumflex -55 KPX Aring Udieresis -55 KPX Aring Ugrave -55 KPX Aring Uhungarumlaut -55 KPX Aring Umacron -55 KPX Aring Uogonek -55 KPX Aring Uring -55 KPX Aring V -135 KPX Aring W -90 KPX Aring Y -105 KPX Aring Yacute -105 KPX Aring Ydieresis -105 KPX Aring quoteright -111 KPX Aring v -74 KPX Aring w -92 KPX Aring y -92 KPX Aring yacute -92 KPX Aring ydieresis -92 KPX Atilde C -40 KPX Atilde Cacute -40 KPX Atilde Ccaron -40 KPX Atilde Ccedilla -40 KPX Atilde G -40 KPX Atilde Gbreve -40 KPX Atilde Gcommaaccent -40 KPX Atilde O -55 KPX Atilde Oacute -55 KPX Atilde Ocircumflex -55 KPX Atilde Odieresis -55 KPX Atilde Ograve -55 KPX Atilde Ohungarumlaut -55 KPX Atilde Omacron -55 KPX Atilde Oslash -55 KPX Atilde Otilde -55 KPX Atilde Q -55 KPX Atilde T -111 KPX Atilde Tcaron -111 KPX Atilde Tcommaaccent -111 KPX Atilde U -55 KPX Atilde Uacute -55 KPX Atilde Ucircumflex -55 KPX Atilde Udieresis -55 KPX Atilde Ugrave -55 KPX Atilde Uhungarumlaut -55 KPX Atilde Umacron -55 KPX Atilde Uogonek -55 KPX Atilde Uring -55 KPX Atilde V -135 KPX Atilde W -90 KPX Atilde Y -105 KPX Atilde Yacute -105 KPX Atilde Ydieresis -105 KPX Atilde quoteright -111 KPX Atilde v -74 KPX Atilde w -92 KPX Atilde y -92 KPX Atilde yacute -92 KPX Atilde ydieresis -92 KPX B A -35 KPX B Aacute -35 KPX B Abreve -35 KPX B Acircumflex -35 KPX B Adieresis -35 KPX B Agrave -35 KPX B Amacron -35 KPX B Aogonek -35 KPX B Aring -35 KPX B Atilde -35 KPX B U -10 KPX B Uacute -10 KPX B Ucircumflex -10 KPX B Udieresis -10 KPX B Ugrave -10 KPX B Uhungarumlaut -10 KPX B Umacron -10 KPX B Uogonek -10 KPX B Uring -10 KPX D A -40 KPX D Aacute -40 KPX D Abreve -40 KPX D Acircumflex -40 KPX D Adieresis -40 KPX D Agrave -40 KPX D Amacron -40 KPX D Aogonek -40 KPX D Aring -40 KPX D Atilde -40 KPX D V -40 KPX D W -30 KPX D Y -55 KPX D Yacute -55 KPX D Ydieresis -55 KPX Dcaron A -40 KPX Dcaron Aacute -40 KPX Dcaron Abreve -40 KPX Dcaron Acircumflex -40 KPX Dcaron Adieresis -40 KPX Dcaron Agrave -40 KPX Dcaron Amacron -40 KPX Dcaron Aogonek -40 KPX Dcaron Aring -40 KPX Dcaron Atilde -40 KPX Dcaron V -40 KPX Dcaron W -30 KPX Dcaron Y -55 KPX Dcaron Yacute -55 KPX Dcaron Ydieresis -55 KPX Dcroat A -40 KPX Dcroat Aacute -40 KPX Dcroat Abreve -40 KPX Dcroat Acircumflex -40 KPX Dcroat Adieresis -40 KPX Dcroat Agrave -40 KPX Dcroat Amacron -40 KPX Dcroat Aogonek -40 KPX Dcroat Aring -40 KPX Dcroat Atilde -40 KPX Dcroat V -40 KPX Dcroat W -30 KPX Dcroat Y -55 KPX Dcroat Yacute -55 KPX Dcroat Ydieresis -55 KPX F A -74 KPX F Aacute -74 KPX F Abreve -74 KPX F Acircumflex -74 KPX F Adieresis -74 KPX F Agrave -74 KPX F Amacron -74 KPX F Aogonek -74 KPX F Aring -74 KPX F Atilde -74 KPX F a -15 KPX F aacute -15 KPX F abreve -15 KPX F acircumflex -15 KPX F adieresis -15 KPX F agrave -15 KPX F amacron -15 KPX F aogonek -15 KPX F aring -15 KPX F atilde -15 KPX F comma -80 KPX F o -15 KPX F oacute -15 KPX F ocircumflex -15 KPX F odieresis -15 KPX F ograve -15 KPX F ohungarumlaut -15 KPX F omacron -15 KPX F oslash -15 KPX F otilde -15 KPX F period -80 KPX J A -60 KPX J Aacute -60 KPX J Abreve -60 KPX J Acircumflex -60 KPX J Adieresis -60 KPX J Agrave -60 KPX J Amacron -60 KPX J Aogonek -60 KPX J Aring -60 KPX J Atilde -60 KPX K O -30 KPX K Oacute -30 KPX K Ocircumflex -30 KPX K Odieresis -30 KPX K Ograve -30 KPX K Ohungarumlaut -30 KPX K Omacron -30 KPX K Oslash -30 KPX K Otilde -30 KPX K e -25 KPX K eacute -25 KPX K ecaron -25 KPX K ecircumflex -25 KPX K edieresis -25 KPX K edotaccent -25 KPX K egrave -25 KPX K emacron -25 KPX K eogonek -25 KPX K o -35 KPX K oacute -35 KPX K ocircumflex -35 KPX K odieresis -35 KPX K ograve -35 KPX K ohungarumlaut -35 KPX K omacron -35 KPX K oslash -35 KPX K otilde -35 KPX K u -15 KPX K uacute -15 KPX K ucircumflex -15 KPX K udieresis -15 KPX K ugrave -15 KPX K uhungarumlaut -15 KPX K umacron -15 KPX K uogonek -15 KPX K uring -15 KPX K y -25 KPX K yacute -25 KPX K ydieresis -25 KPX Kcommaaccent O -30 KPX Kcommaaccent Oacute -30 KPX Kcommaaccent Ocircumflex -30 KPX Kcommaaccent Odieresis -30 KPX Kcommaaccent Ograve -30 KPX Kcommaaccent Ohungarumlaut -30 KPX Kcommaaccent Omacron -30 KPX Kcommaaccent Oslash -30 KPX Kcommaaccent Otilde -30 KPX Kcommaaccent e -25 KPX Kcommaaccent eacute -25 KPX Kcommaaccent ecaron -25 KPX Kcommaaccent ecircumflex -25 KPX Kcommaaccent edieresis -25 KPX Kcommaaccent edotaccent -25 KPX Kcommaaccent egrave -25 KPX Kcommaaccent emacron -25 KPX Kcommaaccent eogonek -25 KPX Kcommaaccent o -35 KPX Kcommaaccent oacute -35 KPX Kcommaaccent ocircumflex -35 KPX Kcommaaccent odieresis -35 KPX Kcommaaccent ograve -35 KPX Kcommaaccent ohungarumlaut -35 KPX Kcommaaccent omacron -35 KPX Kcommaaccent oslash -35 KPX Kcommaaccent otilde -35 KPX Kcommaaccent u -15 KPX Kcommaaccent uacute -15 KPX Kcommaaccent ucircumflex -15 KPX Kcommaaccent udieresis -15 KPX Kcommaaccent ugrave -15 KPX Kcommaaccent uhungarumlaut -15 KPX Kcommaaccent umacron -15 KPX Kcommaaccent uogonek -15 KPX Kcommaaccent uring -15 KPX Kcommaaccent y -25 KPX Kcommaaccent yacute -25 KPX Kcommaaccent ydieresis -25 KPX L T -92 KPX L Tcaron -92 KPX L Tcommaaccent -92 KPX L V -100 KPX L W -74 KPX L Y -100 KPX L Yacute -100 KPX L Ydieresis -100 KPX L quoteright -92 KPX L y -55 KPX L yacute -55 KPX L ydieresis -55 KPX Lacute T -92 KPX Lacute Tcaron -92 KPX Lacute Tcommaaccent -92 KPX Lacute V -100 KPX Lacute W -74 KPX Lacute Y -100 KPX Lacute Yacute -100 KPX Lacute Ydieresis -100 KPX Lacute quoteright -92 KPX Lacute y -55 KPX Lacute yacute -55 KPX Lacute ydieresis -55 KPX Lcaron quoteright -92 KPX Lcaron y -55 KPX Lcaron yacute -55 KPX Lcaron ydieresis -55 KPX Lcommaaccent T -92 KPX Lcommaaccent Tcaron -92 KPX Lcommaaccent Tcommaaccent -92 KPX Lcommaaccent V -100 KPX Lcommaaccent W -74 KPX Lcommaaccent Y -100 KPX Lcommaaccent Yacute -100 KPX Lcommaaccent Ydieresis -100 KPX Lcommaaccent quoteright -92 KPX Lcommaaccent y -55 KPX Lcommaaccent yacute -55 KPX Lcommaaccent ydieresis -55 KPX Lslash T -92 KPX Lslash Tcaron -92 KPX Lslash Tcommaaccent -92 KPX Lslash V -100 KPX Lslash W -74 KPX Lslash Y -100 KPX Lslash Yacute -100 KPX Lslash Ydieresis -100 KPX Lslash quoteright -92 KPX Lslash y -55 KPX Lslash yacute -55 KPX Lslash ydieresis -55 KPX N A -35 KPX N Aacute -35 KPX N Abreve -35 KPX N Acircumflex -35 KPX N Adieresis -35 KPX N Agrave -35 KPX N Amacron -35 KPX N Aogonek -35 KPX N Aring -35 KPX N Atilde -35 KPX Nacute A -35 KPX Nacute Aacute -35 KPX Nacute Abreve -35 KPX Nacute Acircumflex -35 KPX Nacute Adieresis -35 KPX Nacute Agrave -35 KPX Nacute Amacron -35 KPX Nacute Aogonek -35 KPX Nacute Aring -35 KPX Nacute Atilde -35 KPX Ncaron A -35 KPX Ncaron Aacute -35 KPX Ncaron Abreve -35 KPX Ncaron Acircumflex -35 KPX Ncaron Adieresis -35 KPX Ncaron Agrave -35 KPX Ncaron Amacron -35 KPX Ncaron Aogonek -35 KPX Ncaron Aring -35 KPX Ncaron Atilde -35 KPX Ncommaaccent A -35 KPX Ncommaaccent Aacute -35 KPX Ncommaaccent Abreve -35 KPX Ncommaaccent Acircumflex -35 KPX Ncommaaccent Adieresis -35 KPX Ncommaaccent Agrave -35 KPX Ncommaaccent Amacron -35 KPX Ncommaaccent Aogonek -35 KPX Ncommaaccent Aring -35 KPX Ncommaaccent Atilde -35 KPX Ntilde A -35 KPX Ntilde Aacute -35 KPX Ntilde Abreve -35 KPX Ntilde Acircumflex -35 KPX Ntilde Adieresis -35 KPX Ntilde Agrave -35 KPX Ntilde Amacron -35 KPX Ntilde Aogonek -35 KPX Ntilde Aring -35 KPX Ntilde Atilde -35 KPX O A -35 KPX O Aacute -35 KPX O Abreve -35 KPX O Acircumflex -35 KPX O Adieresis -35 KPX O Agrave -35 KPX O Amacron -35 KPX O Aogonek -35 KPX O Aring -35 KPX O Atilde -35 KPX O T -40 KPX O Tcaron -40 KPX O Tcommaaccent -40 KPX O V -50 KPX O W -35 KPX O X -40 KPX O Y -50 KPX O Yacute -50 KPX O Ydieresis -50 KPX Oacute A -35 KPX Oacute Aacute -35 KPX Oacute Abreve -35 KPX Oacute Acircumflex -35 KPX Oacute Adieresis -35 KPX Oacute Agrave -35 KPX Oacute Amacron -35 KPX Oacute Aogonek -35 KPX Oacute Aring -35 KPX Oacute Atilde -35 KPX Oacute T -40 KPX Oacute Tcaron -40 KPX Oacute Tcommaaccent -40 KPX Oacute V -50 KPX Oacute W -35 KPX Oacute X -40 KPX Oacute Y -50 KPX Oacute Yacute -50 KPX Oacute Ydieresis -50 KPX Ocircumflex A -35 KPX Ocircumflex Aacute -35 KPX Ocircumflex Abreve -35 KPX Ocircumflex Acircumflex -35 KPX Ocircumflex Adieresis -35 KPX Ocircumflex Agrave -35 KPX Ocircumflex Amacron -35 KPX Ocircumflex Aogonek -35 KPX Ocircumflex Aring -35 KPX Ocircumflex Atilde -35 KPX Ocircumflex T -40 KPX Ocircumflex Tcaron -40 KPX Ocircumflex Tcommaaccent -40 KPX Ocircumflex V -50 KPX Ocircumflex W -35 KPX Ocircumflex X -40 KPX Ocircumflex Y -50 KPX Ocircumflex Yacute -50 KPX Ocircumflex Ydieresis -50 KPX Odieresis A -35 KPX Odieresis Aacute -35 KPX Odieresis Abreve -35 KPX Odieresis Acircumflex -35 KPX Odieresis Adieresis -35 KPX Odieresis Agrave -35 KPX Odieresis Amacron -35 KPX Odieresis Aogonek -35 KPX Odieresis Aring -35 KPX Odieresis Atilde -35 KPX Odieresis T -40 KPX Odieresis Tcaron -40 KPX Odieresis Tcommaaccent -40 KPX Odieresis V -50 KPX Odieresis W -35 KPX Odieresis X -40 KPX Odieresis Y -50 KPX Odieresis Yacute -50 KPX Odieresis Ydieresis -50 KPX Ograve A -35 KPX Ograve Aacute -35 KPX Ograve Abreve -35 KPX Ograve Acircumflex -35 KPX Ograve Adieresis -35 KPX Ograve Agrave -35 KPX Ograve Amacron -35 KPX Ograve Aogonek -35 KPX Ograve Aring -35 KPX Ograve Atilde -35 KPX Ograve T -40 KPX Ograve Tcaron -40 KPX Ograve Tcommaaccent -40 KPX Ograve V -50 KPX Ograve W -35 KPX Ograve X -40 KPX Ograve Y -50 KPX Ograve Yacute -50 KPX Ograve Ydieresis -50 KPX Ohungarumlaut A -35 KPX Ohungarumlaut Aacute -35 KPX Ohungarumlaut Abreve -35 KPX Ohungarumlaut Acircumflex -35 KPX Ohungarumlaut Adieresis -35 KPX Ohungarumlaut Agrave -35 KPX Ohungarumlaut Amacron -35 KPX Ohungarumlaut Aogonek -35 KPX Ohungarumlaut Aring -35 KPX Ohungarumlaut Atilde -35 KPX Ohungarumlaut T -40 KPX Ohungarumlaut Tcaron -40 KPX Ohungarumlaut Tcommaaccent -40 KPX Ohungarumlaut V -50 KPX Ohungarumlaut W -35 KPX Ohungarumlaut X -40 KPX Ohungarumlaut Y -50 KPX Ohungarumlaut Yacute -50 KPX Ohungarumlaut Ydieresis -50 KPX Omacron A -35 KPX Omacron Aacute -35 KPX Omacron Abreve -35 KPX Omacron Acircumflex -35 KPX Omacron Adieresis -35 KPX Omacron Agrave -35 KPX Omacron Amacron -35 KPX Omacron Aogonek -35 KPX Omacron Aring -35 KPX Omacron Atilde -35 KPX Omacron T -40 KPX Omacron Tcaron -40 KPX Omacron Tcommaaccent -40 KPX Omacron V -50 KPX Omacron W -35 KPX Omacron X -40 KPX Omacron Y -50 KPX Omacron Yacute -50 KPX Omacron Ydieresis -50 KPX Oslash A -35 KPX Oslash Aacute -35 KPX Oslash Abreve -35 KPX Oslash Acircumflex -35 KPX Oslash Adieresis -35 KPX Oslash Agrave -35 KPX Oslash Amacron -35 KPX Oslash Aogonek -35 KPX Oslash Aring -35 KPX Oslash Atilde -35 KPX Oslash T -40 KPX Oslash Tcaron -40 KPX Oslash Tcommaaccent -40 KPX Oslash V -50 KPX Oslash W -35 KPX Oslash X -40 KPX Oslash Y -50 KPX Oslash Yacute -50 KPX Oslash Ydieresis -50 KPX Otilde A -35 KPX Otilde Aacute -35 KPX Otilde Abreve -35 KPX Otilde Acircumflex -35 KPX Otilde Adieresis -35 KPX Otilde Agrave -35 KPX Otilde Amacron -35 KPX Otilde Aogonek -35 KPX Otilde Aring -35 KPX Otilde Atilde -35 KPX Otilde T -40 KPX Otilde Tcaron -40 KPX Otilde Tcommaaccent -40 KPX Otilde V -50 KPX Otilde W -35 KPX Otilde X -40 KPX Otilde Y -50 KPX Otilde Yacute -50 KPX Otilde Ydieresis -50 KPX P A -92 KPX P Aacute -92 KPX P Abreve -92 KPX P Acircumflex -92 KPX P Adieresis -92 KPX P Agrave -92 KPX P Amacron -92 KPX P Aogonek -92 KPX P Aring -92 KPX P Atilde -92 KPX P a -15 KPX P aacute -15 KPX P abreve -15 KPX P acircumflex -15 KPX P adieresis -15 KPX P agrave -15 KPX P amacron -15 KPX P aogonek -15 KPX P aring -15 KPX P atilde -15 KPX P comma -111 KPX P period -111 KPX Q U -10 KPX Q Uacute -10 KPX Q Ucircumflex -10 KPX Q Udieresis -10 KPX Q Ugrave -10 KPX Q Uhungarumlaut -10 KPX Q Umacron -10 KPX Q Uogonek -10 KPX Q Uring -10 KPX R O -40 KPX R Oacute -40 KPX R Ocircumflex -40 KPX R Odieresis -40 KPX R Ograve -40 KPX R Ohungarumlaut -40 KPX R Omacron -40 KPX R Oslash -40 KPX R Otilde -40 KPX R T -60 KPX R Tcaron -60 KPX R Tcommaaccent -60 KPX R U -40 KPX R Uacute -40 KPX R Ucircumflex -40 KPX R Udieresis -40 KPX R Ugrave -40 KPX R Uhungarumlaut -40 KPX R Umacron -40 KPX R Uogonek -40 KPX R Uring -40 KPX R V -80 KPX R W -55 KPX R Y -65 KPX R Yacute -65 KPX R Ydieresis -65 KPX Racute O -40 KPX Racute Oacute -40 KPX Racute Ocircumflex -40 KPX Racute Odieresis -40 KPX Racute Ograve -40 KPX Racute Ohungarumlaut -40 KPX Racute Omacron -40 KPX Racute Oslash -40 KPX Racute Otilde -40 KPX Racute T -60 KPX Racute Tcaron -60 KPX Racute Tcommaaccent -60 KPX Racute U -40 KPX Racute Uacute -40 KPX Racute Ucircumflex -40 KPX Racute Udieresis -40 KPX Racute Ugrave -40 KPX Racute Uhungarumlaut -40 KPX Racute Umacron -40 KPX Racute Uogonek -40 KPX Racute Uring -40 KPX Racute V -80 KPX Racute W -55 KPX Racute Y -65 KPX Racute Yacute -65 KPX Racute Ydieresis -65 KPX Rcaron O -40 KPX Rcaron Oacute -40 KPX Rcaron Ocircumflex -40 KPX Rcaron Odieresis -40 KPX Rcaron Ograve -40 KPX Rcaron Ohungarumlaut -40 KPX Rcaron Omacron -40 KPX Rcaron Oslash -40 KPX Rcaron Otilde -40 KPX Rcaron T -60 KPX Rcaron Tcaron -60 KPX Rcaron Tcommaaccent -60 KPX Rcaron U -40 KPX Rcaron Uacute -40 KPX Rcaron Ucircumflex -40 KPX Rcaron Udieresis -40 KPX Rcaron Ugrave -40 KPX Rcaron Uhungarumlaut -40 KPX Rcaron Umacron -40 KPX Rcaron Uogonek -40 KPX Rcaron Uring -40 KPX Rcaron V -80 KPX Rcaron W -55 KPX Rcaron Y -65 KPX Rcaron Yacute -65 KPX Rcaron Ydieresis -65 KPX Rcommaaccent O -40 KPX Rcommaaccent Oacute -40 KPX Rcommaaccent Ocircumflex -40 KPX Rcommaaccent Odieresis -40 KPX Rcommaaccent Ograve -40 KPX Rcommaaccent Ohungarumlaut -40 KPX Rcommaaccent Omacron -40 KPX Rcommaaccent Oslash -40 KPX Rcommaaccent Otilde -40 KPX Rcommaaccent T -60 KPX Rcommaaccent Tcaron -60 KPX Rcommaaccent Tcommaaccent -60 KPX Rcommaaccent U -40 KPX Rcommaaccent Uacute -40 KPX Rcommaaccent Ucircumflex -40 KPX Rcommaaccent Udieresis -40 KPX Rcommaaccent Ugrave -40 KPX Rcommaaccent Uhungarumlaut -40 KPX Rcommaaccent Umacron -40 KPX Rcommaaccent Uogonek -40 KPX Rcommaaccent Uring -40 KPX Rcommaaccent V -80 KPX Rcommaaccent W -55 KPX Rcommaaccent Y -65 KPX Rcommaaccent Yacute -65 KPX Rcommaaccent Ydieresis -65 KPX T A -93 KPX T Aacute -93 KPX T Abreve -93 KPX T Acircumflex -93 KPX T Adieresis -93 KPX T Agrave -93 KPX T Amacron -93 KPX T Aogonek -93 KPX T Aring -93 KPX T Atilde -93 KPX T O -18 KPX T Oacute -18 KPX T Ocircumflex -18 KPX T Odieresis -18 KPX T Ograve -18 KPX T Ohungarumlaut -18 KPX T Omacron -18 KPX T Oslash -18 KPX T Otilde -18 KPX T a -80 KPX T aacute -80 KPX T abreve -80 KPX T acircumflex -80 KPX T adieresis -40 KPX T agrave -40 KPX T amacron -40 KPX T aogonek -80 KPX T aring -80 KPX T atilde -40 KPX T colon -50 KPX T comma -74 KPX T e -70 KPX T eacute -70 KPX T ecaron -70 KPX T ecircumflex -70 KPX T edieresis -30 KPX T edotaccent -70 KPX T egrave -70 KPX T emacron -30 KPX T eogonek -70 KPX T hyphen -92 KPX T i -35 KPX T iacute -35 KPX T iogonek -35 KPX T o -80 KPX T oacute -80 KPX T ocircumflex -80 KPX T odieresis -80 KPX T ograve -80 KPX T ohungarumlaut -80 KPX T omacron -80 KPX T oslash -80 KPX T otilde -80 KPX T period -74 KPX T r -35 KPX T racute -35 KPX T rcaron -35 KPX T rcommaaccent -35 KPX T semicolon -55 KPX T u -45 KPX T uacute -45 KPX T ucircumflex -45 KPX T udieresis -45 KPX T ugrave -45 KPX T uhungarumlaut -45 KPX T umacron -45 KPX T uogonek -45 KPX T uring -45 KPX T w -80 KPX T y -80 KPX T yacute -80 KPX T ydieresis -80 KPX Tcaron A -93 KPX Tcaron Aacute -93 KPX Tcaron Abreve -93 KPX Tcaron Acircumflex -93 KPX Tcaron Adieresis -93 KPX Tcaron Agrave -93 KPX Tcaron Amacron -93 KPX Tcaron Aogonek -93 KPX Tcaron Aring -93 KPX Tcaron Atilde -93 KPX Tcaron O -18 KPX Tcaron Oacute -18 KPX Tcaron Ocircumflex -18 KPX Tcaron Odieresis -18 KPX Tcaron Ograve -18 KPX Tcaron Ohungarumlaut -18 KPX Tcaron Omacron -18 KPX Tcaron Oslash -18 KPX Tcaron Otilde -18 KPX Tcaron a -80 KPX Tcaron aacute -80 KPX Tcaron abreve -80 KPX Tcaron acircumflex -80 KPX Tcaron adieresis -40 KPX Tcaron agrave -40 KPX Tcaron amacron -40 KPX Tcaron aogonek -80 KPX Tcaron aring -80 KPX Tcaron atilde -40 KPX Tcaron colon -50 KPX Tcaron comma -74 KPX Tcaron e -70 KPX Tcaron eacute -70 KPX Tcaron ecaron -70 KPX Tcaron ecircumflex -30 KPX Tcaron edieresis -30 KPX Tcaron edotaccent -70 KPX Tcaron egrave -70 KPX Tcaron emacron -30 KPX Tcaron eogonek -70 KPX Tcaron hyphen -92 KPX Tcaron i -35 KPX Tcaron iacute -35 KPX Tcaron iogonek -35 KPX Tcaron o -80 KPX Tcaron oacute -80 KPX Tcaron ocircumflex -80 KPX Tcaron odieresis -80 KPX Tcaron ograve -80 KPX Tcaron ohungarumlaut -80 KPX Tcaron omacron -80 KPX Tcaron oslash -80 KPX Tcaron otilde -80 KPX Tcaron period -74 KPX Tcaron r -35 KPX Tcaron racute -35 KPX Tcaron rcaron -35 KPX Tcaron rcommaaccent -35 KPX Tcaron semicolon -55 KPX Tcaron u -45 KPX Tcaron uacute -45 KPX Tcaron ucircumflex -45 KPX Tcaron udieresis -45 KPX Tcaron ugrave -45 KPX Tcaron uhungarumlaut -45 KPX Tcaron umacron -45 KPX Tcaron uogonek -45 KPX Tcaron uring -45 KPX Tcaron w -80 KPX Tcaron y -80 KPX Tcaron yacute -80 KPX Tcaron ydieresis -80 KPX Tcommaaccent A -93 KPX Tcommaaccent Aacute -93 KPX Tcommaaccent Abreve -93 KPX Tcommaaccent Acircumflex -93 KPX Tcommaaccent Adieresis -93 KPX Tcommaaccent Agrave -93 KPX Tcommaaccent Amacron -93 KPX Tcommaaccent Aogonek -93 KPX Tcommaaccent Aring -93 KPX Tcommaaccent Atilde -93 KPX Tcommaaccent O -18 KPX Tcommaaccent Oacute -18 KPX Tcommaaccent Ocircumflex -18 KPX Tcommaaccent Odieresis -18 KPX Tcommaaccent Ograve -18 KPX Tcommaaccent Ohungarumlaut -18 KPX Tcommaaccent Omacron -18 KPX Tcommaaccent Oslash -18 KPX Tcommaaccent Otilde -18 KPX Tcommaaccent a -80 KPX Tcommaaccent aacute -80 KPX Tcommaaccent abreve -80 KPX Tcommaaccent acircumflex -80 KPX Tcommaaccent adieresis -40 KPX Tcommaaccent agrave -40 KPX Tcommaaccent amacron -40 KPX Tcommaaccent aogonek -80 KPX Tcommaaccent aring -80 KPX Tcommaaccent atilde -40 KPX Tcommaaccent colon -50 KPX Tcommaaccent comma -74 KPX Tcommaaccent e -70 KPX Tcommaaccent eacute -70 KPX Tcommaaccent ecaron -70 KPX Tcommaaccent ecircumflex -30 KPX Tcommaaccent edieresis -30 KPX Tcommaaccent edotaccent -70 KPX Tcommaaccent egrave -30 KPX Tcommaaccent emacron -70 KPX Tcommaaccent eogonek -70 KPX Tcommaaccent hyphen -92 KPX Tcommaaccent i -35 KPX Tcommaaccent iacute -35 KPX Tcommaaccent iogonek -35 KPX Tcommaaccent o -80 KPX Tcommaaccent oacute -80 KPX Tcommaaccent ocircumflex -80 KPX Tcommaaccent odieresis -80 KPX Tcommaaccent ograve -80 KPX Tcommaaccent ohungarumlaut -80 KPX Tcommaaccent omacron -80 KPX Tcommaaccent oslash -80 KPX Tcommaaccent otilde -80 KPX Tcommaaccent period -74 KPX Tcommaaccent r -35 KPX Tcommaaccent racute -35 KPX Tcommaaccent rcaron -35 KPX Tcommaaccent rcommaaccent -35 KPX Tcommaaccent semicolon -55 KPX Tcommaaccent u -45 KPX Tcommaaccent uacute -45 KPX Tcommaaccent ucircumflex -45 KPX Tcommaaccent udieresis -45 KPX Tcommaaccent ugrave -45 KPX Tcommaaccent uhungarumlaut -45 KPX Tcommaaccent umacron -45 KPX Tcommaaccent uogonek -45 KPX Tcommaaccent uring -45 KPX Tcommaaccent w -80 KPX Tcommaaccent y -80 KPX Tcommaaccent yacute -80 KPX Tcommaaccent ydieresis -80 KPX U A -40 KPX U Aacute -40 KPX U Abreve -40 KPX U Acircumflex -40 KPX U Adieresis -40 KPX U Agrave -40 KPX U Amacron -40 KPX U Aogonek -40 KPX U Aring -40 KPX U Atilde -40 KPX Uacute A -40 KPX Uacute Aacute -40 KPX Uacute Abreve -40 KPX Uacute Acircumflex -40 KPX Uacute Adieresis -40 KPX Uacute Agrave -40 KPX Uacute Amacron -40 KPX Uacute Aogonek -40 KPX Uacute Aring -40 KPX Uacute Atilde -40 KPX Ucircumflex A -40 KPX Ucircumflex Aacute -40 KPX Ucircumflex Abreve -40 KPX Ucircumflex Acircumflex -40 KPX Ucircumflex Adieresis -40 KPX Ucircumflex Agrave -40 KPX Ucircumflex Amacron -40 KPX Ucircumflex Aogonek -40 KPX Ucircumflex Aring -40 KPX Ucircumflex Atilde -40 KPX Udieresis A -40 KPX Udieresis Aacute -40 KPX Udieresis Abreve -40 KPX Udieresis Acircumflex -40 KPX Udieresis Adieresis -40 KPX Udieresis Agrave -40 KPX Udieresis Amacron -40 KPX Udieresis Aogonek -40 KPX Udieresis Aring -40 KPX Udieresis Atilde -40 KPX Ugrave A -40 KPX Ugrave Aacute -40 KPX Ugrave Abreve -40 KPX Ugrave Acircumflex -40 KPX Ugrave Adieresis -40 KPX Ugrave Agrave -40 KPX Ugrave Amacron -40 KPX Ugrave Aogonek -40 KPX Ugrave Aring -40 KPX Ugrave Atilde -40 KPX Uhungarumlaut A -40 KPX Uhungarumlaut Aacute -40 KPX Uhungarumlaut Abreve -40 KPX Uhungarumlaut Acircumflex -40 KPX Uhungarumlaut Adieresis -40 KPX Uhungarumlaut Agrave -40 KPX Uhungarumlaut Amacron -40 KPX Uhungarumlaut Aogonek -40 KPX Uhungarumlaut Aring -40 KPX Uhungarumlaut Atilde -40 KPX Umacron A -40 KPX Umacron Aacute -40 KPX Umacron Abreve -40 KPX Umacron Acircumflex -40 KPX Umacron Adieresis -40 KPX Umacron Agrave -40 KPX Umacron Amacron -40 KPX Umacron Aogonek -40 KPX Umacron Aring -40 KPX Umacron Atilde -40 KPX Uogonek A -40 KPX Uogonek Aacute -40 KPX Uogonek Abreve -40 KPX Uogonek Acircumflex -40 KPX Uogonek Adieresis -40 KPX Uogonek Agrave -40 KPX Uogonek Amacron -40 KPX Uogonek Aogonek -40 KPX Uogonek Aring -40 KPX Uogonek Atilde -40 KPX Uring A -40 KPX Uring Aacute -40 KPX Uring Abreve -40 KPX Uring Acircumflex -40 KPX Uring Adieresis -40 KPX Uring Agrave -40 KPX Uring Amacron -40 KPX Uring Aogonek -40 KPX Uring Aring -40 KPX Uring Atilde -40 KPX V A -135 KPX V Aacute -135 KPX V Abreve -135 KPX V Acircumflex -135 KPX V Adieresis -135 KPX V Agrave -135 KPX V Amacron -135 KPX V Aogonek -135 KPX V Aring -135 KPX V Atilde -135 KPX V G -15 KPX V Gbreve -15 KPX V Gcommaaccent -15 KPX V O -40 KPX V Oacute -40 KPX V Ocircumflex -40 KPX V Odieresis -40 KPX V Ograve -40 KPX V Ohungarumlaut -40 KPX V Omacron -40 KPX V Oslash -40 KPX V Otilde -40 KPX V a -111 KPX V aacute -111 KPX V abreve -111 KPX V acircumflex -71 KPX V adieresis -71 KPX V agrave -71 KPX V amacron -71 KPX V aogonek -111 KPX V aring -111 KPX V atilde -71 KPX V colon -74 KPX V comma -129 KPX V e -111 KPX V eacute -111 KPX V ecaron -71 KPX V ecircumflex -71 KPX V edieresis -71 KPX V edotaccent -111 KPX V egrave -71 KPX V emacron -71 KPX V eogonek -111 KPX V hyphen -100 KPX V i -60 KPX V iacute -60 KPX V icircumflex -20 KPX V idieresis -20 KPX V igrave -20 KPX V imacron -20 KPX V iogonek -60 KPX V o -129 KPX V oacute -129 KPX V ocircumflex -129 KPX V odieresis -89 KPX V ograve -89 KPX V ohungarumlaut -129 KPX V omacron -89 KPX V oslash -129 KPX V otilde -89 KPX V period -129 KPX V semicolon -74 KPX V u -75 KPX V uacute -75 KPX V ucircumflex -75 KPX V udieresis -75 KPX V ugrave -75 KPX V uhungarumlaut -75 KPX V umacron -75 KPX V uogonek -75 KPX V uring -75 KPX W A -120 KPX W Aacute -120 KPX W Abreve -120 KPX W Acircumflex -120 KPX W Adieresis -120 KPX W Agrave -120 KPX W Amacron -120 KPX W Aogonek -120 KPX W Aring -120 KPX W Atilde -120 KPX W O -10 KPX W Oacute -10 KPX W Ocircumflex -10 KPX W Odieresis -10 KPX W Ograve -10 KPX W Ohungarumlaut -10 KPX W Omacron -10 KPX W Oslash -10 KPX W Otilde -10 KPX W a -80 KPX W aacute -80 KPX W abreve -80 KPX W acircumflex -80 KPX W adieresis -80 KPX W agrave -80 KPX W amacron -80 KPX W aogonek -80 KPX W aring -80 KPX W atilde -80 KPX W colon -37 KPX W comma -92 KPX W e -80 KPX W eacute -80 KPX W ecaron -80 KPX W ecircumflex -80 KPX W edieresis -40 KPX W edotaccent -80 KPX W egrave -40 KPX W emacron -40 KPX W eogonek -80 KPX W hyphen -65 KPX W i -40 KPX W iacute -40 KPX W iogonek -40 KPX W o -80 KPX W oacute -80 KPX W ocircumflex -80 KPX W odieresis -80 KPX W ograve -80 KPX W ohungarumlaut -80 KPX W omacron -80 KPX W oslash -80 KPX W otilde -80 KPX W period -92 KPX W semicolon -37 KPX W u -50 KPX W uacute -50 KPX W ucircumflex -50 KPX W udieresis -50 KPX W ugrave -50 KPX W uhungarumlaut -50 KPX W umacron -50 KPX W uogonek -50 KPX W uring -50 KPX W y -73 KPX W yacute -73 KPX W ydieresis -73 KPX Y A -120 KPX Y Aacute -120 KPX Y Abreve -120 KPX Y Acircumflex -120 KPX Y Adieresis -120 KPX Y Agrave -120 KPX Y Amacron -120 KPX Y Aogonek -120 KPX Y Aring -120 KPX Y Atilde -120 KPX Y O -30 KPX Y Oacute -30 KPX Y Ocircumflex -30 KPX Y Odieresis -30 KPX Y Ograve -30 KPX Y Ohungarumlaut -30 KPX Y Omacron -30 KPX Y Oslash -30 KPX Y Otilde -30 KPX Y a -100 KPX Y aacute -100 KPX Y abreve -100 KPX Y acircumflex -100 KPX Y adieresis -60 KPX Y agrave -60 KPX Y amacron -60 KPX Y aogonek -100 KPX Y aring -100 KPX Y atilde -60 KPX Y colon -92 KPX Y comma -129 KPX Y e -100 KPX Y eacute -100 KPX Y ecaron -100 KPX Y ecircumflex -100 KPX Y edieresis -60 KPX Y edotaccent -100 KPX Y egrave -60 KPX Y emacron -60 KPX Y eogonek -100 KPX Y hyphen -111 KPX Y i -55 KPX Y iacute -55 KPX Y iogonek -55 KPX Y o -110 KPX Y oacute -110 KPX Y ocircumflex -110 KPX Y odieresis -70 KPX Y ograve -70 KPX Y ohungarumlaut -110 KPX Y omacron -70 KPX Y oslash -110 KPX Y otilde -70 KPX Y period -129 KPX Y semicolon -92 KPX Y u -111 KPX Y uacute -111 KPX Y ucircumflex -111 KPX Y udieresis -71 KPX Y ugrave -71 KPX Y uhungarumlaut -111 KPX Y umacron -71 KPX Y uogonek -111 KPX Y uring -111 KPX Yacute A -120 KPX Yacute Aacute -120 KPX Yacute Abreve -120 KPX Yacute Acircumflex -120 KPX Yacute Adieresis -120 KPX Yacute Agrave -120 KPX Yacute Amacron -120 KPX Yacute Aogonek -120 KPX Yacute Aring -120 KPX Yacute Atilde -120 KPX Yacute O -30 KPX Yacute Oacute -30 KPX Yacute Ocircumflex -30 KPX Yacute Odieresis -30 KPX Yacute Ograve -30 KPX Yacute Ohungarumlaut -30 KPX Yacute Omacron -30 KPX Yacute Oslash -30 KPX Yacute Otilde -30 KPX Yacute a -100 KPX Yacute aacute -100 KPX Yacute abreve -100 KPX Yacute acircumflex -100 KPX Yacute adieresis -60 KPX Yacute agrave -60 KPX Yacute amacron -60 KPX Yacute aogonek -100 KPX Yacute aring -100 KPX Yacute atilde -60 KPX Yacute colon -92 KPX Yacute comma -129 KPX Yacute e -100 KPX Yacute eacute -100 KPX Yacute ecaron -100 KPX Yacute ecircumflex -100 KPX Yacute edieresis -60 KPX Yacute edotaccent -100 KPX Yacute egrave -60 KPX Yacute emacron -60 KPX Yacute eogonek -100 KPX Yacute hyphen -111 KPX Yacute i -55 KPX Yacute iacute -55 KPX Yacute iogonek -55 KPX Yacute o -110 KPX Yacute oacute -110 KPX Yacute ocircumflex -110 KPX Yacute odieresis -70 KPX Yacute ograve -70 KPX Yacute ohungarumlaut -110 KPX Yacute omacron -70 KPX Yacute oslash -110 KPX Yacute otilde -70 KPX Yacute period -129 KPX Yacute semicolon -92 KPX Yacute u -111 KPX Yacute uacute -111 KPX Yacute ucircumflex -111 KPX Yacute udieresis -71 KPX Yacute ugrave -71 KPX Yacute uhungarumlaut -111 KPX Yacute umacron -71 KPX Yacute uogonek -111 KPX Yacute uring -111 KPX Ydieresis A -120 KPX Ydieresis Aacute -120 KPX Ydieresis Abreve -120 KPX Ydieresis Acircumflex -120 KPX Ydieresis Adieresis -120 KPX Ydieresis Agrave -120 KPX Ydieresis Amacron -120 KPX Ydieresis Aogonek -120 KPX Ydieresis Aring -120 KPX Ydieresis Atilde -120 KPX Ydieresis O -30 KPX Ydieresis Oacute -30 KPX Ydieresis Ocircumflex -30 KPX Ydieresis Odieresis -30 KPX Ydieresis Ograve -30 KPX Ydieresis Ohungarumlaut -30 KPX Ydieresis Omacron -30 KPX Ydieresis Oslash -30 KPX Ydieresis Otilde -30 KPX Ydieresis a -100 KPX Ydieresis aacute -100 KPX Ydieresis abreve -100 KPX Ydieresis acircumflex -100 KPX Ydieresis adieresis -60 KPX Ydieresis agrave -60 KPX Ydieresis amacron -60 KPX Ydieresis aogonek -100 KPX Ydieresis aring -100 KPX Ydieresis atilde -100 KPX Ydieresis colon -92 KPX Ydieresis comma -129 KPX Ydieresis e -100 KPX Ydieresis eacute -100 KPX Ydieresis ecaron -100 KPX Ydieresis ecircumflex -100 KPX Ydieresis edieresis -60 KPX Ydieresis edotaccent -100 KPX Ydieresis egrave -60 KPX Ydieresis emacron -60 KPX Ydieresis eogonek -100 KPX Ydieresis hyphen -111 KPX Ydieresis i -55 KPX Ydieresis iacute -55 KPX Ydieresis iogonek -55 KPX Ydieresis o -110 KPX Ydieresis oacute -110 KPX Ydieresis ocircumflex -110 KPX Ydieresis odieresis -70 KPX Ydieresis ograve -70 KPX Ydieresis ohungarumlaut -110 KPX Ydieresis omacron -70 KPX Ydieresis oslash -110 KPX Ydieresis otilde -70 KPX Ydieresis period -129 KPX Ydieresis semicolon -92 KPX Ydieresis u -111 KPX Ydieresis uacute -111 KPX Ydieresis ucircumflex -111 KPX Ydieresis udieresis -71 KPX Ydieresis ugrave -71 KPX Ydieresis uhungarumlaut -111 KPX Ydieresis umacron -71 KPX Ydieresis uogonek -111 KPX Ydieresis uring -111 KPX a v -20 KPX a w -15 KPX aacute v -20 KPX aacute w -15 KPX abreve v -20 KPX abreve w -15 KPX acircumflex v -20 KPX acircumflex w -15 KPX adieresis v -20 KPX adieresis w -15 KPX agrave v -20 KPX agrave w -15 KPX amacron v -20 KPX amacron w -15 KPX aogonek v -20 KPX aogonek w -15 KPX aring v -20 KPX aring w -15 KPX atilde v -20 KPX atilde w -15 KPX b period -40 KPX b u -20 KPX b uacute -20 KPX b ucircumflex -20 KPX b udieresis -20 KPX b ugrave -20 KPX b uhungarumlaut -20 KPX b umacron -20 KPX b uogonek -20 KPX b uring -20 KPX b v -15 KPX c y -15 KPX c yacute -15 KPX c ydieresis -15 KPX cacute y -15 KPX cacute yacute -15 KPX cacute ydieresis -15 KPX ccaron y -15 KPX ccaron yacute -15 KPX ccaron ydieresis -15 KPX ccedilla y -15 KPX ccedilla yacute -15 KPX ccedilla ydieresis -15 KPX comma quotedblright -70 KPX comma quoteright -70 KPX e g -15 KPX e gbreve -15 KPX e gcommaaccent -15 KPX e v -25 KPX e w -25 KPX e x -15 KPX e y -15 KPX e yacute -15 KPX e ydieresis -15 KPX eacute g -15 KPX eacute gbreve -15 KPX eacute gcommaaccent -15 KPX eacute v -25 KPX eacute w -25 KPX eacute x -15 KPX eacute y -15 KPX eacute yacute -15 KPX eacute ydieresis -15 KPX ecaron g -15 KPX ecaron gbreve -15 KPX ecaron gcommaaccent -15 KPX ecaron v -25 KPX ecaron w -25 KPX ecaron x -15 KPX ecaron y -15 KPX ecaron yacute -15 KPX ecaron ydieresis -15 KPX ecircumflex g -15 KPX ecircumflex gbreve -15 KPX ecircumflex gcommaaccent -15 KPX ecircumflex v -25 KPX ecircumflex w -25 KPX ecircumflex x -15 KPX ecircumflex y -15 KPX ecircumflex yacute -15 KPX ecircumflex ydieresis -15 KPX edieresis g -15 KPX edieresis gbreve -15 KPX edieresis gcommaaccent -15 KPX edieresis v -25 KPX edieresis w -25 KPX edieresis x -15 KPX edieresis y -15 KPX edieresis yacute -15 KPX edieresis ydieresis -15 KPX edotaccent g -15 KPX edotaccent gbreve -15 KPX edotaccent gcommaaccent -15 KPX edotaccent v -25 KPX edotaccent w -25 KPX edotaccent x -15 KPX edotaccent y -15 KPX edotaccent yacute -15 KPX edotaccent ydieresis -15 KPX egrave g -15 KPX egrave gbreve -15 KPX egrave gcommaaccent -15 KPX egrave v -25 KPX egrave w -25 KPX egrave x -15 KPX egrave y -15 KPX egrave yacute -15 KPX egrave ydieresis -15 KPX emacron g -15 KPX emacron gbreve -15 KPX emacron gcommaaccent -15 KPX emacron v -25 KPX emacron w -25 KPX emacron x -15 KPX emacron y -15 KPX emacron yacute -15 KPX emacron ydieresis -15 KPX eogonek g -15 KPX eogonek gbreve -15 KPX eogonek gcommaaccent -15 KPX eogonek v -25 KPX eogonek w -25 KPX eogonek x -15 KPX eogonek y -15 KPX eogonek yacute -15 KPX eogonek ydieresis -15 KPX f a -10 KPX f aacute -10 KPX f abreve -10 KPX f acircumflex -10 KPX f adieresis -10 KPX f agrave -10 KPX f amacron -10 KPX f aogonek -10 KPX f aring -10 KPX f atilde -10 KPX f dotlessi -50 KPX f f -25 KPX f i -20 KPX f iacute -20 KPX f quoteright 55 KPX g a -5 KPX g aacute -5 KPX g abreve -5 KPX g acircumflex -5 KPX g adieresis -5 KPX g agrave -5 KPX g amacron -5 KPX g aogonek -5 KPX g aring -5 KPX g atilde -5 KPX gbreve a -5 KPX gbreve aacute -5 KPX gbreve abreve -5 KPX gbreve acircumflex -5 KPX gbreve adieresis -5 KPX gbreve agrave -5 KPX gbreve amacron -5 KPX gbreve aogonek -5 KPX gbreve aring -5 KPX gbreve atilde -5 KPX gcommaaccent a -5 KPX gcommaaccent aacute -5 KPX gcommaaccent abreve -5 KPX gcommaaccent acircumflex -5 KPX gcommaaccent adieresis -5 KPX gcommaaccent agrave -5 KPX gcommaaccent amacron -5 KPX gcommaaccent aogonek -5 KPX gcommaaccent aring -5 KPX gcommaaccent atilde -5 KPX h y -5 KPX h yacute -5 KPX h ydieresis -5 KPX i v -25 KPX iacute v -25 KPX icircumflex v -25 KPX idieresis v -25 KPX igrave v -25 KPX imacron v -25 KPX iogonek v -25 KPX k e -10 KPX k eacute -10 KPX k ecaron -10 KPX k ecircumflex -10 KPX k edieresis -10 KPX k edotaccent -10 KPX k egrave -10 KPX k emacron -10 KPX k eogonek -10 KPX k o -10 KPX k oacute -10 KPX k ocircumflex -10 KPX k odieresis -10 KPX k ograve -10 KPX k ohungarumlaut -10 KPX k omacron -10 KPX k oslash -10 KPX k otilde -10 KPX k y -15 KPX k yacute -15 KPX k ydieresis -15 KPX kcommaaccent e -10 KPX kcommaaccent eacute -10 KPX kcommaaccent ecaron -10 KPX kcommaaccent ecircumflex -10 KPX kcommaaccent edieresis -10 KPX kcommaaccent edotaccent -10 KPX kcommaaccent egrave -10 KPX kcommaaccent emacron -10 KPX kcommaaccent eogonek -10 KPX kcommaaccent o -10 KPX kcommaaccent oacute -10 KPX kcommaaccent ocircumflex -10 KPX kcommaaccent odieresis -10 KPX kcommaaccent ograve -10 KPX kcommaaccent ohungarumlaut -10 KPX kcommaaccent omacron -10 KPX kcommaaccent oslash -10 KPX kcommaaccent otilde -10 KPX kcommaaccent y -15 KPX kcommaaccent yacute -15 KPX kcommaaccent ydieresis -15 KPX l w -10 KPX lacute w -10 KPX lcommaaccent w -10 KPX lslash w -10 KPX n v -40 KPX n y -15 KPX n yacute -15 KPX n ydieresis -15 KPX nacute v -40 KPX nacute y -15 KPX nacute yacute -15 KPX nacute ydieresis -15 KPX ncaron v -40 KPX ncaron y -15 KPX ncaron yacute -15 KPX ncaron ydieresis -15 KPX ncommaaccent v -40 KPX ncommaaccent y -15 KPX ncommaaccent yacute -15 KPX ncommaaccent ydieresis -15 KPX ntilde v -40 KPX ntilde y -15 KPX ntilde yacute -15 KPX ntilde ydieresis -15 KPX o v -15 KPX o w -25 KPX o y -10 KPX o yacute -10 KPX o ydieresis -10 KPX oacute v -15 KPX oacute w -25 KPX oacute y -10 KPX oacute yacute -10 KPX oacute ydieresis -10 KPX ocircumflex v -15 KPX ocircumflex w -25 KPX ocircumflex y -10 KPX ocircumflex yacute -10 KPX ocircumflex ydieresis -10 KPX odieresis v -15 KPX odieresis w -25 KPX odieresis y -10 KPX odieresis yacute -10 KPX odieresis ydieresis -10 KPX ograve v -15 KPX ograve w -25 KPX ograve y -10 KPX ograve yacute -10 KPX ograve ydieresis -10 KPX ohungarumlaut v -15 KPX ohungarumlaut w -25 KPX ohungarumlaut y -10 KPX ohungarumlaut yacute -10 KPX ohungarumlaut ydieresis -10 KPX omacron v -15 KPX omacron w -25 KPX omacron y -10 KPX omacron yacute -10 KPX omacron ydieresis -10 KPX oslash v -15 KPX oslash w -25 KPX oslash y -10 KPX oslash yacute -10 KPX oslash ydieresis -10 KPX otilde v -15 KPX otilde w -25 KPX otilde y -10 KPX otilde yacute -10 KPX otilde ydieresis -10 KPX p y -10 KPX p yacute -10 KPX p ydieresis -10 KPX period quotedblright -70 KPX period quoteright -70 KPX quotedblleft A -80 KPX quotedblleft Aacute -80 KPX quotedblleft Abreve -80 KPX quotedblleft Acircumflex -80 KPX quotedblleft Adieresis -80 KPX quotedblleft Agrave -80 KPX quotedblleft Amacron -80 KPX quotedblleft Aogonek -80 KPX quotedblleft Aring -80 KPX quotedblleft Atilde -80 KPX quoteleft A -80 KPX quoteleft Aacute -80 KPX quoteleft Abreve -80 KPX quoteleft Acircumflex -80 KPX quoteleft Adieresis -80 KPX quoteleft Agrave -80 KPX quoteleft Amacron -80 KPX quoteleft Aogonek -80 KPX quoteleft Aring -80 KPX quoteleft Atilde -80 KPX quoteleft quoteleft -74 KPX quoteright d -50 KPX quoteright dcroat -50 KPX quoteright l -10 KPX quoteright lacute -10 KPX quoteright lcommaaccent -10 KPX quoteright lslash -10 KPX quoteright quoteright -74 KPX quoteright r -50 KPX quoteright racute -50 KPX quoteright rcaron -50 KPX quoteright rcommaaccent -50 KPX quoteright s -55 KPX quoteright sacute -55 KPX quoteright scaron -55 KPX quoteright scedilla -55 KPX quoteright scommaaccent -55 KPX quoteright space -74 KPX quoteright t -18 KPX quoteright tcommaaccent -18 KPX quoteright v -50 KPX r comma -40 KPX r g -18 KPX r gbreve -18 KPX r gcommaaccent -18 KPX r hyphen -20 KPX r period -55 KPX racute comma -40 KPX racute g -18 KPX racute gbreve -18 KPX racute gcommaaccent -18 KPX racute hyphen -20 KPX racute period -55 KPX rcaron comma -40 KPX rcaron g -18 KPX rcaron gbreve -18 KPX rcaron gcommaaccent -18 KPX rcaron hyphen -20 KPX rcaron period -55 KPX rcommaaccent comma -40 KPX rcommaaccent g -18 KPX rcommaaccent gbreve -18 KPX rcommaaccent gcommaaccent -18 KPX rcommaaccent hyphen -20 KPX rcommaaccent period -55 KPX space A -55 KPX space Aacute -55 KPX space Abreve -55 KPX space Acircumflex -55 KPX space Adieresis -55 KPX space Agrave -55 KPX space Amacron -55 KPX space Aogonek -55 KPX space Aring -55 KPX space Atilde -55 KPX space T -18 KPX space Tcaron -18 KPX space Tcommaaccent -18 KPX space V -50 KPX space W -30 KPX space Y -90 KPX space Yacute -90 KPX space Ydieresis -90 KPX v a -25 KPX v aacute -25 KPX v abreve -25 KPX v acircumflex -25 KPX v adieresis -25 KPX v agrave -25 KPX v amacron -25 KPX v aogonek -25 KPX v aring -25 KPX v atilde -25 KPX v comma -65 KPX v e -15 KPX v eacute -15 KPX v ecaron -15 KPX v ecircumflex -15 KPX v edieresis -15 KPX v edotaccent -15 KPX v egrave -15 KPX v emacron -15 KPX v eogonek -15 KPX v o -20 KPX v oacute -20 KPX v ocircumflex -20 KPX v odieresis -20 KPX v ograve -20 KPX v ohungarumlaut -20 KPX v omacron -20 KPX v oslash -20 KPX v otilde -20 KPX v period -65 KPX w a -10 KPX w aacute -10 KPX w abreve -10 KPX w acircumflex -10 KPX w adieresis -10 KPX w agrave -10 KPX w amacron -10 KPX w aogonek -10 KPX w aring -10 KPX w atilde -10 KPX w comma -65 KPX w o -10 KPX w oacute -10 KPX w ocircumflex -10 KPX w odieresis -10 KPX w ograve -10 KPX w ohungarumlaut -10 KPX w omacron -10 KPX w oslash -10 KPX w otilde -10 KPX w period -65 KPX x e -15 KPX x eacute -15 KPX x ecaron -15 KPX x ecircumflex -15 KPX x edieresis -15 KPX x edotaccent -15 KPX x egrave -15 KPX x emacron -15 KPX x eogonek -15 KPX y comma -65 KPX y period -65 KPX yacute comma -65 KPX yacute period -65 KPX ydieresis comma -65 KPX ydieresis period -65 EndKernPairs EndKernData EndFontMetrics a2ps-4.14/afm/pplr.afm0000644000175000017500000011120510674334153014040 0ustar mhattamhattaStartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1989, 1990, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Mon Jun 23 16:33:55 1997 Comment UniqueID 43073 Comment VMusage 50775 65800 FontName Palatino-Roman FullName Palatino Roman FamilyName Palatino Weight Medium ItalicAngle 0 IsFixedPitch false FontBBox -166 -283 1021 927 UnderlinePosition -100 UnderlineThickness 50 Version 002.000 Notice Copyright (c) 1985, 1987, 1989, 1990, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.Palatino is a trademark of Linotype-Hell AG and/or its subsidiaries. EncodingScheme AdobeStandardEncoding CapHeight 692 XHeight 469 Ascender 726 Descender -281 StdHW 51 StdVW 84 StartCharMetrics 314 C 32 ; WX 250 ; N space ; B 0 0 0 0 ; C 33 ; WX 278 ; N exclam ; B 81 -5 197 694 ; C 34 ; WX 371 ; N quotedbl ; B 51 469 320 709 ; C 35 ; WX 500 ; N numbersign ; B 4 0 495 684 ; C 36 ; WX 500 ; N dollar ; B 30 -116 471 731 ; C 37 ; WX 840 ; N percent ; B 39 -20 802 709 ; C 38 ; WX 778 ; N ampersand ; B 43 -20 753 689 ; C 39 ; WX 278 ; N quoteright ; B 45 446 233 709 ; C 40 ; WX 333 ; N parenleft ; B 60 -215 301 726 ; C 41 ; WX 333 ; N parenright ; B 32 -215 273 726 ; C 42 ; WX 389 ; N asterisk ; B 32 342 359 689 ; C 43 ; WX 606 ; N plus ; B 51 7 555 512 ; C 44 ; WX 250 ; N comma ; B 16 -155 218 123 ; C 45 ; WX 333 ; N hyphen ; B 17 215 312 287 ; C 46 ; WX 250 ; N period ; B 67 -5 183 111 ; C 47 ; WX 606 ; N slash ; B 87 -119 519 726 ; C 48 ; WX 500 ; N zero ; B 29 -20 465 689 ; C 49 ; WX 500 ; N one ; B 60 -3 418 694 ; C 50 ; WX 500 ; N two ; B 16 -3 468 689 ; C 51 ; WX 500 ; N three ; B 15 -20 462 689 ; C 52 ; WX 500 ; N four ; B 2 -3 472 694 ; C 53 ; WX 500 ; N five ; B 13 -20 459 689 ; C 54 ; WX 500 ; N six ; B 32 -20 468 689 ; C 55 ; WX 500 ; N seven ; B 44 -3 497 689 ; C 56 ; WX 500 ; N eight ; B 30 -20 464 689 ; C 57 ; WX 500 ; N nine ; B 20 -20 457 689 ; C 58 ; WX 250 ; N colon ; B 66 -5 182 456 ; C 59 ; WX 250 ; N semicolon ; B 16 -153 218 456 ; C 60 ; WX 606 ; N less ; B 57 0 558 522 ; C 61 ; WX 606 ; N equal ; B 51 136 555 386 ; C 62 ; WX 606 ; N greater ; B 48 0 549 522 ; C 63 ; WX 444 ; N question ; B 43 -5 395 694 ; C 64 ; WX 747 ; N at ; B 24 -20 724 694 ; C 65 ; WX 778 ; N A ; B 15 -3 756 700 ; C 66 ; WX 611 ; N B ; B 26 -3 576 692 ; C 67 ; WX 709 ; N C ; B 22 -20 670 709 ; C 68 ; WX 774 ; N D ; B 22 -4 751 692 ; C 69 ; WX 611 ; N E ; B 22 -4 572 692 ; C 70 ; WX 556 ; N F ; B 22 -3 536 692 ; C 71 ; WX 763 ; N G ; B 22 -20 728 709 ; C 72 ; WX 832 ; N H ; B 22 -3 810 692 ; C 73 ; WX 337 ; N I ; B 22 -3 315 692 ; C 74 ; WX 333 ; N J ; B -15 -194 311 692 ; C 75 ; WX 726 ; N K ; B 22 -3 719 692 ; C 76 ; WX 611 ; N L ; B 22 -4 586 692 ; C 77 ; WX 946 ; N M ; B 16 -13 926 692 ; C 78 ; WX 831 ; N N ; B 17 -20 813 692 ; C 79 ; WX 786 ; N O ; B 22 -20 764 709 ; C 80 ; WX 604 ; N P ; B 22 -3 580 692 ; C 81 ; WX 786 ; N Q ; B 22 -176 764 709 ; C 82 ; WX 668 ; N R ; B 22 -3 669 692 ; C 83 ; WX 525 ; N S ; B 24 -20 503 709 ; C 84 ; WX 613 ; N T ; B 18 -3 595 692 ; C 85 ; WX 778 ; N U ; B 12 -20 759 692 ; C 86 ; WX 722 ; N V ; B 8 -9 706 692 ; C 87 ; WX 1000 ; N W ; B 8 -9 984 700 ; C 88 ; WX 667 ; N X ; B 14 -3 648 700 ; C 89 ; WX 667 ; N Y ; B 9 -3 654 705 ; C 90 ; WX 667 ; N Z ; B 15 -3 638 692 ; C 91 ; WX 333 ; N bracketleft ; B 79 -184 288 726 ; C 92 ; WX 606 ; N backslash ; B 81 0 512 726 ; C 93 ; WX 333 ; N bracketright ; B 45 -184 254 726 ; C 94 ; WX 606 ; N asciicircum ; B 51 283 554 689 ; C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; C 96 ; WX 278 ; N quoteleft ; B 45 446 233 709 ; C 97 ; WX 500 ; N a ; B 32 -12 471 469 ; C 98 ; WX 553 ; N b ; B -15 -12 508 726 ; C 99 ; WX 444 ; N c ; B 26 -20 413 469 ; C 100 ; WX 611 ; N d ; B 35 -12 579 726 ; C 101 ; WX 479 ; N e ; B 26 -20 448 469 ; C 102 ; WX 333 ; N f ; B 23 -3 341 728 ; L i fi ; L l fl ; C 103 ; WX 556 ; N g ; B 32 -283 544 469 ; C 104 ; WX 582 ; N h ; B 6 -3 572 726 ; C 105 ; WX 291 ; N i ; B 21 -3 271 687 ; C 106 ; WX 234 ; N j ; B -40 -283 167 688 ; C 107 ; WX 556 ; N k ; B 21 -12 549 726 ; C 108 ; WX 291 ; N l ; B 21 -3 271 726 ; C 109 ; WX 883 ; N m ; B 16 -3 869 469 ; C 110 ; WX 582 ; N n ; B 6 -3 572 469 ; C 111 ; WX 546 ; N o ; B 32 -20 514 469 ; C 112 ; WX 601 ; N p ; B 8 -281 554 469 ; C 113 ; WX 560 ; N q ; B 35 -281 560 469 ; C 114 ; WX 395 ; N r ; B 21 -3 374 469 ; C 115 ; WX 424 ; N s ; B 30 -20 391 469 ; C 116 ; WX 326 ; N t ; B 22 -12 319 621 ; C 117 ; WX 603 ; N u ; B 18 -12 581 469 ; C 118 ; WX 565 ; N v ; B 6 -7 539 459 ; C 119 ; WX 834 ; N w ; B 6 -7 808 469 ; C 120 ; WX 516 ; N x ; B 20 -3 496 469 ; C 121 ; WX 556 ; N y ; B 12 -283 544 459 ; C 122 ; WX 500 ; N z ; B 16 -3 466 462 ; C 123 ; WX 333 ; N braceleft ; B 58 -175 289 726 ; C 124 ; WX 606 ; N bar ; B 275 -250 331 750 ; C 125 ; WX 333 ; N braceright ; B 44 -175 275 726 ; C 126 ; WX 606 ; N asciitilde ; B 51 176 555 347 ; C 161 ; WX 278 ; N exclamdown ; B 81 -225 197 469 ; C 162 ; WX 500 ; N cent ; B 61 -101 448 562 ; C 163 ; WX 500 ; N sterling ; B 12 -13 478 694 ; C 164 ; WX 167 ; N fraction ; B -166 0 337 689 ; C 165 ; WX 500 ; N yen ; B 5 -3 496 702 ; C 166 ; WX 500 ; N florin ; B 0 -262 473 706 ; C 167 ; WX 500 ; N section ; B 26 -219 465 709 ; C 168 ; WX 500 ; N currency ; B 30 96 470 531 ; C 169 ; WX 208 ; N quotesingle ; B 60 469 148 709 ; C 170 ; WX 500 ; N quotedblleft ; B 51 446 449 709 ; C 171 ; WX 500 ; N guillemotleft ; B 50 71 450 428 ; C 172 ; WX 331 ; N guilsinglleft ; B 66 71 265 428 ; C 173 ; WX 331 ; N guilsinglright ; B 66 71 265 428 ; C 174 ; WX 605 ; N fi ; B 23 -3 587 728 ; C 175 ; WX 608 ; N fl ; B 23 -3 590 728 ; C 177 ; WX 500 ; N endash ; B 0 219 500 277 ; C 178 ; WX 500 ; N dagger ; B 34 -5 466 694 ; C 179 ; WX 500 ; N daggerdbl ; B 34 -249 466 694 ; C 180 ; WX 250 ; N periodcentered ; B 67 203 183 319 ; C 182 ; WX 628 ; N paragraph ; B 39 -150 589 695 ; C 183 ; WX 606 ; N bullet ; B 131 172 475 516 ; C 184 ; WX 278 ; N quotesinglbase ; B 22 -153 210 110 ; C 185 ; WX 500 ; N quotedblbase ; B 51 -153 449 110 ; C 186 ; WX 500 ; N quotedblright ; B 51 446 449 709 ; C 187 ; WX 500 ; N guillemotright ; B 50 71 450 428 ; C 188 ; WX 1000 ; N ellipsis ; B 109 -5 891 111 ; C 189 ; WX 1144 ; N perthousand ; B 123 -20 1021 709 ; C 191 ; WX 444 ; N questiondown ; B 43 -231 395 469 ; C 193 ; WX 333 ; N grave ; B 31 506 255 677 ; C 194 ; WX 333 ; N acute ; B 78 506 302 677 ; C 195 ; WX 333 ; N circumflex ; B 11 510 323 677 ; C 196 ; WX 333 ; N tilde ; B 2 535 332 640 ; C 197 ; WX 333 ; N macron ; B 11 538 323 591 ; C 198 ; WX 333 ; N breve ; B 26 506 308 664 ; C 199 ; WX 250 ; N dotaccent ; B 70 576 181 687 ; C 200 ; WX 333 ; N dieresis ; B 12 576 322 687 ; C 202 ; WX 333 ; N ring ; B 67 496 267 696 ; C 203 ; WX 333 ; N cedilla ; B 96 -225 304 -10 ; C 205 ; WX 380 ; N hungarumlaut ; B 3 506 377 687 ; C 206 ; WX 313 ; N ogonek ; B 50 -225 288 -20 ; C 207 ; WX 333 ; N caron ; B 11 510 323 677 ; C 208 ; WX 1000 ; N emdash ; B 0 219 1000 277 ; C 225 ; WX 944 ; N AE ; B -10 -4 908 692 ; C 227 ; WX 333 ; N ordfeminine ; B 24 422 310 709 ; C 232 ; WX 611 ; N Lslash ; B 6 -4 586 692 ; C 233 ; WX 833 ; N Oslash ; B 30 -20 797 709 ; C 234 ; WX 998 ; N OE ; B 22 -20 962 709 ; C 235 ; WX 333 ; N ordmasculine ; B 10 416 323 709 ; C 241 ; WX 758 ; N ae ; B 30 -20 732 469 ; C 245 ; WX 287 ; N dotlessi ; B 21 -3 271 469 ; C 248 ; WX 291 ; N lslash ; B -14 -3 306 726 ; C 249 ; WX 556 ; N oslash ; B 16 -23 530 474 ; C 250 ; WX 827 ; N oe ; B 32 -20 800 469 ; C 251 ; WX 556 ; N germandbls ; B 23 -9 519 731 ; C -1 ; WX 337 ; N Idieresis ; B 14 -3 324 868 ; C -1 ; WX 479 ; N eacute ; B 26 -20 448 697 ; C -1 ; WX 500 ; N abreve ; B 32 -12 471 684 ; C -1 ; WX 603 ; N uhungarumlaut ; B 18 -12 581 707 ; C -1 ; WX 479 ; N ecaron ; B 26 -20 448 697 ; C -1 ; WX 667 ; N Ydieresis ; B 9 -3 654 868 ; C -1 ; WX 606 ; N divide ; B 51 10 555 512 ; C -1 ; WX 667 ; N Yacute ; B 9 -3 654 908 ; C -1 ; WX 778 ; N Acircumflex ; B 15 -3 756 908 ; C -1 ; WX 500 ; N aacute ; B 32 -12 471 697 ; C -1 ; WX 778 ; N Ucircumflex ; B 12 -20 759 908 ; C -1 ; WX 556 ; N yacute ; B 12 -283 544 697 ; C -1 ; WX 424 ; N scommaaccent ; B 30 -263 391 469 ; C -1 ; WX 479 ; N ecircumflex ; B 26 -20 448 697 ; C -1 ; WX 778 ; N Uring ; B 12 -20 759 927 ; C -1 ; WX 778 ; N Udieresis ; B 12 -20 759 868 ; C -1 ; WX 500 ; N aogonek ; B 32 -225 488 469 ; C -1 ; WX 778 ; N Uacute ; B 12 -20 759 908 ; C -1 ; WX 603 ; N uogonek ; B 18 -225 628 469 ; C -1 ; WX 611 ; N Edieresis ; B 22 -4 572 868 ; C -1 ; WX 774 ; N Dcroat ; B 14 -3 751 692 ; C -1 ; WX 250 ; N commaaccent ; B 53 -283 213 -50 ; C -1 ; WX 747 ; N copyright ; B 11 -18 736 706 ; C -1 ; WX 611 ; N Emacron ; B 22 -4 572 822 ; C -1 ; WX 444 ; N ccaron ; B 26 -20 413 697 ; C -1 ; WX 500 ; N aring ; B 32 -12 471 716 ; C -1 ; WX 831 ; N Ncommaaccent ; B 17 -283 813 692 ; C -1 ; WX 291 ; N lacute ; B 21 -3 321 927 ; C -1 ; WX 500 ; N agrave ; B 32 -12 471 697 ; C -1 ; WX 613 ; N Tcommaaccent ; B 18 -283 595 692 ; C -1 ; WX 709 ; N Cacute ; B 22 -20 670 908 ; C -1 ; WX 500 ; N atilde ; B 32 -12 471 672 ; C -1 ; WX 611 ; N Edotaccent ; B 22 -4 572 868 ; C -1 ; WX 424 ; N scaron ; B 30 -20 391 697 ; C -1 ; WX 424 ; N scedilla ; B 30 -225 391 469 ; C -1 ; WX 287 ; N iacute ; B 21 -3 279 697 ; C -1 ; WX 471 ; N lozenge ; B 21 0 451 710 ; C -1 ; WX 668 ; N Rcaron ; B 22 -3 669 908 ; C -1 ; WX 763 ; N Gcommaaccent ; B 22 -283 728 709 ; C -1 ; WX 603 ; N ucircumflex ; B 18 -12 581 697 ; C -1 ; WX 500 ; N acircumflex ; B 32 -12 471 697 ; C -1 ; WX 778 ; N Amacron ; B 15 -3 756 822 ; C -1 ; WX 395 ; N rcaron ; B 21 -3 374 697 ; C -1 ; WX 444 ; N ccedilla ; B 26 -225 413 469 ; C -1 ; WX 667 ; N Zdotaccent ; B 15 -3 638 868 ; C -1 ; WX 604 ; N Thorn ; B 32 -3 574 692 ; C -1 ; WX 786 ; N Omacron ; B 22 -20 764 822 ; C -1 ; WX 668 ; N Racute ; B 22 -3 669 908 ; C -1 ; WX 525 ; N Sacute ; B 24 -20 503 908 ; C -1 ; WX 671 ; N dcaron ; B 35 -12 684 736 ; C -1 ; WX 778 ; N Umacron ; B 12 -20 759 822 ; C -1 ; WX 603 ; N uring ; B 18 -12 581 716 ; C -1 ; WX 300 ; N threesuperior ; B 1 266 299 689 ; C -1 ; WX 786 ; N Ograve ; B 22 -20 764 908 ; C -1 ; WX 778 ; N Agrave ; B 15 -3 756 908 ; C -1 ; WX 778 ; N Abreve ; B 15 -3 756 915 ; C -1 ; WX 606 ; N multiply ; B 83 36 523 474 ; C -1 ; WX 603 ; N uacute ; B 18 -12 581 697 ; C -1 ; WX 613 ; N Tcaron ; B 18 -3 595 908 ; C -1 ; WX 476 ; N partialdiff ; B 34 -21 450 711 ; C -1 ; WX 556 ; N ydieresis ; B 12 -283 544 657 ; C -1 ; WX 831 ; N Nacute ; B 17 -20 813 908 ; C -1 ; WX 287 ; N icircumflex ; B -12 -3 300 697 ; C -1 ; WX 611 ; N Ecircumflex ; B 22 -4 572 908 ; C -1 ; WX 500 ; N adieresis ; B 32 -12 471 657 ; C -1 ; WX 479 ; N edieresis ; B 26 -20 448 657 ; C -1 ; WX 444 ; N cacute ; B 26 -20 413 697 ; C -1 ; WX 582 ; N nacute ; B 6 -3 572 697 ; C -1 ; WX 603 ; N umacron ; B 18 -12 581 611 ; C -1 ; WX 831 ; N Ncaron ; B 17 -20 813 908 ; C -1 ; WX 337 ; N Iacute ; B 22 -3 315 908 ; C -1 ; WX 606 ; N plusminus ; B 51 0 555 512 ; C -1 ; WX 606 ; N brokenbar ; B 275 -175 331 675 ; C -1 ; WX 747 ; N registered ; B 11 -18 736 706 ; C -1 ; WX 763 ; N Gbreve ; B 22 -20 728 915 ; C -1 ; WX 337 ; N Idotaccent ; B 22 -3 315 868 ; C -1 ; WX 600 ; N summation ; B 15 -10 586 706 ; C -1 ; WX 611 ; N Egrave ; B 22 -4 572 908 ; C -1 ; WX 395 ; N racute ; B 21 -3 374 697 ; C -1 ; WX 546 ; N omacron ; B 32 -20 514 611 ; C -1 ; WX 667 ; N Zacute ; B 15 -3 638 908 ; C -1 ; WX 667 ; N Zcaron ; B 15 -3 638 908 ; C -1 ; WX 549 ; N greaterequal ; B 26 0 523 643 ; C -1 ; WX 774 ; N Eth ; B 14 -3 751 692 ; C -1 ; WX 709 ; N Ccedilla ; B 22 -225 670 709 ; C -1 ; WX 291 ; N lcommaaccent ; B 21 -263 271 726 ; C -1 ; WX 386 ; N tcaron ; B 22 -12 401 746 ; C -1 ; WX 479 ; N eogonek ; B 26 -225 448 469 ; C -1 ; WX 778 ; N Uogonek ; B 12 -225 759 692 ; C -1 ; WX 778 ; N Aacute ; B 15 -3 756 908 ; C -1 ; WX 778 ; N Adieresis ; B 15 -3 756 868 ; C -1 ; WX 479 ; N egrave ; B 26 -20 448 697 ; C -1 ; WX 500 ; N zacute ; B 16 -3 466 697 ; C -1 ; WX 291 ; N iogonek ; B 21 -225 318 687 ; C -1 ; WX 786 ; N Oacute ; B 22 -20 764 908 ; C -1 ; WX 546 ; N oacute ; B 32 -20 514 697 ; C -1 ; WX 500 ; N amacron ; B 32 -12 471 611 ; C -1 ; WX 424 ; N sacute ; B 30 -20 391 697 ; C -1 ; WX 287 ; N idieresis ; B -11 -3 299 657 ; C -1 ; WX 786 ; N Ocircumflex ; B 22 -20 764 908 ; C -1 ; WX 778 ; N Ugrave ; B 12 -20 759 908 ; C -1 ; WX 600 ; N Delta ; B 6 0 608 688 ; C -1 ; WX 601 ; N thorn ; B -2 -281 544 726 ; C -1 ; WX 300 ; N twosuperior ; B 0 273 301 689 ; C -1 ; WX 786 ; N Odieresis ; B 22 -20 764 868 ; C -1 ; WX 603 ; N mu ; B 18 -236 581 469 ; C -1 ; WX 287 ; N igrave ; B 8 -3 271 697 ; C -1 ; WX 546 ; N ohungarumlaut ; B 32 -20 514 707 ; C -1 ; WX 611 ; N Eogonek ; B 22 -225 572 692 ; C -1 ; WX 611 ; N dcroat ; B 35 -12 579 726 ; C -1 ; WX 750 ; N threequarters ; B 15 -3 735 689 ; C -1 ; WX 525 ; N Scedilla ; B 24 -225 503 709 ; C -1 ; WX 371 ; N lcaron ; B 21 -3 376 726 ; C -1 ; WX 726 ; N Kcommaaccent ; B 22 -283 719 692 ; C -1 ; WX 611 ; N Lacute ; B 22 -4 586 908 ; C -1 ; WX 979 ; N trademark ; B 40 285 939 689 ; C -1 ; WX 479 ; N edotaccent ; B 26 -20 448 657 ; C -1 ; WX 337 ; N Igrave ; B 22 -3 315 908 ; C -1 ; WX 337 ; N Imacron ; B 13 -3 325 822 ; C -1 ; WX 611 ; N Lcaron ; B 22 -4 586 716 ; C -1 ; WX 750 ; N onehalf ; B 15 -3 735 692 ; C -1 ; WX 549 ; N lessequal ; B 26 0 523 642 ; C -1 ; WX 546 ; N ocircumflex ; B 32 -20 514 697 ; C -1 ; WX 582 ; N ntilde ; B 6 -3 572 672 ; C -1 ; WX 778 ; N Uhungarumlaut ; B 12 -20 759 918 ; C -1 ; WX 611 ; N Eacute ; B 22 -4 572 908 ; C -1 ; WX 479 ; N emacron ; B 26 -20 448 611 ; C -1 ; WX 556 ; N gbreve ; B 32 -283 544 724 ; C -1 ; WX 750 ; N onequarter ; B 30 -3 727 692 ; C -1 ; WX 525 ; N Scaron ; B 24 -20 503 908 ; C -1 ; WX 525 ; N Scommaaccent ; B 24 -283 503 709 ; C -1 ; WX 786 ; N Ohungarumlaut ; B 22 -20 764 918 ; C -1 ; WX 400 ; N degree ; B 50 389 350 689 ; C -1 ; WX 546 ; N ograve ; B 32 -20 514 697 ; C -1 ; WX 709 ; N Ccaron ; B 22 -20 670 908 ; C -1 ; WX 603 ; N ugrave ; B 18 -12 581 697 ; C -1 ; WX 453 ; N radical ; B 12 -55 442 747 ; C -1 ; WX 774 ; N Dcaron ; B 22 -4 751 908 ; C -1 ; WX 395 ; N rcommaaccent ; B 21 -263 374 469 ; C -1 ; WX 831 ; N Ntilde ; B 17 -20 813 871 ; C -1 ; WX 546 ; N otilde ; B 32 -20 514 672 ; C -1 ; WX 668 ; N Rcommaaccent ; B 22 -283 669 692 ; C -1 ; WX 611 ; N Lcommaaccent ; B 22 -283 586 692 ; C -1 ; WX 778 ; N Atilde ; B 15 -3 756 871 ; C -1 ; WX 778 ; N Aogonek ; B 15 -225 768 700 ; C -1 ; WX 778 ; N Aring ; B 15 -3 756 927 ; C -1 ; WX 786 ; N Otilde ; B 22 -20 764 883 ; C -1 ; WX 500 ; N zdotaccent ; B 16 -3 466 657 ; C -1 ; WX 611 ; N Ecaron ; B 22 -4 572 908 ; C -1 ; WX 337 ; N Iogonek ; B 22 -225 328 692 ; C -1 ; WX 556 ; N kcommaaccent ; B 21 -263 549 726 ; C -1 ; WX 606 ; N minus ; B 51 233 555 289 ; C -1 ; WX 337 ; N Icircumflex ; B 13 -3 325 908 ; C -1 ; WX 582 ; N ncaron ; B 6 -3 572 697 ; C -1 ; WX 326 ; N tcommaaccent ; B 22 -263 319 621 ; C -1 ; WX 606 ; N logicalnot ; B 51 120 551 386 ; C -1 ; WX 546 ; N odieresis ; B 32 -20 514 657 ; C -1 ; WX 603 ; N udieresis ; B 18 -12 581 657 ; C -1 ; WX 549 ; N notequal ; B 12 -16 537 538 ; C -1 ; WX 556 ; N gcommaaccent ; B 32 -283 544 773 ; C -1 ; WX 546 ; N eth ; B 32 -20 504 728 ; C -1 ; WX 500 ; N zcaron ; B 16 -3 466 697 ; C -1 ; WX 582 ; N ncommaaccent ; B 6 -263 572 469 ; C -1 ; WX 300 ; N onesuperior ; B 31 273 269 692 ; C -1 ; WX 291 ; N imacron ; B 21 -3 271 591 ; EndCharMetrics StartKernData StartKernPairs 1031 KPX A T -74 KPX A Tcaron -74 KPX A Tcommaaccent -74 KPX A V -111 KPX A W -74 KPX A Y -111 KPX A Yacute -111 KPX A Ydieresis -111 KPX A quoteright -74 KPX A space -55 KPX A v -92 KPX A w -74 KPX A y -74 KPX A yacute -74 KPX A ydieresis -74 KPX Aacute T -74 KPX Aacute Tcaron -74 KPX Aacute Tcommaaccent -74 KPX Aacute V -111 KPX Aacute W -74 KPX Aacute Y -111 KPX Aacute Yacute -111 KPX Aacute Ydieresis -111 KPX Aacute quoteright -74 KPX Aacute space -55 KPX Aacute v -92 KPX Aacute w -74 KPX Aacute y -74 KPX Aacute yacute -74 KPX Aacute ydieresis -74 KPX Abreve T -74 KPX Abreve Tcaron -74 KPX Abreve Tcommaaccent -74 KPX Abreve V -111 KPX Abreve W -74 KPX Abreve Y -111 KPX Abreve Yacute -111 KPX Abreve Ydieresis -111 KPX Abreve quoteright -74 KPX Abreve space -55 KPX Abreve v -92 KPX Abreve w -74 KPX Abreve y -74 KPX Abreve yacute -74 KPX Abreve ydieresis -74 KPX Acircumflex T -74 KPX Acircumflex Tcaron -74 KPX Acircumflex Tcommaaccent -74 KPX Acircumflex V -111 KPX Acircumflex W -74 KPX Acircumflex Y -111 KPX Acircumflex Yacute -111 KPX Acircumflex Ydieresis -111 KPX Acircumflex quoteright -74 KPX Acircumflex space -55 KPX Acircumflex v -92 KPX Acircumflex w -74 KPX Acircumflex y -74 KPX Acircumflex yacute -74 KPX Acircumflex ydieresis -74 KPX Adieresis T -74 KPX Adieresis Tcaron -74 KPX Adieresis Tcommaaccent -74 KPX Adieresis V -111 KPX Adieresis W -74 KPX Adieresis Y -111 KPX Adieresis Yacute -111 KPX Adieresis Ydieresis -111 KPX Adieresis quoteright -74 KPX Adieresis space -55 KPX Adieresis v -92 KPX Adieresis w -74 KPX Adieresis y -74 KPX Adieresis yacute -74 KPX Adieresis ydieresis -74 KPX Agrave T -74 KPX Agrave Tcaron -74 KPX Agrave Tcommaaccent -74 KPX Agrave V -111 KPX Agrave W -74 KPX Agrave Y -111 KPX Agrave Yacute -111 KPX Agrave Ydieresis -111 KPX Agrave quoteright -74 KPX Agrave space -55 KPX Agrave v -92 KPX Agrave w -74 KPX Agrave y -74 KPX Agrave yacute -74 KPX Agrave ydieresis -74 KPX Amacron T -74 KPX Amacron Tcaron -74 KPX Amacron Tcommaaccent -74 KPX Amacron V -111 KPX Amacron W -74 KPX Amacron Y -111 KPX Amacron Yacute -111 KPX Amacron Ydieresis -111 KPX Amacron quoteright -74 KPX Amacron space -55 KPX Amacron v -92 KPX Amacron w -74 KPX Amacron y -74 KPX Amacron yacute -74 KPX Amacron ydieresis -74 KPX Aogonek T -74 KPX Aogonek Tcaron -74 KPX Aogonek Tcommaaccent -74 KPX Aogonek V -111 KPX Aogonek W -74 KPX Aogonek Y -111 KPX Aogonek Yacute -111 KPX Aogonek Ydieresis -111 KPX Aogonek quoteright -74 KPX Aogonek space -55 KPX Aogonek v -92 KPX Aogonek w -74 KPX Aogonek y -74 KPX Aogonek yacute -74 KPX Aogonek ydieresis -74 KPX Aring T -74 KPX Aring Tcaron -74 KPX Aring Tcommaaccent -74 KPX Aring V -111 KPX Aring W -74 KPX Aring Y -111 KPX Aring Yacute -111 KPX Aring Ydieresis -111 KPX Aring quoteright -74 KPX Aring space -55 KPX Aring v -92 KPX Aring w -74 KPX Aring y -74 KPX Aring yacute -74 KPX Aring ydieresis -74 KPX Atilde T -74 KPX Atilde Tcaron -74 KPX Atilde Tcommaaccent -74 KPX Atilde V -111 KPX Atilde W -74 KPX Atilde Y -111 KPX Atilde Yacute -111 KPX Atilde Ydieresis -111 KPX Atilde quoteright -74 KPX Atilde space -55 KPX Atilde v -92 KPX Atilde w -74 KPX Atilde y -74 KPX Atilde yacute -74 KPX Atilde ydieresis -74 KPX F A -74 KPX F Aacute -74 KPX F Abreve -74 KPX F Acircumflex -74 KPX F Adieresis -74 KPX F Agrave -74 KPX F Amacron -74 KPX F Aogonek -74 KPX F Aring -74 KPX F Atilde -74 KPX F comma -92 KPX F period -92 KPX L T -74 KPX L Tcaron -74 KPX L Tcommaaccent -74 KPX L V -92 KPX L W -74 KPX L Y -92 KPX L Yacute -92 KPX L Ydieresis -92 KPX L quoteright -74 KPX L space -37 KPX L y -55 KPX L yacute -55 KPX L ydieresis -55 KPX Lacute T -74 KPX Lacute Tcaron -74 KPX Lacute Tcommaaccent -74 KPX Lacute V -92 KPX Lacute W -74 KPX Lacute Y -92 KPX Lacute Yacute -92 KPX Lacute Ydieresis -92 KPX Lacute quoteright -74 KPX Lacute space -37 KPX Lacute y -55 KPX Lacute yacute -55 KPX Lacute ydieresis -55 KPX Lcaron T -74 KPX Lcaron Tcaron -74 KPX Lcaron Tcommaaccent -74 KPX Lcaron V -92 KPX Lcaron W -74 KPX Lcaron Y -92 KPX Lcaron Yacute -92 KPX Lcaron Ydieresis -92 KPX Lcaron quoteright -74 KPX Lcaron space -37 KPX Lcaron y -55 KPX Lcaron yacute -55 KPX Lcaron ydieresis -55 KPX Lcommaaccent T -74 KPX Lcommaaccent Tcaron -74 KPX Lcommaaccent Tcommaaccent -74 KPX Lcommaaccent V -92 KPX Lcommaaccent W -74 KPX Lcommaaccent Y -92 KPX Lcommaaccent Yacute -92 KPX Lcommaaccent Ydieresis -92 KPX Lcommaaccent quoteright -74 KPX Lcommaaccent space -37 KPX Lcommaaccent y -55 KPX Lcommaaccent yacute -55 KPX Lcommaaccent ydieresis -55 KPX Lslash T -74 KPX Lslash Tcaron -74 KPX Lslash Tcommaaccent -74 KPX Lslash V -92 KPX Lslash W -74 KPX Lslash Y -92 KPX Lslash Yacute -92 KPX Lslash Ydieresis -92 KPX Lslash quoteright -74 KPX Lslash space -37 KPX Lslash y -55 KPX Lslash yacute -55 KPX Lslash ydieresis -55 KPX P A -92 KPX P Aacute -92 KPX P Abreve -92 KPX P Acircumflex -92 KPX P Adieresis -92 KPX P Agrave -92 KPX P Amacron -92 KPX P Aogonek -92 KPX P Aring -92 KPX P Atilde -92 KPX P comma -129 KPX P period -129 KPX P space -18 KPX R T -37 KPX R Tcaron -37 KPX R Tcommaaccent -37 KPX R V -55 KPX R W -37 KPX R Y -37 KPX R Yacute -37 KPX R Ydieresis -37 KPX R y -37 KPX R yacute -37 KPX R ydieresis -37 KPX Racute T -37 KPX Racute Tcaron -37 KPX Racute Tcommaaccent -37 KPX Racute V -55 KPX Racute W -37 KPX Racute Y -37 KPX Racute Yacute -37 KPX Racute Ydieresis -37 KPX Racute y -37 KPX Racute yacute -37 KPX Racute ydieresis -37 KPX Rcaron T -37 KPX Rcaron Tcaron -37 KPX Rcaron Tcommaaccent -37 KPX Rcaron V -55 KPX Rcaron W -37 KPX Rcaron Y -37 KPX Rcaron Yacute -37 KPX Rcaron Ydieresis -37 KPX Rcaron y -37 KPX Rcaron yacute -37 KPX Rcaron ydieresis -37 KPX Rcommaaccent T -37 KPX Rcommaaccent Tcaron -37 KPX Rcommaaccent Tcommaaccent -37 KPX Rcommaaccent V -55 KPX Rcommaaccent W -37 KPX Rcommaaccent Y -37 KPX Rcommaaccent Yacute -37 KPX Rcommaaccent Ydieresis -37 KPX Rcommaaccent y -37 KPX Rcommaaccent yacute -37 KPX Rcommaaccent ydieresis -37 KPX T A -74 KPX T Aacute -74 KPX T Abreve -74 KPX T Acircumflex -74 KPX T Adieresis -74 KPX T Agrave -74 KPX T Amacron -74 KPX T Aogonek -74 KPX T Aring -74 KPX T Atilde -74 KPX T O -18 KPX T Oacute -18 KPX T Ocircumflex -18 KPX T Odieresis -18 KPX T Ograve -18 KPX T Ohungarumlaut -18 KPX T Omacron -18 KPX T Oslash -18 KPX T Otilde -18 KPX T a -92 KPX T aacute -92 KPX T abreve -92 KPX T acircumflex -92 KPX T adieresis -52 KPX T agrave -52 KPX T amacron -52 KPX T aogonek -92 KPX T aring -92 KPX T atilde -52 KPX T c -111 KPX T cacute -111 KPX T ccaron -71 KPX T ccedilla -111 KPX T colon -55 KPX T comma -74 KPX T e -92 KPX T eacute -92 KPX T ecaron -92 KPX T ecircumflex -92 KPX T edieresis -52 KPX T edotaccent -92 KPX T egrave -92 KPX T emacron -92 KPX T eogonek -92 KPX T hyphen -55 KPX T i -55 KPX T iacute -55 KPX T iogonek -55 KPX T o -92 KPX T oacute -92 KPX T ocircumflex -92 KPX T odieresis -92 KPX T ograve -92 KPX T ohungarumlaut -92 KPX T omacron -92 KPX T oslash -92 KPX T otilde -92 KPX T period -74 KPX T r -90 KPX T racute -90 KPX T rcaron -50 KPX T rcommaaccent -90 KPX T s -90 KPX T sacute -90 KPX T scaron -50 KPX T scedilla -90 KPX T scommaaccent -90 KPX T semicolon -55 KPX T u -90 KPX T uacute -90 KPX T ucircumflex -90 KPX T udieresis -90 KPX T ugrave -90 KPX T uhungarumlaut -90 KPX T umacron -90 KPX T uogonek -90 KPX T uring -90 KPX T w -90 KPX T y -90 KPX T yacute -90 KPX T ydieresis -90 KPX Tcaron A -74 KPX Tcaron Aacute -74 KPX Tcaron Abreve -74 KPX Tcaron Acircumflex -74 KPX Tcaron Adieresis -74 KPX Tcaron Agrave -74 KPX Tcaron Amacron -74 KPX Tcaron Aogonek -74 KPX Tcaron Aring -74 KPX Tcaron Atilde -74 KPX Tcaron O -18 KPX Tcaron Oacute -18 KPX Tcaron Ocircumflex -18 KPX Tcaron Odieresis -18 KPX Tcaron Ograve -18 KPX Tcaron Ohungarumlaut -18 KPX Tcaron Omacron -18 KPX Tcaron Oslash -18 KPX Tcaron Otilde -18 KPX Tcaron a -92 KPX Tcaron aacute -92 KPX Tcaron abreve -92 KPX Tcaron acircumflex -92 KPX Tcaron adieresis -52 KPX Tcaron agrave -52 KPX Tcaron amacron -52 KPX Tcaron aogonek -92 KPX Tcaron aring -92 KPX Tcaron atilde -52 KPX Tcaron c -111 KPX Tcaron cacute -111 KPX Tcaron ccaron -71 KPX Tcaron ccedilla -111 KPX Tcaron colon -55 KPX Tcaron comma -74 KPX Tcaron e -92 KPX Tcaron eacute -92 KPX Tcaron ecaron -92 KPX Tcaron ecircumflex -92 KPX Tcaron edieresis -52 KPX Tcaron edotaccent -92 KPX Tcaron egrave -92 KPX Tcaron emacron -92 KPX Tcaron eogonek -92 KPX Tcaron hyphen -55 KPX Tcaron i -55 KPX Tcaron iacute -55 KPX Tcaron iogonek -55 KPX Tcaron o -92 KPX Tcaron oacute -92 KPX Tcaron ocircumflex -92 KPX Tcaron odieresis -92 KPX Tcaron ograve -92 KPX Tcaron ohungarumlaut -92 KPX Tcaron omacron -92 KPX Tcaron oslash -92 KPX Tcaron otilde -92 KPX Tcaron period -74 KPX Tcaron r -90 KPX Tcaron racute -90 KPX Tcaron rcaron -50 KPX Tcaron rcommaaccent -90 KPX Tcaron s -90 KPX Tcaron sacute -90 KPX Tcaron scaron -50 KPX Tcaron scedilla -90 KPX Tcaron scommaaccent -90 KPX Tcaron semicolon -55 KPX Tcaron u -90 KPX Tcaron uacute -90 KPX Tcaron ucircumflex -90 KPX Tcaron udieresis -90 KPX Tcaron ugrave -90 KPX Tcaron uhungarumlaut -90 KPX Tcaron umacron -90 KPX Tcaron uogonek -90 KPX Tcaron uring -90 KPX Tcaron w -90 KPX Tcaron y -90 KPX Tcaron yacute -90 KPX Tcaron ydieresis -90 KPX Tcommaaccent A -74 KPX Tcommaaccent Aacute -74 KPX Tcommaaccent Abreve -74 KPX Tcommaaccent Acircumflex -74 KPX Tcommaaccent Adieresis -74 KPX Tcommaaccent Agrave -74 KPX Tcommaaccent Amacron -74 KPX Tcommaaccent Aogonek -74 KPX Tcommaaccent Aring -74 KPX Tcommaaccent Atilde -74 KPX Tcommaaccent O -18 KPX Tcommaaccent Oacute -18 KPX Tcommaaccent Ocircumflex -18 KPX Tcommaaccent Odieresis -18 KPX Tcommaaccent Ograve -18 KPX Tcommaaccent Ohungarumlaut -18 KPX Tcommaaccent Omacron -18 KPX Tcommaaccent Oslash -18 KPX Tcommaaccent Otilde -18 KPX Tcommaaccent a -92 KPX Tcommaaccent aacute -92 KPX Tcommaaccent abreve -92 KPX Tcommaaccent acircumflex -92 KPX Tcommaaccent adieresis -52 KPX Tcommaaccent agrave -52 KPX Tcommaaccent amacron -52 KPX Tcommaaccent aogonek -92 KPX Tcommaaccent aring -92 KPX Tcommaaccent atilde -52 KPX Tcommaaccent c -111 KPX Tcommaaccent cacute -111 KPX Tcommaaccent ccaron -71 KPX Tcommaaccent ccedilla -111 KPX Tcommaaccent colon -55 KPX Tcommaaccent comma -74 KPX Tcommaaccent e -92 KPX Tcommaaccent eacute -92 KPX Tcommaaccent ecaron -92 KPX Tcommaaccent ecircumflex -92 KPX Tcommaaccent edieresis -52 KPX Tcommaaccent edotaccent -92 KPX Tcommaaccent egrave -92 KPX Tcommaaccent emacron -92 KPX Tcommaaccent eogonek -92 KPX Tcommaaccent hyphen -55 KPX Tcommaaccent i -55 KPX Tcommaaccent iacute -55 KPX Tcommaaccent iogonek -55 KPX Tcommaaccent o -92 KPX Tcommaaccent oacute -92 KPX Tcommaaccent ocircumflex -92 KPX Tcommaaccent odieresis -92 KPX Tcommaaccent ograve -92 KPX Tcommaaccent ohungarumlaut -92 KPX Tcommaaccent omacron -92 KPX Tcommaaccent oslash -92 KPX Tcommaaccent otilde -92 KPX Tcommaaccent period -74 KPX Tcommaaccent r -90 KPX Tcommaaccent racute -90 KPX Tcommaaccent rcaron -50 KPX Tcommaaccent rcommaaccent -90 KPX Tcommaaccent s -90 KPX Tcommaaccent sacute -90 KPX Tcommaaccent scaron -50 KPX Tcommaaccent scedilla -90 KPX Tcommaaccent scommaaccent -90 KPX Tcommaaccent semicolon -55 KPX Tcommaaccent u -90 KPX Tcommaaccent uacute -90 KPX Tcommaaccent ucircumflex -90 KPX Tcommaaccent udieresis -90 KPX Tcommaaccent ugrave -90 KPX Tcommaaccent uhungarumlaut -90 KPX Tcommaaccent umacron -90 KPX Tcommaaccent uogonek -90 KPX Tcommaaccent uring -90 KPX Tcommaaccent w -90 KPX Tcommaaccent y -90 KPX Tcommaaccent yacute -90 KPX Tcommaaccent ydieresis -90 KPX V A -111 KPX V Aacute -111 KPX V Abreve -111 KPX V Acircumflex -111 KPX V Adieresis -111 KPX V Agrave -111 KPX V Amacron -111 KPX V Aogonek -111 KPX V Aring -111 KPX V Atilde -111 KPX V a -92 KPX V aacute -92 KPX V abreve -92 KPX V acircumflex -92 KPX V adieresis -92 KPX V agrave -92 KPX V amacron -92 KPX V aogonek -92 KPX V aring -92 KPX V atilde -92 KPX V colon -55 KPX V comma -129 KPX V e -111 KPX V eacute -111 KPX V ecaron -111 KPX V ecircumflex -111 KPX V edieresis -71 KPX V edotaccent -111 KPX V egrave -71 KPX V emacron -111 KPX V eogonek -111 KPX V hyphen -74 KPX V i -55 KPX V iacute -55 KPX V iogonek -55 KPX V o -111 KPX V oacute -111 KPX V ocircumflex -111 KPX V odieresis -111 KPX V ograve -71 KPX V ohungarumlaut -111 KPX V omacron -111 KPX V oslash -111 KPX V otilde -111 KPX V period -129 KPX V r -92 KPX V racute -92 KPX V rcaron -92 KPX V rcommaaccent -92 KPX V semicolon -55 KPX V u -92 KPX V uacute -92 KPX V ucircumflex -92 KPX V udieresis -92 KPX V ugrave -92 KPX V uhungarumlaut -92 KPX V umacron -92 KPX V uogonek -92 KPX V uring -92 KPX V y -92 KPX V yacute -92 KPX V ydieresis -92 KPX W A -92 KPX W Aacute -92 KPX W Abreve -92 KPX W Acircumflex -92 KPX W Adieresis -92 KPX W Agrave -92 KPX W Amacron -92 KPX W Aogonek -92 KPX W Aring -92 KPX W Atilde -92 KPX W a -92 KPX W aacute -92 KPX W abreve -92 KPX W acircumflex -92 KPX W adieresis -92 KPX W agrave -92 KPX W amacron -92 KPX W aogonek -92 KPX W aring -92 KPX W atilde -92 KPX W colon -18 KPX W comma -92 KPX W e -92 KPX W eacute -92 KPX W ecaron -92 KPX W ecircumflex -92 KPX W edieresis -92 KPX W edotaccent -92 KPX W egrave -92 KPX W emacron -92 KPX W eogonek -92 KPX W hyphen -55 KPX W i -55 KPX W iacute -55 KPX W icircumflex -55 KPX W idieresis -55 KPX W igrave -55 KPX W imacron -55 KPX W iogonek -55 KPX W o -92 KPX W oacute -92 KPX W ocircumflex -92 KPX W odieresis -92 KPX W ograve -92 KPX W ohungarumlaut -92 KPX W omacron -92 KPX W oslash -92 KPX W otilde -92 KPX W period -92 KPX W r -74 KPX W racute -74 KPX W rcaron -74 KPX W rcommaaccent -74 KPX W semicolon -18 KPX W u -50 KPX W uacute -50 KPX W ucircumflex -50 KPX W udieresis -50 KPX W ugrave -50 KPX W uhungarumlaut -50 KPX W umacron -50 KPX W uogonek -50 KPX W uring -50 KPX W y -50 KPX W yacute -50 KPX W ydieresis -50 KPX Y A -92 KPX Y Aacute -92 KPX Y Abreve -92 KPX Y Acircumflex -92 KPX Y Adieresis -92 KPX Y Agrave -92 KPX Y Amacron -92 KPX Y Aogonek -92 KPX Y Aring -92 KPX Y Atilde -92 KPX Y a -92 KPX Y aacute -92 KPX Y abreve -92 KPX Y acircumflex -92 KPX Y adieresis -92 KPX Y agrave -92 KPX Y amacron -92 KPX Y aogonek -92 KPX Y aring -92 KPX Y atilde -92 KPX Y colon -74 KPX Y comma -111 KPX Y e -92 KPX Y eacute -92 KPX Y ecaron -92 KPX Y ecircumflex -92 KPX Y edieresis -92 KPX Y edotaccent -92 KPX Y egrave -92 KPX Y emacron -92 KPX Y eogonek -92 KPX Y hyphen -92 KPX Y i -55 KPX Y iacute -55 KPX Y imacron -55 KPX Y iogonek -55 KPX Y o -92 KPX Y oacute -92 KPX Y ocircumflex -92 KPX Y odieresis -92 KPX Y ograve -92 KPX Y ohungarumlaut -92 KPX Y omacron -92 KPX Y oslash -92 KPX Y otilde -92 KPX Y p -111 KPX Y period -111 KPX Y q -90 KPX Y semicolon -74 KPX Y space -18 KPX Y u -90 KPX Y uacute -90 KPX Y ucircumflex -90 KPX Y udieresis -90 KPX Y ugrave -90 KPX Y uhungarumlaut -90 KPX Y umacron -90 KPX Y uogonek -90 KPX Y uring -90 KPX Y v -90 KPX Yacute A -92 KPX Yacute Aacute -92 KPX Yacute Abreve -92 KPX Yacute Acircumflex -92 KPX Yacute Adieresis -92 KPX Yacute Agrave -92 KPX Yacute Amacron -92 KPX Yacute Aogonek -92 KPX Yacute Aring -92 KPX Yacute Atilde -92 KPX Yacute a -92 KPX Yacute aacute -92 KPX Yacute abreve -92 KPX Yacute acircumflex -92 KPX Yacute adieresis -92 KPX Yacute agrave -92 KPX Yacute amacron -92 KPX Yacute aogonek -92 KPX Yacute aring -92 KPX Yacute atilde -92 KPX Yacute colon -74 KPX Yacute comma -111 KPX Yacute e -92 KPX Yacute eacute -92 KPX Yacute ecaron -92 KPX Yacute ecircumflex -92 KPX Yacute edieresis -92 KPX Yacute edotaccent -92 KPX Yacute egrave -92 KPX Yacute emacron -92 KPX Yacute eogonek -92 KPX Yacute hyphen -92 KPX Yacute i -55 KPX Yacute iacute -55 KPX Yacute imacron -55 KPX Yacute iogonek -55 KPX Yacute o -92 KPX Yacute oacute -92 KPX Yacute ocircumflex -92 KPX Yacute odieresis -92 KPX Yacute ograve -92 KPX Yacute ohungarumlaut -92 KPX Yacute omacron -92 KPX Yacute oslash -92 KPX Yacute otilde -92 KPX Yacute p -111 KPX Yacute period -111 KPX Yacute q -90 KPX Yacute semicolon -74 KPX Yacute space -18 KPX Yacute u -90 KPX Yacute uacute -90 KPX Yacute ucircumflex -90 KPX Yacute udieresis -90 KPX Yacute ugrave -90 KPX Yacute uhungarumlaut -90 KPX Yacute umacron -90 KPX Yacute uogonek -90 KPX Yacute uring -90 KPX Yacute v -90 KPX Ydieresis A -92 KPX Ydieresis Aacute -92 KPX Ydieresis Abreve -92 KPX Ydieresis Acircumflex -92 KPX Ydieresis Adieresis -92 KPX Ydieresis Agrave -92 KPX Ydieresis Amacron -92 KPX Ydieresis Aogonek -92 KPX Ydieresis Aring -92 KPX Ydieresis Atilde -92 KPX Ydieresis a -92 KPX Ydieresis aacute -92 KPX Ydieresis abreve -92 KPX Ydieresis acircumflex -92 KPX Ydieresis adieresis -92 KPX Ydieresis agrave -92 KPX Ydieresis amacron -92 KPX Ydieresis aogonek -92 KPX Ydieresis aring -92 KPX Ydieresis atilde -92 KPX Ydieresis colon -74 KPX Ydieresis comma -111 KPX Ydieresis e -92 KPX Ydieresis eacute -92 KPX Ydieresis ecaron -92 KPX Ydieresis ecircumflex -92 KPX Ydieresis edieresis -92 KPX Ydieresis edotaccent -92 KPX Ydieresis egrave -92 KPX Ydieresis emacron -92 KPX Ydieresis eogonek -92 KPX Ydieresis hyphen -92 KPX Ydieresis i -55 KPX Ydieresis iacute -55 KPX Ydieresis imacron -55 KPX Ydieresis iogonek -55 KPX Ydieresis o -92 KPX Ydieresis oacute -92 KPX Ydieresis ocircumflex -92 KPX Ydieresis odieresis -92 KPX Ydieresis ograve -92 KPX Ydieresis ohungarumlaut -92 KPX Ydieresis omacron -92 KPX Ydieresis oslash -92 KPX Ydieresis otilde -92 KPX Ydieresis p -111 KPX Ydieresis period -111 KPX Ydieresis q -90 KPX Ydieresis semicolon -74 KPX Ydieresis space -18 KPX Ydieresis u -90 KPX Ydieresis uacute -90 KPX Ydieresis ucircumflex -90 KPX Ydieresis udieresis -90 KPX Ydieresis ugrave -90 KPX Ydieresis uhungarumlaut -90 KPX Ydieresis umacron -90 KPX Ydieresis uogonek -90 KPX Ydieresis uring -90 KPX Ydieresis v -90 KPX f f -18 KPX f quoteright 55 KPX one one -55 KPX quoteleft quoteleft -37 KPX quoteright quoteright -37 KPX r c -18 KPX r cacute -18 KPX r ccaron -18 KPX r ccedilla -18 KPX r comma -74 KPX r d -18 KPX r dcroat -18 KPX r e -18 KPX r eacute -18 KPX r ecaron -18 KPX r ecircumflex -18 KPX r edieresis -18 KPX r edotaccent -18 KPX r egrave -18 KPX r emacron -18 KPX r eogonek -18 KPX r g -18 KPX r gbreve -18 KPX r gcommaaccent -18 KPX r h -18 KPX r hyphen -18 KPX r o -18 KPX r oacute -18 KPX r ocircumflex -18 KPX r odieresis -18 KPX r ograve -18 KPX r ohungarumlaut -18 KPX r omacron -18 KPX r oslash -18 KPX r otilde -18 KPX r period -74 KPX r q -18 KPX r quoteright 74 KPX r u -8 KPX r uacute -8 KPX r ucircumflex -8 KPX r udieresis -8 KPX r ugrave -8 KPX r uhungarumlaut -8 KPX r umacron -8 KPX r uogonek -8 KPX r uring -8 KPX racute c -18 KPX racute cacute -18 KPX racute ccaron -18 KPX racute ccedilla -18 KPX racute comma -74 KPX racute d -18 KPX racute dcroat -18 KPX racute e -18 KPX racute eacute -18 KPX racute ecaron -18 KPX racute ecircumflex -18 KPX racute edieresis -18 KPX racute edotaccent -18 KPX racute egrave -18 KPX racute emacron -18 KPX racute eogonek -18 KPX racute g -18 KPX racute gbreve -18 KPX racute gcommaaccent -18 KPX racute h -18 KPX racute hyphen -18 KPX racute o -18 KPX racute oacute -18 KPX racute ocircumflex -18 KPX racute odieresis -18 KPX racute ograve -18 KPX racute ohungarumlaut -18 KPX racute omacron -18 KPX racute oslash -18 KPX racute otilde -18 KPX racute period -74 KPX racute q -18 KPX racute quoteright 74 KPX racute u -8 KPX racute uacute -8 KPX racute ucircumflex -8 KPX racute udieresis -8 KPX racute ugrave -8 KPX racute uhungarumlaut -8 KPX racute umacron -8 KPX racute uogonek -8 KPX racute uring -8 KPX rcaron c -18 KPX rcaron cacute -18 KPX rcaron ccaron -18 KPX rcaron ccedilla -18 KPX rcaron comma -74 KPX rcaron d -18 KPX rcaron dcroat -18 KPX rcaron e -18 KPX rcaron eacute -18 KPX rcaron ecaron -18 KPX rcaron ecircumflex -18 KPX rcaron edieresis -18 KPX rcaron edotaccent -18 KPX rcaron egrave -18 KPX rcaron emacron -18 KPX rcaron eogonek -18 KPX rcaron g -18 KPX rcaron gbreve -18 KPX rcaron gcommaaccent -18 KPX rcaron h -18 KPX rcaron hyphen -18 KPX rcaron o -18 KPX rcaron oacute -18 KPX rcaron ocircumflex -18 KPX rcaron odieresis -18 KPX rcaron ograve -18 KPX rcaron ohungarumlaut -18 KPX rcaron omacron -18 KPX rcaron oslash -18 KPX rcaron otilde -18 KPX rcaron period -74 KPX rcaron q -18 KPX rcaron quoteright 74 KPX rcaron u -8 KPX rcaron uacute -8 KPX rcaron ucircumflex -8 KPX rcaron udieresis -8 KPX rcaron ugrave -8 KPX rcaron uhungarumlaut -8 KPX rcaron umacron -8 KPX rcaron uogonek -8 KPX rcaron uring -8 KPX rcommaaccent c -18 KPX rcommaaccent cacute -18 KPX rcommaaccent ccaron -18 KPX rcommaaccent ccedilla -18 KPX rcommaaccent comma -74 KPX rcommaaccent d -18 KPX rcommaaccent dcroat -18 KPX rcommaaccent e -18 KPX rcommaaccent eacute -18 KPX rcommaaccent ecaron -18 KPX rcommaaccent ecircumflex -18 KPX rcommaaccent edieresis -18 KPX rcommaaccent edotaccent -18 KPX rcommaaccent egrave -18 KPX rcommaaccent emacron -18 KPX rcommaaccent eogonek -18 KPX rcommaaccent g -18 KPX rcommaaccent gbreve -18 KPX rcommaaccent gcommaaccent -18 KPX rcommaaccent h -18 KPX rcommaaccent hyphen -18 KPX rcommaaccent o -18 KPX rcommaaccent oacute -18 KPX rcommaaccent ocircumflex -18 KPX rcommaaccent odieresis -18 KPX rcommaaccent ograve -18 KPX rcommaaccent ohungarumlaut -18 KPX rcommaaccent omacron -18 KPX rcommaaccent oslash -18 KPX rcommaaccent otilde -18 KPX rcommaaccent period -74 KPX rcommaaccent q -18 KPX rcommaaccent quoteright 74 KPX rcommaaccent u -8 KPX rcommaaccent uacute -8 KPX rcommaaccent ucircumflex -8 KPX rcommaaccent udieresis -8 KPX rcommaaccent ugrave -8 KPX rcommaaccent uhungarumlaut -8 KPX rcommaaccent umacron -8 KPX rcommaaccent uogonek -8 KPX rcommaaccent uring -8 KPX space A -37 KPX space Aacute -37 KPX space Abreve -37 KPX space Acircumflex -37 KPX space Adieresis -37 KPX space Agrave -37 KPX space Amacron -37 KPX space Aogonek -37 KPX space Aring -37 KPX space Atilde -37 KPX space Y -18 KPX space Yacute -18 KPX space Ydieresis -18 KPX v comma -111 KPX v period -111 KPX w comma -92 KPX w period -92 KPX y comma -111 KPX y period -111 KPX yacute comma -111 KPX yacute period -111 KPX ydieresis comma -111 KPX ydieresis period -111 EndKernPairs EndKernData EndFontMetrics a2ps-4.14/afm/phvb.afm0000644000175000017500000020712510674334152014030 0ustar mhattamhattaStartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Thu May 1 12:43:52 1997 Comment UniqueID 43052 Comment VMusage 37169 48194 FontName Helvetica-Bold FullName Helvetica Bold FamilyName Helvetica Weight Bold ItalicAngle 0 IsFixedPitch false FontBBox -170 -228 1003 962 UnderlinePosition -100 UnderlineThickness 50 Version 002.000 Notice Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries. EncodingScheme AdobeStandardEncoding CapHeight 718 XHeight 532 Ascender 718 Descender -207 StdHW 118 StdVW 140 StartCharMetrics 314 C 32 ; WX 278 ; N space ; B 0 0 0 0 ; C 33 ; WX 333 ; N exclam ; B 90 0 244 718 ; C 34 ; WX 474 ; N quotedbl ; B 98 447 376 718 ; C 35 ; WX 556 ; N numbersign ; B 18 0 538 698 ; C 36 ; WX 556 ; N dollar ; B 30 -115 523 775 ; C 37 ; WX 889 ; N percent ; B 28 -19 861 710 ; C 38 ; WX 722 ; N ampersand ; B 54 -19 701 718 ; C 39 ; WX 278 ; N quoteright ; B 69 445 209 718 ; C 40 ; WX 333 ; N parenleft ; B 35 -208 314 734 ; C 41 ; WX 333 ; N parenright ; B 19 -208 298 734 ; C 42 ; WX 389 ; N asterisk ; B 27 387 362 718 ; C 43 ; WX 584 ; N plus ; B 40 0 544 506 ; C 44 ; WX 278 ; N comma ; B 64 -168 214 146 ; C 45 ; WX 333 ; N hyphen ; B 27 215 306 345 ; C 46 ; WX 278 ; N period ; B 64 0 214 146 ; C 47 ; WX 278 ; N slash ; B -33 -19 311 737 ; C 48 ; WX 556 ; N zero ; B 32 -19 524 710 ; C 49 ; WX 556 ; N one ; B 69 0 378 710 ; C 50 ; WX 556 ; N two ; B 26 0 511 710 ; C 51 ; WX 556 ; N three ; B 27 -19 516 710 ; C 52 ; WX 556 ; N four ; B 27 0 526 710 ; C 53 ; WX 556 ; N five ; B 27 -19 516 698 ; C 54 ; WX 556 ; N six ; B 31 -19 520 710 ; C 55 ; WX 556 ; N seven ; B 25 0 528 698 ; C 56 ; WX 556 ; N eight ; B 32 -19 524 710 ; C 57 ; WX 556 ; N nine ; B 30 -19 522 710 ; C 58 ; WX 333 ; N colon ; B 92 0 242 512 ; C 59 ; WX 333 ; N semicolon ; B 92 -168 242 512 ; C 60 ; WX 584 ; N less ; B 38 -8 546 514 ; C 61 ; WX 584 ; N equal ; B 40 87 544 419 ; C 62 ; WX 584 ; N greater ; B 38 -8 546 514 ; C 63 ; WX 611 ; N question ; B 60 0 556 727 ; C 64 ; WX 975 ; N at ; B 118 -19 856 737 ; C 65 ; WX 722 ; N A ; B 20 0 702 718 ; C 66 ; WX 722 ; N B ; B 76 0 669 718 ; C 67 ; WX 722 ; N C ; B 44 -19 684 737 ; C 68 ; WX 722 ; N D ; B 76 0 685 718 ; C 69 ; WX 667 ; N E ; B 76 0 621 718 ; C 70 ; WX 611 ; N F ; B 76 0 587 718 ; C 71 ; WX 778 ; N G ; B 44 -19 713 737 ; C 72 ; WX 722 ; N H ; B 71 0 651 718 ; C 73 ; WX 278 ; N I ; B 64 0 214 718 ; C 74 ; WX 556 ; N J ; B 22 -18 484 718 ; C 75 ; WX 722 ; N K ; B 87 0 722 718 ; C 76 ; WX 611 ; N L ; B 76 0 583 718 ; C 77 ; WX 833 ; N M ; B 69 0 765 718 ; C 78 ; WX 722 ; N N ; B 69 0 654 718 ; C 79 ; WX 778 ; N O ; B 44 -19 734 737 ; C 80 ; WX 667 ; N P ; B 76 0 627 718 ; C 81 ; WX 778 ; N Q ; B 44 -52 737 737 ; C 82 ; WX 722 ; N R ; B 76 0 677 718 ; C 83 ; WX 667 ; N S ; B 39 -19 629 737 ; C 84 ; WX 611 ; N T ; B 14 0 598 718 ; C 85 ; WX 722 ; N U ; B 72 -19 651 718 ; C 86 ; WX 667 ; N V ; B 19 0 648 718 ; C 87 ; WX 944 ; N W ; B 16 0 929 718 ; C 88 ; WX 667 ; N X ; B 14 0 653 718 ; C 89 ; WX 667 ; N Y ; B 15 0 653 718 ; C 90 ; WX 611 ; N Z ; B 25 0 586 718 ; C 91 ; WX 333 ; N bracketleft ; B 63 -196 309 722 ; C 92 ; WX 278 ; N backslash ; B -33 -19 311 737 ; C 93 ; WX 333 ; N bracketright ; B 24 -196 270 722 ; C 94 ; WX 584 ; N asciicircum ; B 62 323 522 698 ; C 95 ; WX 556 ; N underscore ; B 0 -125 556 -75 ; C 96 ; WX 278 ; N quoteleft ; B 69 454 209 727 ; C 97 ; WX 556 ; N a ; B 29 -14 527 546 ; C 98 ; WX 611 ; N b ; B 61 -14 578 718 ; C 99 ; WX 556 ; N c ; B 34 -14 524 546 ; C 100 ; WX 611 ; N d ; B 34 -14 551 718 ; C 101 ; WX 556 ; N e ; B 23 -14 528 546 ; C 102 ; WX 333 ; N f ; B 10 0 318 727 ; L i fi ; L l fl ; C 103 ; WX 611 ; N g ; B 40 -217 553 546 ; C 104 ; WX 611 ; N h ; B 65 0 546 718 ; C 105 ; WX 278 ; N i ; B 69 0 209 725 ; C 106 ; WX 278 ; N j ; B 3 -214 209 725 ; C 107 ; WX 556 ; N k ; B 69 0 562 718 ; C 108 ; WX 278 ; N l ; B 69 0 209 718 ; C 109 ; WX 889 ; N m ; B 64 0 826 546 ; C 110 ; WX 611 ; N n ; B 65 0 546 546 ; C 111 ; WX 611 ; N o ; B 34 -14 578 546 ; C 112 ; WX 611 ; N p ; B 62 -207 578 546 ; C 113 ; WX 611 ; N q ; B 34 -207 552 546 ; C 114 ; WX 389 ; N r ; B 64 0 373 546 ; C 115 ; WX 556 ; N s ; B 30 -14 519 546 ; C 116 ; WX 333 ; N t ; B 10 -6 309 676 ; C 117 ; WX 611 ; N u ; B 66 -14 545 532 ; C 118 ; WX 556 ; N v ; B 13 0 543 532 ; C 119 ; WX 778 ; N w ; B 10 0 769 532 ; C 120 ; WX 556 ; N x ; B 15 0 541 532 ; C 121 ; WX 556 ; N y ; B 10 -214 539 532 ; C 122 ; WX 500 ; N z ; B 20 0 480 532 ; C 123 ; WX 389 ; N braceleft ; B 48 -196 365 722 ; C 124 ; WX 280 ; N bar ; B 84 -225 196 775 ; C 125 ; WX 389 ; N braceright ; B 24 -196 341 722 ; C 126 ; WX 584 ; N asciitilde ; B 61 163 523 343 ; C 161 ; WX 333 ; N exclamdown ; B 90 -186 244 532 ; C 162 ; WX 556 ; N cent ; B 34 -118 524 628 ; C 163 ; WX 556 ; N sterling ; B 28 -16 541 718 ; C 164 ; WX 167 ; N fraction ; B -170 -19 336 710 ; C 165 ; WX 556 ; N yen ; B -9 0 565 698 ; C 166 ; WX 556 ; N florin ; B -10 -210 516 737 ; C 167 ; WX 556 ; N section ; B 34 -184 522 727 ; C 168 ; WX 556 ; N currency ; B -3 76 559 636 ; C 169 ; WX 238 ; N quotesingle ; B 70 447 168 718 ; C 170 ; WX 500 ; N quotedblleft ; B 64 454 436 727 ; C 171 ; WX 556 ; N guillemotleft ; B 88 76 468 484 ; C 172 ; WX 333 ; N guilsinglleft ; B 83 76 250 484 ; C 173 ; WX 333 ; N guilsinglright ; B 83 76 250 484 ; C 174 ; WX 611 ; N fi ; B 10 0 542 727 ; C 175 ; WX 611 ; N fl ; B 10 0 542 727 ; C 177 ; WX 556 ; N endash ; B 0 227 556 333 ; C 178 ; WX 556 ; N dagger ; B 36 -171 520 718 ; C 179 ; WX 556 ; N daggerdbl ; B 36 -171 520 718 ; C 180 ; WX 278 ; N periodcentered ; B 58 172 220 334 ; C 182 ; WX 556 ; N paragraph ; B -8 -191 539 700 ; C 183 ; WX 350 ; N bullet ; B 10 194 340 524 ; C 184 ; WX 278 ; N quotesinglbase ; B 69 -146 209 127 ; C 185 ; WX 500 ; N quotedblbase ; B 64 -146 436 127 ; C 186 ; WX 500 ; N quotedblright ; B 64 445 436 718 ; C 187 ; WX 556 ; N guillemotright ; B 88 76 468 484 ; C 188 ; WX 1000 ; N ellipsis ; B 92 0 908 146 ; C 189 ; WX 1000 ; N perthousand ; B -3 -19 1003 710 ; C 191 ; WX 611 ; N questiondown ; B 55 -195 551 532 ; C 193 ; WX 333 ; N grave ; B -23 604 225 750 ; C 194 ; WX 333 ; N acute ; B 108 604 356 750 ; C 195 ; WX 333 ; N circumflex ; B -10 604 343 750 ; C 196 ; WX 333 ; N tilde ; B -17 610 350 737 ; C 197 ; WX 333 ; N macron ; B -6 604 339 678 ; C 198 ; WX 333 ; N breve ; B -2 604 335 750 ; C 199 ; WX 333 ; N dotaccent ; B 104 614 230 729 ; C 200 ; WX 333 ; N dieresis ; B 6 614 327 729 ; C 202 ; WX 333 ; N ring ; B 59 568 275 776 ; C 203 ; WX 333 ; N cedilla ; B 6 -228 245 0 ; C 205 ; WX 333 ; N hungarumlaut ; B 9 604 486 750 ; C 206 ; WX 333 ; N ogonek ; B 71 -228 304 0 ; C 207 ; WX 333 ; N caron ; B -10 604 343 750 ; C 208 ; WX 1000 ; N emdash ; B 0 227 1000 333 ; C 225 ; WX 1000 ; N AE ; B 5 0 954 718 ; C 227 ; WX 370 ; N ordfeminine ; B 22 401 347 737 ; C 232 ; WX 611 ; N Lslash ; B -20 0 583 718 ; C 233 ; WX 778 ; N Oslash ; B 33 -27 744 745 ; C 234 ; WX 1000 ; N OE ; B 37 -19 961 737 ; C 235 ; WX 365 ; N ordmasculine ; B 6 401 360 737 ; C 241 ; WX 889 ; N ae ; B 29 -14 858 546 ; C 245 ; WX 278 ; N dotlessi ; B 69 0 209 532 ; C 248 ; WX 278 ; N lslash ; B -18 0 296 718 ; C 249 ; WX 611 ; N oslash ; B 22 -29 589 560 ; C 250 ; WX 944 ; N oe ; B 34 -14 912 546 ; C 251 ; WX 611 ; N germandbls ; B 69 -14 579 731 ; C -1 ; WX 278 ; N Idieresis ; B -21 0 300 915 ; C -1 ; WX 556 ; N eacute ; B 23 -14 528 750 ; C -1 ; WX 556 ; N abreve ; B 29 -14 527 750 ; C -1 ; WX 611 ; N uhungarumlaut ; B 66 -14 625 750 ; C -1 ; WX 556 ; N ecaron ; B 23 -14 528 750 ; C -1 ; WX 667 ; N Ydieresis ; B 15 0 653 915 ; C -1 ; WX 584 ; N divide ; B 40 -42 544 548 ; C -1 ; WX 667 ; N Yacute ; B 15 0 653 936 ; C -1 ; WX 722 ; N Acircumflex ; B 20 0 702 936 ; C -1 ; WX 556 ; N aacute ; B 29 -14 527 750 ; C -1 ; WX 722 ; N Ucircumflex ; B 72 -19 651 936 ; C -1 ; WX 556 ; N yacute ; B 10 -214 539 750 ; C -1 ; WX 556 ; N scommaaccent ; B 30 -228 519 546 ; C -1 ; WX 556 ; N ecircumflex ; B 23 -14 528 750 ; C -1 ; WX 722 ; N Uring ; B 72 -19 651 962 ; C -1 ; WX 722 ; N Udieresis ; B 72 -19 651 915 ; C -1 ; WX 556 ; N aogonek ; B 29 -224 545 546 ; C -1 ; WX 722 ; N Uacute ; B 72 -19 651 936 ; C -1 ; WX 611 ; N uogonek ; B 66 -228 545 532 ; C -1 ; WX 667 ; N Edieresis ; B 76 0 621 915 ; C -1 ; WX 722 ; N Dcroat ; B -5 0 685 718 ; C -1 ; WX 250 ; N commaaccent ; B 64 -228 199 -50 ; C -1 ; WX 737 ; N copyright ; B -11 -19 749 737 ; C -1 ; WX 667 ; N Emacron ; B 76 0 621 864 ; C -1 ; WX 556 ; N ccaron ; B 34 -14 524 750 ; C -1 ; WX 556 ; N aring ; B 29 -14 527 776 ; C -1 ; WX 722 ; N Ncommaaccent ; B 69 -228 654 718 ; C -1 ; WX 278 ; N lacute ; B 69 0 329 936 ; C -1 ; WX 556 ; N agrave ; B 29 -14 527 750 ; C -1 ; WX 611 ; N Tcommaaccent ; B 14 -228 598 718 ; C -1 ; WX 722 ; N Cacute ; B 44 -19 684 936 ; C -1 ; WX 556 ; N atilde ; B 29 -14 527 737 ; C -1 ; WX 667 ; N Edotaccent ; B 76 0 621 915 ; C -1 ; WX 556 ; N scaron ; B 30 -14 519 750 ; C -1 ; WX 556 ; N scedilla ; B 30 -228 519 546 ; C -1 ; WX 278 ; N iacute ; B 69 0 329 750 ; C -1 ; WX 494 ; N lozenge ; B 10 0 484 745 ; C -1 ; WX 722 ; N Rcaron ; B 76 0 677 936 ; C -1 ; WX 778 ; N Gcommaaccent ; B 44 -228 713 737 ; C -1 ; WX 611 ; N ucircumflex ; B 66 -14 545 750 ; C -1 ; WX 556 ; N acircumflex ; B 29 -14 527 750 ; C -1 ; WX 722 ; N Amacron ; B 20 0 702 864 ; C -1 ; WX 389 ; N rcaron ; B 18 0 373 750 ; C -1 ; WX 556 ; N ccedilla ; B 34 -228 524 546 ; C -1 ; WX 611 ; N Zdotaccent ; B 25 0 586 915 ; C -1 ; WX 667 ; N Thorn ; B 76 0 627 718 ; C -1 ; WX 778 ; N Omacron ; B 44 -19 734 864 ; C -1 ; WX 722 ; N Racute ; B 76 0 677 936 ; C -1 ; WX 667 ; N Sacute ; B 39 -19 629 936 ; C -1 ; WX 743 ; N dcaron ; B 34 -14 750 718 ; C -1 ; WX 722 ; N Umacron ; B 72 -19 651 864 ; C -1 ; WX 611 ; N uring ; B 66 -14 545 776 ; C -1 ; WX 333 ; N threesuperior ; B 8 271 326 710 ; C -1 ; WX 778 ; N Ograve ; B 44 -19 734 936 ; C -1 ; WX 722 ; N Agrave ; B 20 0 702 936 ; C -1 ; WX 722 ; N Abreve ; B 20 0 702 936 ; C -1 ; WX 584 ; N multiply ; B 40 1 545 505 ; C -1 ; WX 611 ; N uacute ; B 66 -14 545 750 ; C -1 ; WX 611 ; N Tcaron ; B 14 0 598 936 ; C -1 ; WX 494 ; N partialdiff ; B 11 -21 494 750 ; C -1 ; WX 556 ; N ydieresis ; B 10 -214 539 729 ; C -1 ; WX 722 ; N Nacute ; B 69 0 654 936 ; C -1 ; WX 278 ; N icircumflex ; B -37 0 316 750 ; C -1 ; WX 667 ; N Ecircumflex ; B 76 0 621 936 ; C -1 ; WX 556 ; N adieresis ; B 29 -14 527 729 ; C -1 ; WX 556 ; N edieresis ; B 23 -14 528 729 ; C -1 ; WX 556 ; N cacute ; B 34 -14 524 750 ; C -1 ; WX 611 ; N nacute ; B 65 0 546 750 ; C -1 ; WX 611 ; N umacron ; B 66 -14 545 678 ; C -1 ; WX 722 ; N Ncaron ; B 69 0 654 936 ; C -1 ; WX 278 ; N Iacute ; B 64 0 329 936 ; C -1 ; WX 584 ; N plusminus ; B 40 0 544 506 ; C -1 ; WX 280 ; N brokenbar ; B 84 -150 196 700 ; C -1 ; WX 737 ; N registered ; B -11 -19 748 737 ; C -1 ; WX 778 ; N Gbreve ; B 44 -19 713 936 ; C -1 ; WX 278 ; N Idotaccent ; B 64 0 214 915 ; C -1 ; WX 600 ; N summation ; B 14 -10 585 706 ; C -1 ; WX 667 ; N Egrave ; B 76 0 621 936 ; C -1 ; WX 389 ; N racute ; B 64 0 384 750 ; C -1 ; WX 611 ; N omacron ; B 34 -14 578 678 ; C -1 ; WX 611 ; N Zacute ; B 25 0 586 936 ; C -1 ; WX 611 ; N Zcaron ; B 25 0 586 936 ; C -1 ; WX 549 ; N greaterequal ; B 26 0 523 704 ; C -1 ; WX 722 ; N Eth ; B -5 0 685 718 ; C -1 ; WX 722 ; N Ccedilla ; B 44 -228 684 737 ; C -1 ; WX 278 ; N lcommaaccent ; B 69 -228 213 718 ; C -1 ; WX 389 ; N tcaron ; B 10 -6 421 878 ; C -1 ; WX 556 ; N eogonek ; B 23 -228 528 546 ; C -1 ; WX 722 ; N Uogonek ; B 72 -228 651 718 ; C -1 ; WX 722 ; N Aacute ; B 20 0 702 936 ; C -1 ; WX 722 ; N Adieresis ; B 20 0 702 915 ; C -1 ; WX 556 ; N egrave ; B 23 -14 528 750 ; C -1 ; WX 500 ; N zacute ; B 20 0 480 750 ; C -1 ; WX 278 ; N iogonek ; B 16 -224 249 725 ; C -1 ; WX 778 ; N Oacute ; B 44 -19 734 936 ; C -1 ; WX 611 ; N oacute ; B 34 -14 578 750 ; C -1 ; WX 556 ; N amacron ; B 29 -14 527 678 ; C -1 ; WX 556 ; N sacute ; B 30 -14 519 750 ; C -1 ; WX 278 ; N idieresis ; B -21 0 300 729 ; C -1 ; WX 778 ; N Ocircumflex ; B 44 -19 734 936 ; C -1 ; WX 722 ; N Ugrave ; B 72 -19 651 936 ; C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ; C -1 ; WX 611 ; N thorn ; B 62 -208 578 718 ; C -1 ; WX 333 ; N twosuperior ; B 9 283 324 710 ; C -1 ; WX 778 ; N Odieresis ; B 44 -19 734 915 ; C -1 ; WX 611 ; N mu ; B 66 -207 545 532 ; C -1 ; WX 278 ; N igrave ; B -50 0 209 750 ; C -1 ; WX 611 ; N ohungarumlaut ; B 34 -14 625 750 ; C -1 ; WX 667 ; N Eogonek ; B 76 -224 639 718 ; C -1 ; WX 611 ; N dcroat ; B 34 -14 650 718 ; C -1 ; WX 834 ; N threequarters ; B 16 -19 799 710 ; C -1 ; WX 667 ; N Scedilla ; B 39 -228 629 737 ; C -1 ; WX 400 ; N lcaron ; B 69 0 408 718 ; C -1 ; WX 722 ; N Kcommaaccent ; B 87 -228 722 718 ; C -1 ; WX 611 ; N Lacute ; B 76 0 583 936 ; C -1 ; WX 1000 ; N trademark ; B 44 306 956 718 ; C -1 ; WX 556 ; N edotaccent ; B 23 -14 528 729 ; C -1 ; WX 278 ; N Igrave ; B -50 0 214 936 ; C -1 ; WX 278 ; N Imacron ; B -33 0 312 864 ; C -1 ; WX 611 ; N Lcaron ; B 76 0 583 718 ; C -1 ; WX 834 ; N onehalf ; B 26 -19 794 710 ; C -1 ; WX 549 ; N lessequal ; B 29 0 526 704 ; C -1 ; WX 611 ; N ocircumflex ; B 34 -14 578 750 ; C -1 ; WX 611 ; N ntilde ; B 65 0 546 737 ; C -1 ; WX 722 ; N Uhungarumlaut ; B 72 -19 681 936 ; C -1 ; WX 667 ; N Eacute ; B 76 0 621 936 ; C -1 ; WX 556 ; N emacron ; B 23 -14 528 678 ; C -1 ; WX 611 ; N gbreve ; B 40 -217 553 750 ; C -1 ; WX 834 ; N onequarter ; B 26 -19 766 710 ; C -1 ; WX 667 ; N Scaron ; B 39 -19 629 936 ; C -1 ; WX 667 ; N Scommaaccent ; B 39 -228 629 737 ; C -1 ; WX 778 ; N Ohungarumlaut ; B 44 -19 734 936 ; C -1 ; WX 400 ; N degree ; B 57 426 343 712 ; C -1 ; WX 611 ; N ograve ; B 34 -14 578 750 ; C -1 ; WX 722 ; N Ccaron ; B 44 -19 684 936 ; C -1 ; WX 611 ; N ugrave ; B 66 -14 545 750 ; C -1 ; WX 549 ; N radical ; B 10 -46 512 850 ; C -1 ; WX 722 ; N Dcaron ; B 76 0 685 936 ; C -1 ; WX 389 ; N rcommaaccent ; B 64 -228 373 546 ; C -1 ; WX 722 ; N Ntilde ; B 69 0 654 923 ; C -1 ; WX 611 ; N otilde ; B 34 -14 578 737 ; C -1 ; WX 722 ; N Rcommaaccent ; B 76 -228 677 718 ; C -1 ; WX 611 ; N Lcommaaccent ; B 76 -228 583 718 ; C -1 ; WX 722 ; N Atilde ; B 20 0 702 923 ; C -1 ; WX 722 ; N Aogonek ; B 20 -224 742 718 ; C -1 ; WX 722 ; N Aring ; B 20 0 702 962 ; C -1 ; WX 778 ; N Otilde ; B 44 -19 734 923 ; C -1 ; WX 500 ; N zdotaccent ; B 20 0 480 729 ; C -1 ; WX 667 ; N Ecaron ; B 76 0 621 936 ; C -1 ; WX 278 ; N Iogonek ; B -11 -228 222 718 ; C -1 ; WX 556 ; N kcommaaccent ; B 69 -228 562 718 ; C -1 ; WX 584 ; N minus ; B 40 197 544 309 ; C -1 ; WX 278 ; N Icircumflex ; B -37 0 316 936 ; C -1 ; WX 611 ; N ncaron ; B 65 0 546 750 ; C -1 ; WX 333 ; N tcommaaccent ; B 10 -228 309 676 ; C -1 ; WX 584 ; N logicalnot ; B 40 108 544 419 ; C -1 ; WX 611 ; N odieresis ; B 34 -14 578 729 ; C -1 ; WX 611 ; N udieresis ; B 66 -14 545 729 ; C -1 ; WX 549 ; N notequal ; B 15 -49 540 570 ; C -1 ; WX 611 ; N gcommaaccent ; B 40 -217 553 850 ; C -1 ; WX 611 ; N eth ; B 34 -14 578 737 ; C -1 ; WX 500 ; N zcaron ; B 20 0 480 750 ; C -1 ; WX 611 ; N ncommaaccent ; B 65 -228 546 546 ; C -1 ; WX 333 ; N onesuperior ; B 26 283 237 710 ; C -1 ; WX 278 ; N imacron ; B -8 0 285 678 ; EndCharMetrics StartKernData StartKernPairs 2481 KPX A C -40 KPX A Cacute -40 KPX A Ccaron -40 KPX A Ccedilla -40 KPX A G -50 KPX A Gbreve -50 KPX A Gcommaaccent -50 KPX A O -40 KPX A Oacute -40 KPX A Ocircumflex -40 KPX A Odieresis -40 KPX A Ograve -40 KPX A Ohungarumlaut -40 KPX A Omacron -40 KPX A Oslash -40 KPX A Otilde -40 KPX A Q -40 KPX A T -90 KPX A Tcaron -90 KPX A Tcommaaccent -90 KPX A U -50 KPX A Uacute -50 KPX A Ucircumflex -50 KPX A Udieresis -50 KPX A Ugrave -50 KPX A Uhungarumlaut -50 KPX A Umacron -50 KPX A Uogonek -50 KPX A Uring -50 KPX A V -80 KPX A W -60 KPX A Y -110 KPX A Yacute -110 KPX A Ydieresis -110 KPX A u -30 KPX A uacute -30 KPX A ucircumflex -30 KPX A udieresis -30 KPX A ugrave -30 KPX A uhungarumlaut -30 KPX A umacron -30 KPX A uogonek -30 KPX A uring -30 KPX A v -40 KPX A w -30 KPX A y -30 KPX A yacute -30 KPX A ydieresis -30 KPX Aacute C -40 KPX Aacute Cacute -40 KPX Aacute Ccaron -40 KPX Aacute Ccedilla -40 KPX Aacute G -50 KPX Aacute Gbreve -50 KPX Aacute Gcommaaccent -50 KPX Aacute O -40 KPX Aacute Oacute -40 KPX Aacute Ocircumflex -40 KPX Aacute Odieresis -40 KPX Aacute Ograve -40 KPX Aacute Ohungarumlaut -40 KPX Aacute Omacron -40 KPX Aacute Oslash -40 KPX Aacute Otilde -40 KPX Aacute Q -40 KPX Aacute T -90 KPX Aacute Tcaron -90 KPX Aacute Tcommaaccent -90 KPX Aacute U -50 KPX Aacute Uacute -50 KPX Aacute Ucircumflex -50 KPX Aacute Udieresis -50 KPX Aacute Ugrave -50 KPX Aacute Uhungarumlaut -50 KPX Aacute Umacron -50 KPX Aacute Uogonek -50 KPX Aacute Uring -50 KPX Aacute V -80 KPX Aacute W -60 KPX Aacute Y -110 KPX Aacute Yacute -110 KPX Aacute Ydieresis -110 KPX Aacute u -30 KPX Aacute uacute -30 KPX Aacute ucircumflex -30 KPX Aacute udieresis -30 KPX Aacute ugrave -30 KPX Aacute uhungarumlaut -30 KPX Aacute umacron -30 KPX Aacute uogonek -30 KPX Aacute uring -30 KPX Aacute v -40 KPX Aacute w -30 KPX Aacute y -30 KPX Aacute yacute -30 KPX Aacute ydieresis -30 KPX Abreve C -40 KPX Abreve Cacute -40 KPX Abreve Ccaron -40 KPX Abreve Ccedilla -40 KPX Abreve G -50 KPX Abreve Gbreve -50 KPX Abreve Gcommaaccent -50 KPX Abreve O -40 KPX Abreve Oacute -40 KPX Abreve Ocircumflex -40 KPX Abreve Odieresis -40 KPX Abreve Ograve -40 KPX Abreve Ohungarumlaut -40 KPX Abreve Omacron -40 KPX Abreve Oslash -40 KPX Abreve Otilde -40 KPX Abreve Q -40 KPX Abreve T -90 KPX Abreve Tcaron -90 KPX Abreve Tcommaaccent -90 KPX Abreve U -50 KPX Abreve Uacute -50 KPX Abreve Ucircumflex -50 KPX Abreve Udieresis -50 KPX Abreve Ugrave -50 KPX Abreve Uhungarumlaut -50 KPX Abreve Umacron -50 KPX Abreve Uogonek -50 KPX Abreve Uring -50 KPX Abreve V -80 KPX Abreve W -60 KPX Abreve Y -110 KPX Abreve Yacute -110 KPX Abreve Ydieresis -110 KPX Abreve u -30 KPX Abreve uacute -30 KPX Abreve ucircumflex -30 KPX Abreve udieresis -30 KPX Abreve ugrave -30 KPX Abreve uhungarumlaut -30 KPX Abreve umacron -30 KPX Abreve uogonek -30 KPX Abreve uring -30 KPX Abreve v -40 KPX Abreve w -30 KPX Abreve y -30 KPX Abreve yacute -30 KPX Abreve ydieresis -30 KPX Acircumflex C -40 KPX Acircumflex Cacute -40 KPX Acircumflex Ccaron -40 KPX Acircumflex Ccedilla -40 KPX Acircumflex G -50 KPX Acircumflex Gbreve -50 KPX Acircumflex Gcommaaccent -50 KPX Acircumflex O -40 KPX Acircumflex Oacute -40 KPX Acircumflex Ocircumflex -40 KPX Acircumflex Odieresis -40 KPX Acircumflex Ograve -40 KPX Acircumflex Ohungarumlaut -40 KPX Acircumflex Omacron -40 KPX Acircumflex Oslash -40 KPX Acircumflex Otilde -40 KPX Acircumflex Q -40 KPX Acircumflex T -90 KPX Acircumflex Tcaron -90 KPX Acircumflex Tcommaaccent -90 KPX Acircumflex U -50 KPX Acircumflex Uacute -50 KPX Acircumflex Ucircumflex -50 KPX Acircumflex Udieresis -50 KPX Acircumflex Ugrave -50 KPX Acircumflex Uhungarumlaut -50 KPX Acircumflex Umacron -50 KPX Acircumflex Uogonek -50 KPX Acircumflex Uring -50 KPX Acircumflex V -80 KPX Acircumflex W -60 KPX Acircumflex Y -110 KPX Acircumflex Yacute -110 KPX Acircumflex Ydieresis -110 KPX Acircumflex u -30 KPX Acircumflex uacute -30 KPX Acircumflex ucircumflex -30 KPX Acircumflex udieresis -30 KPX Acircumflex ugrave -30 KPX Acircumflex uhungarumlaut -30 KPX Acircumflex umacron -30 KPX Acircumflex uogonek -30 KPX Acircumflex uring -30 KPX Acircumflex v -40 KPX Acircumflex w -30 KPX Acircumflex y -30 KPX Acircumflex yacute -30 KPX Acircumflex ydieresis -30 KPX Adieresis C -40 KPX Adieresis Cacute -40 KPX Adieresis Ccaron -40 KPX Adieresis Ccedilla -40 KPX Adieresis G -50 KPX Adieresis Gbreve -50 KPX Adieresis Gcommaaccent -50 KPX Adieresis O -40 KPX Adieresis Oacute -40 KPX Adieresis Ocircumflex -40 KPX Adieresis Odieresis -40 KPX Adieresis Ograve -40 KPX Adieresis Ohungarumlaut -40 KPX Adieresis Omacron -40 KPX Adieresis Oslash -40 KPX Adieresis Otilde -40 KPX Adieresis Q -40 KPX Adieresis T -90 KPX Adieresis Tcaron -90 KPX Adieresis Tcommaaccent -90 KPX Adieresis U -50 KPX Adieresis Uacute -50 KPX Adieresis Ucircumflex -50 KPX Adieresis Udieresis -50 KPX Adieresis Ugrave -50 KPX Adieresis Uhungarumlaut -50 KPX Adieresis Umacron -50 KPX Adieresis Uogonek -50 KPX Adieresis Uring -50 KPX Adieresis V -80 KPX Adieresis W -60 KPX Adieresis Y -110 KPX Adieresis Yacute -110 KPX Adieresis Ydieresis -110 KPX Adieresis u -30 KPX Adieresis uacute -30 KPX Adieresis ucircumflex -30 KPX Adieresis udieresis -30 KPX Adieresis ugrave -30 KPX Adieresis uhungarumlaut -30 KPX Adieresis umacron -30 KPX Adieresis uogonek -30 KPX Adieresis uring -30 KPX Adieresis v -40 KPX Adieresis w -30 KPX Adieresis y -30 KPX Adieresis yacute -30 KPX Adieresis ydieresis -30 KPX Agrave C -40 KPX Agrave Cacute -40 KPX Agrave Ccaron -40 KPX Agrave Ccedilla -40 KPX Agrave G -50 KPX Agrave Gbreve -50 KPX Agrave Gcommaaccent -50 KPX Agrave O -40 KPX Agrave Oacute -40 KPX Agrave Ocircumflex -40 KPX Agrave Odieresis -40 KPX Agrave Ograve -40 KPX Agrave Ohungarumlaut -40 KPX Agrave Omacron -40 KPX Agrave Oslash -40 KPX Agrave Otilde -40 KPX Agrave Q -40 KPX Agrave T -90 KPX Agrave Tcaron -90 KPX Agrave Tcommaaccent -90 KPX Agrave U -50 KPX Agrave Uacute -50 KPX Agrave Ucircumflex -50 KPX Agrave Udieresis -50 KPX Agrave Ugrave -50 KPX Agrave Uhungarumlaut -50 KPX Agrave Umacron -50 KPX Agrave Uogonek -50 KPX Agrave Uring -50 KPX Agrave V -80 KPX Agrave W -60 KPX Agrave Y -110 KPX Agrave Yacute -110 KPX Agrave Ydieresis -110 KPX Agrave u -30 KPX Agrave uacute -30 KPX Agrave ucircumflex -30 KPX Agrave udieresis -30 KPX Agrave ugrave -30 KPX Agrave uhungarumlaut -30 KPX Agrave umacron -30 KPX Agrave uogonek -30 KPX Agrave uring -30 KPX Agrave v -40 KPX Agrave w -30 KPX Agrave y -30 KPX Agrave yacute -30 KPX Agrave ydieresis -30 KPX Amacron C -40 KPX Amacron Cacute -40 KPX Amacron Ccaron -40 KPX Amacron Ccedilla -40 KPX Amacron G -50 KPX Amacron Gbreve -50 KPX Amacron Gcommaaccent -50 KPX Amacron O -40 KPX Amacron Oacute -40 KPX Amacron Ocircumflex -40 KPX Amacron Odieresis -40 KPX Amacron Ograve -40 KPX Amacron Ohungarumlaut -40 KPX Amacron Omacron -40 KPX Amacron Oslash -40 KPX Amacron Otilde -40 KPX Amacron Q -40 KPX Amacron T -90 KPX Amacron Tcaron -90 KPX Amacron Tcommaaccent -90 KPX Amacron U -50 KPX Amacron Uacute -50 KPX Amacron Ucircumflex -50 KPX Amacron Udieresis -50 KPX Amacron Ugrave -50 KPX Amacron Uhungarumlaut -50 KPX Amacron Umacron -50 KPX Amacron Uogonek -50 KPX Amacron Uring -50 KPX Amacron V -80 KPX Amacron W -60 KPX Amacron Y -110 KPX Amacron Yacute -110 KPX Amacron Ydieresis -110 KPX Amacron u -30 KPX Amacron uacute -30 KPX Amacron ucircumflex -30 KPX Amacron udieresis -30 KPX Amacron ugrave -30 KPX Amacron uhungarumlaut -30 KPX Amacron umacron -30 KPX Amacron uogonek -30 KPX Amacron uring -30 KPX Amacron v -40 KPX Amacron w -30 KPX Amacron y -30 KPX Amacron yacute -30 KPX Amacron ydieresis -30 KPX Aogonek C -40 KPX Aogonek Cacute -40 KPX Aogonek Ccaron -40 KPX Aogonek Ccedilla -40 KPX Aogonek G -50 KPX Aogonek Gbreve -50 KPX Aogonek Gcommaaccent -50 KPX Aogonek O -40 KPX Aogonek Oacute -40 KPX Aogonek Ocircumflex -40 KPX Aogonek Odieresis -40 KPX Aogonek Ograve -40 KPX Aogonek Ohungarumlaut -40 KPX Aogonek Omacron -40 KPX Aogonek Oslash -40 KPX Aogonek Otilde -40 KPX Aogonek Q -40 KPX Aogonek T -90 KPX Aogonek Tcaron -90 KPX Aogonek Tcommaaccent -90 KPX Aogonek U -50 KPX Aogonek Uacute -50 KPX Aogonek Ucircumflex -50 KPX Aogonek Udieresis -50 KPX Aogonek Ugrave -50 KPX Aogonek Uhungarumlaut -50 KPX Aogonek Umacron -50 KPX Aogonek Uogonek -50 KPX Aogonek Uring -50 KPX Aogonek V -80 KPX Aogonek W -60 KPX Aogonek Y -110 KPX Aogonek Yacute -110 KPX Aogonek Ydieresis -110 KPX Aogonek u -30 KPX Aogonek uacute -30 KPX Aogonek ucircumflex -30 KPX Aogonek udieresis -30 KPX Aogonek ugrave -30 KPX Aogonek uhungarumlaut -30 KPX Aogonek umacron -30 KPX Aogonek uogonek -30 KPX Aogonek uring -30 KPX Aogonek v -40 KPX Aogonek w -30 KPX Aogonek y -30 KPX Aogonek yacute -30 KPX Aogonek ydieresis -30 KPX Aring C -40 KPX Aring Cacute -40 KPX Aring Ccaron -40 KPX Aring Ccedilla -40 KPX Aring G -50 KPX Aring Gbreve -50 KPX Aring Gcommaaccent -50 KPX Aring O -40 KPX Aring Oacute -40 KPX Aring Ocircumflex -40 KPX Aring Odieresis -40 KPX Aring Ograve -40 KPX Aring Ohungarumlaut -40 KPX Aring Omacron -40 KPX Aring Oslash -40 KPX Aring Otilde -40 KPX Aring Q -40 KPX Aring T -90 KPX Aring Tcaron -90 KPX Aring Tcommaaccent -90 KPX Aring U -50 KPX Aring Uacute -50 KPX Aring Ucircumflex -50 KPX Aring Udieresis -50 KPX Aring Ugrave -50 KPX Aring Uhungarumlaut -50 KPX Aring Umacron -50 KPX Aring Uogonek -50 KPX Aring Uring -50 KPX Aring V -80 KPX Aring W -60 KPX Aring Y -110 KPX Aring Yacute -110 KPX Aring Ydieresis -110 KPX Aring u -30 KPX Aring uacute -30 KPX Aring ucircumflex -30 KPX Aring udieresis -30 KPX Aring ugrave -30 KPX Aring uhungarumlaut -30 KPX Aring umacron -30 KPX Aring uogonek -30 KPX Aring uring -30 KPX Aring v -40 KPX Aring w -30 KPX Aring y -30 KPX Aring yacute -30 KPX Aring ydieresis -30 KPX Atilde C -40 KPX Atilde Cacute -40 KPX Atilde Ccaron -40 KPX Atilde Ccedilla -40 KPX Atilde G -50 KPX Atilde Gbreve -50 KPX Atilde Gcommaaccent -50 KPX Atilde O -40 KPX Atilde Oacute -40 KPX Atilde Ocircumflex -40 KPX Atilde Odieresis -40 KPX Atilde Ograve -40 KPX Atilde Ohungarumlaut -40 KPX Atilde Omacron -40 KPX Atilde Oslash -40 KPX Atilde Otilde -40 KPX Atilde Q -40 KPX Atilde T -90 KPX Atilde Tcaron -90 KPX Atilde Tcommaaccent -90 KPX Atilde U -50 KPX Atilde Uacute -50 KPX Atilde Ucircumflex -50 KPX Atilde Udieresis -50 KPX Atilde Ugrave -50 KPX Atilde Uhungarumlaut -50 KPX Atilde Umacron -50 KPX Atilde Uogonek -50 KPX Atilde Uring -50 KPX Atilde V -80 KPX Atilde W -60 KPX Atilde Y -110 KPX Atilde Yacute -110 KPX Atilde Ydieresis -110 KPX Atilde u -30 KPX Atilde uacute -30 KPX Atilde ucircumflex -30 KPX Atilde udieresis -30 KPX Atilde ugrave -30 KPX Atilde uhungarumlaut -30 KPX Atilde umacron -30 KPX Atilde uogonek -30 KPX Atilde uring -30 KPX Atilde v -40 KPX Atilde w -30 KPX Atilde y -30 KPX Atilde yacute -30 KPX Atilde ydieresis -30 KPX B A -30 KPX B Aacute -30 KPX B Abreve -30 KPX B Acircumflex -30 KPX B Adieresis -30 KPX B Agrave -30 KPX B Amacron -30 KPX B Aogonek -30 KPX B Aring -30 KPX B Atilde -30 KPX B U -10 KPX B Uacute -10 KPX B Ucircumflex -10 KPX B Udieresis -10 KPX B Ugrave -10 KPX B Uhungarumlaut -10 KPX B Umacron -10 KPX B Uogonek -10 KPX B Uring -10 KPX D A -40 KPX D Aacute -40 KPX D Abreve -40 KPX D Acircumflex -40 KPX D Adieresis -40 KPX D Agrave -40 KPX D Amacron -40 KPX D Aogonek -40 KPX D Aring -40 KPX D Atilde -40 KPX D V -40 KPX D W -40 KPX D Y -70 KPX D Yacute -70 KPX D Ydieresis -70 KPX D comma -30 KPX D period -30 KPX Dcaron A -40 KPX Dcaron Aacute -40 KPX Dcaron Abreve -40 KPX Dcaron Acircumflex -40 KPX Dcaron Adieresis -40 KPX Dcaron Agrave -40 KPX Dcaron Amacron -40 KPX Dcaron Aogonek -40 KPX Dcaron Aring -40 KPX Dcaron Atilde -40 KPX Dcaron V -40 KPX Dcaron W -40 KPX Dcaron Y -70 KPX Dcaron Yacute -70 KPX Dcaron Ydieresis -70 KPX Dcaron comma -30 KPX Dcaron period -30 KPX Dcroat A -40 KPX Dcroat Aacute -40 KPX Dcroat Abreve -40 KPX Dcroat Acircumflex -40 KPX Dcroat Adieresis -40 KPX Dcroat Agrave -40 KPX Dcroat Amacron -40 KPX Dcroat Aogonek -40 KPX Dcroat Aring -40 KPX Dcroat Atilde -40 KPX Dcroat V -40 KPX Dcroat W -40 KPX Dcroat Y -70 KPX Dcroat Yacute -70 KPX Dcroat Ydieresis -70 KPX Dcroat comma -30 KPX Dcroat period -30 KPX F A -80 KPX F Aacute -80 KPX F Abreve -80 KPX F Acircumflex -80 KPX F Adieresis -80 KPX F Agrave -80 KPX F Amacron -80 KPX F Aogonek -80 KPX F Aring -80 KPX F Atilde -80 KPX F a -20 KPX F aacute -20 KPX F abreve -20 KPX F acircumflex -20 KPX F adieresis -20 KPX F agrave -20 KPX F amacron -20 KPX F aogonek -20 KPX F aring -20 KPX F atilde -20 KPX F comma -100 KPX F period -100 KPX J A -20 KPX J Aacute -20 KPX J Abreve -20 KPX J Acircumflex -20 KPX J Adieresis -20 KPX J Agrave -20 KPX J Amacron -20 KPX J Aogonek -20 KPX J Aring -20 KPX J Atilde -20 KPX J comma -20 KPX J period -20 KPX J u -20 KPX J uacute -20 KPX J ucircumflex -20 KPX J udieresis -20 KPX J ugrave -20 KPX J uhungarumlaut -20 KPX J umacron -20 KPX J uogonek -20 KPX J uring -20 KPX K O -30 KPX K Oacute -30 KPX K Ocircumflex -30 KPX K Odieresis -30 KPX K Ograve -30 KPX K Ohungarumlaut -30 KPX K Omacron -30 KPX K Oslash -30 KPX K Otilde -30 KPX K e -15 KPX K eacute -15 KPX K ecaron -15 KPX K ecircumflex -15 KPX K edieresis -15 KPX K edotaccent -15 KPX K egrave -15 KPX K emacron -15 KPX K eogonek -15 KPX K o -35 KPX K oacute -35 KPX K ocircumflex -35 KPX K odieresis -35 KPX K ograve -35 KPX K ohungarumlaut -35 KPX K omacron -35 KPX K oslash -35 KPX K otilde -35 KPX K u -30 KPX K uacute -30 KPX K ucircumflex -30 KPX K udieresis -30 KPX K ugrave -30 KPX K uhungarumlaut -30 KPX K umacron -30 KPX K uogonek -30 KPX K uring -30 KPX K y -40 KPX K yacute -40 KPX K ydieresis -40 KPX Kcommaaccent O -30 KPX Kcommaaccent Oacute -30 KPX Kcommaaccent Ocircumflex -30 KPX Kcommaaccent Odieresis -30 KPX Kcommaaccent Ograve -30 KPX Kcommaaccent Ohungarumlaut -30 KPX Kcommaaccent Omacron -30 KPX Kcommaaccent Oslash -30 KPX Kcommaaccent Otilde -30 KPX Kcommaaccent e -15 KPX Kcommaaccent eacute -15 KPX Kcommaaccent ecaron -15 KPX Kcommaaccent ecircumflex -15 KPX Kcommaaccent edieresis -15 KPX Kcommaaccent edotaccent -15 KPX Kcommaaccent egrave -15 KPX Kcommaaccent emacron -15 KPX Kcommaaccent eogonek -15 KPX Kcommaaccent o -35 KPX Kcommaaccent oacute -35 KPX Kcommaaccent ocircumflex -35 KPX Kcommaaccent odieresis -35 KPX Kcommaaccent ograve -35 KPX Kcommaaccent ohungarumlaut -35 KPX Kcommaaccent omacron -35 KPX Kcommaaccent oslash -35 KPX Kcommaaccent otilde -35 KPX Kcommaaccent u -30 KPX Kcommaaccent uacute -30 KPX Kcommaaccent ucircumflex -30 KPX Kcommaaccent udieresis -30 KPX Kcommaaccent ugrave -30 KPX Kcommaaccent uhungarumlaut -30 KPX Kcommaaccent umacron -30 KPX Kcommaaccent uogonek -30 KPX Kcommaaccent uring -30 KPX Kcommaaccent y -40 KPX Kcommaaccent yacute -40 KPX Kcommaaccent ydieresis -40 KPX L T -90 KPX L Tcaron -90 KPX L Tcommaaccent -90 KPX L V -110 KPX L W -80 KPX L Y -120 KPX L Yacute -120 KPX L Ydieresis -120 KPX L quotedblright -140 KPX L quoteright -140 KPX L y -30 KPX L yacute -30 KPX L ydieresis -30 KPX Lacute T -90 KPX Lacute Tcaron -90 KPX Lacute Tcommaaccent -90 KPX Lacute V -110 KPX Lacute W -80 KPX Lacute Y -120 KPX Lacute Yacute -120 KPX Lacute Ydieresis -120 KPX Lacute quotedblright -140 KPX Lacute quoteright -140 KPX Lacute y -30 KPX Lacute yacute -30 KPX Lacute ydieresis -30 KPX Lcommaaccent T -90 KPX Lcommaaccent Tcaron -90 KPX Lcommaaccent Tcommaaccent -90 KPX Lcommaaccent V -110 KPX Lcommaaccent W -80 KPX Lcommaaccent Y -120 KPX Lcommaaccent Yacute -120 KPX Lcommaaccent Ydieresis -120 KPX Lcommaaccent quotedblright -140 KPX Lcommaaccent quoteright -140 KPX Lcommaaccent y -30 KPX Lcommaaccent yacute -30 KPX Lcommaaccent ydieresis -30 KPX Lslash T -90 KPX Lslash Tcaron -90 KPX Lslash Tcommaaccent -90 KPX Lslash V -110 KPX Lslash W -80 KPX Lslash Y -120 KPX Lslash Yacute -120 KPX Lslash Ydieresis -120 KPX Lslash quotedblright -140 KPX Lslash quoteright -140 KPX Lslash y -30 KPX Lslash yacute -30 KPX Lslash ydieresis -30 KPX O A -50 KPX O Aacute -50 KPX O Abreve -50 KPX O Acircumflex -50 KPX O Adieresis -50 KPX O Agrave -50 KPX O Amacron -50 KPX O Aogonek -50 KPX O Aring -50 KPX O Atilde -50 KPX O T -40 KPX O Tcaron -40 KPX O Tcommaaccent -40 KPX O V -50 KPX O W -50 KPX O X -50 KPX O Y -70 KPX O Yacute -70 KPX O Ydieresis -70 KPX O comma -40 KPX O period -40 KPX Oacute A -50 KPX Oacute Aacute -50 KPX Oacute Abreve -50 KPX Oacute Acircumflex -50 KPX Oacute Adieresis -50 KPX Oacute Agrave -50 KPX Oacute Amacron -50 KPX Oacute Aogonek -50 KPX Oacute Aring -50 KPX Oacute Atilde -50 KPX Oacute T -40 KPX Oacute Tcaron -40 KPX Oacute Tcommaaccent -40 KPX Oacute V -50 KPX Oacute W -50 KPX Oacute X -50 KPX Oacute Y -70 KPX Oacute Yacute -70 KPX Oacute Ydieresis -70 KPX Oacute comma -40 KPX Oacute period -40 KPX Ocircumflex A -50 KPX Ocircumflex Aacute -50 KPX Ocircumflex Abreve -50 KPX Ocircumflex Acircumflex -50 KPX Ocircumflex Adieresis -50 KPX Ocircumflex Agrave -50 KPX Ocircumflex Amacron -50 KPX Ocircumflex Aogonek -50 KPX Ocircumflex Aring -50 KPX Ocircumflex Atilde -50 KPX Ocircumflex T -40 KPX Ocircumflex Tcaron -40 KPX Ocircumflex Tcommaaccent -40 KPX Ocircumflex V -50 KPX Ocircumflex W -50 KPX Ocircumflex X -50 KPX Ocircumflex Y -70 KPX Ocircumflex Yacute -70 KPX Ocircumflex Ydieresis -70 KPX Ocircumflex comma -40 KPX Ocircumflex period -40 KPX Odieresis A -50 KPX Odieresis Aacute -50 KPX Odieresis Abreve -50 KPX Odieresis Acircumflex -50 KPX Odieresis Adieresis -50 KPX Odieresis Agrave -50 KPX Odieresis Amacron -50 KPX Odieresis Aogonek -50 KPX Odieresis Aring -50 KPX Odieresis Atilde -50 KPX Odieresis T -40 KPX Odieresis Tcaron -40 KPX Odieresis Tcommaaccent -40 KPX Odieresis V -50 KPX Odieresis W -50 KPX Odieresis X -50 KPX Odieresis Y -70 KPX Odieresis Yacute -70 KPX Odieresis Ydieresis -70 KPX Odieresis comma -40 KPX Odieresis period -40 KPX Ograve A -50 KPX Ograve Aacute -50 KPX Ograve Abreve -50 KPX Ograve Acircumflex -50 KPX Ograve Adieresis -50 KPX Ograve Agrave -50 KPX Ograve Amacron -50 KPX Ograve Aogonek -50 KPX Ograve Aring -50 KPX Ograve Atilde -50 KPX Ograve T -40 KPX Ograve Tcaron -40 KPX Ograve Tcommaaccent -40 KPX Ograve V -50 KPX Ograve W -50 KPX Ograve X -50 KPX Ograve Y -70 KPX Ograve Yacute -70 KPX Ograve Ydieresis -70 KPX Ograve comma -40 KPX Ograve period -40 KPX Ohungarumlaut A -50 KPX Ohungarumlaut Aacute -50 KPX Ohungarumlaut Abreve -50 KPX Ohungarumlaut Acircumflex -50 KPX Ohungarumlaut Adieresis -50 KPX Ohungarumlaut Agrave -50 KPX Ohungarumlaut Amacron -50 KPX Ohungarumlaut Aogonek -50 KPX Ohungarumlaut Aring -50 KPX Ohungarumlaut Atilde -50 KPX Ohungarumlaut T -40 KPX Ohungarumlaut Tcaron -40 KPX Ohungarumlaut Tcommaaccent -40 KPX Ohungarumlaut V -50 KPX Ohungarumlaut W -50 KPX Ohungarumlaut X -50 KPX Ohungarumlaut Y -70 KPX Ohungarumlaut Yacute -70 KPX Ohungarumlaut Ydieresis -70 KPX Ohungarumlaut comma -40 KPX Ohungarumlaut period -40 KPX Omacron A -50 KPX Omacron Aacute -50 KPX Omacron Abreve -50 KPX Omacron Acircumflex -50 KPX Omacron Adieresis -50 KPX Omacron Agrave -50 KPX Omacron Amacron -50 KPX Omacron Aogonek -50 KPX Omacron Aring -50 KPX Omacron Atilde -50 KPX Omacron T -40 KPX Omacron Tcaron -40 KPX Omacron Tcommaaccent -40 KPX Omacron V -50 KPX Omacron W -50 KPX Omacron X -50 KPX Omacron Y -70 KPX Omacron Yacute -70 KPX Omacron Ydieresis -70 KPX Omacron comma -40 KPX Omacron period -40 KPX Oslash A -50 KPX Oslash Aacute -50 KPX Oslash Abreve -50 KPX Oslash Acircumflex -50 KPX Oslash Adieresis -50 KPX Oslash Agrave -50 KPX Oslash Amacron -50 KPX Oslash Aogonek -50 KPX Oslash Aring -50 KPX Oslash Atilde -50 KPX Oslash T -40 KPX Oslash Tcaron -40 KPX Oslash Tcommaaccent -40 KPX Oslash V -50 KPX Oslash W -50 KPX Oslash X -50 KPX Oslash Y -70 KPX Oslash Yacute -70 KPX Oslash Ydieresis -70 KPX Oslash comma -40 KPX Oslash period -40 KPX Otilde A -50 KPX Otilde Aacute -50 KPX Otilde Abreve -50 KPX Otilde Acircumflex -50 KPX Otilde Adieresis -50 KPX Otilde Agrave -50 KPX Otilde Amacron -50 KPX Otilde Aogonek -50 KPX Otilde Aring -50 KPX Otilde Atilde -50 KPX Otilde T -40 KPX Otilde Tcaron -40 KPX Otilde Tcommaaccent -40 KPX Otilde V -50 KPX Otilde W -50 KPX Otilde X -50 KPX Otilde Y -70 KPX Otilde Yacute -70 KPX Otilde Ydieresis -70 KPX Otilde comma -40 KPX Otilde period -40 KPX P A -100 KPX P Aacute -100 KPX P Abreve -100 KPX P Acircumflex -100 KPX P Adieresis -100 KPX P Agrave -100 KPX P Amacron -100 KPX P Aogonek -100 KPX P Aring -100 KPX P Atilde -100 KPX P a -30 KPX P aacute -30 KPX P abreve -30 KPX P acircumflex -30 KPX P adieresis -30 KPX P agrave -30 KPX P amacron -30 KPX P aogonek -30 KPX P aring -30 KPX P atilde -30 KPX P comma -120 KPX P e -30 KPX P eacute -30 KPX P ecaron -30 KPX P ecircumflex -30 KPX P edieresis -30 KPX P edotaccent -30 KPX P egrave -30 KPX P emacron -30 KPX P eogonek -30 KPX P o -40 KPX P oacute -40 KPX P ocircumflex -40 KPX P odieresis -40 KPX P ograve -40 KPX P ohungarumlaut -40 KPX P omacron -40 KPX P oslash -40 KPX P otilde -40 KPX P period -120 KPX Q U -10 KPX Q Uacute -10 KPX Q Ucircumflex -10 KPX Q Udieresis -10 KPX Q Ugrave -10 KPX Q Uhungarumlaut -10 KPX Q Umacron -10 KPX Q Uogonek -10 KPX Q Uring -10 KPX Q comma 20 KPX Q period 20 KPX R O -20 KPX R Oacute -20 KPX R Ocircumflex -20 KPX R Odieresis -20 KPX R Ograve -20 KPX R Ohungarumlaut -20 KPX R Omacron -20 KPX R Oslash -20 KPX R Otilde -20 KPX R T -20 KPX R Tcaron -20 KPX R Tcommaaccent -20 KPX R U -20 KPX R Uacute -20 KPX R Ucircumflex -20 KPX R Udieresis -20 KPX R Ugrave -20 KPX R Uhungarumlaut -20 KPX R Umacron -20 KPX R Uogonek -20 KPX R Uring -20 KPX R V -50 KPX R W -40 KPX R Y -50 KPX R Yacute -50 KPX R Ydieresis -50 KPX Racute O -20 KPX Racute Oacute -20 KPX Racute Ocircumflex -20 KPX Racute Odieresis -20 KPX Racute Ograve -20 KPX Racute Ohungarumlaut -20 KPX Racute Omacron -20 KPX Racute Oslash -20 KPX Racute Otilde -20 KPX Racute T -20 KPX Racute Tcaron -20 KPX Racute Tcommaaccent -20 KPX Racute U -20 KPX Racute Uacute -20 KPX Racute Ucircumflex -20 KPX Racute Udieresis -20 KPX Racute Ugrave -20 KPX Racute Uhungarumlaut -20 KPX Racute Umacron -20 KPX Racute Uogonek -20 KPX Racute Uring -20 KPX Racute V -50 KPX Racute W -40 KPX Racute Y -50 KPX Racute Yacute -50 KPX Racute Ydieresis -50 KPX Rcaron O -20 KPX Rcaron Oacute -20 KPX Rcaron Ocircumflex -20 KPX Rcaron Odieresis -20 KPX Rcaron Ograve -20 KPX Rcaron Ohungarumlaut -20 KPX Rcaron Omacron -20 KPX Rcaron Oslash -20 KPX Rcaron Otilde -20 KPX Rcaron T -20 KPX Rcaron Tcaron -20 KPX Rcaron Tcommaaccent -20 KPX Rcaron U -20 KPX Rcaron Uacute -20 KPX Rcaron Ucircumflex -20 KPX Rcaron Udieresis -20 KPX Rcaron Ugrave -20 KPX Rcaron Uhungarumlaut -20 KPX Rcaron Umacron -20 KPX Rcaron Uogonek -20 KPX Rcaron Uring -20 KPX Rcaron V -50 KPX Rcaron W -40 KPX Rcaron Y -50 KPX Rcaron Yacute -50 KPX Rcaron Ydieresis -50 KPX Rcommaaccent O -20 KPX Rcommaaccent Oacute -20 KPX Rcommaaccent Ocircumflex -20 KPX Rcommaaccent Odieresis -20 KPX Rcommaaccent Ograve -20 KPX Rcommaaccent Ohungarumlaut -20 KPX Rcommaaccent Omacron -20 KPX Rcommaaccent Oslash -20 KPX Rcommaaccent Otilde -20 KPX Rcommaaccent T -20 KPX Rcommaaccent Tcaron -20 KPX Rcommaaccent Tcommaaccent -20 KPX Rcommaaccent U -20 KPX Rcommaaccent Uacute -20 KPX Rcommaaccent Ucircumflex -20 KPX Rcommaaccent Udieresis -20 KPX Rcommaaccent Ugrave -20 KPX Rcommaaccent Uhungarumlaut -20 KPX Rcommaaccent Umacron -20 KPX Rcommaaccent Uogonek -20 KPX Rcommaaccent Uring -20 KPX Rcommaaccent V -50 KPX Rcommaaccent W -40 KPX Rcommaaccent Y -50 KPX Rcommaaccent Yacute -50 KPX Rcommaaccent Ydieresis -50 KPX T A -90 KPX T Aacute -90 KPX T Abreve -90 KPX T Acircumflex -90 KPX T Adieresis -90 KPX T Agrave -90 KPX T Amacron -90 KPX T Aogonek -90 KPX T Aring -90 KPX T Atilde -90 KPX T O -40 KPX T Oacute -40 KPX T Ocircumflex -40 KPX T Odieresis -40 KPX T Ograve -40 KPX T Ohungarumlaut -40 KPX T Omacron -40 KPX T Oslash -40 KPX T Otilde -40 KPX T a -80 KPX T aacute -80 KPX T abreve -80 KPX T acircumflex -80 KPX T adieresis -80 KPX T agrave -80 KPX T amacron -80 KPX T aogonek -80 KPX T aring -80 KPX T atilde -80 KPX T colon -40 KPX T comma -80 KPX T e -60 KPX T eacute -60 KPX T ecaron -60 KPX T ecircumflex -60 KPX T edieresis -60 KPX T edotaccent -60 KPX T egrave -60 KPX T emacron -60 KPX T eogonek -60 KPX T hyphen -120 KPX T o -80 KPX T oacute -80 KPX T ocircumflex -80 KPX T odieresis -80 KPX T ograve -80 KPX T ohungarumlaut -80 KPX T omacron -80 KPX T oslash -80 KPX T otilde -80 KPX T period -80 KPX T r -80 KPX T racute -80 KPX T rcommaaccent -80 KPX T semicolon -40 KPX T u -90 KPX T uacute -90 KPX T ucircumflex -90 KPX T udieresis -90 KPX T ugrave -90 KPX T uhungarumlaut -90 KPX T umacron -90 KPX T uogonek -90 KPX T uring -90 KPX T w -60 KPX T y -60 KPX T yacute -60 KPX T ydieresis -60 KPX Tcaron A -90 KPX Tcaron Aacute -90 KPX Tcaron Abreve -90 KPX Tcaron Acircumflex -90 KPX Tcaron Adieresis -90 KPX Tcaron Agrave -90 KPX Tcaron Amacron -90 KPX Tcaron Aogonek -90 KPX Tcaron Aring -90 KPX Tcaron Atilde -90 KPX Tcaron O -40 KPX Tcaron Oacute -40 KPX Tcaron Ocircumflex -40 KPX Tcaron Odieresis -40 KPX Tcaron Ograve -40 KPX Tcaron Ohungarumlaut -40 KPX Tcaron Omacron -40 KPX Tcaron Oslash -40 KPX Tcaron Otilde -40 KPX Tcaron a -80 KPX Tcaron aacute -80 KPX Tcaron abreve -80 KPX Tcaron acircumflex -80 KPX Tcaron adieresis -80 KPX Tcaron agrave -80 KPX Tcaron amacron -80 KPX Tcaron aogonek -80 KPX Tcaron aring -80 KPX Tcaron atilde -80 KPX Tcaron colon -40 KPX Tcaron comma -80 KPX Tcaron e -60 KPX Tcaron eacute -60 KPX Tcaron ecaron -60 KPX Tcaron ecircumflex -60 KPX Tcaron edieresis -60 KPX Tcaron edotaccent -60 KPX Tcaron egrave -60 KPX Tcaron emacron -60 KPX Tcaron eogonek -60 KPX Tcaron hyphen -120 KPX Tcaron o -80 KPX Tcaron oacute -80 KPX Tcaron ocircumflex -80 KPX Tcaron odieresis -80 KPX Tcaron ograve -80 KPX Tcaron ohungarumlaut -80 KPX Tcaron omacron -80 KPX Tcaron oslash -80 KPX Tcaron otilde -80 KPX Tcaron period -80 KPX Tcaron r -80 KPX Tcaron racute -80 KPX Tcaron rcommaaccent -80 KPX Tcaron semicolon -40 KPX Tcaron u -90 KPX Tcaron uacute -90 KPX Tcaron ucircumflex -90 KPX Tcaron udieresis -90 KPX Tcaron ugrave -90 KPX Tcaron uhungarumlaut -90 KPX Tcaron umacron -90 KPX Tcaron uogonek -90 KPX Tcaron uring -90 KPX Tcaron w -60 KPX Tcaron y -60 KPX Tcaron yacute -60 KPX Tcaron ydieresis -60 KPX Tcommaaccent A -90 KPX Tcommaaccent Aacute -90 KPX Tcommaaccent Abreve -90 KPX Tcommaaccent Acircumflex -90 KPX Tcommaaccent Adieresis -90 KPX Tcommaaccent Agrave -90 KPX Tcommaaccent Amacron -90 KPX Tcommaaccent Aogonek -90 KPX Tcommaaccent Aring -90 KPX Tcommaaccent Atilde -90 KPX Tcommaaccent O -40 KPX Tcommaaccent Oacute -40 KPX Tcommaaccent Ocircumflex -40 KPX Tcommaaccent Odieresis -40 KPX Tcommaaccent Ograve -40 KPX Tcommaaccent Ohungarumlaut -40 KPX Tcommaaccent Omacron -40 KPX Tcommaaccent Oslash -40 KPX Tcommaaccent Otilde -40 KPX Tcommaaccent a -80 KPX Tcommaaccent aacute -80 KPX Tcommaaccent abreve -80 KPX Tcommaaccent acircumflex -80 KPX Tcommaaccent adieresis -80 KPX Tcommaaccent agrave -80 KPX Tcommaaccent amacron -80 KPX Tcommaaccent aogonek -80 KPX Tcommaaccent aring -80 KPX Tcommaaccent atilde -80 KPX Tcommaaccent colon -40 KPX Tcommaaccent comma -80 KPX Tcommaaccent e -60 KPX Tcommaaccent eacute -60 KPX Tcommaaccent ecaron -60 KPX Tcommaaccent ecircumflex -60 KPX Tcommaaccent edieresis -60 KPX Tcommaaccent edotaccent -60 KPX Tcommaaccent egrave -60 KPX Tcommaaccent emacron -60 KPX Tcommaaccent eogonek -60 KPX Tcommaaccent hyphen -120 KPX Tcommaaccent o -80 KPX Tcommaaccent oacute -80 KPX Tcommaaccent ocircumflex -80 KPX Tcommaaccent odieresis -80 KPX Tcommaaccent ograve -80 KPX Tcommaaccent ohungarumlaut -80 KPX Tcommaaccent omacron -80 KPX Tcommaaccent oslash -80 KPX Tcommaaccent otilde -80 KPX Tcommaaccent period -80 KPX Tcommaaccent r -80 KPX Tcommaaccent racute -80 KPX Tcommaaccent rcommaaccent -80 KPX Tcommaaccent semicolon -40 KPX Tcommaaccent u -90 KPX Tcommaaccent uacute -90 KPX Tcommaaccent ucircumflex -90 KPX Tcommaaccent udieresis -90 KPX Tcommaaccent ugrave -90 KPX Tcommaaccent uhungarumlaut -90 KPX Tcommaaccent umacron -90 KPX Tcommaaccent uogonek -90 KPX Tcommaaccent uring -90 KPX Tcommaaccent w -60 KPX Tcommaaccent y -60 KPX Tcommaaccent yacute -60 KPX Tcommaaccent ydieresis -60 KPX U A -50 KPX U Aacute -50 KPX U Abreve -50 KPX U Acircumflex -50 KPX U Adieresis -50 KPX U Agrave -50 KPX U Amacron -50 KPX U Aogonek -50 KPX U Aring -50 KPX U Atilde -50 KPX U comma -30 KPX U period -30 KPX Uacute A -50 KPX Uacute Aacute -50 KPX Uacute Abreve -50 KPX Uacute Acircumflex -50 KPX Uacute Adieresis -50 KPX Uacute Agrave -50 KPX Uacute Amacron -50 KPX Uacute Aogonek -50 KPX Uacute Aring -50 KPX Uacute Atilde -50 KPX Uacute comma -30 KPX Uacute period -30 KPX Ucircumflex A -50 KPX Ucircumflex Aacute -50 KPX Ucircumflex Abreve -50 KPX Ucircumflex Acircumflex -50 KPX Ucircumflex Adieresis -50 KPX Ucircumflex Agrave -50 KPX Ucircumflex Amacron -50 KPX Ucircumflex Aogonek -50 KPX Ucircumflex Aring -50 KPX Ucircumflex Atilde -50 KPX Ucircumflex comma -30 KPX Ucircumflex period -30 KPX Udieresis A -50 KPX Udieresis Aacute -50 KPX Udieresis Abreve -50 KPX Udieresis Acircumflex -50 KPX Udieresis Adieresis -50 KPX Udieresis Agrave -50 KPX Udieresis Amacron -50 KPX Udieresis Aogonek -50 KPX Udieresis Aring -50 KPX Udieresis Atilde -50 KPX Udieresis comma -30 KPX Udieresis period -30 KPX Ugrave A -50 KPX Ugrave Aacute -50 KPX Ugrave Abreve -50 KPX Ugrave Acircumflex -50 KPX Ugrave Adieresis -50 KPX Ugrave Agrave -50 KPX Ugrave Amacron -50 KPX Ugrave Aogonek -50 KPX Ugrave Aring -50 KPX Ugrave Atilde -50 KPX Ugrave comma -30 KPX Ugrave period -30 KPX Uhungarumlaut A -50 KPX Uhungarumlaut Aacute -50 KPX Uhungarumlaut Abreve -50 KPX Uhungarumlaut Acircumflex -50 KPX Uhungarumlaut Adieresis -50 KPX Uhungarumlaut Agrave -50 KPX Uhungarumlaut Amacron -50 KPX Uhungarumlaut Aogonek -50 KPX Uhungarumlaut Aring -50 KPX Uhungarumlaut Atilde -50 KPX Uhungarumlaut comma -30 KPX Uhungarumlaut period -30 KPX Umacron A -50 KPX Umacron Aacute -50 KPX Umacron Abreve -50 KPX Umacron Acircumflex -50 KPX Umacron Adieresis -50 KPX Umacron Agrave -50 KPX Umacron Amacron -50 KPX Umacron Aogonek -50 KPX Umacron Aring -50 KPX Umacron Atilde -50 KPX Umacron comma -30 KPX Umacron period -30 KPX Uogonek A -50 KPX Uogonek Aacute -50 KPX Uogonek Abreve -50 KPX Uogonek Acircumflex -50 KPX Uogonek Adieresis -50 KPX Uogonek Agrave -50 KPX Uogonek Amacron -50 KPX Uogonek Aogonek -50 KPX Uogonek Aring -50 KPX Uogonek Atilde -50 KPX Uogonek comma -30 KPX Uogonek period -30 KPX Uring A -50 KPX Uring Aacute -50 KPX Uring Abreve -50 KPX Uring Acircumflex -50 KPX Uring Adieresis -50 KPX Uring Agrave -50 KPX Uring Amacron -50 KPX Uring Aogonek -50 KPX Uring Aring -50 KPX Uring Atilde -50 KPX Uring comma -30 KPX Uring period -30 KPX V A -80 KPX V Aacute -80 KPX V Abreve -80 KPX V Acircumflex -80 KPX V Adieresis -80 KPX V Agrave -80 KPX V Amacron -80 KPX V Aogonek -80 KPX V Aring -80 KPX V Atilde -80 KPX V G -50 KPX V Gbreve -50 KPX V Gcommaaccent -50 KPX V O -50 KPX V Oacute -50 KPX V Ocircumflex -50 KPX V Odieresis -50 KPX V Ograve -50 KPX V Ohungarumlaut -50 KPX V Omacron -50 KPX V Oslash -50 KPX V Otilde -50 KPX V a -60 KPX V aacute -60 KPX V abreve -60 KPX V acircumflex -60 KPX V adieresis -60 KPX V agrave -60 KPX V amacron -60 KPX V aogonek -60 KPX V aring -60 KPX V atilde -60 KPX V colon -40 KPX V comma -120 KPX V e -50 KPX V eacute -50 KPX V ecaron -50 KPX V ecircumflex -50 KPX V edieresis -50 KPX V edotaccent -50 KPX V egrave -50 KPX V emacron -50 KPX V eogonek -50 KPX V hyphen -80 KPX V o -90 KPX V oacute -90 KPX V ocircumflex -90 KPX V odieresis -90 KPX V ograve -90 KPX V ohungarumlaut -90 KPX V omacron -90 KPX V oslash -90 KPX V otilde -90 KPX V period -120 KPX V semicolon -40 KPX V u -60 KPX V uacute -60 KPX V ucircumflex -60 KPX V udieresis -60 KPX V ugrave -60 KPX V uhungarumlaut -60 KPX V umacron -60 KPX V uogonek -60 KPX V uring -60 KPX W A -60 KPX W Aacute -60 KPX W Abreve -60 KPX W Acircumflex -60 KPX W Adieresis -60 KPX W Agrave -60 KPX W Amacron -60 KPX W Aogonek -60 KPX W Aring -60 KPX W Atilde -60 KPX W O -20 KPX W Oacute -20 KPX W Ocircumflex -20 KPX W Odieresis -20 KPX W Ograve -20 KPX W Ohungarumlaut -20 KPX W Omacron -20 KPX W Oslash -20 KPX W Otilde -20 KPX W a -40 KPX W aacute -40 KPX W abreve -40 KPX W acircumflex -40 KPX W adieresis -40 KPX W agrave -40 KPX W amacron -40 KPX W aogonek -40 KPX W aring -40 KPX W atilde -40 KPX W colon -10 KPX W comma -80 KPX W e -35 KPX W eacute -35 KPX W ecaron -35 KPX W ecircumflex -35 KPX W edieresis -35 KPX W edotaccent -35 KPX W egrave -35 KPX W emacron -35 KPX W eogonek -35 KPX W hyphen -40 KPX W o -60 KPX W oacute -60 KPX W ocircumflex -60 KPX W odieresis -60 KPX W ograve -60 KPX W ohungarumlaut -60 KPX W omacron -60 KPX W oslash -60 KPX W otilde -60 KPX W period -80 KPX W semicolon -10 KPX W u -45 KPX W uacute -45 KPX W ucircumflex -45 KPX W udieresis -45 KPX W ugrave -45 KPX W uhungarumlaut -45 KPX W umacron -45 KPX W uogonek -45 KPX W uring -45 KPX W y -20 KPX W yacute -20 KPX W ydieresis -20 KPX Y A -110 KPX Y Aacute -110 KPX Y Abreve -110 KPX Y Acircumflex -110 KPX Y Adieresis -110 KPX Y Agrave -110 KPX Y Amacron -110 KPX Y Aogonek -110 KPX Y Aring -110 KPX Y Atilde -110 KPX Y O -70 KPX Y Oacute -70 KPX Y Ocircumflex -70 KPX Y Odieresis -70 KPX Y Ograve -70 KPX Y Ohungarumlaut -70 KPX Y Omacron -70 KPX Y Oslash -70 KPX Y Otilde -70 KPX Y a -90 KPX Y aacute -90 KPX Y abreve -90 KPX Y acircumflex -90 KPX Y adieresis -90 KPX Y agrave -90 KPX Y amacron -90 KPX Y aogonek -90 KPX Y aring -90 KPX Y atilde -90 KPX Y colon -50 KPX Y comma -100 KPX Y e -80 KPX Y eacute -80 KPX Y ecaron -80 KPX Y ecircumflex -80 KPX Y edieresis -80 KPX Y edotaccent -80 KPX Y egrave -80 KPX Y emacron -80 KPX Y eogonek -80 KPX Y o -100 KPX Y oacute -100 KPX Y ocircumflex -100 KPX Y odieresis -100 KPX Y ograve -100 KPX Y ohungarumlaut -100 KPX Y omacron -100 KPX Y oslash -100 KPX Y otilde -100 KPX Y period -100 KPX Y semicolon -50 KPX Y u -100 KPX Y uacute -100 KPX Y ucircumflex -100 KPX Y udieresis -100 KPX Y ugrave -100 KPX Y uhungarumlaut -100 KPX Y umacron -100 KPX Y uogonek -100 KPX Y uring -100 KPX Yacute A -110 KPX Yacute Aacute -110 KPX Yacute Abreve -110 KPX Yacute Acircumflex -110 KPX Yacute Adieresis -110 KPX Yacute Agrave -110 KPX Yacute Amacron -110 KPX Yacute Aogonek -110 KPX Yacute Aring -110 KPX Yacute Atilde -110 KPX Yacute O -70 KPX Yacute Oacute -70 KPX Yacute Ocircumflex -70 KPX Yacute Odieresis -70 KPX Yacute Ograve -70 KPX Yacute Ohungarumlaut -70 KPX Yacute Omacron -70 KPX Yacute Oslash -70 KPX Yacute Otilde -70 KPX Yacute a -90 KPX Yacute aacute -90 KPX Yacute abreve -90 KPX Yacute acircumflex -90 KPX Yacute adieresis -90 KPX Yacute agrave -90 KPX Yacute amacron -90 KPX Yacute aogonek -90 KPX Yacute aring -90 KPX Yacute atilde -90 KPX Yacute colon -50 KPX Yacute comma -100 KPX Yacute e -80 KPX Yacute eacute -80 KPX Yacute ecaron -80 KPX Yacute ecircumflex -80 KPX Yacute edieresis -80 KPX Yacute edotaccent -80 KPX Yacute egrave -80 KPX Yacute emacron -80 KPX Yacute eogonek -80 KPX Yacute o -100 KPX Yacute oacute -100 KPX Yacute ocircumflex -100 KPX Yacute odieresis -100 KPX Yacute ograve -100 KPX Yacute ohungarumlaut -100 KPX Yacute omacron -100 KPX Yacute oslash -100 KPX Yacute otilde -100 KPX Yacute period -100 KPX Yacute semicolon -50 KPX Yacute u -100 KPX Yacute uacute -100 KPX Yacute ucircumflex -100 KPX Yacute udieresis -100 KPX Yacute ugrave -100 KPX Yacute uhungarumlaut -100 KPX Yacute umacron -100 KPX Yacute uogonek -100 KPX Yacute uring -100 KPX Ydieresis A -110 KPX Ydieresis Aacute -110 KPX Ydieresis Abreve -110 KPX Ydieresis Acircumflex -110 KPX Ydieresis Adieresis -110 KPX Ydieresis Agrave -110 KPX Ydieresis Amacron -110 KPX Ydieresis Aogonek -110 KPX Ydieresis Aring -110 KPX Ydieresis Atilde -110 KPX Ydieresis O -70 KPX Ydieresis Oacute -70 KPX Ydieresis Ocircumflex -70 KPX Ydieresis Odieresis -70 KPX Ydieresis Ograve -70 KPX Ydieresis Ohungarumlaut -70 KPX Ydieresis Omacron -70 KPX Ydieresis Oslash -70 KPX Ydieresis Otilde -70 KPX Ydieresis a -90 KPX Ydieresis aacute -90 KPX Ydieresis abreve -90 KPX Ydieresis acircumflex -90 KPX Ydieresis adieresis -90 KPX Ydieresis agrave -90 KPX Ydieresis amacron -90 KPX Ydieresis aogonek -90 KPX Ydieresis aring -90 KPX Ydieresis atilde -90 KPX Ydieresis colon -50 KPX Ydieresis comma -100 KPX Ydieresis e -80 KPX Ydieresis eacute -80 KPX Ydieresis ecaron -80 KPX Ydieresis ecircumflex -80 KPX Ydieresis edieresis -80 KPX Ydieresis edotaccent -80 KPX Ydieresis egrave -80 KPX Ydieresis emacron -80 KPX Ydieresis eogonek -80 KPX Ydieresis o -100 KPX Ydieresis oacute -100 KPX Ydieresis ocircumflex -100 KPX Ydieresis odieresis -100 KPX Ydieresis ograve -100 KPX Ydieresis ohungarumlaut -100 KPX Ydieresis omacron -100 KPX Ydieresis oslash -100 KPX Ydieresis otilde -100 KPX Ydieresis period -100 KPX Ydieresis semicolon -50 KPX Ydieresis u -100 KPX Ydieresis uacute -100 KPX Ydieresis ucircumflex -100 KPX Ydieresis udieresis -100 KPX Ydieresis ugrave -100 KPX Ydieresis uhungarumlaut -100 KPX Ydieresis umacron -100 KPX Ydieresis uogonek -100 KPX Ydieresis uring -100 KPX a g -10 KPX a gbreve -10 KPX a gcommaaccent -10 KPX a v -15 KPX a w -15 KPX a y -20 KPX a yacute -20 KPX a ydieresis -20 KPX aacute g -10 KPX aacute gbreve -10 KPX aacute gcommaaccent -10 KPX aacute v -15 KPX aacute w -15 KPX aacute y -20 KPX aacute yacute -20 KPX aacute ydieresis -20 KPX abreve g -10 KPX abreve gbreve -10 KPX abreve gcommaaccent -10 KPX abreve v -15 KPX abreve w -15 KPX abreve y -20 KPX abreve yacute -20 KPX abreve ydieresis -20 KPX acircumflex g -10 KPX acircumflex gbreve -10 KPX acircumflex gcommaaccent -10 KPX acircumflex v -15 KPX acircumflex w -15 KPX acircumflex y -20 KPX acircumflex yacute -20 KPX acircumflex ydieresis -20 KPX adieresis g -10 KPX adieresis gbreve -10 KPX adieresis gcommaaccent -10 KPX adieresis v -15 KPX adieresis w -15 KPX adieresis y -20 KPX adieresis yacute -20 KPX adieresis ydieresis -20 KPX agrave g -10 KPX agrave gbreve -10 KPX agrave gcommaaccent -10 KPX agrave v -15 KPX agrave w -15 KPX agrave y -20 KPX agrave yacute -20 KPX agrave ydieresis -20 KPX amacron g -10 KPX amacron gbreve -10 KPX amacron gcommaaccent -10 KPX amacron v -15 KPX amacron w -15 KPX amacron y -20 KPX amacron yacute -20 KPX amacron ydieresis -20 KPX aogonek g -10 KPX aogonek gbreve -10 KPX aogonek gcommaaccent -10 KPX aogonek v -15 KPX aogonek w -15 KPX aogonek y -20 KPX aogonek yacute -20 KPX aogonek ydieresis -20 KPX aring g -10 KPX aring gbreve -10 KPX aring gcommaaccent -10 KPX aring v -15 KPX aring w -15 KPX aring y -20 KPX aring yacute -20 KPX aring ydieresis -20 KPX atilde g -10 KPX atilde gbreve -10 KPX atilde gcommaaccent -10 KPX atilde v -15 KPX atilde w -15 KPX atilde y -20 KPX atilde yacute -20 KPX atilde ydieresis -20 KPX b l -10 KPX b lacute -10 KPX b lcommaaccent -10 KPX b lslash -10 KPX b u -20 KPX b uacute -20 KPX b ucircumflex -20 KPX b udieresis -20 KPX b ugrave -20 KPX b uhungarumlaut -20 KPX b umacron -20 KPX b uogonek -20 KPX b uring -20 KPX b v -20 KPX b y -20 KPX b yacute -20 KPX b ydieresis -20 KPX c h -10 KPX c k -20 KPX c kcommaaccent -20 KPX c l -20 KPX c lacute -20 KPX c lcommaaccent -20 KPX c lslash -20 KPX c y -10 KPX c yacute -10 KPX c ydieresis -10 KPX cacute h -10 KPX cacute k -20 KPX cacute kcommaaccent -20 KPX cacute l -20 KPX cacute lacute -20 KPX cacute lcommaaccent -20 KPX cacute lslash -20 KPX cacute y -10 KPX cacute yacute -10 KPX cacute ydieresis -10 KPX ccaron h -10 KPX ccaron k -20 KPX ccaron kcommaaccent -20 KPX ccaron l -20 KPX ccaron lacute -20 KPX ccaron lcommaaccent -20 KPX ccaron lslash -20 KPX ccaron y -10 KPX ccaron yacute -10 KPX ccaron ydieresis -10 KPX ccedilla h -10 KPX ccedilla k -20 KPX ccedilla kcommaaccent -20 KPX ccedilla l -20 KPX ccedilla lacute -20 KPX ccedilla lcommaaccent -20 KPX ccedilla lslash -20 KPX ccedilla y -10 KPX ccedilla yacute -10 KPX ccedilla ydieresis -10 KPX colon space -40 KPX comma quotedblright -120 KPX comma quoteright -120 KPX comma space -40 KPX d d -10 KPX d dcroat -10 KPX d v -15 KPX d w -15 KPX d y -15 KPX d yacute -15 KPX d ydieresis -15 KPX dcroat d -10 KPX dcroat dcroat -10 KPX dcroat v -15 KPX dcroat w -15 KPX dcroat y -15 KPX dcroat yacute -15 KPX dcroat ydieresis -15 KPX e comma 10 KPX e period 20 KPX e v -15 KPX e w -15 KPX e x -15 KPX e y -15 KPX e yacute -15 KPX e ydieresis -15 KPX eacute comma 10 KPX eacute period 20 KPX eacute v -15 KPX eacute w -15 KPX eacute x -15 KPX eacute y -15 KPX eacute yacute -15 KPX eacute ydieresis -15 KPX ecaron comma 10 KPX ecaron period 20 KPX ecaron v -15 KPX ecaron w -15 KPX ecaron x -15 KPX ecaron y -15 KPX ecaron yacute -15 KPX ecaron ydieresis -15 KPX ecircumflex comma 10 KPX ecircumflex period 20 KPX ecircumflex v -15 KPX ecircumflex w -15 KPX ecircumflex x -15 KPX ecircumflex y -15 KPX ecircumflex yacute -15 KPX ecircumflex ydieresis -15 KPX edieresis comma 10 KPX edieresis period 20 KPX edieresis v -15 KPX edieresis w -15 KPX edieresis x -15 KPX edieresis y -15 KPX edieresis yacute -15 KPX edieresis ydieresis -15 KPX edotaccent comma 10 KPX edotaccent period 20 KPX edotaccent v -15 KPX edotaccent w -15 KPX edotaccent x -15 KPX edotaccent y -15 KPX edotaccent yacute -15 KPX edotaccent ydieresis -15 KPX egrave comma 10 KPX egrave period 20 KPX egrave v -15 KPX egrave w -15 KPX egrave x -15 KPX egrave y -15 KPX egrave yacute -15 KPX egrave ydieresis -15 KPX emacron comma 10 KPX emacron period 20 KPX emacron v -15 KPX emacron w -15 KPX emacron x -15 KPX emacron y -15 KPX emacron yacute -15 KPX emacron ydieresis -15 KPX eogonek comma 10 KPX eogonek period 20 KPX eogonek v -15 KPX eogonek w -15 KPX eogonek x -15 KPX eogonek y -15 KPX eogonek yacute -15 KPX eogonek ydieresis -15 KPX f comma -10 KPX f e -10 KPX f eacute -10 KPX f ecaron -10 KPX f ecircumflex -10 KPX f edieresis -10 KPX f edotaccent -10 KPX f egrave -10 KPX f emacron -10 KPX f eogonek -10 KPX f o -20 KPX f oacute -20 KPX f ocircumflex -20 KPX f odieresis -20 KPX f ograve -20 KPX f ohungarumlaut -20 KPX f omacron -20 KPX f oslash -20 KPX f otilde -20 KPX f period -10 KPX f quotedblright 30 KPX f quoteright 30 KPX g e 10 KPX g eacute 10 KPX g ecaron 10 KPX g ecircumflex 10 KPX g edieresis 10 KPX g edotaccent 10 KPX g egrave 10 KPX g emacron 10 KPX g eogonek 10 KPX g g -10 KPX g gbreve -10 KPX g gcommaaccent -10 KPX gbreve e 10 KPX gbreve eacute 10 KPX gbreve ecaron 10 KPX gbreve ecircumflex 10 KPX gbreve edieresis 10 KPX gbreve edotaccent 10 KPX gbreve egrave 10 KPX gbreve emacron 10 KPX gbreve eogonek 10 KPX gbreve g -10 KPX gbreve gbreve -10 KPX gbreve gcommaaccent -10 KPX gcommaaccent e 10 KPX gcommaaccent eacute 10 KPX gcommaaccent ecaron 10 KPX gcommaaccent ecircumflex 10 KPX gcommaaccent edieresis 10 KPX gcommaaccent edotaccent 10 KPX gcommaaccent egrave 10 KPX gcommaaccent emacron 10 KPX gcommaaccent eogonek 10 KPX gcommaaccent g -10 KPX gcommaaccent gbreve -10 KPX gcommaaccent gcommaaccent -10 KPX h y -20 KPX h yacute -20 KPX h ydieresis -20 KPX k o -15 KPX k oacute -15 KPX k ocircumflex -15 KPX k odieresis -15 KPX k ograve -15 KPX k ohungarumlaut -15 KPX k omacron -15 KPX k oslash -15 KPX k otilde -15 KPX kcommaaccent o -15 KPX kcommaaccent oacute -15 KPX kcommaaccent ocircumflex -15 KPX kcommaaccent odieresis -15 KPX kcommaaccent ograve -15 KPX kcommaaccent ohungarumlaut -15 KPX kcommaaccent omacron -15 KPX kcommaaccent oslash -15 KPX kcommaaccent otilde -15 KPX l w -15 KPX l y -15 KPX l yacute -15 KPX l ydieresis -15 KPX lacute w -15 KPX lacute y -15 KPX lacute yacute -15 KPX lacute ydieresis -15 KPX lcommaaccent w -15 KPX lcommaaccent y -15 KPX lcommaaccent yacute -15 KPX lcommaaccent ydieresis -15 KPX lslash w -15 KPX lslash y -15 KPX lslash yacute -15 KPX lslash ydieresis -15 KPX m u -20 KPX m uacute -20 KPX m ucircumflex -20 KPX m udieresis -20 KPX m ugrave -20 KPX m uhungarumlaut -20 KPX m umacron -20 KPX m uogonek -20 KPX m uring -20 KPX m y -30 KPX m yacute -30 KPX m ydieresis -30 KPX n u -10 KPX n uacute -10 KPX n ucircumflex -10 KPX n udieresis -10 KPX n ugrave -10 KPX n uhungarumlaut -10 KPX n umacron -10 KPX n uogonek -10 KPX n uring -10 KPX n v -40 KPX n y -20 KPX n yacute -20 KPX n ydieresis -20 KPX nacute u -10 KPX nacute uacute -10 KPX nacute ucircumflex -10 KPX nacute udieresis -10 KPX nacute ugrave -10 KPX nacute uhungarumlaut -10 KPX nacute umacron -10 KPX nacute uogonek -10 KPX nacute uring -10 KPX nacute v -40 KPX nacute y -20 KPX nacute yacute -20 KPX nacute ydieresis -20 KPX ncaron u -10 KPX ncaron uacute -10 KPX ncaron ucircumflex -10 KPX ncaron udieresis -10 KPX ncaron ugrave -10 KPX ncaron uhungarumlaut -10 KPX ncaron umacron -10 KPX ncaron uogonek -10 KPX ncaron uring -10 KPX ncaron v -40 KPX ncaron y -20 KPX ncaron yacute -20 KPX ncaron ydieresis -20 KPX ncommaaccent u -10 KPX ncommaaccent uacute -10 KPX ncommaaccent ucircumflex -10 KPX ncommaaccent udieresis -10 KPX ncommaaccent ugrave -10 KPX ncommaaccent uhungarumlaut -10 KPX ncommaaccent umacron -10 KPX ncommaaccent uogonek -10 KPX ncommaaccent uring -10 KPX ncommaaccent v -40 KPX ncommaaccent y -20 KPX ncommaaccent yacute -20 KPX ncommaaccent ydieresis -20 KPX ntilde u -10 KPX ntilde uacute -10 KPX ntilde ucircumflex -10 KPX ntilde udieresis -10 KPX ntilde ugrave -10 KPX ntilde uhungarumlaut -10 KPX ntilde umacron -10 KPX ntilde uogonek -10 KPX ntilde uring -10 KPX ntilde v -40 KPX ntilde y -20 KPX ntilde yacute -20 KPX ntilde ydieresis -20 KPX o v -20 KPX o w -15 KPX o x -30 KPX o y -20 KPX o yacute -20 KPX o ydieresis -20 KPX oacute v -20 KPX oacute w -15 KPX oacute x -30 KPX oacute y -20 KPX oacute yacute -20 KPX oacute ydieresis -20 KPX ocircumflex v -20 KPX ocircumflex w -15 KPX ocircumflex x -30 KPX ocircumflex y -20 KPX ocircumflex yacute -20 KPX ocircumflex ydieresis -20 KPX odieresis v -20 KPX odieresis w -15 KPX odieresis x -30 KPX odieresis y -20 KPX odieresis yacute -20 KPX odieresis ydieresis -20 KPX ograve v -20 KPX ograve w -15 KPX ograve x -30 KPX ograve y -20 KPX ograve yacute -20 KPX ograve ydieresis -20 KPX ohungarumlaut v -20 KPX ohungarumlaut w -15 KPX ohungarumlaut x -30 KPX ohungarumlaut y -20 KPX ohungarumlaut yacute -20 KPX ohungarumlaut ydieresis -20 KPX omacron v -20 KPX omacron w -15 KPX omacron x -30 KPX omacron y -20 KPX omacron yacute -20 KPX omacron ydieresis -20 KPX oslash v -20 KPX oslash w -15 KPX oslash x -30 KPX oslash y -20 KPX oslash yacute -20 KPX oslash ydieresis -20 KPX otilde v -20 KPX otilde w -15 KPX otilde x -30 KPX otilde y -20 KPX otilde yacute -20 KPX otilde ydieresis -20 KPX p y -15 KPX p yacute -15 KPX p ydieresis -15 KPX period quotedblright -120 KPX period quoteright -120 KPX period space -40 KPX quotedblright space -80 KPX quoteleft quoteleft -46 KPX quoteright d -80 KPX quoteright dcroat -80 KPX quoteright l -20 KPX quoteright lacute -20 KPX quoteright lcommaaccent -20 KPX quoteright lslash -20 KPX quoteright quoteright -46 KPX quoteright r -40 KPX quoteright racute -40 KPX quoteright rcaron -40 KPX quoteright rcommaaccent -40 KPX quoteright s -60 KPX quoteright sacute -60 KPX quoteright scaron -60 KPX quoteright scedilla -60 KPX quoteright scommaaccent -60 KPX quoteright space -80 KPX quoteright v -20 KPX r c -20 KPX r cacute -20 KPX r ccaron -20 KPX r ccedilla -20 KPX r comma -60 KPX r d -20 KPX r dcroat -20 KPX r g -15 KPX r gbreve -15 KPX r gcommaaccent -15 KPX r hyphen -20 KPX r o -20 KPX r oacute -20 KPX r ocircumflex -20 KPX r odieresis -20 KPX r ograve -20 KPX r ohungarumlaut -20 KPX r omacron -20 KPX r oslash -20 KPX r otilde -20 KPX r period -60 KPX r q -20 KPX r s -15 KPX r sacute -15 KPX r scaron -15 KPX r scedilla -15 KPX r scommaaccent -15 KPX r t 20 KPX r tcommaaccent 20 KPX r v 10 KPX r y 10 KPX r yacute 10 KPX r ydieresis 10 KPX racute c -20 KPX racute cacute -20 KPX racute ccaron -20 KPX racute ccedilla -20 KPX racute comma -60 KPX racute d -20 KPX racute dcroat -20 KPX racute g -15 KPX racute gbreve -15 KPX racute gcommaaccent -15 KPX racute hyphen -20 KPX racute o -20 KPX racute oacute -20 KPX racute ocircumflex -20 KPX racute odieresis -20 KPX racute ograve -20 KPX racute ohungarumlaut -20 KPX racute omacron -20 KPX racute oslash -20 KPX racute otilde -20 KPX racute period -60 KPX racute q -20 KPX racute s -15 KPX racute sacute -15 KPX racute scaron -15 KPX racute scedilla -15 KPX racute scommaaccent -15 KPX racute t 20 KPX racute tcommaaccent 20 KPX racute v 10 KPX racute y 10 KPX racute yacute 10 KPX racute ydieresis 10 KPX rcaron c -20 KPX rcaron cacute -20 KPX rcaron ccaron -20 KPX rcaron ccedilla -20 KPX rcaron comma -60 KPX rcaron d -20 KPX rcaron dcroat -20 KPX rcaron g -15 KPX rcaron gbreve -15 KPX rcaron gcommaaccent -15 KPX rcaron hyphen -20 KPX rcaron o -20 KPX rcaron oacute -20 KPX rcaron ocircumflex -20 KPX rcaron odieresis -20 KPX rcaron ograve -20 KPX rcaron ohungarumlaut -20 KPX rcaron omacron -20 KPX rcaron oslash -20 KPX rcaron otilde -20 KPX rcaron period -60 KPX rcaron q -20 KPX rcaron s -15 KPX rcaron sacute -15 KPX rcaron scaron -15 KPX rcaron scedilla -15 KPX rcaron scommaaccent -15 KPX rcaron t 20 KPX rcaron tcommaaccent 20 KPX rcaron v 10 KPX rcaron y 10 KPX rcaron yacute 10 KPX rcaron ydieresis 10 KPX rcommaaccent c -20 KPX rcommaaccent cacute -20 KPX rcommaaccent ccaron -20 KPX rcommaaccent ccedilla -20 KPX rcommaaccent comma -60 KPX rcommaaccent d -20 KPX rcommaaccent dcroat -20 KPX rcommaaccent g -15 KPX rcommaaccent gbreve -15 KPX rcommaaccent gcommaaccent -15 KPX rcommaaccent hyphen -20 KPX rcommaaccent o -20 KPX rcommaaccent oacute -20 KPX rcommaaccent ocircumflex -20 KPX rcommaaccent odieresis -20 KPX rcommaaccent ograve -20 KPX rcommaaccent ohungarumlaut -20 KPX rcommaaccent omacron -20 KPX rcommaaccent oslash -20 KPX rcommaaccent otilde -20 KPX rcommaaccent period -60 KPX rcommaaccent q -20 KPX rcommaaccent s -15 KPX rcommaaccent sacute -15 KPX rcommaaccent scaron -15 KPX rcommaaccent scedilla -15 KPX rcommaaccent scommaaccent -15 KPX rcommaaccent t 20 KPX rcommaaccent tcommaaccent 20 KPX rcommaaccent v 10 KPX rcommaaccent y 10 KPX rcommaaccent yacute 10 KPX rcommaaccent ydieresis 10 KPX s w -15 KPX sacute w -15 KPX scaron w -15 KPX scedilla w -15 KPX scommaaccent w -15 KPX semicolon space -40 KPX space T -100 KPX space Tcaron -100 KPX space Tcommaaccent -100 KPX space V -80 KPX space W -80 KPX space Y -120 KPX space Yacute -120 KPX space Ydieresis -120 KPX space quotedblleft -80 KPX space quoteleft -60 KPX v a -20 KPX v aacute -20 KPX v abreve -20 KPX v acircumflex -20 KPX v adieresis -20 KPX v agrave -20 KPX v amacron -20 KPX v aogonek -20 KPX v aring -20 KPX v atilde -20 KPX v comma -80 KPX v o -30 KPX v oacute -30 KPX v ocircumflex -30 KPX v odieresis -30 KPX v ograve -30 KPX v ohungarumlaut -30 KPX v omacron -30 KPX v oslash -30 KPX v otilde -30 KPX v period -80 KPX w comma -40 KPX w o -20 KPX w oacute -20 KPX w ocircumflex -20 KPX w odieresis -20 KPX w ograve -20 KPX w ohungarumlaut -20 KPX w omacron -20 KPX w oslash -20 KPX w otilde -20 KPX w period -40 KPX x e -10 KPX x eacute -10 KPX x ecaron -10 KPX x ecircumflex -10 KPX x edieresis -10 KPX x edotaccent -10 KPX x egrave -10 KPX x emacron -10 KPX x eogonek -10 KPX y a -30 KPX y aacute -30 KPX y abreve -30 KPX y acircumflex -30 KPX y adieresis -30 KPX y agrave -30 KPX y amacron -30 KPX y aogonek -30 KPX y aring -30 KPX y atilde -30 KPX y comma -80 KPX y e -10 KPX y eacute -10 KPX y ecaron -10 KPX y ecircumflex -10 KPX y edieresis -10 KPX y edotaccent -10 KPX y egrave -10 KPX y emacron -10 KPX y eogonek -10 KPX y o -25 KPX y oacute -25 KPX y ocircumflex -25 KPX y odieresis -25 KPX y ograve -25 KPX y ohungarumlaut -25 KPX y omacron -25 KPX y oslash -25 KPX y otilde -25 KPX y period -80 KPX yacute a -30 KPX yacute aacute -30 KPX yacute abreve -30 KPX yacute acircumflex -30 KPX yacute adieresis -30 KPX yacute agrave -30 KPX yacute amacron -30 KPX yacute aogonek -30 KPX yacute aring -30 KPX yacute atilde -30 KPX yacute comma -80 KPX yacute e -10 KPX yacute eacute -10 KPX yacute ecaron -10 KPX yacute ecircumflex -10 KPX yacute edieresis -10 KPX yacute edotaccent -10 KPX yacute egrave -10 KPX yacute emacron -10 KPX yacute eogonek -10 KPX yacute o -25 KPX yacute oacute -25 KPX yacute ocircumflex -25 KPX yacute odieresis -25 KPX yacute ograve -25 KPX yacute ohungarumlaut -25 KPX yacute omacron -25 KPX yacute oslash -25 KPX yacute otilde -25 KPX yacute period -80 KPX ydieresis a -30 KPX ydieresis aacute -30 KPX ydieresis abreve -30 KPX ydieresis acircumflex -30 KPX ydieresis adieresis -30 KPX ydieresis agrave -30 KPX ydieresis amacron -30 KPX ydieresis aogonek -30 KPX ydieresis aring -30 KPX ydieresis atilde -30 KPX ydieresis comma -80 KPX ydieresis e -10 KPX ydieresis eacute -10 KPX ydieresis ecaron -10 KPX ydieresis ecircumflex -10 KPX ydieresis edieresis -10 KPX ydieresis edotaccent -10 KPX ydieresis egrave -10 KPX ydieresis emacron -10 KPX ydieresis eogonek -10 KPX ydieresis o -25 KPX ydieresis oacute -25 KPX ydieresis ocircumflex -25 KPX ydieresis odieresis -25 KPX ydieresis ograve -25 KPX ydieresis ohungarumlaut -25 KPX ydieresis omacron -25 KPX ydieresis oslash -25 KPX ydieresis otilde -25 KPX ydieresis period -80 KPX z e 10 KPX z eacute 10 KPX z ecaron 10 KPX z ecircumflex 10 KPX z edieresis 10 KPX z edotaccent 10 KPX z egrave 10 KPX z emacron 10 KPX z eogonek 10 KPX zacute e 10 KPX zacute eacute 10 KPX zacute ecaron 10 KPX zacute ecircumflex 10 KPX zacute edieresis 10 KPX zacute edotaccent 10 KPX zacute egrave 10 KPX zacute emacron 10 KPX zacute eogonek 10 KPX zcaron e 10 KPX zcaron eacute 10 KPX zcaron ecaron 10 KPX zcaron ecircumflex 10 KPX zcaron edieresis 10 KPX zcaron edotaccent 10 KPX zcaron egrave 10 KPX zcaron emacron 10 KPX zcaron eogonek 10 KPX zdotaccent e 10 KPX zdotaccent eacute 10 KPX zdotaccent ecaron 10 KPX zdotaccent ecircumflex 10 KPX zdotaccent edieresis 10 KPX zdotaccent edotaccent 10 KPX zdotaccent egrave 10 KPX zdotaccent emacron 10 KPX zdotaccent eogonek 10 EndKernPairs EndKernData EndFontMetrics a2ps-4.14/afm/pcrro.afm0000644000175000017500000003602110674334152014211 0ustar mhattamhattaStartFontMetrics 4.1 Comment Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Thu May 1 17:37:52 1997 Comment UniqueID 43051 Comment VMusage 16248 75829 FontName Courier-Oblique FullName Courier Oblique FamilyName Courier Weight Medium ItalicAngle -12 IsFixedPitch true FontBBox -27 -250 849 805 UnderlinePosition -100 UnderlineThickness 50 Version 003.000 Notice Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved. EncodingScheme AdobeStandardEncoding CapHeight 562 XHeight 426 Ascender 629 Descender -157 StdHW 51 StdVW 51 StartCharMetrics 314 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 373 537 478 640 ; C 200 ; WX 600 ; N dieresis ; B 272 537 579 640 ; 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 189 -172 377 4 ; 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 587 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 Idieresis ; B 96 0 623 753 ; C -1 ; WX 600 ; N eacute ; B 106 -15 612 672 ; C -1 ; WX 600 ; N abreve ; B 76 -15 576 609 ; C -1 ; WX 600 ; N uhungarumlaut ; B 101 -15 723 672 ; C -1 ; WX 600 ; N ecaron ; B 106 -15 614 669 ; C -1 ; WX 600 ; N Ydieresis ; B 133 0 695 753 ; C -1 ; WX 600 ; N divide ; B 136 48 573 467 ; C -1 ; WX 600 ; N Yacute ; B 133 0 695 805 ; C -1 ; WX 600 ; N Acircumflex ; B 3 0 607 787 ; C -1 ; WX 600 ; N aacute ; B 76 -15 612 672 ; C -1 ; WX 600 ; N Ucircumflex ; B 125 -18 702 787 ; C -1 ; WX 600 ; N yacute ; B -4 -157 683 672 ; C -1 ; WX 600 ; N scommaaccent ; B 78 -250 584 441 ; C -1 ; WX 600 ; N ecircumflex ; B 106 -15 598 654 ; C -1 ; WX 600 ; N Uring ; B 125 -18 702 760 ; C -1 ; WX 600 ; N Udieresis ; B 125 -18 702 753 ; C -1 ; WX 600 ; N aogonek ; B 76 -172 569 441 ; C -1 ; WX 600 ; N Uacute ; B 125 -18 702 805 ; C -1 ; WX 600 ; N uogonek ; B 101 -172 572 426 ; C -1 ; WX 600 ; N Edieresis ; B 53 0 660 753 ; C -1 ; WX 600 ; N Dcroat ; B 43 0 645 562 ; C -1 ; WX 600 ; N commaaccent ; B 145 -250 323 -58 ; C -1 ; WX 600 ; N copyright ; B 53 -18 667 580 ; C -1 ; WX 600 ; N Emacron ; B 53 0 660 698 ; C -1 ; WX 600 ; N ccaron ; B 106 -15 614 669 ; C -1 ; WX 600 ; N aring ; B 76 -15 569 627 ; C -1 ; WX 600 ; N Ncommaaccent ; B 7 -250 712 562 ; C -1 ; WX 600 ; N lacute ; B 95 0 640 805 ; C -1 ; WX 600 ; N agrave ; B 76 -15 569 672 ; C -1 ; WX 600 ; N Tcommaaccent ; B 108 -250 665 562 ; C -1 ; WX 600 ; N Cacute ; B 93 -18 655 805 ; C -1 ; WX 600 ; N atilde ; B 76 -15 629 606 ; C -1 ; WX 600 ; N Edotaccent ; B 53 0 660 753 ; C -1 ; WX 600 ; N scaron ; B 78 -15 614 669 ; C -1 ; WX 600 ; N scedilla ; B 78 -151 584 441 ; C -1 ; WX 600 ; N iacute ; B 95 0 612 672 ; C -1 ; WX 600 ; N lozenge ; B 94 0 519 706 ; C -1 ; WX 600 ; N Rcaron ; B 38 0 642 802 ; C -1 ; WX 600 ; N Gcommaaccent ; B 83 -250 645 580 ; C -1 ; WX 600 ; N ucircumflex ; B 101 -15 572 654 ; C -1 ; WX 600 ; N acircumflex ; B 76 -15 581 654 ; C -1 ; WX 600 ; N Amacron ; B 3 0 607 698 ; C -1 ; WX 600 ; N rcaron ; B 60 0 636 669 ; C -1 ; WX 600 ; N ccedilla ; B 106 -151 614 441 ; C -1 ; WX 600 ; N Zdotaccent ; B 86 0 610 753 ; C -1 ; WX 600 ; N Thorn ; B 79 0 606 562 ; C -1 ; WX 600 ; N Omacron ; B 94 -18 628 698 ; C -1 ; WX 600 ; N Racute ; B 38 0 670 805 ; C -1 ; WX 600 ; N Sacute ; B 76 -20 650 805 ; C -1 ; WX 600 ; N dcaron ; B 85 -15 849 629 ; C -1 ; WX 600 ; N Umacron ; B 125 -18 702 698 ; C -1 ; WX 600 ; N uring ; B 101 -15 572 627 ; C -1 ; WX 600 ; N threesuperior ; B 213 240 501 622 ; C -1 ; WX 600 ; N Ograve ; B 94 -18 625 805 ; C -1 ; WX 600 ; N Agrave ; B 3 0 607 805 ; C -1 ; WX 600 ; N Abreve ; B 3 0 607 732 ; C -1 ; WX 600 ; N multiply ; B 103 43 607 470 ; C -1 ; WX 600 ; N uacute ; B 101 -15 602 672 ; C -1 ; WX 600 ; N Tcaron ; B 108 0 665 802 ; C -1 ; WX 600 ; N partialdiff ; B 45 -38 546 710 ; C -1 ; WX 600 ; N ydieresis ; B -4 -157 683 620 ; C -1 ; WX 600 ; N Nacute ; B 7 -13 712 805 ; C -1 ; WX 600 ; N icircumflex ; B 95 0 551 654 ; C -1 ; WX 600 ; N Ecircumflex ; B 53 0 660 787 ; C -1 ; WX 600 ; N adieresis ; B 76 -15 575 620 ; C -1 ; WX 600 ; N edieresis ; B 106 -15 598 620 ; C -1 ; WX 600 ; N cacute ; B 106 -15 612 672 ; C -1 ; WX 600 ; N nacute ; B 26 0 602 672 ; C -1 ; WX 600 ; N umacron ; B 101 -15 600 565 ; C -1 ; WX 600 ; N Ncaron ; B 7 -13 712 802 ; C -1 ; WX 600 ; N Iacute ; B 96 0 640 805 ; C -1 ; WX 600 ; N plusminus ; B 96 44 594 558 ; C -1 ; WX 600 ; N brokenbar ; B 238 -175 469 675 ; C -1 ; WX 600 ; N registered ; B 53 -18 667 580 ; C -1 ; WX 600 ; N Gbreve ; B 83 -18 645 732 ; C -1 ; WX 600 ; N Idotaccent ; B 96 0 623 753 ; C -1 ; WX 600 ; N summation ; B 15 -10 670 706 ; C -1 ; WX 600 ; N Egrave ; B 53 0 660 805 ; C -1 ; WX 600 ; N racute ; B 60 0 636 672 ; C -1 ; WX 600 ; N omacron ; B 102 -15 600 565 ; C -1 ; WX 600 ; N Zacute ; B 86 0 670 805 ; C -1 ; WX 600 ; N Zcaron ; B 86 0 642 802 ; C -1 ; WX 600 ; N greaterequal ; B 98 0 594 710 ; C -1 ; WX 600 ; N Eth ; B 43 0 645 562 ; C -1 ; WX 600 ; N Ccedilla ; B 93 -151 658 580 ; C -1 ; WX 600 ; N lcommaaccent ; B 95 -250 515 629 ; C -1 ; WX 600 ; N tcaron ; B 167 -15 587 717 ; C -1 ; WX 600 ; N eogonek ; B 106 -172 598 441 ; C -1 ; WX 600 ; N Uogonek ; B 124 -172 702 562 ; C -1 ; WX 600 ; N Aacute ; B 3 0 660 805 ; C -1 ; WX 600 ; N Adieresis ; B 3 0 607 753 ; C -1 ; WX 600 ; N egrave ; B 106 -15 598 672 ; C -1 ; WX 600 ; N zacute ; B 99 0 612 672 ; C -1 ; WX 600 ; N iogonek ; B 95 -172 515 657 ; C -1 ; WX 600 ; N Oacute ; B 94 -18 640 805 ; C -1 ; WX 600 ; N oacute ; B 102 -15 612 672 ; C -1 ; WX 600 ; N amacron ; B 76 -15 600 565 ; C -1 ; WX 600 ; N sacute ; B 78 -15 612 672 ; C -1 ; WX 600 ; N idieresis ; B 95 0 545 620 ; C -1 ; WX 600 ; N Ocircumflex ; B 94 -18 625 787 ; C -1 ; WX 600 ; N Ugrave ; B 125 -18 702 805 ; C -1 ; WX 600 ; N Delta ; B 6 0 598 688 ; C -1 ; WX 600 ; N thorn ; B -24 -157 605 629 ; C -1 ; WX 600 ; N twosuperior ; B 230 249 535 622 ; C -1 ; WX 600 ; N Odieresis ; B 94 -18 625 753 ; C -1 ; WX 600 ; N mu ; B 72 -157 572 426 ; C -1 ; WX 600 ; N igrave ; B 95 0 515 672 ; C -1 ; WX 600 ; N ohungarumlaut ; B 102 -15 723 672 ; C -1 ; WX 600 ; N Eogonek ; B 53 -172 660 562 ; C -1 ; WX 600 ; N dcroat ; B 85 -15 704 629 ; C -1 ; WX 600 ; N threequarters ; B 73 -56 659 666 ; C -1 ; WX 600 ; N Scedilla ; B 76 -151 650 580 ; C -1 ; WX 600 ; N lcaron ; B 95 0 667 629 ; C -1 ; WX 600 ; N Kcommaaccent ; B 38 -250 671 562 ; C -1 ; WX 600 ; N Lacute ; B 47 0 607 805 ; C -1 ; WX 600 ; N trademark ; B 75 263 742 562 ; C -1 ; WX 600 ; N edotaccent ; B 106 -15 598 620 ; C -1 ; WX 600 ; N Igrave ; B 96 0 623 805 ; C -1 ; WX 600 ; N Imacron ; B 96 0 628 698 ; C -1 ; WX 600 ; N Lcaron ; B 47 0 632 562 ; C -1 ; WX 600 ; N onehalf ; B 65 -57 669 665 ; C -1 ; WX 600 ; N lessequal ; B 98 0 645 710 ; C -1 ; WX 600 ; N ocircumflex ; B 102 -15 588 654 ; C -1 ; WX 600 ; N ntilde ; B 26 0 629 606 ; C -1 ; WX 600 ; N Uhungarumlaut ; B 125 -18 761 805 ; C -1 ; WX 600 ; N Eacute ; B 53 0 670 805 ; C -1 ; WX 600 ; N emacron ; B 106 -15 600 565 ; C -1 ; WX 600 ; N gbreve ; B 61 -157 657 609 ; C -1 ; WX 600 ; N onequarter ; B 65 -57 674 665 ; C -1 ; WX 600 ; N Scaron ; B 76 -20 672 802 ; C -1 ; WX 600 ; N Scommaaccent ; B 76 -250 650 580 ; C -1 ; WX 600 ; N Ohungarumlaut ; B 94 -18 751 805 ; C -1 ; WX 600 ; N degree ; B 214 269 576 622 ; C -1 ; WX 600 ; N ograve ; B 102 -15 588 672 ; C -1 ; WX 600 ; N Ccaron ; B 93 -18 672 802 ; C -1 ; WX 600 ; N ugrave ; B 101 -15 572 672 ; C -1 ; WX 600 ; N radical ; B 85 -15 765 792 ; C -1 ; WX 600 ; N Dcaron ; B 43 0 645 802 ; C -1 ; WX 600 ; N rcommaaccent ; B 60 -250 636 441 ; C -1 ; WX 600 ; N Ntilde ; B 7 -13 712 729 ; C -1 ; WX 600 ; N otilde ; B 102 -15 629 606 ; C -1 ; WX 600 ; N Rcommaaccent ; B 38 -250 598 562 ; C -1 ; WX 600 ; N Lcommaaccent ; B 47 -250 607 562 ; C -1 ; WX 600 ; N Atilde ; B 3 0 655 729 ; C -1 ; WX 600 ; N Aogonek ; B 3 -172 607 562 ; C -1 ; WX 600 ; N Aring ; B 3 0 607 750 ; C -1 ; WX 600 ; N Otilde ; B 94 -18 655 729 ; C -1 ; WX 600 ; N zdotaccent ; B 99 0 593 620 ; C -1 ; WX 600 ; N Ecaron ; B 53 0 660 802 ; C -1 ; WX 600 ; N Iogonek ; B 96 -172 623 562 ; C -1 ; WX 600 ; N kcommaaccent ; B 58 -250 633 629 ; C -1 ; WX 600 ; N minus ; B 129 232 580 283 ; C -1 ; WX 600 ; N Icircumflex ; B 96 0 623 787 ; C -1 ; WX 600 ; N ncaron ; B 26 0 614 669 ; C -1 ; WX 600 ; N tcommaaccent ; B 165 -250 561 561 ; C -1 ; WX 600 ; N logicalnot ; B 155 108 591 369 ; C -1 ; WX 600 ; N odieresis ; B 102 -15 588 620 ; C -1 ; WX 600 ; N udieresis ; B 101 -15 575 620 ; C -1 ; WX 600 ; N notequal ; B 43 -16 621 529 ; C -1 ; WX 600 ; N gcommaaccent ; B 61 -157 657 708 ; C -1 ; WX 600 ; N eth ; B 102 -15 639 629 ; C -1 ; WX 600 ; N zcaron ; B 99 0 624 669 ; C -1 ; WX 600 ; N ncommaaccent ; B 26 -250 585 441 ; C -1 ; WX 600 ; N onesuperior ; B 231 249 491 622 ; C -1 ; WX 600 ; N imacron ; B 95 0 543 565 ; EndCharMetrics EndFontMetrics a2ps-4.14/afm/pzcmi.afm0000644000175000017500000012126110674334154014211 0ustar mhattamhattaStartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Thu May 1 15:04:18 1997 Comment UniqueID 43081 Comment VMusage 45650 56675 FontName ZapfChancery-MediumItalic FullName ITC Zapf Chancery Medium Italic FamilyName ITC Zapf Chancery Weight Medium ItalicAngle -14 IsFixedPitch false FontBBox -181 -314 1065 831 UnderlinePosition -100 UnderlineThickness 50 Version 002.000 Notice Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.ITC Zapf Chancery is a registered trademark of International Typeface Corporation. EncodingScheme AdobeStandardEncoding CapHeight 708 XHeight 438 Ascender 714 Descender -314 StdHW 34 StdVW 70 StartCharMetrics 314 C 32 ; WX 220 ; N space ; B 0 0 0 0 ; C 33 ; WX 280 ; N exclam ; B 119 -14 353 610 ; C 34 ; WX 220 ; N quotedbl ; B 120 343 333 610 ; C 35 ; WX 440 ; N numbersign ; B 83 0 521 594 ; C 36 ; WX 440 ; N dollar ; B 60 -144 508 709 ; C 37 ; WX 680 ; N percent ; B 132 -160 710 700 ; C 38 ; WX 780 ; N ampersand ; B 126 -16 915 610 ; C 39 ; WX 240 ; N quoteright ; B 168 343 338 610 ; C 40 ; WX 260 ; N parenleft ; B 96 -216 411 664 ; C 41 ; WX 220 ; N parenright ; B -13 -216 302 664 ; C 42 ; WX 420 ; N asterisk ; B 139 263 479 610 ; C 43 ; WX 520 ; N plus ; B 117 0 543 426 ; C 44 ; WX 220 ; N comma ; B 25 -140 213 148 ; C 45 ; WX 280 ; N hyphen ; B 69 190 334 248 ; C 46 ; WX 220 ; N period ; B 102 -14 228 128 ; C 47 ; WX 340 ; N slash ; B 74 -16 458 610 ; C 48 ; WX 440 ; N zero ; B 79 -16 538 610 ; C 49 ; WX 440 ; N one ; B 41 0 428 610 ; C 50 ; WX 440 ; N two ; B 17 -16 485 610 ; C 51 ; WX 440 ; N three ; B 1 -16 485 610 ; C 52 ; WX 440 ; N four ; B 77 -35 499 610 ; C 53 ; WX 440 ; N five ; B 60 -16 595 679 ; C 54 ; WX 440 ; N six ; B 90 -16 556 610 ; C 55 ; WX 440 ; N seven ; B 157 -33 561 645 ; C 56 ; WX 440 ; N eight ; B 65 -16 529 610 ; C 57 ; WX 440 ; N nine ; B 32 -16 517 610 ; C 58 ; WX 260 ; N colon ; B 98 -14 296 438 ; C 59 ; WX 240 ; N semicolon ; B 29 -140 299 438 ; C 60 ; WX 520 ; N less ; B 139 0 527 468 ; C 61 ; WX 520 ; N equal ; B 117 86 543 340 ; C 62 ; WX 520 ; N greater ; B 139 0 527 468 ; C 63 ; WX 380 ; N question ; B 150 -14 455 610 ; C 64 ; WX 700 ; N at ; B 127 -16 753 610 ; C 65 ; WX 620 ; N A ; B 13 -16 697 632 ; C 66 ; WX 600 ; N B ; B 85 -6 674 640 ; C 67 ; WX 520 ; N C ; B 93 -16 631 610 ; C 68 ; WX 700 ; N D ; B 86 -6 768 640 ; C 69 ; WX 620 ; N E ; B 91 -12 709 618 ; C 70 ; WX 580 ; N F ; B 120 -118 793 629 ; C 71 ; WX 620 ; N G ; B 148 -242 709 610 ; C 72 ; WX 680 ; N H ; B 18 -16 878 708 ; C 73 ; WX 380 ; N I ; B 99 0 504 594 ; C 74 ; WX 400 ; N J ; B -14 -147 538 594 ; C 75 ; WX 660 ; N K ; B 53 -153 844 610 ; C 76 ; WX 580 ; N L ; B 53 -16 657 610 ; C 77 ; WX 840 ; N M ; B 58 -16 1020 722 ; C 78 ; WX 700 ; N N ; B 85 -168 915 708 ; C 79 ; WX 600 ; N O ; B 94 -16 660 610 ; C 80 ; WX 540 ; N P ; B 42 0 658 628 ; C 81 ; WX 600 ; N Q ; B 84 -177 775 610 ; C 82 ; WX 600 ; N R ; B 58 -168 805 640 ; C 83 ; WX 460 ; N S ; B 45 -81 558 610 ; C 84 ; WX 500 ; N T ; B 63 0 744 667 ; C 85 ; WX 740 ; N U ; B 126 -16 792 617 ; C 86 ; WX 640 ; N V ; B 124 -16 810 714 ; C 87 ; WX 880 ; N W ; B 94 -16 1046 723 ; C 88 ; WX 560 ; N X ; B -30 -16 699 610 ; C 89 ; WX 560 ; N Y ; B 41 -168 774 647 ; C 90 ; WX 620 ; N Z ; B 42 -19 669 624 ; C 91 ; WX 240 ; N bracketleft ; B -13 -207 405 655 ; C 92 ; WX 480 ; N backslash ; B 140 -16 524 610 ; C 93 ; WX 320 ; N bracketright ; B -27 -207 391 655 ; C 94 ; WX 520 ; N asciicircum ; B 132 239 532 594 ; C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; C 96 ; WX 240 ; N quoteleft ; B 169 343 339 610 ; C 97 ; WX 420 ; N a ; B 92 -15 485 438 ; C 98 ; WX 420 ; N b ; B 82 -23 492 714 ; C 99 ; WX 340 ; N c ; B 87 -14 406 438 ; C 100 ; WX 440 ; N d ; B 102 -14 651 714 ; C 101 ; WX 340 ; N e ; B 87 -14 403 438 ; C 102 ; WX 320 ; N f ; B -119 -314 547 714 ; L i fi ; L l fl ; C 103 ; WX 400 ; N g ; B -108 -314 503 438 ; C 104 ; WX 440 ; N h ; B 55 -14 524 714 ; C 105 ; WX 240 ; N i ; B 100 -14 341 635 ; C 106 ; WX 220 ; N j ; B -112 -314 332 635 ; C 107 ; WX 440 ; N k ; B 87 -184 628 714 ; C 108 ; WX 240 ; N l ; B 102 -14 480 714 ; C 109 ; WX 620 ; N m ; B 86 -14 704 438 ; C 110 ; WX 460 ; N n ; B 101 -14 544 438 ; C 111 ; WX 400 ; N o ; B 87 -14 449 438 ; C 112 ; WX 440 ; N p ; B -23 -314 484 432 ; C 113 ; WX 400 ; N q ; B 87 -300 490 510 ; C 114 ; WX 300 ; N r ; B 101 -14 424 438 ; C 115 ; WX 320 ; N s ; B 46 -14 403 438 ; C 116 ; WX 320 ; N t ; B 106 -14 426 539 ; C 117 ; WX 460 ; N u ; B 102 -14 528 438 ; C 118 ; WX 440 ; N v ; B 87 -14 533 488 ; C 119 ; WX 680 ; N w ; B 87 -14 782 488 ; C 120 ; WX 420 ; N x ; B 70 -195 589 438 ; C 121 ; WX 400 ; N y ; B -24 -314 483 438 ; C 122 ; WX 440 ; N z ; B 26 -14 508 445 ; C 123 ; WX 240 ; N braceleft ; B 55 -207 383 655 ; C 124 ; WX 520 ; N bar ; B 320 -250 378 750 ; C 125 ; WX 240 ; N braceright ; B -10 -207 318 655 ; C 126 ; WX 520 ; N asciitilde ; B 123 186 539 320 ; C 161 ; WX 280 ; N exclamdown ; B 72 -186 306 438 ; C 162 ; WX 440 ; N cent ; B 122 -134 476 543 ; C 163 ; WX 440 ; N sterling ; B -16 -52 506 610 ; C 164 ; WX 60 ; N fraction ; B -181 -16 320 610 ; C 165 ; WX 440 ; N yen ; B -1 -168 613 647 ; C 166 ; WX 440 ; N florin ; B -64 -314 582 610 ; C 167 ; WX 420 ; N section ; B 53 -215 514 610 ; C 168 ; WX 440 ; N currency ; B 50 85 474 509 ; C 169 ; WX 160 ; N quotesingle ; B 145 343 215 610 ; C 170 ; WX 340 ; N quotedblleft ; B 169 343 464 610 ; C 171 ; WX 340 ; N guillemotleft ; B 98 24 356 414 ; C 172 ; WX 240 ; N guilsinglleft ; B 98 24 258 414 ; C 173 ; WX 260 ; N guilsinglright ; B 106 24 266 414 ; C 174 ; WX 520 ; N fi ; B -124 -314 605 714 ; C 175 ; WX 520 ; N fl ; B -124 -314 670 714 ; C 177 ; WX 500 ; N endash ; B 51 199 565 239 ; C 178 ; WX 460 ; N dagger ; B 138 -37 568 610 ; C 179 ; WX 480 ; N daggerdbl ; B 138 -59 533 610 ; C 180 ; WX 220 ; N periodcentered ; B 139 208 241 310 ; C 182 ; WX 500 ; N paragraph ; B 105 -199 638 594 ; C 183 ; WX 600 ; N bullet ; B 228 149 524 445 ; C 184 ; WX 180 ; N quotesinglbase ; B 21 -121 191 146 ; C 185 ; WX 280 ; N quotedblbase ; B -14 -121 281 146 ; C 186 ; WX 360 ; N quotedblright ; B 158 343 453 610 ; C 187 ; WX 380 ; N guillemotright ; B 117 24 375 414 ; C 188 ; WX 1000 ; N ellipsis ; B 124 -14 916 128 ; C 189 ; WX 960 ; N perthousand ; B 112 -160 1005 700 ; C 191 ; WX 400 ; N questiondown ; B 82 -186 387 438 ; C 193 ; WX 220 ; N grave ; B 193 492 339 659 ; C 194 ; WX 300 ; N acute ; B 265 492 422 659 ; C 195 ; WX 340 ; N circumflex ; B 223 482 443 649 ; C 196 ; WX 440 ; N tilde ; B 243 543 522 619 ; C 197 ; WX 440 ; N macron ; B 292 544 537 584 ; C 198 ; WX 440 ; N breve ; B 253 522 501 631 ; C 199 ; WX 220 ; N dotaccent ; B 236 515 342 635 ; C 200 ; WX 360 ; N dieresis ; B 233 515 503 635 ; C 202 ; WX 300 ; N ring ; B 240 483 416 659 ; C 203 ; WX 300 ; N cedilla ; B 12 -191 184 6 ; C 205 ; WX 400 ; N hungarumlaut ; B 208 492 495 659 ; C 206 ; WX 280 ; N ogonek ; B 114 -191 320 40 ; C 207 ; WX 340 ; N caron ; B 254 492 474 659 ; C 208 ; WX 1000 ; N emdash ; B 51 199 1065 239 ; C 225 ; WX 740 ; N AE ; B -21 -16 799 594 ; C 227 ; WX 260 ; N ordfeminine ; B 111 338 386 610 ; C 232 ; WX 580 ; N Lslash ; B 49 -16 657 610 ; C 233 ; WX 660 ; N Oslash ; B 83 -78 751 672 ; C 234 ; WX 820 ; N OE ; B 63 -16 909 610 ; C 235 ; WX 260 ; N ordmasculine ; B 128 339 373 610 ; C 241 ; WX 540 ; N ae ; B 67 -14 624 468 ; C 245 ; WX 240 ; N dotlessi ; B 100 -14 306 438 ; C 248 ; WX 300 ; N lslash ; B 74 -14 480 714 ; C 249 ; WX 440 ; N oslash ; B 46 -64 540 488 ; C 250 ; WX 560 ; N oe ; B 78 -14 628 438 ; C 251 ; WX 420 ; N germandbls ; B -127 -314 542 714 ; C -1 ; WX 380 ; N Idieresis ; B 99 0 553 762 ; C -1 ; WX 340 ; N eacute ; B 87 -14 462 659 ; C -1 ; WX 420 ; N abreve ; B 92 -15 501 631 ; C -1 ; WX 460 ; N uhungarumlaut ; B 102 -14 565 659 ; C -1 ; WX 340 ; N ecaron ; B 87 -14 474 659 ; C -1 ; WX 560 ; N Ydieresis ; B 41 -168 774 762 ; C -1 ; WX 520 ; N divide ; B 117 -14 543 440 ; C -1 ; WX 560 ; N Yacute ; B 41 -168 774 821 ; C -1 ; WX 620 ; N Acircumflex ; B 13 -16 697 821 ; C -1 ; WX 420 ; N aacute ; B 92 -15 492 659 ; C -1 ; WX 740 ; N Ucircumflex ; B 126 -16 792 821 ; C -1 ; WX 400 ; N yacute ; B -24 -314 483 659 ; C -1 ; WX 320 ; N scommaaccent ; B 42 -304 403 438 ; C -1 ; WX 340 ; N ecircumflex ; B 87 -14 433 649 ; C -1 ; WX 740 ; N Uring ; B 126 -16 792 831 ; C -1 ; WX 740 ; N Udieresis ; B 126 -16 792 762 ; C -1 ; WX 420 ; N aogonek ; B 92 -191 485 438 ; C -1 ; WX 740 ; N Uacute ; B 126 -16 792 821 ; C -1 ; WX 460 ; N uogonek ; B 102 -178 528 438 ; C -1 ; WX 620 ; N Edieresis ; B 91 -12 709 762 ; C -1 ; WX 700 ; N Dcroat ; B 86 -6 768 640 ; C -1 ; WX 180 ; N commaaccent ; B 52 -304 201 -72 ; C -1 ; WX 740 ; N copyright ; B 137 -16 763 610 ; C -1 ; WX 620 ; N Emacron ; B 91 -12 709 746 ; C -1 ; WX 340 ; N ccaron ; B 87 -14 474 659 ; C -1 ; WX 420 ; N aring ; B 92 -15 485 659 ; C -1 ; WX 700 ; N Ncommaaccent ; B 85 -274 915 708 ; C -1 ; WX 240 ; N lacute ; B 102 -14 522 831 ; C -1 ; WX 420 ; N agrave ; B 92 -15 485 659 ; C -1 ; WX 500 ; N Tcommaaccent ; B 63 -304 744 667 ; C -1 ; WX 520 ; N Cacute ; B 93 -16 631 821 ; C -1 ; WX 420 ; N atilde ; B 92 -15 522 619 ; C -1 ; WX 620 ; N Edotaccent ; B 91 -12 709 762 ; C -1 ; WX 320 ; N scaron ; B 46 -14 464 659 ; C -1 ; WX 320 ; N scedilla ; B 42 -191 403 438 ; C -1 ; WX 240 ; N iacute ; B 100 -14 392 659 ; C -1 ; WX 471 ; N lozenge ; B 15 0 457 719 ; C -1 ; WX 600 ; N Rcaron ; B 58 -168 805 821 ; C -1 ; WX 620 ; N Gcommaaccent ; B 148 -304 709 610 ; C -1 ; WX 460 ; N ucircumflex ; B 102 -14 528 649 ; C -1 ; WX 420 ; N acircumflex ; B 92 -15 485 649 ; C -1 ; WX 620 ; N Amacron ; B 13 -16 717 746 ; C -1 ; WX 300 ; N rcaron ; B 101 -14 444 659 ; C -1 ; WX 340 ; N ccedilla ; B 62 -191 406 438 ; C -1 ; WX 620 ; N Zdotaccent ; B 42 -19 669 762 ; C -1 ; WX 540 ; N Thorn ; B 52 0 647 623 ; C -1 ; WX 600 ; N Omacron ; B 94 -16 660 746 ; C -1 ; WX 600 ; N Racute ; B 58 -168 805 821 ; C -1 ; WX 460 ; N Sacute ; B 45 -81 558 821 ; C -1 ; WX 490 ; N dcaron ; B 102 -14 651 714 ; C -1 ; WX 740 ; N Umacron ; B 126 -16 792 746 ; C -1 ; WX 460 ; N uring ; B 102 -14 528 659 ; C -1 ; WX 264 ; N threesuperior ; B 59 234 348 610 ; C -1 ; WX 600 ; N Ograve ; B 94 -16 660 821 ; C -1 ; WX 620 ; N Agrave ; B 13 -16 697 821 ; C -1 ; WX 620 ; N Abreve ; B 13 -16 761 793 ; C -1 ; WX 520 ; N multiply ; B 133 16 527 410 ; C -1 ; WX 460 ; N uacute ; B 102 -14 528 659 ; C -1 ; WX 500 ; N Tcaron ; B 63 0 744 821 ; C -1 ; WX 476 ; N partialdiff ; B 17 -38 459 710 ; C -1 ; WX 400 ; N ydieresis ; B -24 -314 503 610 ; C -1 ; WX 700 ; N Nacute ; B 85 -168 915 821 ; C -1 ; WX 240 ; N icircumflex ; B 100 -14 363 649 ; C -1 ; WX 620 ; N Ecircumflex ; B 91 -12 709 821 ; C -1 ; WX 420 ; N adieresis ; B 92 -15 513 610 ; C -1 ; WX 340 ; N edieresis ; B 87 -14 483 610 ; C -1 ; WX 340 ; N cacute ; B 87 -14 452 659 ; C -1 ; WX 460 ; N nacute ; B 101 -14 544 659 ; C -1 ; WX 460 ; N umacron ; B 102 -14 528 584 ; C -1 ; WX 700 ; N Ncaron ; B 85 -168 915 821 ; C -1 ; WX 380 ; N Iacute ; B 99 0 532 821 ; C -1 ; WX 520 ; N plusminus ; B 117 0 543 436 ; C -1 ; WX 520 ; N brokenbar ; B 320 -175 378 675 ; C -1 ; WX 740 ; N registered ; B 137 -16 763 610 ; C -1 ; WX 620 ; N Gbreve ; B 148 -242 709 793 ; C -1 ; WX 380 ; N Idotaccent ; B 99 0 504 762 ; C -1 ; WX 600 ; N summation ; B 15 -10 585 706 ; C -1 ; WX 620 ; N Egrave ; B 91 -12 709 821 ; C -1 ; WX 300 ; N racute ; B 101 -14 442 659 ; C -1 ; WX 400 ; N omacron ; B 87 -14 507 584 ; C -1 ; WX 620 ; N Zacute ; B 42 -19 669 821 ; C -1 ; WX 620 ; N Zcaron ; B 42 -19 669 821 ; C -1 ; WX 549 ; N greaterequal ; B 26 0 523 658 ; C -1 ; WX 700 ; N Eth ; B 86 -6 768 640 ; C -1 ; WX 520 ; N Ccedilla ; B 93 -191 631 610 ; C -1 ; WX 240 ; N lcommaaccent ; B 42 -304 480 714 ; C -1 ; WX 320 ; N tcaron ; B 106 -14 501 678 ; C -1 ; WX 340 ; N eogonek ; B 87 -191 403 438 ; C -1 ; WX 740 ; N Uogonek ; B 126 -191 792 617 ; C -1 ; WX 620 ; N Aacute ; B 13 -16 702 821 ; C -1 ; WX 620 ; N Adieresis ; B 13 -16 743 762 ; C -1 ; WX 340 ; N egrave ; B 87 -14 403 659 ; C -1 ; WX 440 ; N zacute ; B 26 -14 512 659 ; C -1 ; WX 240 ; N iogonek ; B 94 -191 341 635 ; C -1 ; WX 600 ; N Oacute ; B 94 -16 660 821 ; C -1 ; WX 400 ; N oacute ; B 87 -14 482 659 ; C -1 ; WX 420 ; N amacron ; B 92 -15 507 584 ; C -1 ; WX 320 ; N sacute ; B 46 -14 442 659 ; C -1 ; WX 240 ; N idieresis ; B 100 -14 403 610 ; C -1 ; WX 600 ; N Ocircumflex ; B 94 -16 660 821 ; C -1 ; WX 740 ; N Ugrave ; B 126 -16 792 821 ; C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ; C -1 ; WX 440 ; N thorn ; B -38 -314 505 714 ; C -1 ; WX 264 ; N twosuperior ; B 72 234 354 610 ; C -1 ; WX 600 ; N Odieresis ; B 94 -16 660 762 ; C -1 ; WX 460 ; N mu ; B 7 -314 523 438 ; C -1 ; WX 240 ; N igrave ; B 100 -14 306 659 ; C -1 ; WX 400 ; N ohungarumlaut ; B 87 -14 535 659 ; C -1 ; WX 620 ; N Eogonek ; B 91 -191 709 618 ; C -1 ; WX 440 ; N dcroat ; B 102 -14 651 714 ; C -1 ; WX 660 ; N threequarters ; B 39 -16 706 610 ; C -1 ; WX 460 ; N Scedilla ; B 45 -251 558 610 ; C -1 ; WX 280 ; N lcaron ; B 102 -14 480 714 ; C -1 ; WX 660 ; N Kcommaaccent ; B 53 -274 844 610 ; C -1 ; WX 580 ; N Lacute ; B 53 -16 657 821 ; C -1 ; WX 1000 ; N trademark ; B 127 187 1046 594 ; C -1 ; WX 340 ; N edotaccent ; B 87 -14 403 610 ; C -1 ; WX 380 ; N Igrave ; B 99 0 504 821 ; C -1 ; WX 380 ; N Imacron ; B 99 0 547 746 ; C -1 ; WX 580 ; N Lcaron ; B 53 -16 721 610 ; C -1 ; WX 660 ; N onehalf ; B 56 -16 702 610 ; C -1 ; WX 549 ; N lessequal ; B 26 0 523 658 ; C -1 ; WX 400 ; N ocircumflex ; B 87 -14 453 649 ; C -1 ; WX 460 ; N ntilde ; B 101 -14 544 619 ; C -1 ; WX 740 ; N Uhungarumlaut ; B 126 -16 792 821 ; C -1 ; WX 620 ; N Eacute ; B 91 -12 709 821 ; C -1 ; WX 340 ; N emacron ; B 87 -14 477 584 ; C -1 ; WX 400 ; N gbreve ; B -108 -314 503 631 ; C -1 ; WX 660 ; N onequarter ; B 56 -16 702 610 ; C -1 ; WX 460 ; N Scaron ; B 45 -81 594 821 ; C -1 ; WX 460 ; N Scommaaccent ; B 45 -314 558 610 ; C -1 ; WX 600 ; N Ohungarumlaut ; B 94 -16 660 821 ; C -1 ; WX 400 ; N degree ; B 171 324 457 610 ; C -1 ; WX 400 ; N ograve ; B 87 -14 449 659 ; C -1 ; WX 520 ; N Ccaron ; B 93 -16 631 821 ; C -1 ; WX 460 ; N ugrave ; B 102 -14 528 659 ; C -1 ; WX 453 ; N radical ; B 2 -60 452 768 ; C -1 ; WX 700 ; N Dcaron ; B 86 -6 768 821 ; C -1 ; WX 300 ; N rcommaaccent ; B 32 -304 424 438 ; C -1 ; WX 700 ; N Ntilde ; B 85 -168 915 781 ; C -1 ; WX 400 ; N otilde ; B 87 -14 502 619 ; C -1 ; WX 600 ; N Rcommaaccent ; B 58 -304 805 640 ; C -1 ; WX 580 ; N Lcommaaccent ; B 53 -304 657 610 ; C -1 ; WX 620 ; N Atilde ; B 13 -16 702 781 ; C -1 ; WX 620 ; N Aogonek ; B 13 -191 697 632 ; C -1 ; WX 620 ; N Aring ; B 13 -16 697 831 ; C -1 ; WX 600 ; N Otilde ; B 94 -16 660 781 ; C -1 ; WX 440 ; N zdotaccent ; B 26 -14 508 610 ; C -1 ; WX 620 ; N Ecaron ; B 91 -12 709 821 ; C -1 ; WX 380 ; N Iogonek ; B 99 -191 504 594 ; C -1 ; WX 440 ; N kcommaaccent ; B 87 -304 628 714 ; C -1 ; WX 520 ; N minus ; B 117 184 543 242 ; C -1 ; WX 380 ; N Icircumflex ; B 99 0 504 821 ; C -1 ; WX 460 ; N ncaron ; B 101 -14 544 659 ; C -1 ; WX 320 ; N tcommaaccent ; B 72 -304 426 539 ; C -1 ; WX 520 ; N logicalnot ; B 117 86 543 340 ; C -1 ; WX 400 ; N odieresis ; B 87 -14 513 610 ; C -1 ; WX 460 ; N udieresis ; B 102 -14 528 610 ; C -1 ; WX 549 ; N notequal ; B 12 -29 537 541 ; C -1 ; WX 400 ; N gcommaaccent ; B -108 -314 506 714 ; C -1 ; WX 400 ; N eth ; B 87 -14 522 714 ; C -1 ; WX 440 ; N zcaron ; B 26 -14 514 659 ; C -1 ; WX 460 ; N ncommaaccent ; B 101 -304 544 438 ; C -1 ; WX 264 ; N onesuperior ; B 83 244 311 610 ; C -1 ; WX 240 ; N imacron ; B 100 -14 330 584 ; EndCharMetrics StartKernData StartKernPairs 1207 KPX A C 20 KPX A Cacute 20 KPX A Ccaron 20 KPX A Ccedilla 20 KPX A G -30 KPX A Gbreve -30 KPX A Gcommaaccent -30 KPX A O 10 KPX A Oacute 10 KPX A Ocircumflex 10 KPX A Odieresis 10 KPX A Ograve 10 KPX A Ohungarumlaut 10 KPX A Omacron 10 KPX A Oslash 10 KPX A Otilde 10 KPX A Q 10 KPX A T 10 KPX A Tcaron 10 KPX A Tcommaaccent 10 KPX A U -10 KPX A Uacute -10 KPX A Ucircumflex -10 KPX A Udieresis -10 KPX A Ugrave -10 KPX A Uhungarumlaut -10 KPX A Umacron -10 KPX A Uogonek -10 KPX A Uring -10 KPX A quotedblright -40 KPX A quoteright -40 KPX Aacute C 20 KPX Aacute Cacute 20 KPX Aacute Ccaron 20 KPX Aacute Ccedilla 20 KPX Aacute G -30 KPX Aacute Gbreve -30 KPX Aacute Gcommaaccent -30 KPX Aacute O 10 KPX Aacute Oacute 10 KPX Aacute Ocircumflex 10 KPX Aacute Odieresis 10 KPX Aacute Ograve 10 KPX Aacute Ohungarumlaut 10 KPX Aacute Omacron 10 KPX Aacute Oslash 10 KPX Aacute Otilde 10 KPX Aacute Q 10 KPX Aacute T 10 KPX Aacute Tcaron 10 KPX Aacute Tcommaaccent 10 KPX Aacute U -10 KPX Aacute Uacute -10 KPX Aacute Ucircumflex -10 KPX Aacute Udieresis -10 KPX Aacute Ugrave -10 KPX Aacute Uhungarumlaut -10 KPX Aacute Umacron -10 KPX Aacute Uogonek -10 KPX Aacute Uring -10 KPX Abreve C 20 KPX Abreve Cacute 20 KPX Abreve Ccaron 20 KPX Abreve Ccedilla 20 KPX Abreve G -30 KPX Abreve Gbreve -30 KPX Abreve Gcommaaccent -30 KPX Abreve O 10 KPX Abreve Oacute 10 KPX Abreve Ocircumflex 10 KPX Abreve Odieresis 10 KPX Abreve Ograve 10 KPX Abreve Ohungarumlaut 10 KPX Abreve Omacron 10 KPX Abreve Oslash 10 KPX Abreve Otilde 10 KPX Abreve Q 10 KPX Abreve T 10 KPX Abreve Tcaron 10 KPX Abreve Tcommaaccent 10 KPX Abreve U -10 KPX Abreve Uacute -10 KPX Abreve Ucircumflex -10 KPX Abreve Udieresis -10 KPX Abreve Ugrave -10 KPX Abreve Uhungarumlaut -10 KPX Abreve Umacron -10 KPX Abreve Uogonek -10 KPX Abreve Uring -10 KPX Acircumflex C 20 KPX Acircumflex Cacute 20 KPX Acircumflex Ccaron 20 KPX Acircumflex Ccedilla 20 KPX Acircumflex G -30 KPX Acircumflex Gbreve -30 KPX Acircumflex Gcommaaccent -30 KPX Acircumflex O 10 KPX Acircumflex Oacute 10 KPX Acircumflex Ocircumflex 10 KPX Acircumflex Odieresis 10 KPX Acircumflex Ograve 10 KPX Acircumflex Ohungarumlaut 10 KPX Acircumflex Omacron 10 KPX Acircumflex Oslash 10 KPX Acircumflex Otilde 10 KPX Acircumflex Q 10 KPX Acircumflex T 10 KPX Acircumflex Tcaron 10 KPX Acircumflex Tcommaaccent 10 KPX Acircumflex U -10 KPX Acircumflex Uacute -10 KPX Acircumflex Ucircumflex -10 KPX Acircumflex Udieresis -10 KPX Acircumflex Ugrave -10 KPX Acircumflex Uhungarumlaut -10 KPX Acircumflex Umacron -10 KPX Acircumflex Uogonek -10 KPX Acircumflex Uring -10 KPX Adieresis C 20 KPX Adieresis Cacute 20 KPX Adieresis Ccaron 20 KPX Adieresis Ccedilla 20 KPX Adieresis G -30 KPX Adieresis Gbreve -30 KPX Adieresis Gcommaaccent -30 KPX Adieresis O 10 KPX Adieresis Oacute 10 KPX Adieresis Ocircumflex 10 KPX Adieresis Odieresis 10 KPX Adieresis Ograve 10 KPX Adieresis Ohungarumlaut 10 KPX Adieresis Omacron 10 KPX Adieresis Oslash 10 KPX Adieresis Otilde 10 KPX Adieresis Q 10 KPX Adieresis T 10 KPX Adieresis Tcaron 10 KPX Adieresis Tcommaaccent 10 KPX Adieresis U -10 KPX Adieresis Uacute -10 KPX Adieresis Ucircumflex -10 KPX Adieresis Udieresis -10 KPX Adieresis Ugrave -10 KPX Adieresis Uhungarumlaut -10 KPX Adieresis Umacron -10 KPX Adieresis Uogonek -10 KPX Adieresis Uring -10 KPX Agrave C 20 KPX Agrave Cacute 20 KPX Agrave Ccaron 20 KPX Agrave Ccedilla 20 KPX Agrave G -30 KPX Agrave Gbreve -30 KPX Agrave Gcommaaccent -30 KPX Agrave O 10 KPX Agrave Oacute 10 KPX Agrave Ocircumflex 10 KPX Agrave Odieresis 10 KPX Agrave Ograve 10 KPX Agrave Ohungarumlaut 10 KPX Agrave Omacron 10 KPX Agrave Oslash 10 KPX Agrave Otilde 10 KPX Agrave Q 10 KPX Agrave T 10 KPX Agrave Tcaron 10 KPX Agrave Tcommaaccent 10 KPX Agrave U -10 KPX Agrave Uacute -10 KPX Agrave Ucircumflex -10 KPX Agrave Udieresis -10 KPX Agrave Ugrave -10 KPX Agrave Uhungarumlaut -10 KPX Agrave Umacron -10 KPX Agrave Uogonek -10 KPX Agrave Uring -10 KPX Amacron C 20 KPX Amacron Cacute 20 KPX Amacron Ccaron 20 KPX Amacron Ccedilla 20 KPX Amacron G -30 KPX Amacron Gbreve -30 KPX Amacron Gcommaaccent -30 KPX Amacron O 10 KPX Amacron Oacute 10 KPX Amacron Ocircumflex 10 KPX Amacron Odieresis 10 KPX Amacron Ograve 10 KPX Amacron Ohungarumlaut 10 KPX Amacron Omacron 10 KPX Amacron Oslash 10 KPX Amacron Otilde 10 KPX Amacron Q 10 KPX Amacron T 10 KPX Amacron Tcaron 10 KPX Amacron Tcommaaccent 10 KPX Amacron U -10 KPX Amacron Uacute -10 KPX Amacron Ucircumflex -10 KPX Amacron Udieresis -10 KPX Amacron Ugrave -10 KPX Amacron Uhungarumlaut -10 KPX Amacron Umacron -10 KPX Amacron Uogonek -10 KPX Amacron Uring -10 KPX Aogonek C 20 KPX Aogonek Cacute 20 KPX Aogonek Ccaron 20 KPX Aogonek Ccedilla 20 KPX Aogonek G -30 KPX Aogonek Gbreve -30 KPX Aogonek Gcommaaccent -30 KPX Aogonek O 10 KPX Aogonek Oacute 10 KPX Aogonek Ocircumflex 10 KPX Aogonek Odieresis 10 KPX Aogonek Ograve 10 KPX Aogonek Ohungarumlaut 10 KPX Aogonek Omacron 10 KPX Aogonek Oslash 10 KPX Aogonek Otilde 10 KPX Aogonek Q 10 KPX Aogonek T 10 KPX Aogonek Tcaron 10 KPX Aogonek Tcommaaccent 10 KPX Aogonek U -10 KPX Aogonek Uacute -10 KPX Aogonek Ucircumflex -10 KPX Aogonek Udieresis -10 KPX Aogonek Ugrave -10 KPX Aogonek Uhungarumlaut -10 KPX Aogonek Umacron -10 KPX Aogonek Uogonek -10 KPX Aogonek Uring -10 KPX Aogonek y -10 KPX Aogonek yacute -10 KPX Aogonek ydieresis -10 KPX Aring C 20 KPX Aring Cacute 20 KPX Aring Ccaron 20 KPX Aring Ccedilla 20 KPX Aring G -30 KPX Aring Gbreve -30 KPX Aring Gcommaaccent -30 KPX Aring O 10 KPX Aring Oacute 10 KPX Aring Ocircumflex 10 KPX Aring Odieresis 10 KPX Aring Ograve 10 KPX Aring Ohungarumlaut 10 KPX Aring Omacron 10 KPX Aring Oslash 10 KPX Aring Otilde 10 KPX Aring Q 10 KPX Aring T 10 KPX Aring Tcaron 10 KPX Aring Tcommaaccent 10 KPX Aring U -10 KPX Aring Uacute -10 KPX Aring Ucircumflex -10 KPX Aring Udieresis -10 KPX Aring Ugrave -10 KPX Aring Uhungarumlaut -10 KPX Aring Umacron -10 KPX Aring Uogonek -10 KPX Aring Uring -10 KPX Atilde C 20 KPX Atilde Cacute 20 KPX Atilde Ccaron 20 KPX Atilde Ccedilla 20 KPX Atilde G -30 KPX Atilde Gbreve -30 KPX Atilde Gcommaaccent -30 KPX Atilde O 10 KPX Atilde Oacute 10 KPX Atilde Ocircumflex 10 KPX Atilde Odieresis 10 KPX Atilde Ograve 10 KPX Atilde Ohungarumlaut 10 KPX Atilde Omacron 10 KPX Atilde Oslash 10 KPX Atilde Otilde 10 KPX Atilde Q 10 KPX Atilde T 10 KPX Atilde Tcaron 10 KPX Atilde Tcommaaccent 10 KPX Atilde U -10 KPX Atilde Uacute -10 KPX Atilde Ucircumflex -10 KPX Atilde Udieresis -10 KPX Atilde Ugrave -10 KPX Atilde Uhungarumlaut -10 KPX Atilde Umacron -10 KPX Atilde Uogonek -10 KPX Atilde Uring -10 KPX D A -10 KPX D Aacute -10 KPX D Abreve -10 KPX D Acircumflex -10 KPX D Adieresis -10 KPX D Agrave -10 KPX D Amacron -10 KPX D Aogonek -10 KPX D Aring -10 KPX D Atilde -10 KPX D Y 10 KPX D Yacute 10 KPX D Ydieresis 10 KPX D comma -20 KPX D period -30 KPX Dcaron A -10 KPX Dcaron Aacute -10 KPX Dcaron Abreve -10 KPX Dcaron Acircumflex -10 KPX Dcaron Adieresis -10 KPX Dcaron Agrave -10 KPX Dcaron Amacron -10 KPX Dcaron Aogonek -10 KPX Dcaron Aring -10 KPX Dcaron Atilde -10 KPX Dcaron Y 10 KPX Dcaron Yacute 10 KPX Dcaron Ydieresis 10 KPX Dcaron comma -20 KPX Dcaron period -30 KPX Dcroat A -10 KPX Dcroat Aacute -10 KPX Dcroat Abreve -10 KPX Dcroat Acircumflex -10 KPX Dcroat Adieresis -10 KPX Dcroat Agrave -10 KPX Dcroat Amacron -10 KPX Dcroat Aogonek -10 KPX Dcroat Aring -10 KPX Dcroat Atilde -10 KPX Dcroat Y 10 KPX Dcroat Yacute 10 KPX Dcroat Ydieresis 10 KPX Dcroat comma -20 KPX Dcroat period -30 KPX F comma -30 KPX F i 10 KPX F period -40 KPX G comma -10 KPX G period -20 KPX J comma -10 KPX J period -20 KPX K e -20 KPX K eacute -20 KPX K ecaron -20 KPX K ecircumflex -20 KPX K edieresis -20 KPX K edotaccent -20 KPX K egrave -20 KPX K emacron -20 KPX K eogonek -20 KPX K o -20 KPX K oacute -20 KPX K ocircumflex -20 KPX K odieresis -20 KPX K ograve -20 KPX K ohungarumlaut -20 KPX K omacron -20 KPX K otilde -20 KPX K u -20 KPX K uacute -20 KPX K ucircumflex -20 KPX K udieresis -20 KPX K ugrave -20 KPX K uhungarumlaut -20 KPX K umacron -20 KPX K uogonek -20 KPX K uring -20 KPX Kcommaaccent e -20 KPX Kcommaaccent eacute -20 KPX Kcommaaccent ecaron -20 KPX Kcommaaccent ecircumflex -20 KPX Kcommaaccent edieresis -20 KPX Kcommaaccent edotaccent -20 KPX Kcommaaccent egrave -20 KPX Kcommaaccent emacron -20 KPX Kcommaaccent eogonek -20 KPX Kcommaaccent o -20 KPX Kcommaaccent oacute -20 KPX Kcommaaccent ocircumflex -20 KPX Kcommaaccent odieresis -20 KPX Kcommaaccent ograve -20 KPX Kcommaaccent ohungarumlaut -20 KPX Kcommaaccent omacron -20 KPX Kcommaaccent otilde -20 KPX Kcommaaccent u -20 KPX Kcommaaccent uacute -20 KPX Kcommaaccent ucircumflex -20 KPX Kcommaaccent udieresis -20 KPX Kcommaaccent ugrave -20 KPX Kcommaaccent uhungarumlaut -20 KPX Kcommaaccent umacron -20 KPX Kcommaaccent uogonek -20 KPX Kcommaaccent uring -20 KPX L V -20 KPX L W -10 KPX L quotedblright -25 KPX L quoteright -25 KPX L y -10 KPX L yacute -10 KPX L ydieresis -10 KPX Lacute V -20 KPX Lacute W -10 KPX Lacute quotedblright -25 KPX Lacute quoteright -25 KPX Lacute y -10 KPX Lacute yacute -10 KPX Lacute ydieresis -10 KPX Lcommaaccent V -20 KPX Lcommaaccent W -10 KPX Lcommaaccent quotedblright -25 KPX Lcommaaccent quoteright -25 KPX Lcommaaccent y -10 KPX Lcommaaccent yacute -10 KPX Lcommaaccent ydieresis -10 KPX O A -20 KPX O Aacute -20 KPX O Abreve -20 KPX O Acircumflex -20 KPX O Adieresis -20 KPX O Agrave -20 KPX O Amacron -20 KPX O Aogonek -20 KPX O Aring -20 KPX O Atilde -20 KPX O T 20 KPX O Tcaron 20 KPX O Tcommaaccent 20 KPX O Y 10 KPX O Yacute 10 KPX O Ydieresis 10 KPX O comma -10 KPX O period -20 KPX Oacute A -20 KPX Oacute Aacute -20 KPX Oacute Abreve -20 KPX Oacute Acircumflex -20 KPX Oacute Adieresis -20 KPX Oacute Agrave -20 KPX Oacute Amacron -20 KPX Oacute Aogonek -20 KPX Oacute Aring -20 KPX Oacute Atilde -20 KPX Oacute T 20 KPX Oacute Tcaron 20 KPX Oacute Tcommaaccent 20 KPX Oacute Y 10 KPX Oacute Yacute 10 KPX Oacute Ydieresis 10 KPX Oacute comma -10 KPX Oacute period -20 KPX Ocircumflex A -20 KPX Ocircumflex Aacute -20 KPX Ocircumflex Abreve -20 KPX Ocircumflex Acircumflex -20 KPX Ocircumflex Adieresis -20 KPX Ocircumflex Agrave -20 KPX Ocircumflex Amacron -20 KPX Ocircumflex Aogonek -20 KPX Ocircumflex Aring -20 KPX Ocircumflex Atilde -20 KPX Ocircumflex T 20 KPX Ocircumflex Tcaron 20 KPX Ocircumflex Tcommaaccent 20 KPX Ocircumflex Y 10 KPX Ocircumflex Yacute 10 KPX Ocircumflex Ydieresis 10 KPX Ocircumflex comma -10 KPX Ocircumflex period -20 KPX Odieresis A -20 KPX Odieresis Aacute -20 KPX Odieresis Abreve -20 KPX Odieresis Acircumflex -20 KPX Odieresis Adieresis -20 KPX Odieresis Agrave -20 KPX Odieresis Amacron -20 KPX Odieresis Aogonek -20 KPX Odieresis Aring -20 KPX Odieresis Atilde -20 KPX Odieresis T 20 KPX Odieresis Tcaron 20 KPX Odieresis Tcommaaccent 20 KPX Odieresis Y 10 KPX Odieresis Yacute 10 KPX Odieresis Ydieresis 10 KPX Odieresis comma -10 KPX Odieresis period -20 KPX Ograve A -20 KPX Ograve Aacute -20 KPX Ograve Abreve -20 KPX Ograve Acircumflex -20 KPX Ograve Adieresis -20 KPX Ograve Agrave -20 KPX Ograve Amacron -20 KPX Ograve Aogonek -20 KPX Ograve Aring -20 KPX Ograve Atilde -20 KPX Ograve T 20 KPX Ograve Tcaron 20 KPX Ograve Tcommaaccent 20 KPX Ograve Y 10 KPX Ograve Yacute 10 KPX Ograve Ydieresis 10 KPX Ograve comma -10 KPX Ograve period -20 KPX Ohungarumlaut A -20 KPX Ohungarumlaut Aacute -20 KPX Ohungarumlaut Abreve -20 KPX Ohungarumlaut Acircumflex -20 KPX Ohungarumlaut Adieresis -20 KPX Ohungarumlaut Agrave -20 KPX Ohungarumlaut Amacron -20 KPX Ohungarumlaut Aogonek -20 KPX Ohungarumlaut Aring -20 KPX Ohungarumlaut Atilde -20 KPX Ohungarumlaut T 20 KPX Ohungarumlaut Tcaron 20 KPX Ohungarumlaut Tcommaaccent 20 KPX Ohungarumlaut Y 10 KPX Ohungarumlaut Yacute 10 KPX Ohungarumlaut Ydieresis 10 KPX Ohungarumlaut comma -10 KPX Ohungarumlaut period -20 KPX Omacron A -20 KPX Omacron Aacute -20 KPX Omacron Abreve -20 KPX Omacron Acircumflex -20 KPX Omacron Adieresis -20 KPX Omacron Agrave -20 KPX Omacron Amacron -20 KPX Omacron Aogonek -20 KPX Omacron Aring -20 KPX Omacron Atilde -20 KPX Omacron T 20 KPX Omacron Tcaron 20 KPX Omacron Tcommaaccent 20 KPX Omacron Y 10 KPX Omacron Yacute 10 KPX Omacron Ydieresis 10 KPX Omacron comma -10 KPX Omacron period -20 KPX Oslash A -20 KPX Oslash Aacute -20 KPX Oslash Abreve -20 KPX Oslash Acircumflex -20 KPX Oslash Adieresis -20 KPX Oslash Agrave -20 KPX Oslash Amacron -20 KPX Oslash Aogonek -20 KPX Oslash Aring -20 KPX Oslash Atilde -20 KPX Oslash T 20 KPX Oslash Tcaron 20 KPX Oslash Tcommaaccent 20 KPX Oslash Y 10 KPX Oslash Yacute 10 KPX Oslash Ydieresis 10 KPX Oslash comma -10 KPX Oslash period -20 KPX Otilde A -20 KPX Otilde Aacute -20 KPX Otilde Abreve -20 KPX Otilde Acircumflex -20 KPX Otilde Adieresis -20 KPX Otilde Agrave -20 KPX Otilde Amacron -20 KPX Otilde Aogonek -20 KPX Otilde Aring -20 KPX Otilde Atilde -20 KPX Otilde T 20 KPX Otilde Tcaron 20 KPX Otilde Tcommaaccent 20 KPX Otilde Y 10 KPX Otilde Yacute 10 KPX Otilde Ydieresis 10 KPX Otilde comma -10 KPX Otilde period -20 KPX P A -10 KPX P Aacute -10 KPX P Abreve -10 KPX P Acircumflex -10 KPX P Adieresis -10 KPX P Agrave -10 KPX P Amacron -10 KPX P Aogonek -10 KPX P Aring -10 KPX P Atilde -10 KPX P a -20 KPX P aacute -20 KPX P abreve -20 KPX P acircumflex -20 KPX P adieresis -20 KPX P agrave -20 KPX P amacron -20 KPX P aogonek -20 KPX P aring -20 KPX P atilde -20 KPX P comma -40 KPX P e -10 KPX P eacute -10 KPX P ecaron -10 KPX P ecircumflex -10 KPX P edieresis -10 KPX P edotaccent -10 KPX P egrave -10 KPX P emacron -10 KPX P eogonek -10 KPX P o -10 KPX P oacute -10 KPX P ocircumflex -10 KPX P odieresis -10 KPX P ograve -10 KPX P ohungarumlaut -10 KPX P omacron -10 KPX P otilde -10 KPX P period -50 KPX Q U -10 KPX Q Uacute -10 KPX Q Ucircumflex -10 KPX Q Udieresis -10 KPX Q Ugrave -10 KPX Q Uhungarumlaut -10 KPX Q Umacron -10 KPX Q Uogonek -10 KPX Q Uring -10 KPX R T 20 KPX R Tcaron 20 KPX R Tcommaaccent 20 KPX R W 10 KPX R Y 10 KPX R Yacute 10 KPX R Ydieresis 10 KPX Racute T 20 KPX Racute Tcaron 20 KPX Racute Tcommaaccent 20 KPX Racute W 10 KPX Racute Y 10 KPX Racute Yacute 10 KPX Racute Ydieresis 10 KPX Rcaron T 20 KPX Rcaron Tcaron 20 KPX Rcaron Tcommaaccent 20 KPX Rcaron W 10 KPX Rcaron Y 10 KPX Rcaron Yacute 10 KPX Rcaron Ydieresis 10 KPX Rcommaaccent T 20 KPX Rcommaaccent Tcaron 20 KPX Rcommaaccent Tcommaaccent 20 KPX Rcommaaccent W 10 KPX Rcommaaccent Y 10 KPX Rcommaaccent Yacute 10 KPX Rcommaaccent Ydieresis 10 KPX T A 10 KPX T Aacute 10 KPX T Abreve 10 KPX T Acircumflex 10 KPX T Adieresis 10 KPX T Agrave 10 KPX T Amacron 10 KPX T Aogonek 10 KPX T Aring 10 KPX T Atilde 10 KPX T O 30 KPX T Oacute 30 KPX T Ocircumflex 30 KPX T Odieresis 30 KPX T Ograve 30 KPX T Ohungarumlaut 30 KPX T Omacron 30 KPX T Oslash 30 KPX T Otilde 30 KPX T a -20 KPX T aacute -20 KPX T acircumflex -20 KPX T agrave -20 KPX T amacron -20 KPX T aogonek -20 KPX T aring -20 KPX T e -20 KPX T eacute -20 KPX T eogonek -20 KPX T h 20 KPX T hyphen -20 KPX T i 20 KPX T o -20 KPX T oacute -20 KPX T ocircumflex -20 KPX T ohungarumlaut -20 KPX T omacron -20 KPX Tcaron A 10 KPX Tcaron Aacute 10 KPX Tcaron Abreve 10 KPX Tcaron Acircumflex 10 KPX Tcaron Adieresis 10 KPX Tcaron Agrave 10 KPX Tcaron Amacron 10 KPX Tcaron Aogonek 10 KPX Tcaron Aring 10 KPX Tcaron Atilde 10 KPX Tcaron O 30 KPX Tcaron Oacute 30 KPX Tcaron Ocircumflex 30 KPX Tcaron Odieresis 30 KPX Tcaron Ograve 30 KPX Tcaron Ohungarumlaut 30 KPX Tcaron Omacron 30 KPX Tcaron Oslash 30 KPX Tcaron Otilde 30 KPX Tcaron a -20 KPX Tcaron aacute -20 KPX Tcaron acircumflex -20 KPX Tcaron agrave -20 KPX Tcaron amacron -20 KPX Tcaron aogonek -20 KPX Tcaron aring -20 KPX Tcaron e -20 KPX Tcaron eacute -20 KPX Tcaron eogonek -20 KPX Tcaron hyphen -20 KPX Tcaron o -20 KPX Tcaron oacute -20 KPX Tcaron ocircumflex -20 KPX Tcaron ohungarumlaut -20 KPX Tcaron omacron -20 KPX Tcommaaccent A 10 KPX Tcommaaccent Aacute 10 KPX Tcommaaccent Abreve 10 KPX Tcommaaccent Acircumflex 10 KPX Tcommaaccent Adieresis 10 KPX Tcommaaccent Agrave 10 KPX Tcommaaccent Amacron 10 KPX Tcommaaccent Aogonek 10 KPX Tcommaaccent Aring 10 KPX Tcommaaccent Atilde 10 KPX Tcommaaccent O 30 KPX Tcommaaccent Oacute 30 KPX Tcommaaccent Ocircumflex 30 KPX Tcommaaccent Odieresis 30 KPX Tcommaaccent Ograve 30 KPX Tcommaaccent Ohungarumlaut 30 KPX Tcommaaccent Omacron 30 KPX Tcommaaccent Oslash 30 KPX Tcommaaccent Otilde 30 KPX Tcommaaccent a -20 KPX Tcommaaccent aacute -20 KPX Tcommaaccent acircumflex -20 KPX Tcommaaccent agrave -20 KPX Tcommaaccent amacron -20 KPX Tcommaaccent aogonek -20 KPX Tcommaaccent aring -20 KPX Tcommaaccent e -20 KPX Tcommaaccent eacute -20 KPX Tcommaaccent eogonek -20 KPX Tcommaaccent hyphen -20 KPX Tcommaaccent o -20 KPX Tcommaaccent oacute -20 KPX Tcommaaccent ocircumflex -20 KPX Tcommaaccent ohungarumlaut -20 KPX Tcommaaccent omacron -20 KPX V G -20 KPX V Gbreve -20 KPX V Gcommaaccent -20 KPX V O 10 KPX V Oacute 10 KPX V Ocircumflex 10 KPX V Odieresis 10 KPX V Ograve 10 KPX V Ohungarumlaut 10 KPX V Omacron 10 KPX V Oslash 10 KPX V Otilde 10 KPX V a -20 KPX V aacute -20 KPX V abreve -20 KPX V acircumflex -20 KPX V adieresis -20 KPX V agrave -20 KPX V amacron -20 KPX V aogonek -20 KPX V aring -20 KPX V atilde -20 KPX V comma -90 KPX V e -20 KPX V eacute -20 KPX V ecaron -20 KPX V ecircumflex -20 KPX V edieresis -20 KPX V edotaccent -20 KPX V egrave -20 KPX V emacron -20 KPX V eogonek -20 KPX V o -20 KPX V oacute -20 KPX V ocircumflex -20 KPX V odieresis -20 KPX V ograve -20 KPX V ohungarumlaut -20 KPX V omacron -20 KPX V otilde -20 KPX V period -100 KPX W O 10 KPX W Oacute 10 KPX W Ocircumflex 10 KPX W Odieresis 10 KPX W Ograve 10 KPX W Ohungarumlaut 10 KPX W Omacron 10 KPX W Oslash 10 KPX W Otilde 10 KPX W a -20 KPX W aacute -20 KPX W abreve -20 KPX W acircumflex -20 KPX W adieresis -20 KPX W agrave -20 KPX W amacron -20 KPX W aogonek -20 KPX W aring -20 KPX W atilde -20 KPX W comma -40 KPX W e -20 KPX W eacute -20 KPX W ecaron -20 KPX W ecircumflex -20 KPX W edieresis -20 KPX W edotaccent -20 KPX W egrave -20 KPX W emacron -20 KPX W eogonek -20 KPX W h 10 KPX W i 10 KPX W o -20 KPX W oacute -20 KPX W ocircumflex -20 KPX W odieresis -20 KPX W ograve -20 KPX W ohungarumlaut -20 KPX W omacron -20 KPX W otilde -20 KPX W period -50 KPX Y a -60 KPX Y aacute -60 KPX Y abreve -60 KPX Y acircumflex -20 KPX Y adieresis -20 KPX Y agrave -20 KPX Y amacron -20 KPX Y aogonek -60 KPX Y aring -60 KPX Y atilde -20 KPX Y comma -40 KPX Y e -40 KPX Y eacute -40 KPX Y ecaron -40 KPX Y edotaccent -40 KPX Y eogonek -40 KPX Y i 10 KPX Y iacute 10 KPX Y icircumflex 30 KPX Y idieresis 30 KPX Y igrave 30 KPX Y imacron 30 KPX Y iogonek 10 KPX Y o -50 KPX Y oacute -20 KPX Y ocircumflex -20 KPX Y odieresis -20 KPX Y ograve -20 KPX Y ohungarumlaut -20 KPX Y omacron -20 KPX Y otilde -20 KPX Y period -50 KPX Y u -20 KPX Y uacute -20 KPX Y ucircumflex -20 KPX Y udieresis -20 KPX Y ugrave -20 KPX Y uhungarumlaut -20 KPX Y umacron -20 KPX Y uogonek -20 KPX Y uring -20 KPX Yacute a -60 KPX Yacute aacute -60 KPX Yacute abreve -60 KPX Yacute acircumflex -60 KPX Yacute adieresis -20 KPX Yacute agrave -20 KPX Yacute amacron -20 KPX Yacute aogonek -60 KPX Yacute aring -60 KPX Yacute atilde -20 KPX Yacute comma -40 KPX Yacute e -40 KPX Yacute eacute -40 KPX Yacute ecaron -40 KPX Yacute ecircumflex -40 KPX Yacute edotaccent -40 KPX Yacute eogonek -40 KPX Yacute i 10 KPX Yacute iacute 10 KPX Yacute icircumflex 10 KPX Yacute idieresis 30 KPX Yacute igrave 30 KPX Yacute imacron 30 KPX Yacute iogonek 10 KPX Yacute o -50 KPX Yacute oacute -50 KPX Yacute ocircumflex -20 KPX Yacute odieresis -20 KPX Yacute ograve -20 KPX Yacute ohungarumlaut -50 KPX Yacute omacron -20 KPX Yacute otilde -20 KPX Yacute period -50 KPX Yacute u -20 KPX Yacute uacute -20 KPX Yacute ucircumflex -20 KPX Yacute udieresis -20 KPX Yacute ugrave -20 KPX Yacute uhungarumlaut -20 KPX Yacute umacron -20 KPX Yacute uogonek -20 KPX Yacute uring -20 KPX Ydieresis a -60 KPX Ydieresis aacute -60 KPX Ydieresis abreve -60 KPX Ydieresis acircumflex -20 KPX Ydieresis adieresis -20 KPX Ydieresis agrave -20 KPX Ydieresis amacron -20 KPX Ydieresis aogonek -60 KPX Ydieresis aring -60 KPX Ydieresis atilde -20 KPX Ydieresis comma -40 KPX Ydieresis e -40 KPX Ydieresis eacute -40 KPX Ydieresis ecaron -40 KPX Ydieresis ecircumflex -40 KPX Ydieresis edotaccent -40 KPX Ydieresis eogonek -40 KPX Ydieresis i 10 KPX Ydieresis iacute 10 KPX Ydieresis icircumflex 30 KPX Ydieresis idieresis 30 KPX Ydieresis igrave 30 KPX Ydieresis imacron 30 KPX Ydieresis iogonek 10 KPX Ydieresis o -50 KPX Ydieresis oacute -50 KPX Ydieresis ocircumflex -50 KPX Ydieresis odieresis -20 KPX Ydieresis ograve -20 KPX Ydieresis ohungarumlaut -50 KPX Ydieresis omacron -20 KPX Ydieresis otilde -20 KPX Ydieresis period -50 KPX Ydieresis u -20 KPX Ydieresis uacute -20 KPX Ydieresis ucircumflex -20 KPX Ydieresis udieresis -20 KPX Ydieresis ugrave -20 KPX Ydieresis uhungarumlaut -20 KPX Ydieresis umacron -20 KPX Ydieresis uogonek -20 KPX Ydieresis uring -20 KPX b b -20 KPX b comma -20 KPX b l -20 KPX b lacute -20 KPX b lcommaaccent -20 KPX b period -30 KPX c k -10 KPX c kcommaaccent -10 KPX cacute k -10 KPX cacute kcommaaccent -10 KPX ccaron k -10 KPX ccaron kcommaaccent -10 KPX ccedilla k -10 KPX ccedilla kcommaaccent -10 KPX comma quotedblright -70 KPX comma quoteright -70 KPX d d -40 KPX d v -10 KPX d w -20 KPX e y 10 KPX e yacute 10 KPX e ydieresis 10 KPX eacute y 10 KPX eacute yacute 10 KPX eacute ydieresis 10 KPX ecaron y 10 KPX ecaron yacute 10 KPX ecaron ydieresis 10 KPX ecircumflex y 10 KPX ecircumflex yacute 10 KPX ecircumflex ydieresis 10 KPX edieresis y 10 KPX edieresis yacute 10 KPX edieresis ydieresis 10 KPX edotaccent y 10 KPX edotaccent yacute 10 KPX edotaccent ydieresis 10 KPX egrave y 10 KPX egrave yacute 10 KPX egrave ydieresis 10 KPX emacron y 10 KPX emacron yacute 10 KPX emacron ydieresis 10 KPX eogonek y 10 KPX eogonek yacute 10 KPX eogonek ydieresis 10 KPX f a -20 KPX f aacute -20 KPX f abreve -20 KPX f acircumflex -20 KPX f adieresis -20 KPX f agrave -20 KPX f amacron -20 KPX f aogonek -20 KPX f aring -20 KPX f atilde -20 KPX f comma -40 KPX f e -10 KPX f eacute -10 KPX f ecaron -10 KPX f ecircumflex -10 KPX f edieresis -10 KPX f edotaccent -10 KPX f egrave -10 KPX f emacron -10 KPX f eogonek -10 KPX f f -50 KPX f period -50 KPX f quotedblright 30 KPX f quoteright 30 KPX g a 10 KPX g comma -20 KPX g e 10 KPX g i 10 KPX g period -30 KPX g y 10 KPX k e -20 KPX k eacute -20 KPX k ecaron -20 KPX k ecircumflex -20 KPX k edieresis -20 KPX k edotaccent -20 KPX k egrave -20 KPX k emacron -20 KPX k eogonek -20 KPX k o -10 KPX k oacute -10 KPX k ocircumflex -10 KPX k odieresis -10 KPX k ograve -10 KPX k ohungarumlaut -10 KPX k omacron -10 KPX k otilde -10 KPX k y 10 KPX kcommaaccent e -20 KPX kcommaaccent eacute -20 KPX kcommaaccent ecaron -20 KPX kcommaaccent ecircumflex -20 KPX kcommaaccent edieresis -20 KPX kcommaaccent edotaccent -20 KPX kcommaaccent egrave -20 KPX kcommaaccent emacron -20 KPX kcommaaccent eogonek -20 KPX kcommaaccent o -10 KPX kcommaaccent oacute -10 KPX kcommaaccent ocircumflex -10 KPX kcommaaccent odieresis -10 KPX kcommaaccent ograve -10 KPX kcommaaccent ohungarumlaut -10 KPX kcommaaccent omacron -10 KPX kcommaaccent otilde -10 KPX m u 10 KPX m uacute 10 KPX m ucircumflex 10 KPX m udieresis 10 KPX m ugrave 10 KPX m uhungarumlaut 10 KPX m umacron 10 KPX m uogonek 10 KPX m uring 10 KPX m y 10 KPX m yacute 10 KPX m ydieresis 10 KPX n y 20 KPX n yacute 20 KPX n ydieresis 20 KPX nacute y 20 KPX nacute yacute 20 KPX nacute ydieresis 20 KPX ncaron y 20 KPX ncaron yacute 20 KPX ncaron ydieresis 20 KPX ncommaaccent y 20 KPX ncommaaccent yacute 20 KPX ncommaaccent ydieresis 20 KPX ntilde y 20 KPX ntilde yacute 20 KPX ntilde ydieresis 20 KPX o comma -20 KPX o period -30 KPX oacute comma -20 KPX oacute period -30 KPX ocircumflex comma -20 KPX ocircumflex period -30 KPX odieresis comma -20 KPX odieresis period -30 KPX ograve comma -20 KPX ograve period -30 KPX ohungarumlaut comma -20 KPX ohungarumlaut period -30 KPX omacron comma -20 KPX omacron period -30 KPX otilde comma -20 KPX otilde period -30 KPX p comma -20 KPX p p -10 KPX p period -30 KPX period quotedblright -80 KPX period quoteright -80 KPX quotedblleft A 10 KPX quotedblleft quoteleft 20 KPX quoteleft A 10 KPX quoteleft quoteleft -115 KPX quoteright l 20 KPX quoteright quotedblright 20 KPX quoteright quoteright -115 KPX quoteright r 30 KPX quoteright racute 30 KPX quoteright rcaron 30 KPX quoteright rcommaaccent 30 KPX quoteright s -25 KPX quoteright sacute -25 KPX quoteright scaron -25 KPX quoteright scedilla -25 KPX quoteright scommaaccent -25 KPX quoteright t 20 KPX quoteright v 30 KPX r comma -40 KPX r i 10 KPX r iacute 10 KPX r icircumflex 10 KPX r idieresis 10 KPX r igrave 10 KPX r imacron 10 KPX r iogonek 10 KPX r period -50 KPX racute comma -40 KPX racute i 10 KPX racute iacute 10 KPX racute icircumflex 10 KPX racute idieresis 10 KPX racute igrave 10 KPX racute imacron 10 KPX racute iogonek 10 KPX racute period -50 KPX rcaron comma -40 KPX rcaron i 10 KPX rcaron iacute 10 KPX rcaron icircumflex 10 KPX rcaron idieresis 10 KPX rcaron igrave 10 KPX rcaron imacron 10 KPX rcaron iogonek 10 KPX rcaron period -50 KPX rcommaaccent comma -40 KPX rcommaaccent i 10 KPX rcommaaccent iacute 10 KPX rcommaaccent icircumflex 10 KPX rcommaaccent idieresis 10 KPX rcommaaccent igrave 10 KPX rcommaaccent imacron 10 KPX rcommaaccent iogonek 10 KPX rcommaaccent period -50 KPX s comma -10 KPX s period -20 KPX sacute comma -10 KPX sacute period -20 KPX scaron comma -10 KPX scaron period -20 KPX scedilla comma -10 KPX scedilla period -20 KPX scommaaccent comma -10 KPX scommaaccent period -20 KPX v comma -20 KPX v period -30 KPX w comma -20 KPX w h 20 KPX w o 10 KPX w oacute 10 KPX w ocircumflex 10 KPX w odieresis 10 KPX w ograve 10 KPX w ohungarumlaut 10 KPX w omacron 10 KPX w otilde 10 KPX w period -30 EndKernPairs EndKernData EndFontMetrics a2ps-4.14/afm/pcfont.afm0000644000175000017500000001542607440740377014372 0ustar mhattamhattaStartFontMetrics 3.0 Comment This file is not correct. Comment Do not modify FontName PCFont EncodingScheme Specific FullName PC Graphic Font StartCharMetrics 256 C 0 ; WX 600 ; N null C 1 ; WX 600 ; N Wsmiley C 2 ; WX 600 ; N Bsmiley C 3 ; WX 600 ; N heart C 4 ; WX 600 ; N diamond C 5 ; WX 600 ; N club C 6 ; WX 600 ; N spade C 7 ; WX 600 ; N Bbullet C 8 ; WX 600 ; N Wbullet C 9 ; WX 600 ; N Bcircle C 10 ; WX 600 ; N Wcircle C 11 ; WX 600 ; N male C 12 ; WX 600 ; N female C 13 ; WX 600 ; N quarternote C 14 ; WX 600 ; N sixteenthnote C 15 ; WX 600 ; N sun C 16 ; WX 600 ; N pointerright C 17 ; WX 600 ; N pointerleft C 18 ; WX 600 ; N Varrowboth C 19 ; WX 600 ; N exclamdbl C 20 ; WX 600 ; N paragraph C 21 ; WX 600 ; N section C 22 ; WX 600 ; N cursorblock C 23 ; WX 600 ; N floor C 24 ; WX 600 ; N arrowup C 25 ; WX 600 ; N arrowdown C 26 ; WX 600 ; N arrowright C 27 ; WX 600 ; N arrowleft C 28 ; WX 600 ; N smallLLsingle C 29 ; WX 600 ; N arrowboth C 30 ; WX 600 ; N pointerup C 31 ; WX 600 ; N pointerdown C 32 ; WX 600 ; N blank C 33 ; WX 600 ; N exclam C 34 ; WX 600 ; N quotedbl C 35 ; WX 600 ; N numbersign C 36 ; WX 600 ; N dollar C 37 ; WX 600 ; N percent C 38 ; WX 600 ; N ampersand C 39 ; WX 600 ; N quotesingle C 40 ; WX 600 ; N parenleft C 41 ; WX 600 ; N parenright C 42 ; WX 600 ; N asterisk C 43 ; WX 600 ; N plus C 44 ; WX 600 ; N comma C 45 ; WX 600 ; N hyphen C 46 ; WX 600 ; N period C 47 ; WX 600 ; N slash C 48 ; WX 600 ; N zero C 49 ; WX 600 ; N one C 50 ; WX 600 ; N two C 51 ; WX 600 ; N three C 52 ; WX 600 ; N four C 53 ; WX 600 ; N five C 54 ; WX 600 ; N six C 55 ; WX 600 ; N seven C 56 ; WX 600 ; N eight C 57 ; WX 600 ; N nine C 58 ; WX 600 ; N colon C 59 ; WX 600 ; N semicolon C 60 ; WX 600 ; N less C 61 ; WX 600 ; N equal C 62 ; WX 600 ; N greater C 63 ; WX 600 ; N question C 64 ; WX 600 ; N at C 65 ; WX 600 ; N A C 66 ; WX 600 ; N B C 67 ; WX 600 ; N C C 68 ; WX 600 ; N D C 69 ; WX 600 ; N E C 70 ; WX 600 ; N F C 71 ; WX 600 ; N G C 72 ; WX 600 ; N H C 73 ; WX 600 ; N I C 74 ; WX 600 ; N J C 75 ; WX 600 ; N K C 76 ; WX 600 ; N L C 77 ; WX 600 ; N M C 78 ; WX 600 ; N N C 79 ; WX 600 ; N O C 80 ; WX 600 ; N P C 81 ; WX 600 ; N Q C 82 ; WX 600 ; N R C 83 ; WX 600 ; N S C 84 ; WX 600 ; N T C 85 ; WX 600 ; N U C 86 ; WX 600 ; N V C 87 ; WX 600 ; N W C 88 ; WX 600 ; N X C 89 ; WX 600 ; N Y C 90 ; WX 600 ; N Z C 91 ; WX 600 ; N bracketleft C 92 ; WX 600 ; N backslash C 93 ; WX 600 ; N bracketright C 94 ; WX 600 ; N asciicircum C 95 ; WX 600 ; N underscore C 96 ; WX 600 ; N quoteleft C 97 ; WX 600 ; N a C 98 ; WX 600 ; N b C 99 ; WX 600 ; N c C 100 ; WX 600 ; N d C 101 ; WX 600 ; N e C 102 ; WX 600 ; N f C 103 ; WX 600 ; N g C 104 ; WX 600 ; N h C 105 ; WX 600 ; N i C 106 ; WX 600 ; N j C 107 ; WX 600 ; N k C 108 ; WX 600 ; N l C 109 ; WX 600 ; N m C 110 ; WX 600 ; N n C 111 ; WX 600 ; N o C 112 ; WX 600 ; N p C 113 ; WX 600 ; N q C 114 ; WX 600 ; N r C 115 ; WX 600 ; N s C 116 ; WX 600 ; N t C 117 ; WX 600 ; N u C 118 ; WX 600 ; N v C 119 ; WX 600 ; N w C 120 ; WX 600 ; N x C 121 ; WX 600 ; N y C 122 ; WX 600 ; N z C 123 ; WX 600 ; N braceleft C 124 ; WX 600 ; N brokenbar C 125 ; WX 600 ; N braceright C 126 ; WX 600 ; N asciitilde C 127 ; WX 600 ; N Delta C 128 ; WX 600 ; N Ccedilla C 129 ; WX 600 ; N udieresis C 130 ; WX 600 ; N eacute C 131 ; WX 600 ; N acircumflex C 132 ; WX 600 ; N adieresis C 133 ; WX 600 ; N agrave C 134 ; WX 600 ; N aring C 135 ; WX 600 ; N ccedilla C 136 ; WX 600 ; N ecircumflex C 137 ; WX 600 ; N edieresis C 138 ; WX 600 ; N egrave C 139 ; WX 600 ; N idieresis C 140 ; WX 600 ; N icircumflex C 141 ; WX 600 ; N igrave C 142 ; WX 600 ; N Adieresis C 143 ; WX 600 ; N Aring C 144 ; WX 600 ; N Eacute C 145 ; WX 600 ; N ae C 146 ; WX 600 ; N AE C 147 ; WX 600 ; N ocircumflex C 148 ; WX 600 ; N odieresis C 149 ; WX 600 ; N ograve C 150 ; WX 600 ; N ucircumflex C 151 ; WX 600 ; N ugrave C 152 ; WX 600 ; N ydieresis C 153 ; WX 600 ; N Odieresis C 154 ; WX 600 ; N Udieresis C 155 ; WX 600 ; N cent C 156 ; WX 600 ; N sterling C 157 ; WX 600 ; N yen C 158 ; WX 600 ; N point C 159 ; WX 600 ; N integral C 160 ; WX 600 ; N aacute C 161 ; WX 600 ; N iacute C 162 ; WX 600 ; N oacute C 163 ; WX 600 ; N uacute C 164 ; WX 600 ; N ntilde C 165 ; WX 600 ; N Ntilde C 166 ; WX 600 ; N aunder C 167 ; WX 600 ; N ounder C 168 ; WX 600 ; N questiondown C 169 ; WX 600 ; N smallULsingle C 170 ; WX 600 ; N smallURsingle C 171 ; WX 600 ; N half C 172 ; WX 600 ; N quarter C 173 ; WX 600 ; N exclamdown C 174 ; WX 600 ; N lessdbl C 175 ; WX 600 ; N greaterdbl C 176 ; WX 600 ; N lightbox C 177 ; WX 600 ; N mediumbox C 178 ; WX 600 ; N darkbox C 179 ; WX 600 ; N Vsingle C 180 ; WX 600 ; N VsingleTleftsingle C 181 ; WX 600 ; N VsingleTleftdbl C 182 ; WX 600 ; N VdblTleftsingle C 183 ; WX 600 ; N VdblURsingle C 184 ; WX 600 ; N VsingleURdbl C 185 ; WX 600 ; N VdblTleftdbl C 186 ; WX 600 ; N Vdbl C 187 ; WX 600 ; N VdblURdbl C 188 ; WX 600 ; N VdblLRdbl C 189 ; WX 600 ; N VdblLRsingle C 190 ; WX 600 ; N VsingleLRdbl C 191 ; WX 600 ; N VsingleURsingle C 192 ; WX 600 ; N VsingleLLsingle C 193 ; WX 600 ; N HsingleTupsingle C 194 ; WX 600 ; N HsingleTdownsingle C 195 ; WX 600 ; N VsingleTrightsingle C 196 ; WX 600 ; N Hsingle C 197 ; WX 600 ; N VsingleXsingle C 198 ; WX 600 ; N VsingleTrightdbl C 199 ; WX 600 ; N VdblTrightsingle C 200 ; WX 600 ; N VdblLLdbl C 201 ; WX 600 ; N VdblULdbl C 202 ; WX 600 ; N HdblTupdbl C 203 ; WX 600 ; N HdblTdowndbl C 204 ; WX 600 ; N VdblTrightdbl C 205 ; WX 600 ; N Hdbl C 206 ; WX 600 ; N VdblXdbl C 207 ; WX 600 ; N HdblTupsingle C 208 ; WX 600 ; N HsingleTupdbl C 209 ; WX 600 ; N HdblTdownsingle C 210 ; WX 600 ; N HsingleTdowndbl C 211 ; WX 600 ; N VdblLLsingle C 212 ; WX 600 ; N VsingleLLdbl C 213 ; WX 600 ; N VsingleULdbl C 214 ; WX 600 ; N VdblULsingle C 215 ; WX 600 ; N VdblXsingle C 216 ; WX 600 ; N VsingleXdbl C 217 ; WX 600 ; N VsingleLRsingle C 218 ; WX 600 ; N VsingleULsingle C 219 ; WX 600 ; N allblack C 220 ; WX 600 ; N botblack C 221 ; WX 600 ; N leftblack C 222 ; WX 600 ; N rightblack C 223 ; WX 600 ; N topblack C 224 ; WX 600 ; N alpha C 225 ; WX 600 ; N beta C 226 ; WX 600 ; N Gamma C 227 ; WX 600 ; N pi C 228 ; WX 600 ; N Sigma C 229 ; WX 600 ; N sigma C 230 ; WX 600 ; N mu C 231 ; WX 600 ; N tau C 232 ; WX 600 ; N Phi C 233 ; WX 600 ; N theta C 234 ; WX 600 ; N Omega C 235 ; WX 600 ; N delta C 236 ; WX 600 ; N infinity C 237 ; WX 600 ; N phi C 238 ; WX 600 ; N element C 239 ; WX 600 ; N intersection C 240 ; WX 600 ; N equivalence C 241 ; WX 600 ; N plusminus C 242 ; WX 600 ; N greaterequal C 243 ; WX 600 ; N lessequal C 244 ; WX 600 ; N integraltp C 245 ; WX 600 ; N integralbt C 246 ; WX 600 ; N divide C 247 ; WX 600 ; N approxequal C 248 ; WX 600 ; N degree C 249 ; WX 600 ; N bullet C 250 ; WX 600 ; N dotmath C 251 ; WX 600 ; N radical C 252 ; WX 600 ; N eta C 253 ; WX 600 ; N squared C 254 ; WX 600 ; N block C 255 ; WX 600 ; N blank EndCharMetrics EndFontMetrics a2ps-4.14/afm/pagbo.afm0000644000175000017500000010404310674335050014152 0ustar mhattamhattaStartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1989, 1990, 1991, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Thu May 1 14:07:08 1997 Comment UniqueID 43084 Comment VMusage 11964 62330 FontName AvantGarde-BookOblique FullName ITC Avant Garde Gothic Book Oblique FamilyName ITC Avant Garde Gothic Weight Book ItalicAngle -10.5 IsFixedPitch false FontBBox -113 -222 1279 955 UnderlinePosition -100 UnderlineThickness 50 Version 002.000 Notice Copyright (c) 1985, 1987, 1989, 1990, 1991, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.ITC Avant Garde Gothic is a registered trademark of International Typeface Corporation. EncodingScheme AdobeStandardEncoding CapHeight 740 XHeight 547 Ascender 740 Descender -192 StdHW 63 StdVW 70 StartCharMetrics 314 C 32 ; WX 277 ; N space ; B 0 0 0 0 ; C 33 ; WX 295 ; N exclam ; B 111 0 322 740 ; C 34 ; WX 309 ; N quotedbl ; B 130 444 410 740 ; C 35 ; WX 554 ; N numbersign ; B 71 0 620 740 ; C 36 ; WX 554 ; N dollar ; B 107 -70 581 811 ; C 37 ; WX 775 ; N percent ; B 124 -13 787 751 ; C 38 ; WX 757 ; N ampersand ; B 92 -12 775 753 ; C 39 ; WX 351 ; N quoteright ; B 195 546 393 740 ; C 40 ; WX 369 ; N parenleft ; B 89 -205 495 757 ; C 41 ; WX 369 ; N parenright ; B -24 -205 382 757 ; C 42 ; WX 425 ; N asterisk ; B 170 446 479 740 ; C 43 ; WX 606 ; N plus ; B 92 0 608 506 ; C 44 ; WX 277 ; N comma ; B 2 -67 199 126 ; C 45 ; WX 332 ; N hyphen ; B 76 248 360 315 ; C 46 ; WX 277 ; N period ; B 102 0 199 126 ; C 47 ; WX 437 ; N slash ; B 25 -100 540 740 ; C 48 ; WX 554 ; N zero ; B 71 -13 622 753 ; C 49 ; WX 554 ; N one ; B 260 0 473 740 ; C 50 ; WX 554 ; N two ; B 40 0 615 753 ; C 51 ; WX 554 ; N three ; B 73 -13 565 753 ; C 52 ; WX 554 ; N four ; B 39 0 598 740 ; C 53 ; WX 554 ; N five ; B 69 -13 605 740 ; C 54 ; WX 554 ; N six ; B 65 -13 580 739 ; C 55 ; WX 554 ; N seven ; B 110 0 628 740 ; C 56 ; WX 554 ; N eight ; B 77 -13 580 753 ; C 57 ; WX 554 ; N nine ; B 111 0 626 752 ; C 58 ; WX 277 ; N colon ; B 102 0 278 548 ; C 59 ; WX 277 ; N semicolon ; B 2 -67 278 548 ; C 60 ; WX 606 ; N less ; B 87 -8 649 514 ; C 61 ; WX 606 ; N equal ; B 73 118 627 388 ; C 62 ; WX 606 ; N greater ; B 51 -8 613 514 ; C 63 ; WX 591 ; N question ; B 158 0 628 752 ; C 64 ; WX 867 ; N at ; B 126 -13 888 753 ; C 65 ; WX 740 ; N A ; B 12 0 729 740 ; C 66 ; WX 574 ; N B ; B 74 0 606 740 ; C 67 ; WX 813 ; N C ; B 105 -13 870 752 ; C 68 ; WX 744 ; N D ; B 74 0 773 740 ; C 69 ; WX 536 ; N E ; B 70 0 612 740 ; C 70 ; WX 485 ; N F ; B 70 0 581 740 ; C 71 ; WX 872 ; N G ; B 103 -13 891 753 ; C 72 ; WX 683 ; N H ; B 76 0 744 740 ; C 73 ; WX 226 ; N I ; B 76 0 287 740 ; C 74 ; WX 482 ; N J ; B 37 -13 539 740 ; C 75 ; WX 591 ; N K ; B 81 0 728 740 ; C 76 ; WX 462 ; N L ; B 82 0 474 740 ; C 77 ; WX 919 ; N M ; B 76 0 980 740 ; C 78 ; WX 740 ; N N ; B 75 0 801 740 ; C 79 ; WX 869 ; N O ; B 105 -13 901 753 ; C 80 ; WX 592 ; N P ; B 75 0 664 740 ; C 81 ; WX 871 ; N Q ; B 102 -13 912 753 ; C 82 ; WX 607 ; N R ; B 70 0 669 740 ; C 83 ; WX 498 ; N S ; B 57 -13 561 753 ; C 84 ; WX 426 ; N T ; B 131 0 556 740 ; C 85 ; WX 655 ; N U ; B 118 -13 716 740 ; C 86 ; WX 702 ; N V ; B 145 0 830 740 ; C 87 ; WX 960 ; N W ; B 148 0 1087 740 ; C 88 ; WX 609 ; N X ; B 8 0 724 740 ; C 89 ; WX 592 ; N Y ; B 138 0 729 740 ; C 90 ; WX 480 ; N Z ; B 12 0 596 740 ; C 91 ; WX 351 ; N bracketleft ; B 145 -179 477 753 ; C 92 ; WX 605 ; N backslash ; B 255 -100 458 740 ; C 93 ; WX 351 ; N bracketright ; B -19 -179 312 753 ; C 94 ; WX 606 ; N asciicircum ; B 110 307 610 740 ; C 95 ; WX 500 ; N underscore ; B -23 -125 486 -75 ; C 96 ; WX 351 ; N quoteleft ; B 232 546 358 740 ; C 97 ; WX 683 ; N a ; B 88 -13 722 561 ; C 98 ; WX 682 ; N b ; B 68 -13 703 740 ; C 99 ; WX 647 ; N c ; B 87 -13 678 561 ; C 100 ; WX 685 ; N d ; B 85 -13 755 740 ; C 101 ; WX 650 ; N e ; B 84 -13 664 561 ; C 102 ; WX 314 ; N f ; B 104 0 454 753 ; L i fi ; L l fl ; C 103 ; WX 673 ; N g ; B 56 -215 707 561 ; C 104 ; WX 610 ; N h ; B 62 0 606 740 ; C 105 ; WX 200 ; N i ; B 65 0 272 740 ; C 106 ; WX 203 ; N j ; B -80 -192 274 740 ; C 107 ; WX 502 ; N k ; B 70 0 588 740 ; C 108 ; WX 200 ; N l ; B 65 0 272 740 ; C 109 ; WX 938 ; N m ; B 66 0 938 561 ; C 110 ; WX 610 ; N n ; B 65 0 609 561 ; C 111 ; WX 655 ; N o ; B 88 -13 669 561 ; C 112 ; WX 682 ; N p ; B 28 -192 699 561 ; C 113 ; WX 682 ; N q ; B 83 -192 717 561 ; C 114 ; WX 301 ; N r ; B 65 0 395 561 ; C 115 ; WX 388 ; N s ; B 49 -13 424 561 ; C 116 ; WX 339 ; N t ; B 104 0 431 740 ; C 117 ; WX 608 ; N u ; B 100 -13 642 547 ; C 118 ; WX 554 ; N v ; B 108 0 647 547 ; C 119 ; WX 831 ; N w ; B 114 0 921 547 ; C 120 ; WX 480 ; N x ; B 12 0 569 547 ; C 121 ; WX 536 ; N y ; B 97 -192 624 547 ; C 122 ; WX 425 ; N z ; B 10 0 498 547 ; C 123 ; WX 351 ; N braceleft ; B 115 -189 468 740 ; C 124 ; WX 672 ; N bar ; B 258 -222 517 778 ; C 125 ; WX 351 ; N braceright ; B -15 -189 338 740 ; C 126 ; WX 606 ; N asciitilde ; B 114 179 584 319 ; C 161 ; WX 295 ; N exclamdown ; B 74 -192 286 548 ; C 162 ; WX 554 ; N cent ; B 115 62 596 707 ; C 163 ; WX 554 ; N sterling ; B 29 0 614 753 ; C 164 ; WX 166 ; N fraction ; B -113 0 417 740 ; C 165 ; WX 554 ; N yen ; B 75 0 687 740 ; C 166 ; WX 554 ; N florin ; B -39 -153 669 818 ; C 167 ; WX 615 ; N section ; B 118 -141 597 753 ; C 168 ; WX 554 ; N currency ; B 24 42 645 580 ; C 169 ; WX 198 ; N quotesingle ; B 153 444 277 740 ; C 170 ; WX 502 ; N quotedblleft ; B 234 546 507 740 ; C 171 ; WX 425 ; N guillemotleft ; B 92 81 469 481 ; C 172 ; WX 251 ; N guilsinglleft ; B 92 81 295 481 ; C 173 ; WX 251 ; N guilsinglright ; B 60 81 263 481 ; C 174 ; WX 487 ; N fi ; B 104 0 559 753 ; C 175 ; WX 485 ; N fl ; B 104 0 557 753 ; C 177 ; WX 500 ; N endash ; B 81 248 523 315 ; C 178 ; WX 553 ; N dagger ; B 146 -133 593 740 ; C 179 ; WX 553 ; N daggerdbl ; B 72 -133 593 740 ; C 180 ; WX 277 ; N periodcentered ; B 137 190 235 316 ; C 182 ; WX 564 ; N paragraph ; B 119 -110 688 740 ; C 183 ; WX 606 ; N bullet ; B 217 222 528 532 ; C 184 ; WX 354 ; N quotesinglbase ; B 76 -68 274 126 ; C 185 ; WX 502 ; N quotedblbase ; B 76 -68 422 126 ; C 186 ; WX 484 ; N quotedblright ; B 197 546 542 740 ; C 187 ; WX 425 ; N guillemotright ; B 60 81 437 481 ; C 188 ; WX 1000 ; N ellipsis ; B 130 0 893 126 ; C 189 ; WX 1174 ; N perthousand ; B 128 -13 1182 751 ; C 191 ; WX 591 ; N questiondown ; B 64 -205 534 548 ; C 193 ; WX 378 ; N grave ; B 204 619 425 786 ; C 194 ; WX 375 ; N acute ; B 203 619 444 786 ; C 195 ; WX 502 ; N circumflex ; B 192 639 546 764 ; C 196 ; WX 439 ; N tilde ; B 179 651 520 754 ; C 197 ; WX 485 ; N macron ; B 197 669 547 736 ; C 198 ; WX 453 ; N breve ; B 192 651 541 754 ; C 199 ; WX 222 ; N dotaccent ; B 192 639 290 765 ; C 200 ; WX 369 ; N dieresis ; B 191 639 437 765 ; C 202 ; WX 332 ; N ring ; B 191 600 401 807 ; C 203 ; WX 324 ; N cedilla ; B 52 -222 231 3 ; C 205 ; WX 552 ; N hungarumlaut ; B 230 605 623 786 ; C 206 ; WX 302 ; N ogonek ; B 53 -191 202 0 ; C 207 ; WX 502 ; N caron ; B 210 639 565 764 ; C 208 ; WX 1000 ; N emdash ; B 81 248 1023 315 ; C 225 ; WX 992 ; N AE ; B -20 0 1044 740 ; C 227 ; WX 369 ; N ordfeminine ; B 102 407 494 753 ; C 232 ; WX 517 ; N Lslash ; B 107 0 529 740 ; C 233 ; WX 868 ; N Oslash ; B 76 -83 929 819 ; C 234 ; WX 1194 ; N OE ; B 107 -13 1279 753 ; C 235 ; WX 369 ; N ordmasculine ; B 116 407 466 753 ; C 241 ; WX 1157 ; N ae ; B 80 -13 1169 561 ; C 245 ; WX 200 ; N dotlessi ; B 65 0 236 547 ; C 248 ; WX 300 ; N lslash ; B 95 0 354 740 ; C 249 ; WX 653 ; N oslash ; B 51 -64 703 614 ; C 250 ; WX 1137 ; N oe ; B 80 -13 1160 561 ; C 251 ; WX 554 ; N germandbls ; B 61 -13 578 753 ; C -1 ; WX 226 ; N Idieresis ; B 76 0 396 928 ; C -1 ; WX 650 ; N eacute ; B 84 -13 664 786 ; C -1 ; WX 683 ; N abreve ; B 88 -13 722 754 ; C -1 ; WX 608 ; N uhungarumlaut ; B 100 -13 671 786 ; C -1 ; WX 650 ; N ecaron ; B 84 -13 664 764 ; C -1 ; WX 592 ; N Ydieresis ; B 138 0 729 928 ; C -1 ; WX 606 ; N divide ; B 92 -13 608 519 ; C -1 ; WX 592 ; N Yacute ; B 138 0 729 949 ; C -1 ; WX 740 ; N Acircumflex ; B 12 0 729 927 ; C -1 ; WX 683 ; N aacute ; B 88 -13 722 786 ; C -1 ; WX 655 ; N Ucircumflex ; B 118 -13 716 927 ; C -1 ; WX 536 ; N yacute ; B 97 -192 624 786 ; C -1 ; WX 388 ; N scommaaccent ; B 49 -222 424 561 ; C -1 ; WX 650 ; N ecircumflex ; B 84 -13 664 764 ; C -1 ; WX 655 ; N Uring ; B 118 -13 716 955 ; C -1 ; WX 655 ; N Udieresis ; B 118 -13 716 928 ; C -1 ; WX 683 ; N aogonek ; B 88 -191 722 561 ; C -1 ; WX 655 ; N Uacute ; B 118 -13 716 949 ; C -1 ; WX 608 ; N uogonek ; B 100 -191 642 547 ; C -1 ; WX 536 ; N Edieresis ; B 70 0 612 928 ; C -1 ; WX 790 ; N Dcroat ; B 104 0 813 740 ; C -1 ; WX 250 ; N commaaccent ; B -18 -222 159 -54 ; C -1 ; WX 747 ; N copyright ; B 53 -12 830 752 ; C -1 ; WX 536 ; N Emacron ; B 70 0 612 899 ; C -1 ; WX 647 ; N ccaron ; B 87 -13 678 764 ; C -1 ; WX 683 ; N aring ; B 88 -13 722 807 ; C -1 ; WX 740 ; N Ncommaaccent ; B 75 -202 801 740 ; C -1 ; WX 200 ; N lacute ; B 65 0 416 949 ; C -1 ; WX 683 ; N agrave ; B 88 -13 722 786 ; C -1 ; WX 426 ; N Tcommaaccent ; B 70 -222 556 740 ; C -1 ; WX 813 ; N Cacute ; B 105 -13 870 949 ; C -1 ; WX 683 ; N atilde ; B 88 -13 722 754 ; C -1 ; WX 536 ; N Edotaccent ; B 70 0 612 928 ; C -1 ; WX 388 ; N scaron ; B 49 -13 508 764 ; C -1 ; WX 388 ; N scedilla ; B 49 -222 424 561 ; C -1 ; WX 200 ; N iacute ; B 65 0 396 786 ; C -1 ; WX 471 ; N lozenge ; B 82 0 524 719 ; C -1 ; WX 607 ; N Rcaron ; B 70 0 669 927 ; C -1 ; WX 872 ; N Gcommaaccent ; B 103 -222 891 753 ; C -1 ; WX 608 ; N ucircumflex ; B 100 -13 642 764 ; C -1 ; WX 683 ; N acircumflex ; B 88 -13 722 764 ; C -1 ; WX 740 ; N Amacron ; B 12 0 729 899 ; C -1 ; WX 301 ; N rcaron ; B 65 0 494 764 ; C -1 ; WX 647 ; N ccedilla ; B 87 -222 678 561 ; C -1 ; WX 480 ; N Zdotaccent ; B 12 0 596 928 ; C -1 ; WX 592 ; N Thorn ; B 60 0 621 740 ; C -1 ; WX 869 ; N Omacron ; B 105 -13 901 899 ; C -1 ; WX 607 ; N Racute ; B 70 0 669 949 ; C -1 ; WX 498 ; N Sacute ; B 57 -13 561 949 ; C -1 ; WX 755 ; N dcaron ; B 85 -13 929 740 ; C -1 ; WX 655 ; N Umacron ; B 118 -13 716 899 ; C -1 ; WX 608 ; N uring ; B 100 -13 642 807 ; C -1 ; WX 332 ; N threesuperior ; B 98 289 408 747 ; C -1 ; WX 869 ; N Ograve ; B 105 -13 901 949 ; C -1 ; WX 740 ; N Agrave ; B 12 0 729 949 ; C -1 ; WX 740 ; N Abreve ; B 12 0 729 917 ; C -1 ; WX 606 ; N multiply ; B 87 24 612 482 ; C -1 ; WX 608 ; N uacute ; B 100 -13 642 786 ; C -1 ; WX 426 ; N Tcaron ; B 131 0 557 927 ; C -1 ; WX 476 ; N partialdiff ; B 46 -38 529 704 ; C -1 ; WX 536 ; N ydieresis ; B 97 -192 624 765 ; C -1 ; WX 740 ; N Nacute ; B 75 0 801 949 ; C -1 ; WX 200 ; N icircumflex ; B 41 0 395 764 ; C -1 ; WX 536 ; N Ecircumflex ; B 70 0 612 927 ; C -1 ; WX 683 ; N adieresis ; B 88 -13 722 765 ; C -1 ; WX 650 ; N edieresis ; B 84 -13 664 765 ; C -1 ; WX 647 ; N cacute ; B 87 -13 678 786 ; C -1 ; WX 610 ; N nacute ; B 65 0 609 786 ; C -1 ; WX 608 ; N umacron ; B 100 -13 642 736 ; C -1 ; WX 740 ; N Ncaron ; B 75 0 801 927 ; C -1 ; WX 226 ; N Iacute ; B 76 0 439 949 ; C -1 ; WX 606 ; N plusminus ; B 47 -24 618 518 ; C -1 ; WX 672 ; N brokenbar ; B 272 -147 503 703 ; C -1 ; WX 747 ; N registered ; B 53 -12 830 752 ; C -1 ; WX 872 ; N Gbreve ; B 103 -13 891 917 ; C -1 ; WX 226 ; N Idotaccent ; B 76 0 322 928 ; C -1 ; WX 600 ; N summation ; B 15 -10 652 706 ; C -1 ; WX 536 ; N Egrave ; B 70 0 612 949 ; C -1 ; WX 301 ; N racute ; B 65 0 467 786 ; C -1 ; WX 655 ; N omacron ; B 88 -13 669 736 ; C -1 ; WX 480 ; N Zacute ; B 12 0 596 949 ; C -1 ; WX 480 ; N Zcaron ; B 12 0 596 927 ; C -1 ; WX 549 ; N greaterequal ; B 26 0 604 658 ; C -1 ; WX 790 ; N Eth ; B 104 0 813 740 ; C -1 ; WX 813 ; N Ccedilla ; B 105 -222 870 752 ; C -1 ; WX 200 ; N lcommaaccent ; B -43 -222 272 740 ; C -1 ; WX 359 ; N tcaron ; B 104 0 539 780 ; C -1 ; WX 650 ; N eogonek ; B 84 -191 664 561 ; C -1 ; WX 655 ; N Uogonek ; B 118 -191 716 740 ; C -1 ; WX 740 ; N Aacute ; B 12 0 729 949 ; C -1 ; WX 740 ; N Adieresis ; B 12 0 729 928 ; C -1 ; WX 650 ; N egrave ; B 84 -13 664 786 ; C -1 ; WX 425 ; N zacute ; B 10 0 498 786 ; C -1 ; WX 200 ; N iogonek ; B -8 -191 272 740 ; C -1 ; WX 869 ; N Oacute ; B 105 -13 901 949 ; C -1 ; WX 655 ; N oacute ; B 88 -13 669 786 ; C -1 ; WX 683 ; N amacron ; B 88 -13 722 736 ; C -1 ; WX 388 ; N sacute ; B 49 -13 451 786 ; C -1 ; WX 200 ; N idieresis ; B 65 0 353 765 ; C -1 ; WX 869 ; N Ocircumflex ; B 105 -13 901 927 ; C -1 ; WX 655 ; N Ugrave ; B 118 -13 716 949 ; C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ; C -1 ; WX 682 ; N thorn ; B 28 -192 699 740 ; C -1 ; WX 332 ; N twosuperior ; B 74 296 433 747 ; C -1 ; WX 869 ; N Odieresis ; B 105 -13 901 928 ; C -1 ; WX 608 ; N mu ; B 46 -184 628 547 ; C -1 ; WX 200 ; N igrave ; B 65 0 296 786 ; C -1 ; WX 655 ; N ohungarumlaut ; B 88 -13 715 786 ; C -1 ; WX 536 ; N Eogonek ; B 70 -191 612 740 ; C -1 ; WX 685 ; N dcroat ; B 85 -13 801 740 ; C -1 ; WX 831 ; N threequarters ; B 126 0 825 747 ; C -1 ; WX 498 ; N Scedilla ; B 57 -222 561 753 ; C -1 ; WX 260 ; N lcaron ; B 65 0 446 740 ; C -1 ; WX 591 ; N Kcommaaccent ; B 81 -202 728 740 ; C -1 ; WX 462 ; N Lacute ; B 82 0 518 949 ; C -1 ; WX 1000 ; N trademark ; B 137 296 953 740 ; C -1 ; WX 650 ; N edotaccent ; B 84 -13 664 765 ; C -1 ; WX 226 ; N Igrave ; B 76 0 340 949 ; C -1 ; WX 226 ; N Imacron ; B 76 0 423 899 ; C -1 ; WX 462 ; N Lcaron ; B 82 0 592 740 ; C -1 ; WX 831 ; N onehalf ; B 164 0 810 740 ; C -1 ; WX 549 ; N lessequal ; B 26 0 645 658 ; C -1 ; WX 655 ; N ocircumflex ; B 88 -13 669 764 ; C -1 ; WX 610 ; N ntilde ; B 65 0 609 754 ; C -1 ; WX 655 ; N Uhungarumlaut ; B 118 -13 725 949 ; C -1 ; WX 536 ; N Eacute ; B 70 0 612 949 ; C -1 ; WX 650 ; N emacron ; B 84 -13 664 736 ; C -1 ; WX 673 ; N gbreve ; B 56 -215 707 754 ; C -1 ; WX 831 ; N onequarter ; B 183 0 770 740 ; C -1 ; WX 498 ; N Scaron ; B 57 -13 593 927 ; C -1 ; WX 498 ; N Scommaaccent ; B 57 -222 561 753 ; C -1 ; WX 869 ; N Ohungarumlaut ; B 105 -13 901 949 ; C -1 ; WX 400 ; N degree ; B 158 421 451 709 ; C -1 ; WX 655 ; N ograve ; B 88 -13 669 786 ; C -1 ; WX 813 ; N Ccaron ; B 105 -13 870 927 ; C -1 ; WX 608 ; N ugrave ; B 100 -13 642 786 ; C -1 ; WX 453 ; N radical ; B 78 -58 585 756 ; C -1 ; WX 744 ; N Dcaron ; B 74 0 773 927 ; C -1 ; WX 301 ; N rcommaaccent ; B -33 -222 395 561 ; C -1 ; WX 740 ; N Ntilde ; B 75 0 801 917 ; C -1 ; WX 655 ; N otilde ; B 88 -13 669 754 ; C -1 ; WX 607 ; N Rcommaaccent ; B 70 -202 669 740 ; C -1 ; WX 462 ; N Lcommaaccent ; B 82 -222 474 740 ; C -1 ; WX 740 ; N Atilde ; B 12 0 729 917 ; C -1 ; WX 740 ; N Aogonek ; B 12 -191 729 740 ; C -1 ; WX 740 ; N Aring ; B 12 0 729 955 ; C -1 ; WX 869 ; N Otilde ; B 105 -13 901 917 ; C -1 ; WX 425 ; N zdotaccent ; B 10 0 498 765 ; C -1 ; WX 536 ; N Ecaron ; B 70 0 612 927 ; C -1 ; WX 226 ; N Iogonek ; B 1 -191 287 740 ; C -1 ; WX 502 ; N kcommaaccent ; B 70 -202 588 740 ; C -1 ; WX 606 ; N minus ; B 92 219 608 287 ; C -1 ; WX 226 ; N Icircumflex ; B 76 0 439 927 ; C -1 ; WX 610 ; N ncaron ; B 65 0 619 764 ; C -1 ; WX 339 ; N tcommaaccent ; B 27 -222 431 740 ; C -1 ; WX 606 ; N logicalnot ; B 110 109 627 388 ; C -1 ; WX 655 ; N odieresis ; B 88 -13 669 765 ; C -1 ; WX 608 ; N udieresis ; B 100 -13 642 765 ; C -1 ; WX 549 ; N notequal ; B 33 -29 610 541 ; C -1 ; WX 673 ; N gcommaaccent ; B 56 -215 707 786 ; C -1 ; WX 655 ; N eth ; B 88 -12 675 753 ; C -1 ; WX 425 ; N zcaron ; B 10 0 527 764 ; C -1 ; WX 610 ; N ncommaaccent ; B 65 -202 609 561 ; C -1 ; WX 332 ; N onesuperior ; B 190 296 335 740 ; C -1 ; WX 200 ; N imacron ; B 65 0 379 736 ; EndCharMetrics StartKernData StartKernPairs 922 KPX A T -81 KPX A Tcaron -81 KPX A Tcommaaccent -81 KPX A V -122 KPX A W -95 KPX A Y -122 KPX A Yacute -122 KPX A Ydieresis -122 KPX A v -73 KPX A w -65 KPX A y -72 KPX A yacute -72 KPX A ydieresis -72 KPX Aacute T -81 KPX Aacute Tcaron -81 KPX Aacute Tcommaaccent -81 KPX Aacute V -122 KPX Aacute W -95 KPX Aacute Y -122 KPX Aacute Yacute -122 KPX Aacute Ydieresis -122 KPX Aacute v -73 KPX Aacute w -65 KPX Aacute y -72 KPX Aacute yacute -72 KPX Aacute ydieresis -72 KPX Abreve T -81 KPX Abreve Tcaron -81 KPX Abreve Tcommaaccent -81 KPX Abreve V -122 KPX Abreve W -95 KPX Abreve Y -122 KPX Abreve Yacute -122 KPX Abreve Ydieresis -122 KPX Abreve v -73 KPX Abreve w -65 KPX Abreve y -72 KPX Abreve yacute -72 KPX Abreve ydieresis -72 KPX Acircumflex T -81 KPX Acircumflex Tcaron -81 KPX Acircumflex Tcommaaccent -81 KPX Acircumflex V -122 KPX Acircumflex W -95 KPX Acircumflex Y -122 KPX Acircumflex Yacute -122 KPX Acircumflex Ydieresis -122 KPX Acircumflex v -73 KPX Acircumflex w -65 KPX Acircumflex y -72 KPX Acircumflex yacute -72 KPX Acircumflex ydieresis -72 KPX Adieresis T -81 KPX Adieresis Tcaron -81 KPX Adieresis Tcommaaccent -81 KPX Adieresis V -122 KPX Adieresis W -95 KPX Adieresis Y -122 KPX Adieresis Yacute -122 KPX Adieresis Ydieresis -122 KPX Adieresis v -73 KPX Adieresis w -65 KPX Adieresis y -72 KPX Adieresis yacute -72 KPX Adieresis ydieresis -72 KPX Agrave T -81 KPX Agrave Tcaron -81 KPX Agrave Tcommaaccent -81 KPX Agrave V -122 KPX Agrave W -95 KPX Agrave Y -122 KPX Agrave Yacute -122 KPX Agrave Ydieresis -122 KPX Agrave v -73 KPX Agrave w -65 KPX Agrave y -72 KPX Agrave yacute -72 KPX Agrave ydieresis -72 KPX Amacron T -81 KPX Amacron Tcaron -81 KPX Amacron Tcommaaccent -81 KPX Amacron V -122 KPX Amacron W -95 KPX Amacron Y -122 KPX Amacron Yacute -122 KPX Amacron Ydieresis -122 KPX Amacron v -73 KPX Amacron w -65 KPX Amacron y -72 KPX Amacron yacute -72 KPX Amacron ydieresis -72 KPX Aogonek T -81 KPX Aogonek Tcaron -81 KPX Aogonek Tcommaaccent -81 KPX Aogonek V -122 KPX Aogonek W -95 KPX Aogonek Y -122 KPX Aogonek Yacute -122 KPX Aogonek Ydieresis -122 KPX Aogonek v -73 KPX Aogonek w -65 KPX Aogonek y -72 KPX Aogonek yacute -72 KPX Aogonek ydieresis -72 KPX Aring T -81 KPX Aring Tcaron -81 KPX Aring Tcommaaccent -81 KPX Aring V -122 KPX Aring W -95 KPX Aring Y -122 KPX Aring Yacute -122 KPX Aring Ydieresis -122 KPX Aring v -73 KPX Aring w -65 KPX Aring y -72 KPX Aring yacute -72 KPX Aring ydieresis -72 KPX Atilde T -81 KPX Atilde Tcaron -81 KPX Atilde Tcommaaccent -81 KPX Atilde V -122 KPX Atilde W -95 KPX Atilde Y -122 KPX Atilde Yacute -122 KPX Atilde Ydieresis -122 KPX Atilde v -73 KPX Atilde w -65 KPX Atilde y -72 KPX Atilde yacute -72 KPX Atilde ydieresis -72 KPX F A -60 KPX F Aacute -60 KPX F Abreve -60 KPX F Acircumflex -60 KPX F Adieresis -60 KPX F Agrave -60 KPX F Amacron -60 KPX F Aogonek -60 KPX F Aring -60 KPX F Atilde -60 KPX F comma -122 KPX F period -79 KPX L T -46 KPX L Tcaron -46 KPX L Tcommaaccent -46 KPX L V -113 KPX L W -67 KPX L Y -91 KPX L Yacute -91 KPX L Ydieresis -91 KPX L y -23 KPX L yacute -23 KPX L ydieresis -23 KPX Lacute T -46 KPX Lacute Tcaron -46 KPX Lacute Tcommaaccent -46 KPX Lacute V -113 KPX Lacute W -67 KPX Lacute Y -91 KPX Lacute Yacute -91 KPX Lacute Ydieresis -91 KPX Lacute y -23 KPX Lacute yacute -23 KPX Lacute ydieresis -23 KPX Lcaron y -23 KPX Lcaron yacute -23 KPX Lcaron ydieresis -23 KPX Lcommaaccent T -46 KPX Lcommaaccent Tcaron -46 KPX Lcommaaccent Tcommaaccent -46 KPX Lcommaaccent V -113 KPX Lcommaaccent W -67 KPX Lcommaaccent Y -91 KPX Lcommaaccent Yacute -91 KPX Lcommaaccent Ydieresis -91 KPX Lcommaaccent y -23 KPX Lcommaaccent yacute -23 KPX Lcommaaccent ydieresis -23 KPX Lslash T -46 KPX Lslash Tcaron -46 KPX Lslash Tcommaaccent -46 KPX Lslash V -113 KPX Lslash W -67 KPX Lslash Y -91 KPX Lslash Yacute -91 KPX Lslash Ydieresis -91 KPX Lslash y -23 KPX Lslash yacute -23 KPX Lslash ydieresis -23 KPX P A -74 KPX P Aacute -74 KPX P Abreve -74 KPX P Acircumflex -74 KPX P Adieresis -74 KPX P Agrave -74 KPX P Amacron -74 KPX P Aogonek -74 KPX P Aring -74 KPX P Atilde -74 KPX P comma -123 KPX P period -91 KPX R T 6 KPX R Tcaron 6 KPX R Tcommaaccent 6 KPX R V -39 KPX R W 2 KPX R Y -20 KPX R Yacute -20 KPX R Ydieresis -20 KPX R y 32 KPX R yacute 32 KPX R ydieresis 32 KPX Racute T 6 KPX Racute Tcaron 6 KPX Racute Tcommaaccent 6 KPX Racute V -39 KPX Racute W 2 KPX Racute Y -20 KPX Racute Yacute -20 KPX Racute Ydieresis -20 KPX Racute y 32 KPX Racute yacute 32 KPX Racute ydieresis 32 KPX Rcaron T 6 KPX Rcaron Tcaron 6 KPX Rcaron Tcommaaccent 6 KPX Rcaron V -39 KPX Rcaron W 2 KPX Rcaron Y -20 KPX Rcaron Yacute -20 KPX Rcaron Ydieresis -20 KPX Rcaron y 32 KPX Rcaron yacute 32 KPX Rcaron ydieresis 32 KPX Rcommaaccent T 6 KPX Rcommaaccent Tcaron 6 KPX Rcommaaccent Tcommaaccent 6 KPX Rcommaaccent V -39 KPX Rcommaaccent W 2 KPX Rcommaaccent Y -20 KPX Rcommaaccent Yacute -20 KPX Rcommaaccent Ydieresis -20 KPX Rcommaaccent y 32 KPX Rcommaaccent yacute 32 KPX Rcommaaccent ydieresis 32 KPX T A -81 KPX T Aacute -81 KPX T Abreve -81 KPX T Acircumflex -81 KPX T Adieresis -81 KPX T Agrave -81 KPX T Amacron -81 KPX T Aogonek -81 KPX T Aring -81 KPX T Atilde -81 KPX T a -52 KPX T aacute -52 KPX T abreve -52 KPX T acircumflex -52 KPX T adieresis -52 KPX T agrave -52 KPX T amacron -52 KPX T aogonek -52 KPX T aring -52 KPX T atilde -52 KPX T c -51 KPX T cacute -51 KPX T ccaron -51 KPX T ccedilla -51 KPX T colon 3 KPX T comma -102 KPX T e -49 KPX T eacute -49 KPX T ecaron -49 KPX T ecircumflex -49 KPX T edieresis -49 KPX T edotaccent -49 KPX T egrave -49 KPX T emacron -49 KPX T eogonek -49 KPX T i 31 KPX T iacute 31 KPX T icircumflex 31 KPX T idieresis 31 KPX T igrave 31 KPX T imacron 31 KPX T iogonek 31 KPX T o -49 KPX T oacute -49 KPX T ocircumflex -49 KPX T odieresis -49 KPX T ograve -49 KPX T ohungarumlaut -49 KPX T omacron -49 KPX T oslash -49 KPX T otilde -49 KPX T period -71 KPX T r -30 KPX T racute -30 KPX T rcaron -30 KPX T rcommaaccent -30 KPX T s -23 KPX T sacute -23 KPX T scedilla -23 KPX T scommaaccent -23 KPX T semicolon -29 KPX T u -46 KPX T uacute -46 KPX T ucircumflex -46 KPX T udieresis -46 KPX T ugrave -46 KPX T uhungarumlaut -46 KPX T umacron -46 KPX T uogonek -46 KPX T uring -46 KPX T w 7 KPX T y 5 KPX T yacute 5 KPX T ydieresis 5 KPX Tcaron A -81 KPX Tcaron Aacute -81 KPX Tcaron Abreve -81 KPX Tcaron Acircumflex -81 KPX Tcaron Adieresis -81 KPX Tcaron Agrave -81 KPX Tcaron Amacron -81 KPX Tcaron Aogonek -81 KPX Tcaron Aring -81 KPX Tcaron Atilde -81 KPX Tcaron a -52 KPX Tcaron aacute -52 KPX Tcaron abreve -52 KPX Tcaron acircumflex -52 KPX Tcaron adieresis -52 KPX Tcaron agrave -52 KPX Tcaron amacron -52 KPX Tcaron aogonek -52 KPX Tcaron aring -52 KPX Tcaron atilde -52 KPX Tcaron c -51 KPX Tcaron cacute -51 KPX Tcaron ccaron -51 KPX Tcaron ccedilla -51 KPX Tcaron colon 3 KPX Tcaron comma -102 KPX Tcaron e -49 KPX Tcaron eacute -49 KPX Tcaron ecaron -49 KPX Tcaron ecircumflex -49 KPX Tcaron edieresis -49 KPX Tcaron edotaccent -49 KPX Tcaron egrave -49 KPX Tcaron emacron -49 KPX Tcaron eogonek -49 KPX Tcaron i 31 KPX Tcaron iacute 31 KPX Tcaron iogonek 31 KPX Tcaron o -49 KPX Tcaron oacute -49 KPX Tcaron ocircumflex -49 KPX Tcaron odieresis -49 KPX Tcaron ograve -49 KPX Tcaron ohungarumlaut -49 KPX Tcaron omacron -49 KPX Tcaron oslash -49 KPX Tcaron otilde -49 KPX Tcaron period -71 KPX Tcaron r -30 KPX Tcaron racute -30 KPX Tcaron rcaron -30 KPX Tcaron rcommaaccent -30 KPX Tcaron s -23 KPX Tcaron sacute -23 KPX Tcaron scaron -23 KPX Tcaron scedilla -23 KPX Tcaron scommaaccent -23 KPX Tcaron semicolon -29 KPX Tcaron u -46 KPX Tcaron uacute -46 KPX Tcaron ucircumflex -46 KPX Tcaron udieresis -46 KPX Tcaron ugrave -46 KPX Tcaron uhungarumlaut -46 KPX Tcaron umacron -46 KPX Tcaron uogonek -46 KPX Tcaron uring -46 KPX Tcaron w 7 KPX Tcaron y 5 KPX Tcaron yacute 5 KPX Tcaron ydieresis 5 KPX Tcommaaccent A -81 KPX Tcommaaccent Aacute -81 KPX Tcommaaccent Abreve -81 KPX Tcommaaccent Acircumflex -81 KPX Tcommaaccent Adieresis -81 KPX Tcommaaccent Agrave -81 KPX Tcommaaccent Amacron -81 KPX Tcommaaccent Aogonek -81 KPX Tcommaaccent Aring -81 KPX Tcommaaccent Atilde -81 KPX Tcommaaccent a -52 KPX Tcommaaccent aacute -52 KPX Tcommaaccent abreve -52 KPX Tcommaaccent acircumflex -52 KPX Tcommaaccent adieresis -52 KPX Tcommaaccent agrave -52 KPX Tcommaaccent amacron -52 KPX Tcommaaccent aogonek -52 KPX Tcommaaccent aring -52 KPX Tcommaaccent atilde -52 KPX Tcommaaccent c -51 KPX Tcommaaccent cacute -51 KPX Tcommaaccent ccaron -51 KPX Tcommaaccent ccedilla -51 KPX Tcommaaccent colon 3 KPX Tcommaaccent comma -102 KPX Tcommaaccent e -49 KPX Tcommaaccent eacute -49 KPX Tcommaaccent ecaron -49 KPX Tcommaaccent ecircumflex -49 KPX Tcommaaccent edieresis -49 KPX Tcommaaccent edotaccent -49 KPX Tcommaaccent egrave -49 KPX Tcommaaccent emacron -49 KPX Tcommaaccent eogonek -49 KPX Tcommaaccent i 31 KPX Tcommaaccent iacute 31 KPX Tcommaaccent iogonek 31 KPX Tcommaaccent o -49 KPX Tcommaaccent oacute -49 KPX Tcommaaccent ocircumflex -49 KPX Tcommaaccent odieresis -49 KPX Tcommaaccent ograve -49 KPX Tcommaaccent ohungarumlaut -49 KPX Tcommaaccent omacron -49 KPX Tcommaaccent oslash -49 KPX Tcommaaccent otilde -49 KPX Tcommaaccent period -71 KPX Tcommaaccent r -30 KPX Tcommaaccent racute -30 KPX Tcommaaccent rcaron -30 KPX Tcommaaccent rcommaaccent -30 KPX Tcommaaccent s -23 KPX Tcommaaccent sacute -23 KPX Tcommaaccent scedilla -23 KPX Tcommaaccent scommaaccent -23 KPX Tcommaaccent semicolon -29 KPX Tcommaaccent u -46 KPX Tcommaaccent uacute -46 KPX Tcommaaccent ucircumflex -46 KPX Tcommaaccent udieresis -46 KPX Tcommaaccent ugrave -46 KPX Tcommaaccent uhungarumlaut -46 KPX Tcommaaccent umacron -46 KPX Tcommaaccent uogonek -46 KPX Tcommaaccent uring -46 KPX Tcommaaccent w 7 KPX Tcommaaccent y 5 KPX Tcommaaccent yacute 5 KPX Tcommaaccent ydieresis 5 KPX V A -122 KPX V Aacute -122 KPX V Abreve -122 KPX V Acircumflex -122 KPX V Adieresis -122 KPX V Agrave -122 KPX V Amacron -122 KPX V Aogonek -122 KPX V Aring -122 KPX V Atilde -122 KPX V a -104 KPX V aacute -104 KPX V abreve -104 KPX V acircumflex -104 KPX V adieresis -104 KPX V agrave -104 KPX V amacron -104 KPX V aogonek -104 KPX V aring -104 KPX V atilde -104 KPX V colon -1 KPX V comma -106 KPX V e -101 KPX V eacute -101 KPX V ecaron -101 KPX V ecircumflex -101 KPX V edieresis -101 KPX V edotaccent -101 KPX V egrave -101 KPX V emacron -101 KPX V eogonek -101 KPX V i 5 KPX V iacute 5 KPX V iogonek 5 KPX V o -101 KPX V oacute -101 KPX V ocircumflex -101 KPX V odieresis -101 KPX V ograve -101 KPX V ohungarumlaut -101 KPX V omacron -101 KPX V oslash -101 KPX V otilde -101 KPX V period -75 KPX V r -40 KPX V racute -40 KPX V rcaron -40 KPX V rcommaaccent -40 KPX V semicolon -33 KPX V u -40 KPX V uacute -40 KPX V ucircumflex -40 KPX V udieresis -40 KPX V ugrave -40 KPX V uhungarumlaut -40 KPX V umacron -40 KPX V uogonek -40 KPX V uring -40 KPX V y -25 KPX V yacute -25 KPX V ydieresis -25 KPX W A -73 KPX W Aacute -73 KPX W Abreve -73 KPX W Acircumflex -73 KPX W Adieresis -73 KPX W Agrave -73 KPX W Amacron -73 KPX W Aogonek -73 KPX W Aring -73 KPX W Atilde -73 KPX W a -50 KPX W aacute -50 KPX W abreve -50 KPX W acircumflex -50 KPX W adieresis -50 KPX W agrave -50 KPX W amacron -50 KPX W aogonek -50 KPX W aring -50 KPX W atilde -50 KPX W colon -1 KPX W comma -106 KPX W e -47 KPX W eacute -47 KPX W ecaron -47 KPX W ecircumflex -47 KPX W edieresis -47 KPX W edotaccent -47 KPX W egrave -47 KPX W emacron -47 KPX W eogonek -47 KPX W i 6 KPX W iacute 6 KPX W icircumflex 16 KPX W idieresis 16 KPX W igrave 16 KPX W imacron 16 KPX W iogonek 6 KPX W o -46 KPX W oacute -46 KPX W ocircumflex -46 KPX W odieresis -46 KPX W ograve -46 KPX W ohungarumlaut -46 KPX W omacron -46 KPX W oslash -46 KPX W otilde -46 KPX W period -74 KPX W r -29 KPX W racute -29 KPX W rcaron -29 KPX W rcommaaccent -29 KPX W semicolon -33 KPX W u -30 KPX W uacute -30 KPX W ucircumflex -30 KPX W udieresis -30 KPX W ugrave -30 KPX W uhungarumlaut -30 KPX W umacron -30 KPX W uogonek -30 KPX W uring -30 KPX W y -2 KPX W yacute -2 KPX W ydieresis -2 KPX Y A -122 KPX Y Aacute -122 KPX Y Abreve -122 KPX Y Acircumflex -122 KPX Y Adieresis -122 KPX Y Agrave -122 KPX Y Amacron -122 KPX Y Aogonek -122 KPX Y Aring -122 KPX Y Atilde -122 KPX Y a -93 KPX Y aacute -93 KPX Y abreve -93 KPX Y acircumflex -93 KPX Y adieresis -93 KPX Y agrave -93 KPX Y amacron -93 KPX Y aogonek -93 KPX Y aring -93 KPX Y atilde -93 KPX Y colon 9 KPX Y comma -97 KPX Y e -89 KPX Y eacute -89 KPX Y ecaron -89 KPX Y ecircumflex -89 KPX Y edieresis -89 KPX Y edotaccent -89 KPX Y egrave -89 KPX Y emacron -89 KPX Y eogonek -89 KPX Y i 13 KPX Y iacute 13 KPX Y icircumflex 23 KPX Y idieresis 23 KPX Y igrave 23 KPX Y imacron 23 KPX Y iogonek 13 KPX Y o -89 KPX Y oacute -89 KPX Y ocircumflex -89 KPX Y odieresis -89 KPX Y ograve -89 KPX Y ohungarumlaut -89 KPX Y omacron -89 KPX Y oslash -89 KPX Y otilde -89 KPX Y p -67 KPX Y period -65 KPX Y q -93 KPX Y semicolon -23 KPX Y u -69 KPX Y uacute -69 KPX Y ucircumflex -69 KPX Y udieresis -69 KPX Y ugrave -69 KPX Y uhungarumlaut -69 KPX Y umacron -69 KPX Y uogonek -69 KPX Y uring -69 KPX Y v -17 KPX Yacute A -122 KPX Yacute Aacute -122 KPX Yacute Abreve -122 KPX Yacute Acircumflex -122 KPX Yacute Adieresis -122 KPX Yacute Agrave -122 KPX Yacute Amacron -122 KPX Yacute Aogonek -122 KPX Yacute Aring -122 KPX Yacute Atilde -122 KPX Yacute a -93 KPX Yacute aacute -93 KPX Yacute abreve -93 KPX Yacute acircumflex -93 KPX Yacute adieresis -93 KPX Yacute agrave -93 KPX Yacute amacron -93 KPX Yacute aogonek -93 KPX Yacute aring -93 KPX Yacute atilde -93 KPX Yacute colon 9 KPX Yacute comma -97 KPX Yacute e -89 KPX Yacute eacute -89 KPX Yacute ecaron -89 KPX Yacute ecircumflex -89 KPX Yacute edieresis -89 KPX Yacute edotaccent -89 KPX Yacute egrave -89 KPX Yacute emacron -89 KPX Yacute eogonek -89 KPX Yacute i 13 KPX Yacute iacute 13 KPX Yacute icircumflex 23 KPX Yacute idieresis 23 KPX Yacute igrave 23 KPX Yacute imacron 23 KPX Yacute iogonek 13 KPX Yacute o -89 KPX Yacute oacute -89 KPX Yacute ocircumflex -89 KPX Yacute odieresis -89 KPX Yacute ograve -89 KPX Yacute ohungarumlaut -89 KPX Yacute omacron -89 KPX Yacute oslash -89 KPX Yacute otilde -89 KPX Yacute p -67 KPX Yacute period -65 KPX Yacute q -93 KPX Yacute semicolon -23 KPX Yacute u -69 KPX Yacute uacute -69 KPX Yacute ucircumflex -69 KPX Yacute udieresis -69 KPX Yacute ugrave -69 KPX Yacute uhungarumlaut -69 KPX Yacute umacron -69 KPX Yacute uogonek -69 KPX Yacute uring -69 KPX Yacute v -17 KPX Ydieresis A -122 KPX Ydieresis Aacute -122 KPX Ydieresis Abreve -122 KPX Ydieresis Acircumflex -122 KPX Ydieresis Adieresis -122 KPX Ydieresis Agrave -122 KPX Ydieresis Amacron -122 KPX Ydieresis Aogonek -122 KPX Ydieresis Aring -122 KPX Ydieresis Atilde -122 KPX Ydieresis a -93 KPX Ydieresis aacute -93 KPX Ydieresis abreve -93 KPX Ydieresis acircumflex -93 KPX Ydieresis adieresis -93 KPX Ydieresis agrave -93 KPX Ydieresis amacron -93 KPX Ydieresis aogonek -93 KPX Ydieresis aring -93 KPX Ydieresis atilde -93 KPX Ydieresis colon 9 KPX Ydieresis comma -97 KPX Ydieresis e -89 KPX Ydieresis eacute -89 KPX Ydieresis ecaron -89 KPX Ydieresis ecircumflex -89 KPX Ydieresis edieresis -89 KPX Ydieresis edotaccent -89 KPX Ydieresis egrave -89 KPX Ydieresis emacron -89 KPX Ydieresis eogonek -89 KPX Ydieresis i 13 KPX Ydieresis iacute 13 KPX Ydieresis icircumflex 23 KPX Ydieresis idieresis 23 KPX Ydieresis igrave 23 KPX Ydieresis imacron 23 KPX Ydieresis iogonek 13 KPX Ydieresis o -89 KPX Ydieresis oacute -89 KPX Ydieresis ocircumflex -89 KPX Ydieresis odieresis -89 KPX Ydieresis ograve -89 KPX Ydieresis ohungarumlaut -89 KPX Ydieresis omacron -89 KPX Ydieresis oslash -89 KPX Ydieresis otilde -89 KPX Ydieresis p -67 KPX Ydieresis period -65 KPX Ydieresis q -93 KPX Ydieresis semicolon -23 KPX Ydieresis u -69 KPX Ydieresis uacute -69 KPX Ydieresis ucircumflex -69 KPX Ydieresis udieresis -69 KPX Ydieresis ugrave -69 KPX Ydieresis uhungarumlaut -69 KPX Ydieresis umacron -69 KPX Ydieresis uogonek -69 KPX Ydieresis uring -69 KPX Ydieresis v -17 KPX f f 3 KPX r c -7 KPX r cacute -7 KPX r ccaron -7 KPX r ccedilla -7 KPX r comma -105 KPX r d -6 KPX r dcroat -6 KPX r e -4 KPX r eacute -4 KPX r ecaron -4 KPX r ecircumflex -4 KPX r edieresis -4 KPX r edotaccent -4 KPX r egrave -4 KPX r emacron -4 KPX r eogonek -4 KPX r f 48 KPX r g 1 KPX r gbreve 1 KPX r gcommaaccent 1 KPX r h 29 KPX r m 28 KPX r n 21 KPX r nacute 21 KPX r ncaron 21 KPX r ncommaaccent 21 KPX r ntilde 21 KPX r o -4 KPX r oacute -4 KPX r ocircumflex -4 KPX r odieresis -4 KPX r ograve -4 KPX r ohungarumlaut -4 KPX r omacron -4 KPX r oslash -4 KPX r otilde -4 KPX r period -73 KPX r q -8 KPX racute c -7 KPX racute cacute -7 KPX racute ccaron -7 KPX racute ccedilla -7 KPX racute comma -105 KPX racute d -6 KPX racute dcroat -6 KPX racute e -4 KPX racute eacute -4 KPX racute ecaron -4 KPX racute ecircumflex -4 KPX racute edieresis -4 KPX racute edotaccent -4 KPX racute egrave -4 KPX racute emacron -4 KPX racute eogonek -4 KPX racute f 48 KPX racute g 1 KPX racute gbreve 1 KPX racute gcommaaccent 1 KPX racute h 29 KPX racute m 28 KPX racute n 21 KPX racute nacute 21 KPX racute ncaron 21 KPX racute ncommaaccent 21 KPX racute ntilde 21 KPX racute o -4 KPX racute oacute -4 KPX racute ocircumflex -4 KPX racute odieresis -4 KPX racute ograve -4 KPX racute ohungarumlaut -4 KPX racute omacron -4 KPX racute oslash -4 KPX racute otilde -4 KPX racute period -73 KPX racute q -8 KPX rcaron c -7 KPX rcaron cacute -7 KPX rcaron ccaron -7 KPX rcaron ccedilla -7 KPX rcaron comma -105 KPX rcaron d -6 KPX rcaron dcroat -6 KPX rcaron e -4 KPX rcaron eacute -4 KPX rcaron ecaron -4 KPX rcaron ecircumflex -4 KPX rcaron edieresis -4 KPX rcaron edotaccent -4 KPX rcaron egrave -4 KPX rcaron emacron -4 KPX rcaron eogonek -4 KPX rcaron f 48 KPX rcaron g 1 KPX rcaron gbreve 1 KPX rcaron gcommaaccent 1 KPX rcaron h 29 KPX rcaron m 28 KPX rcaron n 21 KPX rcaron nacute 21 KPX rcaron ncaron 21 KPX rcaron ncommaaccent 21 KPX rcaron ntilde 21 KPX rcaron o -4 KPX rcaron oacute -4 KPX rcaron ocircumflex -4 KPX rcaron odieresis -4 KPX rcaron ograve -4 KPX rcaron ohungarumlaut -4 KPX rcaron omacron -4 KPX rcaron oslash -4 KPX rcaron otilde -4 KPX rcaron period -73 KPX rcaron q -8 KPX rcommaaccent c -7 KPX rcommaaccent cacute -7 KPX rcommaaccent ccaron -7 KPX rcommaaccent ccedilla -7 KPX rcommaaccent comma -105 KPX rcommaaccent d -6 KPX rcommaaccent dcroat -6 KPX rcommaaccent e -4 KPX rcommaaccent eacute -4 KPX rcommaaccent ecaron -4 KPX rcommaaccent ecircumflex -4 KPX rcommaaccent edieresis -4 KPX rcommaaccent edotaccent -4 KPX rcommaaccent egrave -4 KPX rcommaaccent emacron -4 KPX rcommaaccent eogonek -4 KPX rcommaaccent f 48 KPX rcommaaccent g 1 KPX rcommaaccent gbreve 1 KPX rcommaaccent gcommaaccent 1 KPX rcommaaccent h 29 KPX rcommaaccent m 28 KPX rcommaaccent n 21 KPX rcommaaccent nacute 21 KPX rcommaaccent ncaron 21 KPX rcommaaccent ncommaaccent 21 KPX rcommaaccent ntilde 21 KPX rcommaaccent o -4 KPX rcommaaccent oacute -4 KPX rcommaaccent ocircumflex -4 KPX rcommaaccent odieresis -4 KPX rcommaaccent ograve -4 KPX rcommaaccent ohungarumlaut -4 KPX rcommaaccent omacron -4 KPX rcommaaccent oslash -4 KPX rcommaaccent otilde -4 KPX rcommaaccent period -73 KPX rcommaaccent q -8 EndKernPairs EndKernData EndFontMetrics a2ps-4.14/afm/make_fonts_map.sh0000755000175000017500000001050710735323505015720 0ustar mhattamhatta#! /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 < 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.14/ANNOUNCE0000644000175000017500000001236110735331260012761 0ustar mhattamhattaDescription =========== 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 - fixnt fixes Windows NT PostScript files (thanks to Holger Bauer) - fixps fixes most common problems in PostScript files - pdiff prints a comparison between two files - psmandup eases Duplex printing on Simplex printers - psset inserts special PostScript requests (ManualFeed etc.) 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: http://www.gnu.org/software/a2ps/ There is also a mailing list set up to discuss around a2ps. To subscribe, please see http://lists.gnu.org/mailman/listinfo/a2ps. Contributions of any kind are most welcome! Please do *not* use this address to report bugs, use . Version 4.14 ============ * 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 Schulenberg. - Revised French translation. * Many other fixes, but the log is rather spotty ;-< 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.14/config.h.in0000644000175000017500000002755210735337305013671 0ustar mhattamhatta/* config.h.in. Generated from configure.in by autoheader. */ /* Define to 1 if the `closedir' function returns void instead of `int'. */ #undef CLOSEDIR_VOID /* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP systems. This function is required for `alloca.c' support on those systems. */ #undef CRAY_STACKSEG_END /* Define to 1 if using `alloca.c'. */ #undef C_ALLOCA /* The char used to separate component of a path */ #undef DIRECTORY_SEPARATOR /* Define to 1 if translation of program messages to the user's native language is requested. */ #undef ENABLE_NLS /* The concatenation of the strings `GNU ', and PACKAGE. */ #undef GNU_PACKAGE /* Define if TIOCGWINSZ requires sys/ioctl.h */ #undef GWINSZ_IN_SYS_IOCTL /* Define to 1 if you have the `alarm' function. */ #undef HAVE_ALARM /* Define to 1 if you have `alloca', as a function or macro. */ #undef HAVE_ALLOCA /* Define to 1 if you have and it should be used (not on Ultrix). */ #undef HAVE_ALLOCA_H /* Define to 1 if you have the `atexit' function. */ #undef HAVE_ATEXIT /* Define to 1 if you have the `bcopy' function. */ #undef HAVE_BCOPY /* Define to 1 if you have the `bzero' function. */ #undef HAVE_BZERO /* Define if backslash-a works in C strings. */ #undef HAVE_C_BACKSLASH_A /* Define if the GNU dcgettext() function is already present or preinstalled. */ #undef HAVE_DCGETTEXT /* Define to 1 if you have the declaration of `fputs', and to 0 if you don't. */ #undef HAVE_DECL_FPUTS /* Define to 1 if you have the declaration of `strlen', and to 0 if you don't. */ #undef HAVE_DECL_STRLEN /* Define to 1 if you have the declaration of `sys_siglist', and to 0 if you don't. */ #undef HAVE_DECL_SYS_SIGLIST /* Define to 1 if you have the declaration of `tzname', and to 0 if you don't. */ #undef HAVE_DECL_TZNAME /* Define to 1 if you have the header file, and it defines `DIR'. */ #undef HAVE_DIRENT_H /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H /* Define if the malloc check has been performed. */ #undef HAVE_DONE_WORKING_MALLOC_CHECK /* Define if the realloc check has been performed. */ #undef HAVE_DONE_WORKING_REALLOC_CHECK /* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */ #undef HAVE_DOPRNT /* Define to 1 if you have the header file. */ #undef HAVE_ERRNO_H /* Define to 1 if you have the header file. */ #undef HAVE_FCNTL_H /* Define to 1 if your system has a working POSIX `fnmatch' function. */ #undef HAVE_FNMATCH /* Define to 1 if you have the header file. */ #undef HAVE_FNMATCH_H /* Define to 1 if you have the `getcwd' function. */ #undef HAVE_GETCWD /* Define to 1 if you have the `gethostname' function. */ #undef HAVE_GETHOSTNAME /* Define if you have the function `getpwuid'. */ #undef HAVE_GETPWUID /* Define if the GNU gettext() function is already present or preinstalled. */ #undef HAVE_GETTEXT /* Define to 1 if you have the `getuid' function. */ #undef HAVE_GETUID /* Define if you have the iconv() function. */ #undef HAVE_ICONV /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define if exists, doesn't clash with , and declares uintmax_t. */ #undef HAVE_INTTYPES_H_WITH_UINTMAX /* Define to 1 if you have the `isascii' function. */ #undef HAVE_ISASCII /* Define to 1 if you have the `iswprint' function. */ #undef HAVE_ISWPRINT /* Define to 1 if you have the 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 header file. */ #undef HAVE_MALLOC_H /* Define to 1 if you have the header file. */ #undef HAVE_MATH_H /* Define to 1 if you have the `mblen' function. */ #undef HAVE_MBLEN /* Define to 1 if you have the `mbrlen' function. */ #undef HAVE_MBRLEN /* Define to 1 if mbrtowc and mbstate_t are properly declared. */ #undef HAVE_MBRTOWC /* Define to 1 if you have the `mbsinit' function. */ #undef HAVE_MBSINIT /* Define to 1 if declares mbstate_t. */ #undef HAVE_MBSTATE_T /* Define to 1 if you have the `memcpy' function. */ #undef HAVE_MEMCPY /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the `memset' function. */ #undef HAVE_MEMSET /* Define to 1 if you have the header file, and it defines `DIR'. */ #undef HAVE_NDIR_H /* Define to 1 if libc includes obstacks. */ #undef HAVE_OBSTACK /* Define to 1 if you have the `on_exit' function. */ #undef HAVE_ON_EXIT /* Define to 1 if you have the header file. */ #undef HAVE_PAPER_H /* Define to 1 if you have the `psignal' function. */ #undef HAVE_PSIGNAL /* Define to 1 if you have the header file. */ #undef HAVE_PWD_H /* Define to 1 if you have the `rename' function. */ #undef HAVE_RENAME /* Define to 1 if you have the `setlocale' function. */ #undef HAVE_SETLOCALE /* Define to 1 if you have the header file. */ #undef HAVE_STDARG_H /* Define to 1 if you have the header file. */ #undef HAVE_STDBOOL_H /* Define to 1 if you have the header file. */ #undef HAVE_STDDEF_H /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define if exists, doesn't clash with , and declares uintmax_t. */ #undef HAVE_STDINT_H_WITH_UINTMAX /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the `stpcpy' function. */ #undef HAVE_STPCPY /* Define to 1 if you have the `stpncpy' function. */ #undef HAVE_STPNCPY /* Define to 1 if you have the `strcasecmp' function. */ #undef HAVE_STRCASECMP /* Define to 1 if you have the `strchr' function. */ #undef HAVE_STRCHR /* Define to 1 if you have the `strerror' function. */ #undef HAVE_STRERROR /* Define to 1 if you have the `strerror_r' function. */ #undef HAVE_STRERROR_R /* Define to 1 if you have the `strftime' function. */ #undef HAVE_STRFTIME /* Define to 1 if you have the `stricmp' function. */ #undef HAVE_STRICMP /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the `strncasecmp' function. */ #undef HAVE_STRNCASECMP /* Define to 1 if you have the `strnicmp' function. */ #undef HAVE_STRNICMP /* Define to 1 if you have the `strsignal' function. */ #undef HAVE_STRSIGNAL /* Define to 1 if you have the `strtoul' function. */ #undef HAVE_STRTOUL /* Define to 1 if you have the `strtoull' function. */ #undef HAVE_STRTOULL /* Define to 1 if you have the `strtoumax' function. */ #undef HAVE_STRTOUMAX /* Define to 1 if `pw_gecos' is member of `struct passwd'. */ #undef HAVE_STRUCT_PASSWD_PW_GECOS /* Define to 1 if `tm_zone' is member of `struct tm'. */ #undef HAVE_STRUCT_TM_TM_ZONE /* Define if you have the systempapername function */ #undef HAVE_SYSTEMPAPERNAME /* Define to 1 if you have the header file, and it defines `DIR'. */ #undef HAVE_SYS_DIR_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_IOCTL_H /* Define to 1 if you have the header file, and it defines `DIR'. */ #undef HAVE_SYS_NDIR_H /* Define if your system has `sys_siglist'. */ #undef HAVE_SYS_SIGLIST /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TIME_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have that is POSIX.1 compatible. */ #undef HAVE_SYS_WAIT_H /* Define to 1 if you have the `tempnam' function. */ #undef HAVE_TEMPNAM /* Define to 1 if you have the header file. */ #undef HAVE_TERMIOS_H /* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use `HAVE_STRUCT_TM_TM_ZONE' instead. */ #undef HAVE_TM_ZONE /* Define to 1 if you don't have `tm_zone' but do have the external array `tzname'. */ #undef HAVE_TZNAME /* Define to 1 if you have the `tzset' function. */ #undef HAVE_TZSET /* Define to 1 if you have the `uname' function. */ #undef HAVE_UNAME /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define if you have the unsigned long long type. */ #undef HAVE_UNSIGNED_LONG_LONG /* Define to 1 if you have the `vprintf' function. */ #undef HAVE_VPRINTF /* Define to 1 if you have the header file. */ #undef HAVE_WCHAR_H /* Define to 1 if you have the header file. */ #undef HAVE_WCTYPE_H /* 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 /* 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 version of this package. */ #undef PACKAGE_VERSION /* The char used to separate paths. */ #undef PATH_SEPARATOR /* Define if compiler has function prototypes */ #undef PROTOTYPES /* Define as the return type of signal handlers (`int' or `void'). */ #undef RETSIGTYPE /* 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 do not work properly. */ #undef STAT_MACROS_BROKEN /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Define to enable syntax table support in `regex'. */ #undef SYNTAX_TABLE /* Define to 1 if you can safely include both and . */ #undef TIME_WITH_SYS_TIME /* Define to 1 if your declares `struct tm'. */ #undef TM_IN_SYS_TIME /* Version number of package */ #undef VERSION /* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a `char[]'. */ #undef YYTEXT_POINTER /* Define to 1 if on AIX 3. System headers sometimes define this. We just want to avoid a redefinition error message. */ #ifndef _ALL_SOURCE # undef _ALL_SOURCE #endif /* Define to 1 if on MINIX. */ #undef _MINIX /* Define to 2 if the system does not provide POSIX.1 features except with this defined. */ #undef _POSIX_1_SOURCE /* Define to 1 if you need to in order for `stat' and other things to work. */ #undef _POSIX_SOURCE /* Define to empty if `const' does not conform to ANSI C. */ #undef const /* Define to rpl_exit if the replacement function should be used */ #undef exit /* Define to rpl_fnmatch if the replacement function should be used. */ #undef fnmatch /* 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 /* Define to rpl_malloc if the replacement function should be used. */ #undef malloc /* Define to a type if does not define. */ #undef mbstate_t /* Define to rpl_mktime if the replacement function should be used. */ #undef mktime /* Define to `int' if does not define. */ #undef pid_t /* Define to rpl_realloc if the replacement function should be used. */ #undef realloc /* Define to the replacement function if should be used. */ #undef rename /* Define to `unsigned int' if does not define. */ #undef size_t /* Define to the replacement function if should be used. */ #undef strcasecmp /* Define to the replacement function if should be used. */ #undef strncasecmp /* Define to `unsigned char' if does not define. */ #undef uchar /* Define to unsigned long or unsigned long long if and don't define. */ #undef uintmax_t a2ps-4.14/Makefile.maint0000644000175000017500000003020510735323033014373 0ustar mhattamhatta# -*-Makefile-*- # This Makefile fragment is shared between fileutils, sh-utils, textutils, # CPPI, Bison, and Autoconf. ## Copyright (C) 2001, 2002, 2003 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., 59 Temple Place - Suite 330, Boston, MA ## 02111-1307, USA. # Do not save the original name or timestamp in the .tar.gz file. GZIP_ENV = '--no-name --best' CVS = cvs prev_version_file ?= .prev-version THIS_VERSION_REGEXP = $(subst .,\.,$(VERSION)) PREV_VERSION := $(shell cat $(prev_version_file)) PREV_VERSION_REGEXP := $(shell echo $(PREV_VERSION)|sed 's/\./\\./g') tag-package = $(shell echo "$(PACKAGE)" | tr '[:lower:]' '[:upper:]') tag-this-version = $(subst .,_,$(VERSION)) tag-prev-version = $(subst .,_,$(PREV_VERSION)) this-cvs-tag = $(tag-package)-$(tag-this-version) prev-cvs-tag = $(tag-package)-$(tag-prev-version) my_distdir = $(PACKAGE)-$(VERSION) # Old releases are stored here. # Used for diffs and xdeltas. release_archive_dir ?= ../release ## --------------- ## ## Sanity checks. ## ## --------------- ## # Checks that don't require cvs. # Run `changelog-check' last, as previous test may reveal problems requiring # new ChangeLog entries. local-check = \ po-check copyright-check writable-files m4-check author_mark_check \ changelog-check strftime-check header-check .PHONY: $(local-check) # Make sure C source files in src/ don't include xalloc.h directly, # since they all already include it via sys2.h. # It's not a big deal -- just aesthetics. header-check: if test -f $(srcdir)/src/sys2.h; then \ if grep 'xalloc\.h' $(srcdir)/src/*.c; then \ exit 1; \ fi; \ fi # Ensure that date's --help output stays in sync with the info # documentation for GNU strftime. The only exception is %N, # which date accepts but GNU strftime does not. extract_char = sed 's/^[^%][^%]*%\(.\).*/\1/' strftime-check: if test -f $(srcdir)/src/date.c; then \ grep '^ %. ' $(srcdir)/src/date.c | sort \ | $(extract_char) > $@-src; \ { echo N; \ info libc date calendar format | grep '^ `%.'\' \ | $(extract_char); } | sort > $@-info; \ diff -u $@-src $@-info || exit 1; \ rm -f $@-src $@-info; \ fi changelog-check: if head ChangeLog | grep 'Version $(VERSION)' >/dev/null; then \ :; \ else \ echo "$(VERSION) not in ChangeLog" 1>&2; \ exit 1; \ fi m4-check: @grep 'AC_DEFUN([^[]' m4/*.m4 \ && { echo 'Makefile.maint: quote the first arg to AC_DEFUN' 1>&2; \ exit 1; } || : # Verify that all source files using _() are listed in po/POTFILES.in. po-check: if test -f po/POTFILES.in; then \ grep -E -v '^(#|$$)' po/POTFILES.in | sort > $@-1; \ files=; \ for file in lib/*.[chly] src/*.[chly]; do \ case $$file in \ *.[ch]) \ base=`expr " $$file" : ' \(.*\)\..'`; \ { test -f $$base.l || test -f $$base.y; } && continue;; \ esac; \ files="$$files $$file"; \ done; \ grep -E -l '\bN?_\([^)"]*("|$$)' $$files | sort > $@-2; \ diff -u $@-1 $@-2 || exit 1; \ rm -f $@-1 $@-2; \ fi # In a definition of #define AUTHORS "... and ..." where the RHS contains # the English word `and', the string must be marked with `N_ (...)' so that # gettext recognizes it as a string requiring translation. author_mark_check: @grep '^# *define AUTHORS "[^"]* and ' src/*.c |grep -v ' N_ (' && \ { echo 'Makefile.maint: enclose the above strings in N_ (...)' 1>&2; \ exit 1; } || : # Check that `make alpha' will not fail at the end of the process. writable-files: if test -d $(release_archive_dir); then :; else \ mkdir $(release_archive_dir); \ fi for file in $(distdir).tar.gz $(xd-delta) \ $(release_archive_dir)/$(distdir).tar.gz \ $(release_archive_dir)/$(xd-delta); do \ test -e $$file || continue; \ test -w $$file \ || { echo ERROR: $$file is not writable; fail=1; }; \ done; \ test "$$fail" && exit 1 || : v_etc_file = lib/version-etc.c # Make sure that the copyright date in $(v_etc_file) is up to date. copyright-check: @if test -f $(v_etc_file); then \ grep '"Copyright (C) $(shell date +%Y) Free' $(v_etc_file) \ >/dev/null \ || { echo 'out of date copyright in $(v_etc_file); update it' 1>&2; \ exit 1; }; \ fi # Sanity checks with the CVS repository. cvs-tag-check: echo $(this-cvs-tag); \ if $(CVS) -n log -h README | grep -e $(this-cvs-tag): >/dev/null; then \ echo "$(this-cvs-tag) as already been used; not tagging" 1>&2; \ exit 1; \ else :; fi cvs-diff-check: if $(CVS) diff >cvs-diffs; then \ rm cvs-diffs; \ else \ echo "Some files are locally modified:" 1>&2; \ cat cvs-diffs; \ exit 1; \ fi cvs-check: cvs-diff-check cvs-tag-check maintainer-distcheck: changelog-check $(MAKE) distcheck $(MAKE) my-distcheck # Tag before making distribution. Also, don't make a distribution if # checks fail. Also, make sure the NEWS file is up-to-date. # FIXME: use dist-hook/my-dist like distcheck-hook/my-distcheck. cvs-dist: $(local-check) cvs-check maintainer-distcheck $(CVS) update po $(CVS) tag -c $(this-cvs-tag) $(MAKE) dist # Use this to make sure we don't run these programs when building # from a virgin tgz file, below. null_AM_MAKEFLAGS = \ ACLOCAL=false \ AUTOCONF=false \ AUTOMAKE=false \ AUTOHEADER=false \ MAKEINFO=false # Detect format-string/arg-list mismatches that would normally be obscured # by the use of _(). The --disable-nls effectively defines away that macro, # and building with CFLAGS='-Wformat -Werror' causes any format warning to be # treated as a failure. t=./=test my-distcheck: $(local-check) -rm -rf $(t) mkdir $(t) GZIP=$(GZIP_ENV) $(AMTAR) -C $(t) -zxf $(distdir).tar.gz cd $(t)/$(distdir) \ && ./configure --disable-nls \ && $(MAKE) CFLAGS='-Wformat -Werror' \ AM_MAKEFLAGS='$(null_AM_MAKEFLAGS)' \ && $(MAKE) dvi \ && $(MAKE) check \ && $(MAKE) distclean cd $(t) && mv $(distdir) $(distdir).old \ && $(AMTAR) -zxf ../$(distdir).tar.gz diff -ur $(t)/$(distdir).old $(t)/$(distdir) -rm -rf $(t) @echo "========================"; \ echo "$(distdir).tar.gz is ready for distribution"; \ echo "========================" WGET = wget WGETFLAGS = -C off tgz-md5 = $(shell md5sum < $(my_distdir).tar.gz|sed 's/ -//') tgz-sha1 = $(shell sha1sum < $(my_distdir).tar.gz|sed 's/ -//') bz2-md5 = $(shell md5sum < $(my_distdir).tar.bz2|sed 's/ -//') bz2-sha1 = $(shell sha1sum < $(my_distdir).tar.bz2|sed 's/ -//') xdelta-md5 = $(shell md5sum < $(xd-delta)|sed 's/ -//') xdelta-sha1 = $(shell sha1sum < $(xd-delta)|sed 's/ -//') tgz-size = $(shell du --human $(my_distdir).tar.gz|sed 's/\([MkK]\).*/ \1B/') bz2-size = $(shell du --human $(my_distdir).tar.bz2|sed 's/\([MkK]\).*/ \1B/') xd-size = $(shell du --human $(xd-delta)|sed 's/\([MkK]\).*/ \1B/') rel-check: tarz=/tmp/rel-check-tarz-$$$$; \ md5_tmp=/tmp/rel-check-md5-$$$$; \ set -e; \ trap 'status=$$?; rm -f $$tarz $$md5_tmp; exit $$status' 0 1 2 3 15; \ $(WGET) $(WGETFLAGS) -q --output-document=$$tarz $(url); \ echo "$(md5) -" > $$md5_tmp; \ md5sum -c $$md5_tmp < $$tarz prev-tgz = $(PACKAGE)-$(PREV_VERSION).tar.gz xd-delta = $(PACKAGE)-$(PREV_VERSION)-$(VERSION).xdelta news-r1 = /^[^ ].*$(THIS_VERSION_REGEXP)[]:]/ news-r2 = /^[^ ].*$(PREV_VERSION_REGEXP)[]:]/ rel-files = $(xd-delta) $(distdir).tar.bz2 $(distdir).tar.gz announcement: NEWS ChangeLog $(rel-files) @( \ echo Subject: $(my_distdir) released; \ echo; \ echo FIXME: put comments here; \ echo; \ for url in $(url_dir_list); do \ echo " $$url/$(my_distdir).tar.gz ($(tgz-size))"; \ echo " $$url/$(my_distdir).tar.bz2 ($(bz2-size))"; \ done; \ echo; \ echo And here are xdelta-style diffs; \ echo; \ for url in $(url_dir_list); do \ echo " $$url/$(xd-delta) ($(xd-size))"; \ done; \ echo; \ echo "Here are the MD5 and SHA1 signatures:"; \ echo; \ echo "$(tgz-md5) $(my_distdir).tar.gz"; \ echo "$(bz2-md5) $(my_distdir).tar.bz2"; \ echo "$(xdelta-md5) $(xd-delta)"; \ echo "$(tgz-sha1) $(my_distdir).tar.gz"; \ echo "$(bz2-sha1) $(my_distdir).tar.bz2"; \ echo "$(xdelta-sha1) $(xd-delta)"; \ echo; \ echo NEWS:; \ sed -n "$(news-r1),$(news-r2)p" NEWS \ | grep -v '^\['; \ echo; \ echo ChangeLog entries:; \ find . -name ChangeLog -maxdepth 2 \ | xargs $(CVS) diff -up -r$(prev-cvs-tag) -rHEAD \ | sed -n 's/^+//p' \ | perl -ne 'm!^\+\+ (\./)?! or print,next;' \ -e 'print "\n"."*"x70 ."\n"; s///; print; print "*"x70 ."\n"'; \ ) ## ---------------- ## ## Updating files. ## ## ---------------- ## ftp-gnu = ftp://ftp.gnu.org/gnu # Use mv, if you don't have/want move-if-change. move_if_change ?= move-if-change # --------------------- # # Updating everything. # # --------------------- # .PHONY: update local_updates ?= wget-update cvs-update po-update update: $(local_updates) # ------------------- # # Updating PO files. # # ------------------- # po_repo = http://www.iro.umontreal.ca/contrib/po/maint/$(PACKAGE) .PHONY: do-po-update po-update do-po-update: tmppo=/tmp/$(PACKAGE)-$(VERSION)-po &&\ rm -rf $$tmppo && \ mkdir $$tmppo && \ (cd $$tmppo && $(WGET) $(WGETFLAGS) -r -l1 -nd --no-parent -A '*.po' $(po_repo)) &&\ cp $$tmppo/*.po po cd po && $(MAKE) update-po $(MAKE) po-check po-update: if test -d "po"; then \ $(MAKE) do-po-update; \ fi # -------------------------- # # Updating GNU build tools. # # -------------------------- # # The following pseudo table associates a local directory and a URL # with each of the files that belongs to some other package and is # regularly updated from the specified URL. wget_files ?= $(srcdir)/config/config.guess \ $(srcdir)/config/config.sub \ $(srcdir)/src/ansi2knr.c \ $(srcdir)/config/texinfo.tex get-targets = $(patsubst %, get-%, $(wget_files)) config.guess-url_prefix = $(ftp-gnu)/config/ config.sub-url_prefix = $(ftp-gnu)/config/ ansi2knr.c-url_prefix = ftp://ftp.cs.wisc.edu/ghost/ texinfo.tex-url_prefix = $(ftp-gnu)/texinfo/ standards.texi-url_prefix = $(ftp-gnu)/GNUinfo/ make-stds.texi-url_prefix = $(ftp-gnu)/GNUinfo/ target = $(patsubst get-%, %, $@) url = $($(notdir $(target))-url_prefix)$(notdir $(target)) .PHONY: $(get-targets) $(get-targets): $(WGET) $(WGETFLAGS) $(url) -O $(target).t \ && $(move_if_change) $(target).t $(target) cvs_files ?= $(srcdir)/config/depcomp $(srcdir)/config/missing $(srcdir)/config/mkinstalldirs \ $(srcdir)/config/install-sh $(srcdir)/src/ansi2knr.c automake_repo=:pserver:anoncvs:anoncvs@sources.redhat.com:/cvs/automake .PHONY: wget-update wget-update: $(get-targets) .PHONY: cvs-update cvs-update: for f in $(cvs_files); do \ test -f $$f || { echo "*** skipping $$f" 1>&2; continue; }; \ file=`basename $$f`; \ echo checking out $$file...; \ $(CVS) -d $(automake_repo) co -p automake/lib/$$file> $$f.t \ && $(move_if_change) $$f.t $$f; \ done define emit-upload-commands echo ===================================== echo ===================================== echo upload $(PACKAGE) $(PREV_VERSION) $(VERSION) echo '# send the /tmp/announcement e-mail' echo ===================================== echo ===================================== endef $(xd-delta): $(release_archive_dir)/$(prev-tgz) $(distdir).tar.gz xdelta delta -9 $^ $@ || : alpha: $(local-check) $(MAKE) cvs-dist $(MAKE) $(xd-delta) $(MAKE) -s announcement > /tmp/announce-$(my_distdir) ln $(rel-files) $(release_archive_dir) chmod a-w $(rel-files) echo $(VERSION) > $(prev_version_file) $(CVS) ci -m. $(prev_version_file) @$(emit-upload-commands) a2ps-4.14/aclocal.m40000644000175000017500000102043310735337277013506 0ustar mhattamhatta# generated automatically by aclocal 1.9.6 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005 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. # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # serial 51 Debian 1.5.24-2 AC_PROG_LIBTOOL # AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED) # ----------------------------------------------------------- # If this macro is not defined by Autoconf, define it here. m4_ifdef([AC_PROVIDE_IFELSE], [], [m4_define([AC_PROVIDE_IFELSE], [m4_ifdef([AC_PROVIDE_$1], [$2], [$3])])]) # AC_PROG_LIBTOOL # --------------- AC_DEFUN([AC_PROG_LIBTOOL], [AC_REQUIRE([_AC_PROG_LIBTOOL])dnl dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX. AC_PROVIDE_IFELSE([AC_PROG_CXX], [AC_LIBTOOL_CXX], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX ])]) dnl And a similar setup for Fortran 77 support AC_PROVIDE_IFELSE([AC_PROG_F77], [AC_LIBTOOL_F77], [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77 ])]) dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly. dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both. AC_PROVIDE_IFELSE([AC_PROG_GCJ], [AC_LIBTOOL_GCJ], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], [AC_LIBTOOL_GCJ], [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ], [AC_LIBTOOL_GCJ], [ifdef([AC_PROG_GCJ], [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])]) ifdef([A][M_PROG_GCJ], [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])]) ifdef([LT_AC_PROG_GCJ], [define([LT_AC_PROG_GCJ], defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])]) ])])# AC_PROG_LIBTOOL # _AC_PROG_LIBTOOL # ---------------- AC_DEFUN([_AC_PROG_LIBTOOL], [AC_REQUIRE([AC_LIBTOOL_SETUP])dnl AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl # Prevent multiple expansion define([AC_PROG_LIBTOOL], []) ])# _AC_PROG_LIBTOOL # AC_LIBTOOL_SETUP # ---------------- AC_DEFUN([AC_LIBTOOL_SETUP], [AC_PREREQ(2.50)dnl AC_REQUIRE([AC_ENABLE_SHARED])dnl AC_REQUIRE([AC_ENABLE_STATIC])dnl AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_PROG_LD])dnl AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl AC_REQUIRE([AC_PROG_NM])dnl AC_REQUIRE([AC_PROG_LN_S])dnl AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl # Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! AC_REQUIRE([AC_OBJEXT])dnl AC_REQUIRE([AC_EXEEXT])dnl dnl AC_LIBTOOL_SYS_MAX_CMD_LEN AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE AC_LIBTOOL_OBJDIR AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl _LT_AC_PROG_ECHO_BACKSLASH 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 "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed='sed -e 1s/^X//' [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 avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' # Constants: rm="rm -f" # Global variables: default_ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a ltmain="$ac_aux_dir/ltmain.sh" ofile="$default_ofile" with_gnu_ld="$lt_cv_prog_gnu_ld" AC_CHECK_TOOL(AR, ar, false) AC_CHECK_TOOL(RANLIB, ranlib, :) AC_CHECK_TOOL(STRIP, strip, :) old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$AR" && AR=ar test -z "$AR_FLAGS" && AR_FLAGS=cru test -z "$AS" && AS=as test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$DLLTOOL" && DLLTOOL=dlltool test -z "$LD" && LD=ld test -z "$LN_S" && LN_S="ln -s" test -z "$MAGIC_CMD" && MAGIC_CMD=file test -z "$NM" && NM=nm test -z "$SED" && SED=sed test -z "$OBJDUMP" && OBJDUMP=objdump test -z "$RANLIB" && RANLIB=: test -z "$STRIP" && STRIP=: test -z "$ac_objext" && ac_objext=o # 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 openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi _LT_CC_BASENAME([$compiler]) # Only perform the check for file, if the check method requires it case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then AC_PATH_MAGIC fi ;; esac AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no) AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], enable_win32_dll=yes, enable_win32_dll=no) AC_ARG_ENABLE([libtool-lock], [AC_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes AC_ARG_WITH([pic], [AC_HELP_STRING([--with-pic], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [pic_mode="$withval"], [pic_mode=default]) test -z "$pic_mode" && pic_mode=default # Use C for the default configuration in the libtool script tagname= AC_LIBTOOL_LANG_C_CONFIG _LT_AC_TAGCONFIG ])# AC_LIBTOOL_SETUP # _LT_AC_SYS_COMPILER # ------------------- AC_DEFUN([_LT_AC_SYS_COMPILER], [AC_REQUIRE([AC_PROG_CC])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_AC_SYS_COMPILER # _LT_CC_BASENAME(CC) # ------------------- # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. AC_DEFUN([_LT_CC_BASENAME], [for cc_temp in $1""; do case $cc_temp in compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` ]) # _LT_COMPILER_BOILERPLATE # ------------------------ # Check for compiler boilerplate output or warnings with # the simple compiler test code. AC_DEFUN([_LT_COMPILER_BOILERPLATE], [AC_REQUIRE([LT_AC_PROG_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. AC_DEFUN([_LT_LINKER_BOILERPLATE], [AC_REQUIRE([LT_AC_PROG_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 conftest* ])# _LT_LINKER_BOILERPLATE # _LT_AC_SYS_LIBPATH_AIX # ---------------------- # 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. AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX], [AC_REQUIRE([LT_AC_PROG_SED])dnl AC_LINK_IFELSE(AC_LANG_PROGRAM,[ lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/ p } }' 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 "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi],[]) if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ])# _LT_AC_SYS_LIBPATH_AIX # _LT_AC_SHELL_INIT(ARG) # ---------------------- AC_DEFUN([_LT_AC_SHELL_INIT], [ifdef([AC_DIVERSION_NOTICE], [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], [AC_DIVERT_PUSH(NOTICE)]) $1 AC_DIVERT_POP ])# _LT_AC_SHELL_INIT # _LT_AC_PROG_ECHO_BACKSLASH # -------------------------- # Add some code to the start of the generated configure script which # will find an echo command which doesn't interpret backslashes. AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH], [_LT_AC_SHELL_INIT([ # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} case X$ECHO in X*--fallback-echo) # Remove one level of quotation (which was required for Make). ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` ;; esac echo=${ECHO-echo} if test "X[$]1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. shift elif test "X[$]1" = X--fallback-echo; then # Avoid inline document here, it may be left over : elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then # Yippee, $echo works! : else # Restart under the correct shell. exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} fi if test "X[$]1" = X--fallback-echo; then # used as fallback echo shift cat </dev/null 2>&1 && unset CDPATH if test -z "$ECHO"; then if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... if (echo_test_string=`eval $cmd`) 2>/dev/null && echo_test_string=`eval $cmd` && (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null then break fi done fi if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then : else # The Solaris, AIX, and Digital Unix default echo programs unquote # backslashes. This makes it impossible to quote backslashes using # echo "$something" | sed 's/\\/\\\\/g' # # So, first we look for a working echo in the user's PATH. lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$dir/echo" break fi done IFS="$lt_save_ifs" if test "X$echo" = Xecho; then # We didn't find a better echo, so look for alternatives. if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # This shell has a builtin print -r that does the trick. echo='print -r' elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) && test "X$CONFIG_SHELL" != X/bin/ksh; then # If we have ksh, try running configure again with it. ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} export ORIGINAL_CONFIG_SHELL CONFIG_SHELL=/bin/ksh export CONFIG_SHELL exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"} else # Try using printf. echo='printf %s\n' if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then # Cool, printf works : elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL export CONFIG_SHELL SHELL="$CONFIG_SHELL" export SHELL echo="$CONFIG_SHELL [$]0 --fallback-echo" elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` && test "X$echo_testing_string" = 'X\t' && echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` && test "X$echo_testing_string" = "X$echo_test_string"; then echo="$CONFIG_SHELL [$]0 --fallback-echo" else # maybe with a smaller string... prev=: for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null then break fi prev="$cmd" done if test "$prev" != 'sed 50q "[$]0"'; then echo_test_string=`eval $prev` export echo_test_string exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"} else # Oops. We lost completely, so just stick with echo. echo=echo fi fi fi fi fi fi # Copy echo and quote the copy suitably for passing to libtool from # the Makefile, instead of quoting the original, which is used later. ECHO=$echo if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo" fi AC_SUBST(ECHO) ])])# _LT_AC_PROG_ECHO_BACKSLASH # _LT_AC_LOCK # ----------- AC_DEFUN([_LT_AC_LOCK], [AC_ARG_ENABLE([libtool-lock], [AC_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test "x$enable_libtool_lock" != xno && 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 which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '[#]line __oline__ "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file 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* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|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" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*) 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_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_POP]) if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; sparc*-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) LD="${LD-ld} -m elf64_sparc" ;; *) LD="${LD-ld} -64" ;; esac ;; esac fi rm -rf conftest* ;; AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], [*-*-cygwin* | *-*-mingw* | *-*-pw32*) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) ;; ]) esac need_locks="$enable_libtool_lock" ])# _LT_AC_LOCK # AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------------------- # Check whether the given compiler option works AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [AC_REQUIRE([LT_AC_PROG_SED]) AC_CACHE_CHECK([$1], [$2], [$2=no ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$3" # 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:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:__oline__: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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 x"[$]$2" = xyes; then ifelse([$5], , :, [$5]) else ifelse([$6], , :, [$6]) fi ])# AC_LIBTOOL_COMPILER_OPTION # AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [ACTION-SUCCESS], [ACTION-FAILURE]) # ------------------------------------------------------------ # Check whether the given compiler option works AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [AC_REQUIRE([LT_AC_PROG_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 "X$_lt_linker_boilerplate" | $Xsed -e '/^$/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 conftest* LDFLAGS="$save_LDFLAGS" ]) if test x"[$]$2" = xyes; then ifelse([$4], , :, [$4]) else ifelse([$5], , :, [$5]) fi ])# AC_LIBTOOL_LINKER_OPTION # AC_LIBTOOL_SYS_MAX_CMD_LEN # -------------------------- AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [# 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*) # 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; ;; 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; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # 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 ;; 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"; 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 SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} while (test "X"`$SHELL [$]0 --fallback-echo "X$teststring" 2>/dev/null` \ = "XX$teststring") >/dev/null 2>&1 && new_result=`expr "X$teststring" : ".*" 2>&1` && lt_cv_sys_max_cmd_len=$new_result && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done 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 ])# AC_LIBTOOL_SYS_MAX_CMD_LEN # _LT_AC_CHECK_DLFCN # ------------------ AC_DEFUN([_LT_AC_CHECK_DLFCN], [AC_CHECK_HEADERS(dlfcn.h)dnl ])# _LT_AC_CHECK_DLFCN # _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) # --------------------------------------------------------------------- AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF], [AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl if test "$cross_compiling" = yes; then : [$4] else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < #endif #include #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 #ifdef __cplusplus extern "C" void exit (int); #endif void fnord() { int i=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; /* dlclose (self); */ } else puts (dlerror ()); exit (status); }] 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_AC_TRY_DLOPEN_SELF # AC_LIBTOOL_DLOPEN_SELF # ---------------------- AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl if test "x$enable_dlopen" != xyes; 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*) 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 ]) ;; *) 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="-dld"], [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="-dld"]) ]) ]) ]) ]) ]) ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && 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_AC_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 "x$lt_cv_dlopen_self" = xyes; 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_AC_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 ])# AC_LIBTOOL_DLOPEN_SELF # AC_LIBTOOL_PROG_CC_C_O([TAGNAME]) # --------------------------------- # Check to see if options -c and -o are simultaneously supported by compiler AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O], [AC_REQUIRE([LT_AC_PROG_SED])dnl AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)], [_LT_AC_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:__oline__: $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:__oline__: \$? = $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 "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/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_AC_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 .. rmdir conftest $rm conftest* ]) ])# AC_LIBTOOL_PROG_CC_C_O # AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME]) # ----------------------------------------- # Check to see if we can do hard links to lock some files if needed AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_REQUIRE([_LT_AC_LOCK])dnl hard_links="nottested" if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; 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 "$hard_links" = no; 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 ])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS # AC_LIBTOOL_OBJDIR # ----------------- AC_DEFUN([AC_LIBTOOL_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 ])# AC_LIBTOOL_OBJDIR # AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME]) # ---------------------------------------------- # Check hardcoding attributes. AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_MSG_CHECKING([how to hardcode library paths into programs]) _LT_AC_TAGVAR(hardcode_action, $1)= if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \ test -n "$_LT_AC_TAGVAR(runpath_var, $1)" || \ test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then # We can hardcode non-existant directories. if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no && # 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 "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no && test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then # Linking always hardcodes the temporary library directory. _LT_AC_TAGVAR(hardcode_action, $1)=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. _LT_AC_TAGVAR(hardcode_action, $1)=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. _LT_AC_TAGVAR(hardcode_action, $1)=unsupported fi AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)]) if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi ])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH # AC_LIBTOOL_SYS_LIB_STRIP # ------------------------ AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP], [striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" AC_MSG_RESULT([yes]) else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi ;; *) AC_MSG_RESULT([no]) ;; esac fi ])# AC_LIBTOOL_SYS_LIB_STRIP # AC_LIBTOOL_SYS_DYNAMIC_LINKER # ----------------------------- # PORTME Fill in your ld.so characteristics AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_REQUIRE([LT_AC_PROG_SED])dnl AC_MSG_CHECKING([dynamic linker characteristics]) 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" m4_if($1,[],[ if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$lt_search_path_spec" | grep ';' >/dev/null ; then # 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 -e 's/;/ /g'` else lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # 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` 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" else 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; } }'` sys_lib_search_path_spec=`echo $lt_search_path_spec` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi]) 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 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' ;; aix4* | aix5*) version_type=linux need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; 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 # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.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}' else # 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' fi shlibpath_var=LIBPATH fi ;; amigaos*) 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=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $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' ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[[45]]*) version_type=linux 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*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$host_os in yes,cygwin* | yes,mingw* | yes,pw32*) 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' 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="/usr/lib /lib/w32api /lib /usr/local/lib" ;; mingw*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then # It is most probably a Windows format PATH printed by # mingw gcc, but we are running on Cygwin. Gcc prints its search # path with ; separators, and with drive letters. We can handle the # drive letters (cygwin fileutils understands them), so leave them, # especially as we might pass files found there to a mingw objdump, # which wouldn't understand a cygwinified path. Ahh. 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 ;; 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 ;; *) library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' # 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}${versuffix}$shared_ext ${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 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 ;; freebsd1*) dynamic_linker=no ;; freebsd* | dragonfly*) # 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[[123]]*) 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} $libname${shared_ext}' 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 ;; 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 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 "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; 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' ;; interix[[3-9]]*) 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' 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 "$lt_cv_prog_gnu_ld" = yes; then version_type=linux 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 ;; # This must be Linux ELF. linux* | k*bsd*-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' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # 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 # Append ld.so.conf contents 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;/^$/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 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=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=yes ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac 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 if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[[89]] | openbsd2.[[89]].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; 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 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 "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux 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 export_dynamic_flag_spec='${wl}-Blargedynsym' 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 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=freebsd-elf 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 hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' shlibpath_overrides_runpath=no else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' shlibpath_overrides_runpath=yes 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' ;; uts4*) version_type=linux 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 "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi ])# AC_LIBTOOL_SYS_DYNAMIC_LINKER # _LT_AC_TAGCONFIG # ---------------- AC_DEFUN([_LT_AC_TAGCONFIG], [AC_REQUIRE([LT_AC_PROG_SED])dnl AC_ARG_WITH([tags], [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@], [include additional configurations @<:@automatic@:>@])], [tagnames="$withval"]) if test -f "$ltmain" && test -n "$tagnames"; then if test ! -f "${ofile}"; then AC_MSG_WARN([output file `$ofile' does not exist]) fi if test -z "$LTCC"; then eval "`$SHELL ${ofile} --config | grep '^LTCC='`" if test -z "$LTCC"; then AC_MSG_WARN([output file `$ofile' does not look like a libtool script]) else AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile']) fi fi if test -z "$LTCFLAGS"; then eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`" fi # Extract list of available tagged configurations in $ofile. # Note that this assumes the entire list is on one line. available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for tagname in $tagnames; do IFS="$lt_save_ifs" # Check whether tagname contains only valid characters case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in "") ;; *) AC_MSG_ERROR([invalid tag name: $tagname]) ;; esac if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null then AC_MSG_ERROR([tag name \"$tagname\" already exists]) fi # Update the list of available tags. if test -n "$tagname"; then echo appending configuration tag \"$tagname\" to $ofile case $tagname in CXX) if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then AC_LIBTOOL_LANG_CXX_CONFIG else tagname="" fi ;; F77) if test -n "$F77" && test "X$F77" != "Xno"; then AC_LIBTOOL_LANG_F77_CONFIG else tagname="" fi ;; GCJ) if test -n "$GCJ" && test "X$GCJ" != "Xno"; then AC_LIBTOOL_LANG_GCJ_CONFIG else tagname="" fi ;; RC) AC_LIBTOOL_LANG_RC_CONFIG ;; *) AC_MSG_ERROR([Unsupported tag name: $tagname]) ;; esac # Append the new tag name to the list of available tags. if test -n "$tagname" ; then available_tags="$available_tags $tagname" fi fi done IFS="$lt_save_ifs" # Now substitute the updated list of available tags. if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then mv "${ofile}T" "$ofile" chmod +x "$ofile" else rm -f "${ofile}T" AC_MSG_ERROR([unable to update list of available tagged configurations.]) fi fi ])# _LT_AC_TAGCONFIG # AC_LIBTOOL_DLOPEN # ----------------- # enable checks for dlopen support AC_DEFUN([AC_LIBTOOL_DLOPEN], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP]) ])# AC_LIBTOOL_DLOPEN # AC_LIBTOOL_WIN32_DLL # -------------------- # declare package support for building win32 DLLs AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_BEFORE([$0], [AC_LIBTOOL_SETUP]) ])# AC_LIBTOOL_WIN32_DLL # AC_ENABLE_SHARED([DEFAULT]) # --------------------------- # implement the --enable-shared flag # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. AC_DEFUN([AC_ENABLE_SHARED], [define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl AC_ARG_ENABLE([shared], [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@], [build shared libraries @<:@default=]AC_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=]AC_ENABLE_SHARED_DEFAULT) ])# AC_ENABLE_SHARED # AC_DISABLE_SHARED # ----------------- # set the default shared flag to --disable-shared AC_DEFUN([AC_DISABLE_SHARED], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl AC_ENABLE_SHARED(no) ])# AC_DISABLE_SHARED # AC_ENABLE_STATIC([DEFAULT]) # --------------------------- # implement the --enable-static flag # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. AC_DEFUN([AC_ENABLE_STATIC], [define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl AC_ARG_ENABLE([static], [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@], [build static libraries @<:@default=]AC_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=]AC_ENABLE_STATIC_DEFAULT) ])# AC_ENABLE_STATIC # AC_DISABLE_STATIC # ----------------- # set the default static flag to --disable-static AC_DEFUN([AC_DISABLE_STATIC], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl AC_ENABLE_STATIC(no) ])# AC_DISABLE_STATIC # AC_ENABLE_FAST_INSTALL([DEFAULT]) # --------------------------------- # implement the --enable-fast-install flag # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. AC_DEFUN([AC_ENABLE_FAST_INSTALL], [define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl AC_ARG_ENABLE([fast-install], [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], [optimize for fast installation @<:@default=]AC_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=]AC_ENABLE_FAST_INSTALL_DEFAULT) ])# AC_ENABLE_FAST_INSTALL # AC_DISABLE_FAST_INSTALL # ----------------------- # set the default to --disable-fast-install AC_DEFUN([AC_DISABLE_FAST_INSTALL], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl AC_ENABLE_FAST_INSTALL(no) ])# AC_DISABLE_FAST_INSTALL # AC_LIBTOOL_PICMODE([MODE]) # -------------------------- # implement the --with-pic flag # MODE is either `yes' or `no'. If omitted, it defaults to `both'. AC_DEFUN([AC_LIBTOOL_PICMODE], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl pic_mode=ifelse($#,1,$1,default) ])# AC_LIBTOOL_PICMODE # AC_PROG_EGREP # ------------- # This is predefined starting with Autoconf 2.54, so this conditional # definition can be removed once we require Autoconf 2.54 or later. m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP], [AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep], [if echo a | (grep -E '(a|b)') >/dev/null 2>&1 then ac_cv_prog_egrep='grep -E' else ac_cv_prog_egrep='egrep' fi]) EGREP=$ac_cv_prog_egrep AC_SUBST([EGREP]) ])]) # AC_PATH_TOOL_PREFIX # ------------------- # find a file program which can recognize shared library AC_DEFUN([AC_PATH_TOOL_PREFIX], [AC_REQUIRE([AC_PROG_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="ifelse([$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 <&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 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 ])# AC_PATH_TOOL_PREFIX # AC_PATH_MAGIC # ------------- # find a file program which can recognize a shared library AC_DEFUN([AC_PATH_MAGIC], [AC_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 AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) else MAGIC_CMD=: fi fi ])# AC_PATH_MAGIC # AC_PROG_LD # ---------- # find the pathname to the GNU or non-GNU linker AC_DEFUN([AC_PROG_LD], [AC_ARG_WITH([gnu-ld], [AC_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]) AC_REQUIRE([LT_AC_PROG_SED])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl ac_prog=ld if test "$GCC" = yes; 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 "$with_gnu_ld" = yes; 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 &1 /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 lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) 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=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file 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]) 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 Linux ELF. linux* | k*bsd*-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=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; nto-qnx*) lt_cv_deplibs_check_method=unknown ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; 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 ;; 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 ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; esac ]) 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 ])# AC_DEPLIBS_CHECK_METHOD # AC_PROG_NM # ---------- # find the pathname to a BSD-compatible name lister AC_DEFUN([AC_PROG_NM], [AC_CACHE_CHECK([for BSD-compatible 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 case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) 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 test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm fi]) NM="$lt_cv_path_NM" ])# AC_PROG_NM # AC_CHECK_LIBM # ------------- # check for math library AC_DEFUN([AC_CHECK_LIBM], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cygwin* | *-*-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_CHECK_LIBM # AC_LIBLTDL_CONVENIENCE([DIRECTORY]) # ----------------------------------- # sets LIBLTDL to the link flags for the libltdl convenience library and # LTDLINCL to the include flags for the libltdl header and adds # --enable-ltdl-convenience to the configure arguments. Note that # AC_CONFIG_SUBDIRS is not called here. If DIRECTORY is not provided, # it is assumed to be `libltdl'. LIBLTDL will be prefixed with # '${top_builddir}/' and LTDLINCL will be prefixed with '${top_srcdir}/' # (note the single quotes!). If your package is not flat and you're not # using automake, define top_builddir and top_srcdir appropriately in # the Makefiles. AC_DEFUN([AC_LIBLTDL_CONVENIENCE], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl case $enable_ltdl_convenience in no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;; "") enable_ltdl_convenience=yes ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;; esac LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) # For backwards non-gettext consistent compatibility... INCLTDL="$LTDLINCL" ])# AC_LIBLTDL_CONVENIENCE # AC_LIBLTDL_INSTALLABLE([DIRECTORY]) # ----------------------------------- # sets LIBLTDL to the link flags for the libltdl installable library and # LTDLINCL to the include flags for the libltdl header and adds # --enable-ltdl-install to the configure arguments. Note that # AC_CONFIG_SUBDIRS is not called here. If DIRECTORY is not provided, # and an installed libltdl is not found, it is assumed to be `libltdl'. # LIBLTDL will be prefixed with '${top_builddir}/'# and LTDLINCL with # '${top_srcdir}/' (note the single quotes!). If your package is not # flat and you're not using automake, define top_builddir and top_srcdir # appropriately in the Makefiles. # In the future, this macro may have to be called after AC_PROG_LIBTOOL. AC_DEFUN([AC_LIBLTDL_INSTALLABLE], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl AC_CHECK_LIB(ltdl, lt_dlinit, [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no], [if test x"$enable_ltdl_install" = xno; then AC_MSG_WARN([libltdl not installed, but installation disabled]) else enable_ltdl_install=yes fi ]) if test x"$enable_ltdl_install" = x"yes"; then ac_configure_args="$ac_configure_args --enable-ltdl-install" LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) else ac_configure_args="$ac_configure_args --enable-ltdl-install=no" LIBLTDL="-lltdl" LTDLINCL= fi # For backwards non-gettext consistent compatibility... INCLTDL="$LTDLINCL" ])# AC_LIBLTDL_INSTALLABLE # AC_LIBTOOL_CXX # -------------- # enable support for C++ libraries AC_DEFUN([AC_LIBTOOL_CXX], [AC_REQUIRE([_LT_AC_LANG_CXX]) ])# AC_LIBTOOL_CXX # _LT_AC_LANG_CXX # --------------- AC_DEFUN([_LT_AC_LANG_CXX], [AC_REQUIRE([AC_PROG_CXX]) AC_REQUIRE([_LT_AC_PROG_CXXCPP]) _LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX]) ])# _LT_AC_LANG_CXX # _LT_AC_PROG_CXXCPP # ------------------ AC_DEFUN([_LT_AC_PROG_CXXCPP], [ AC_REQUIRE([AC_PROG_CXX]) if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then AC_PROG_CXXCPP fi ])# _LT_AC_PROG_CXXCPP # AC_LIBTOOL_F77 # -------------- # enable support for Fortran 77 libraries AC_DEFUN([AC_LIBTOOL_F77], [AC_REQUIRE([_LT_AC_LANG_F77]) ])# AC_LIBTOOL_F77 # _LT_AC_LANG_F77 # --------------- AC_DEFUN([_LT_AC_LANG_F77], [AC_REQUIRE([AC_PROG_F77]) _LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77]) ])# _LT_AC_LANG_F77 # AC_LIBTOOL_GCJ # -------------- # enable support for GCJ libraries AC_DEFUN([AC_LIBTOOL_GCJ], [AC_REQUIRE([_LT_AC_LANG_GCJ]) ])# AC_LIBTOOL_GCJ # _LT_AC_LANG_GCJ # --------------- AC_DEFUN([_LT_AC_LANG_GCJ], [AC_PROVIDE_IFELSE([AC_PROG_GCJ],[], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[], [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[], [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])], [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])], [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])]) _LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ]) ])# _LT_AC_LANG_GCJ # AC_LIBTOOL_RC # ------------- # enable support for Windows resource files AC_DEFUN([AC_LIBTOOL_RC], [AC_REQUIRE([LT_AC_PROG_RC]) _LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC]) ])# AC_LIBTOOL_RC # AC_LIBTOOL_LANG_C_CONFIG # ------------------------ # Ensure that the configuration vars for the C compiler are # suitably defined. Those variables are subsequently used by # AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG]) AC_DEFUN([_LT_AC_LANG_C_CONFIG], [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_AC_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_AC_SYS_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1) AC_LIBTOOL_PROG_COMPILER_PIC($1) AC_LIBTOOL_PROG_CC_C_O($1) AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) AC_LIBTOOL_PROG_LD_SHLIBS($1) AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) AC_LIBTOOL_SYS_LIB_STRIP AC_LIBTOOL_DLOPEN_SELF # Report which 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 "$can_build_shared" = "no" && 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 "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix4* | aix5*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no 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 "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) AC_LIBTOOL_CONFIG($1) AC_LANG_POP CC="$lt_save_CC" ])# AC_LIBTOOL_LANG_C_CONFIG # AC_LIBTOOL_LANG_CXX_CONFIG # -------------------------- # Ensure that the configuration vars for the C compiler are # suitably defined. Those variables are subsequently used by # AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)]) AC_DEFUN([_LT_AC_LANG_CXX_CONFIG], [AC_LANG_PUSH(C++) AC_REQUIRE([AC_PROG_CXX]) AC_REQUIRE([_LT_AC_PROG_CXXCPP]) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(allow_undefined_flag, $1)= _LT_AC_TAGVAR(always_export_symbols, $1)=no _LT_AC_TAGVAR(archive_expsym_cmds, $1)= _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= _LT_AC_TAGVAR(hardcode_minus_L, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_AC_TAGVAR(hardcode_automatic, $1)=no _LT_AC_TAGVAR(module_cmds, $1)= _LT_AC_TAGVAR(module_expsym_cmds, $1)= _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown _LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_AC_TAGVAR(no_undefined_flag, $1)= _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Dependencies to place before and after the object being linked: _LT_AC_TAGVAR(predep_objects, $1)= _LT_AC_TAGVAR(postdep_objects, $1)= _LT_AC_TAGVAR(predeps, $1)= _LT_AC_TAGVAR(postdeps, $1)= _LT_AC_TAGVAR(compiler_lib_search_path, $1)= # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o _LT_AC_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(int, char *[[]]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_AC_SYS_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_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++"} compiler=$CC _LT_AC_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) # We don't want -fno-exception wen compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' else _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration AC_PROG_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 "$with_gnu_ld" = yes; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_AC_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_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_AC_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_AC_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 "\-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_AC_TAGVAR(ld_shlibs, $1)=yes case $host_os in aix3*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; aix4* | aix5*) 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 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 # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; 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_AC_TAGVAR(archive_cmds, $1)='' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_AC_TAGVAR(link_all_deplibs, $1)=yes if test "$GXX" = yes; 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_AC_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_AC_TAGVAR(hardcode_minus_L, $1)=yes _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; 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 "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_AC_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty executable. _LT_AC_SYS_LIBPATH_AIX _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_AC_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_AC_SYS_LIBPATH_AIX _LT_AC_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_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience' _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared libraries. _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_AC_TAGVAR(always_export_symbols, $1)=no _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then _LT_AC_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 (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; 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_AC_TAGVAR(ld_shlibs, $1)=no fi ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[[012]]) _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[[012]]) _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_automatic, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='' _LT_AC_TAGVAR(link_all_deplibs, $1)=yes if test "$GXX" = yes ; then lt_int_apple_cc_single_mod=no output_verbose_link_cmd='echo' if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then lt_int_apple_cc_single_mod=yes fi if test "X$lt_int_apple_cc_single_mod" = Xyes ; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' else _LT_AC_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' fi _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds if test "X$lt_int_apple_cc_single_mod" = Xyes ; then _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "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~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' fi _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac fi ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac ;; freebsd[[12]]*) # C++ shared libraries reported to be fairly broken before switch to ELF _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; freebsd-elf*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_AC_TAGVAR(ld_shlibs, $1)=yes ;; gnu*) ;; hpux9*) _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_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_AC_TAGVAR(ld_shlibs, $1)=no ;; aCC*) _LT_AC_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 $output_objdir/$soname = $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) | grep "[[-]]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ;; *) if test "$GXX" = yes; then _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) ;; *) _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_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_AC_TAGVAR(ld_shlibs, $1)=no ;; aCC*) case $host_cpu in hppa*64*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_AC_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; echo $list' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${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_AC_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; interix[[3-9]]*) _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_AC_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_AC_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_AC_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_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -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_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' fi fi _LT_AC_TAGVAR(link_all_deplibs, $1)=yes ;; esac _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: ;; linux* | k*bsd*-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_AC_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_AC_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; echo $list' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir' _LT_AC_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_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc*) # 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_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_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_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_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_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC*) # Portland Group C++ compiler _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_AC_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' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_AC_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=`echo $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; echo $list' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_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; $echo \"$new_convenience\"` ${wl}--no-whole-archive' # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='echo' # 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_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; m88k*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_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::"' ;; openbsd2*) # C++ shared libraries are fairly broken _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_AC_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_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd='echo' else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; osf3*) 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_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; cxx*) _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_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=`echo $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; echo $list' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_AC_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" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_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 "\-L"' else # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; 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_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # the KAI C++ compiler. _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; cxx*) _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' _LT_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_AC_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=`echo $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; echo $list' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_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 "\-L"' else # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_AC_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_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_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; esac _LT_AC_TAGVAR(link_all_deplibs, $1)=yes output_verbose_link_cmd='echo' # 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_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler _LT_AC_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_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' if $CC --version | grep -v '^2\.7' > /dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared -nostdlib ${wl}-M $wl$lib.exp -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 \"\-L\"" else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_AC_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 -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 \"\-L\"" fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) _LT_AC_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_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_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 can NOT 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. # 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. # So that behaviour is only enabled if SCOABSPATH is set to a # non-empty value in the environment. Most likely only useful for # creating official distributions of packages. # This is a hack until libtool officially supports absolute path # names for shared libraries. _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_AC_TAGVAR(link_all_deplibs, $1)=yes _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$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_AC_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_AC_TAGVAR(GCC, $1)="$GXX" _LT_AC_TAGVAR(LD, $1)="$LD" AC_LIBTOOL_POSTDEP_PREDEP($1) AC_LIBTOOL_PROG_COMPILER_PIC($1) AC_LIBTOOL_PROG_CC_C_O($1) AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) AC_LIBTOOL_PROG_LD_SHLIBS($1) AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) AC_LIBTOOL_CONFIG($1) AC_LANG_POP CC=$lt_save_CC LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ldcxx=$with_gnu_ld 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 ])# AC_LIBTOOL_LANG_CXX_CONFIG # AC_LIBTOOL_POSTDEP_PREDEP([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. AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[ 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... ifelse([$1],[],[cat > conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext <&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 # # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac if test "$solaris_use_stlport4" != yes; then _LT_AC_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. if test "$solaris_use_stlport4" != yes; then _LT_AC_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; esac ]) case " $_LT_AC_TAGVAR(postdeps, $1) " in *" -lc "*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;; esac ])# AC_LIBTOOL_POSTDEP_PREDEP # AC_LIBTOOL_LANG_F77_CONFIG # -------------------------- # Ensure that the configuration vars for the C compiler are # suitably defined. Those variables are subsequently used by # AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG], [_LT_AC_LANG_F77_CONFIG(F77)]) AC_DEFUN([_LT_AC_LANG_F77_CONFIG], [AC_REQUIRE([AC_PROG_F77]) AC_LANG_PUSH(Fortran 77) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(allow_undefined_flag, $1)= _LT_AC_TAGVAR(always_export_symbols, $1)=no _LT_AC_TAGVAR(archive_expsym_cmds, $1)= _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= _LT_AC_TAGVAR(hardcode_minus_L, $1)=no _LT_AC_TAGVAR(hardcode_automatic, $1)=no _LT_AC_TAGVAR(module_cmds, $1)= _LT_AC_TAGVAR(module_expsym_cmds, $1)= _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown _LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_AC_TAGVAR(no_undefined_flag, $1)= _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= _LT_AC_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_AC_TAGVAR(objext, $1)=$objext # 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_AC_SYS_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" CC=${F77-"f77"} compiler=$CC _LT_AC_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && 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 "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix4* | aix5*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no 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 "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_AC_TAGVAR(GCC, $1)="$G77" _LT_AC_TAGVAR(LD, $1)="$LD" AC_LIBTOOL_PROG_COMPILER_PIC($1) AC_LIBTOOL_PROG_CC_C_O($1) AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) AC_LIBTOOL_PROG_LD_SHLIBS($1) AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) AC_LIBTOOL_CONFIG($1) AC_LANG_POP CC="$lt_save_CC" ])# AC_LIBTOOL_LANG_F77_CONFIG # AC_LIBTOOL_LANG_GCJ_CONFIG # -------------------------- # Ensure that the configuration vars for the C compiler are # suitably defined. Those variables are subsequently used by # AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG], [_LT_AC_LANG_GCJ_CONFIG(GCJ)]) AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG], [AC_LANG_SAVE # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o _LT_AC_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_AC_SYS_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" CC=${GCJ-"gcj"} compiler=$CC _LT_AC_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) # GCJ did not exist at the time GCC didn't implicitly link libc in. _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1) AC_LIBTOOL_PROG_COMPILER_PIC($1) AC_LIBTOOL_PROG_CC_C_O($1) AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) AC_LIBTOOL_PROG_LD_SHLIBS($1) AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) AC_LIBTOOL_CONFIG($1) AC_LANG_RESTORE CC="$lt_save_CC" ])# AC_LIBTOOL_LANG_GCJ_CONFIG # AC_LIBTOOL_LANG_RC_CONFIG # ------------------------- # Ensure that the configuration vars for the Windows resource compiler are # suitably defined. Those variables are subsequently used by # AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG], [_LT_AC_LANG_RC_CONFIG(RC)]) AC_DEFUN([_LT_AC_LANG_RC_CONFIG], [AC_LANG_SAVE # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o _LT_AC_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_AC_SYS_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" CC=${RC-"windres"} compiler=$CC _LT_AC_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes AC_LIBTOOL_CONFIG($1) AC_LANG_RESTORE CC="$lt_save_CC" ])# AC_LIBTOOL_LANG_RC_CONFIG # AC_LIBTOOL_CONFIG([TAGNAME]) # ---------------------------- # If TAGNAME is not passed, then 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 # TAGNAME from the matching tagged config vars. AC_DEFUN([AC_LIBTOOL_CONFIG], [# The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then # See if we are running on zsh, and set the options which allow our commands through # without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ SED SHELL STRIP \ libname_spec library_names_spec soname_spec extract_expsyms_cmds \ old_striplib striplib file_magic_cmd finish_cmds finish_eval \ deplibs_check_method reload_flag reload_cmds need_locks \ lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ old_postinstall_cmds old_postuninstall_cmds \ _LT_AC_TAGVAR(compiler, $1) \ _LT_AC_TAGVAR(CC, $1) \ _LT_AC_TAGVAR(LD, $1) \ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1) \ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1) \ _LT_AC_TAGVAR(lt_prog_compiler_static, $1) \ _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) \ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1) \ _LT_AC_TAGVAR(thread_safe_flag_spec, $1) \ _LT_AC_TAGVAR(whole_archive_flag_spec, $1) \ _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) \ _LT_AC_TAGVAR(old_archive_cmds, $1) \ _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) \ _LT_AC_TAGVAR(predep_objects, $1) \ _LT_AC_TAGVAR(postdep_objects, $1) \ _LT_AC_TAGVAR(predeps, $1) \ _LT_AC_TAGVAR(postdeps, $1) \ _LT_AC_TAGVAR(compiler_lib_search_path, $1) \ _LT_AC_TAGVAR(archive_cmds, $1) \ _LT_AC_TAGVAR(archive_expsym_cmds, $1) \ _LT_AC_TAGVAR(postinstall_cmds, $1) \ _LT_AC_TAGVAR(postuninstall_cmds, $1) \ _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) \ _LT_AC_TAGVAR(allow_undefined_flag, $1) \ _LT_AC_TAGVAR(no_undefined_flag, $1) \ _LT_AC_TAGVAR(export_symbols_cmds, $1) \ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) \ _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) \ _LT_AC_TAGVAR(hardcode_libdir_separator, $1) \ _LT_AC_TAGVAR(hardcode_automatic, $1) \ _LT_AC_TAGVAR(module_cmds, $1) \ _LT_AC_TAGVAR(module_expsym_cmds, $1) \ _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) \ _LT_AC_TAGVAR(fix_srcfile_path, $1) \ _LT_AC_TAGVAR(exclude_expsyms, $1) \ _LT_AC_TAGVAR(include_expsyms, $1); do case $var in _LT_AC_TAGVAR(old_archive_cmds, $1) | \ _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) | \ _LT_AC_TAGVAR(archive_cmds, $1) | \ _LT_AC_TAGVAR(archive_expsym_cmds, $1) | \ _LT_AC_TAGVAR(module_cmds, $1) | \ _LT_AC_TAGVAR(module_expsym_cmds, $1) | \ _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) | \ _LT_AC_TAGVAR(export_symbols_cmds, $1) | \ extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ old_postinstall_cmds | old_postuninstall_cmds | \ sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *) eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ;; esac done case $lt_echo in *'\[$]0 --fallback-echo"') lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\[$]0 --fallback-echo"[$]/[$]0 --fallback-echo"/'` ;; esac ifelse([$1], [], [cfgfile="${ofile}T" trap "$rm \"$cfgfile\"; exit 1" 1 2 15 $rm -f "$cfgfile" AC_MSG_NOTICE([creating $ofile])], [cfgfile="$ofile"]) cat <<__EOF__ >> "$cfgfile" ifelse([$1], [], [#! $SHELL # `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 # Free Software Foundation, Inc. # # This file is part of GNU Libtool: # Originally by Gordon Matzigkeit , 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # 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. # 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//" # 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 # The names of the tagged configurations supported by this script. available_tags= # ### BEGIN LIBTOOL CONFIG], [# ### BEGIN LIBTOOL TAG CONFIG: $tagname]) # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1) # Whether or not to disallow shared libs when runtime libs are static allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # 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 # An echo program that does not interpret backslashes. echo=$lt_echo # The archiver. AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS # A C compiler. LTCC=$lt_LTCC # LTCC compiler flags. LTCFLAGS=$lt_LTCFLAGS # A language-specific compiler. CC=$lt_[]_LT_AC_TAGVAR(compiler, $1) # Is the compiler the GNU C compiler? with_gcc=$_LT_AC_TAGVAR(GCC, $1) # An ERE matcher. EGREP=$lt_EGREP # The linker used to build libraries. LD=$lt_[]_LT_AC_TAGVAR(LD, $1) # Whether we need hard or soft links. LN_S=$lt_LN_S # A BSD-compatible nm program. NM=$lt_NM # A symbol stripping program STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD # Used on cygwin: DLL creation program. DLLTOOL="$DLLTOOL" # Used on cygwin: object dumper. OBJDUMP="$OBJDUMP" # Used on cygwin: assembler. AS="$AS" # The name of the directory that contains temporary libtool files. objdir=$objdir # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) # Object file suffix (normally "o"). objext="$ac_objext" # Old archive suffix (normally "a"). libext="$libext" # Shared library suffix (normally ".so"). shrext_cmds='$shrext_cmds' # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) pic_mode=$pic_mode # What is the maximum length of a command? max_cmd_len=$lt_cv_sys_max_cmd_len # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) # Must we lock files when doing compilation? need_locks=$lt_need_locks # 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 # 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 # Compiler flag to prevent dynamic linking. link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1) # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1) # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1) # Compiler flag to generate thread-safe objects. thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1) # Library versioning type. version_type=$version_type # 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 # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1) old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1) # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) # Commands used to build and install a shared archive. archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1) archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1) postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands used to build a loadable module (assumed same as above if empty) module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1) module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1) # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1) # Dependencies to place after the objects being linked to create a # shared library. postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1) # Dependencies to place before the objects being linked to create a # shared library. predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1) # Dependencies to place after the objects being linked to create a # shared library. postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1) # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1) # 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 # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1) # Flag that forces no undefined symbols. no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1) # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # Same as above, but a single script fragment to be evaled but not shown. finish_eval=$lt_finish_eval # 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 in a C name address pair global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var # This is the shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1) # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) # If ld is used when linking, flag to hardcode \$libdir into # a binary during linking. This must work even if \$libdir does # not exist. hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1) # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1) # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1) # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1) # 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=$_LT_AC_TAGVAR(hardcode_automatic, $1) # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1) # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Fix the shell variable \$srcfile for the compiler. fix_srcfile_path=$lt_fix_srcfile_path # Set to yes if exported symbols are required. always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1) # The commands to list exported symbols. export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1) # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1) # Symbols that must always be exported. include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1) ifelse([$1],[], [# ### END LIBTOOL CONFIG], [# ### END LIBTOOL TAG CONFIG: $tagname]) __EOF__ ifelse([$1],[], [ case $host_os in aix3*) cat <<\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 "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi EOF ;; esac # 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" ]) else # If there is no Makefile yet, we rely on a make rule to execute # `config.status --recheck' to rerun these tests and create the # libtool script then. ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` if test -f "$ltmain_in"; then test -f Makefile && make "$ltmain" fi fi ])# AC_LIBTOOL_CONFIG # AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME]) # ------------------------------------------- AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test "$GCC" = yes; then _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, [-fno-rtti -fno-exceptions], [], [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) fi ])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE # --------------------------------- AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([LT_AC_PROG_SED]) AC_REQUIRE([AC_PROG_NM]) AC_REQUIRE([AC_OBJEXT]) # 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]]*\)' # Transform an extracted symbol line into a proper C declaration lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" # Define system-specific variables. case $host_os in aix*) symcode='[[BCDT]]' ;; cygwin* | mingw* | pw32*) symcode='[[ABCDGISTW]]' ;; hpux*) # Its linker distinguishes data from code symbols if test "$host_cpu" = ia64; then symcode='[[ABCDEGRST]]' fi lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ;; linux* | k*bsd*-gnu) if test "$host_cpu" = ia64; then symcode='[[ABCDGIRSTW]]' lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" 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 # 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 # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[[ABCDGIRSTW]]' ;; esac # Try without a prefix undercore, 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. lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext < $nlist) && 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 < conftest.$ac_ext #ifdef __cplusplus extern "C" { #endif EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' cat <> conftest.$ac_ext #if defined (__STDC__) && __STDC__ # define lt_ptr_t void * #else # define lt_ptr_t char * # define const #endif /* The mapping between symbol names and symbols. */ const struct { const char *name; lt_ptr_t address; } lt_preloaded_symbols[[]] = { EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext cat <<\EOF >> conftest.$ac_ext {0, (lt_ptr_t) 0} }; #ifdef __cplusplus } #endif EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_save_LIBS="$LIBS" lt_save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$_LT_AC_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_save_LIBS" CFLAGS="$lt_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 -f conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; 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 ]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE # AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME]) # --------------------------------------- AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC], [_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)= _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= _LT_AC_TAGVAR(lt_prog_compiler_static, $1)= AC_MSG_CHECKING([for $compiler option to produce PIC]) ifelse([$1],[CXX],[ # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) # 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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32*) # 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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all _LT_AC_TAGVAR(lt_prog_compiler_pic, $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_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # 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*) ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else case $host_os in aix4* | aix5*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_AC_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 ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon' _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; esac ;; dgux*) case $cc_basename in ec++*) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; ghcx*) # Green Hills C++ Compiler _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' fi ;; aCC*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_AC_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_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu) case $cc_basename in KCC*) # KAI C++ Compiler _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; icpc* | ecpc*) # Intel C++ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgCC*) # Portland Group C++ compiler. _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_AC_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_AC_TAGVAR(lt_prog_compiler_pic, $1)= _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ;; *) ;; esac ;; netbsd* | netbsdelf*-gnu) ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; cxx*) # Digital/Compaq C++ _LT_AC_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_AC_TAGVAR(lt_prog_compiler_pic, $1)= _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; lcc*) # Lucid _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; vxworks*) ;; *) _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ], [ if test "$GCC" = yes; then _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) # 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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2*) # 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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; 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_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no enable_shared=no ;; sysv4*MP*) if test -d /usr/nec; then _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # 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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; darwin*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files case $cc_basename in xlc*) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon' _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; esac ;; mingw* | cygwin* | pw32* | os2*) # 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_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) _LT_AC_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_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC (with -KPIC) is the default. _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; newsos6) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; linux* | k*bsd*-gnu) case $cc_basename in icc* | ecc*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgcc* | pgf77* | pgf90* | pgf95*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; ccc*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All Alpha code is PIC. _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; *Sun\ F*) # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='' ;; esac ;; esac ;; osf3* | osf4* | osf5*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All OSF/1 code is PIC. _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; rdos*) _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; solaris*) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in f77* | f90* | f95*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; esac ;; sunos4*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; unicos*) _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; uts4*) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *) _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ]) AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)]) # # Check to make sure the PIC flag actually works. # if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works], _LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1), [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [], [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in "" | " "*) ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;; esac], [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= ;; *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])" ;; esac # # Check to make sure the static flag actually works. # wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_AC_TAGVAR(lt_prog_compiler_static, $1)\" AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1), $lt_tmp_static_flag, [], [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=]) ]) # AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME]) # ------------------------------------ # See if the linker supports building shared libraries. AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_REQUIRE([LT_AC_PROG_SED])dnl AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) ifelse([$1],[CXX],[ _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' case $host_os in aix4* | aix5*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' else _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" ;; cygwin* | mingw*) _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' ;; linux* | k*bsd*-gnu) _LT_AC_TAGVAR(link_all_deplibs, $1)=no ;; *) _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac ],[ runpath_var= _LT_AC_TAGVAR(allow_undefined_flag, $1)= _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no _LT_AC_TAGVAR(archive_cmds, $1)= _LT_AC_TAGVAR(archive_expsym_cmds, $1)= _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)= _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)= _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= _LT_AC_TAGVAR(thread_safe_flag_spec, $1)= _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_minus_L, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown _LT_AC_TAGVAR(hardcode_automatic, $1)=no _LT_AC_TAGVAR(module_cmds, $1)= _LT_AC_TAGVAR(module_expsym_cmds, $1)= _LT_AC_TAGVAR(always_export_symbols, $1)=no _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list _LT_AC_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_AC_TAGVAR(exclude_expsyms, $1)="_GLOBAL_OFFSET_TABLE_" # 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. extract_expsyms_cmds= # Just being paranoid about ensuring that cc_basename is set. _LT_CC_BASENAME([$compiler]) case $host_os in cygwin* | mingw* | pw32*) # 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 _LT_AC_TAGVAR(ld_shlibs, $1)=yes if test "$with_gnu_ld" = yes; 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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_AC_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_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= fi supports_anon_versioning=no case `$LD -v 2>/dev/null` in *\ [[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 aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then _LT_AC_TAGVAR(ld_shlibs, $1)=no cat <&2 *** Warning: the GNU linker, at least up to release 2.9.1, 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 modify your PATH *** so that a non-GNU linker is found, and then restart. EOF fi ;; amigaos*) _LT_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can't use # them. _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; cygwin* | mingw* | pw32*) # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_AC_TAGVAR(always_export_symbols, $1)=no _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then _LT_AC_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 (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; 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_AC_TAGVAR(ld_shlibs, $1)=no fi ;; interix[[3-9]]*) _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_AC_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_AC_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_AC_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* | k*bsd*-gnu) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then tmp_addflag= case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$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' ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_AC_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; $echo \"$new_convenience\"` ${wl}--no-whole-archive' tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; *) tmp_sharedflag='-shared' ;; esac _LT_AC_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test $supports_anon_versioning = yes; then _LT_AC_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 _LT_AC_TAGVAR(link_all_deplibs, $1)=no else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $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_AC_TAGVAR(ld_shlibs, $1)=no cat <&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. EOF elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_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_AC_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_AC_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** 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 ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; sunos4*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_AC_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_AC_TAGVAR(ld_shlibs, $1)=no fi ;; esac if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no; then runpath_var= _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= _LT_AC_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_AC_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_AC_TAGVAR(always_export_symbols, $1)=yes _LT_AC_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_AC_TAGVAR(hardcode_minus_L, $1)=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported fi ;; aix4* | aix5*) 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 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 AIX nm, but means don't demangle with GNU nm if $NM -V 2>&1 | grep 'GNU' > /dev/null; then _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' else _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | 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 # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*) 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 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_AC_TAGVAR(archive_cmds, $1)='' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_AC_TAGVAR(link_all_deplibs, $1)=yes if test "$GCC" = yes; 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_AC_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_AC_TAGVAR(hardcode_minus_L, $1)=yes _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; 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 "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_AC_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty executable. _LT_AC_SYS_LIBPATH_AIX _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_AC_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_AC_SYS_LIBPATH_AIX _LT_AC_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_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' # Exported symbols can be pulled into shared objects from archives _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience' _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared libraries. _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) _LT_AC_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # see comment about different semantics on the GNU ld section _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; bsdi[[45]]*) _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; cygwin* | mingw* | pw32*) # 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. _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_AC_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_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true' # FIXME: Should let the user specify the lib program. _LT_AC_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' _LT_AC_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; darwin* | rhapsody*) case $host_os in rhapsody* | darwin1.[[012]]) _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress' ;; *) # Darwin 1.3 on if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' else case ${MACOSX_DEPLOYMENT_TARGET} in 10.[[012]]) _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup' ;; esac fi ;; esac _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_automatic, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='' _LT_AC_TAGVAR(link_all_deplibs, $1)=yes if test "$GCC" = yes ; then output_verbose_link_cmd='echo' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' else case $cc_basename in xlc*) output_verbose_link_cmd='echo' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' ;; *) _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac fi ;; dgux*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; freebsd1*) _LT_AC_TAGVAR(ld_shlibs, $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_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; hpux9*) if test "$GCC" = yes; then _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: _LT_AC_TAGVAR(hardcode_direct, $1)=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; hpux10*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_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_AC_TAGVAR(hardcode_minus_L, $1)=yes fi ;; hpux11*) if test "$GCC" = yes -a "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_AC_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 "$with_gnu_ld" = no; then _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' _LT_AC_TAGVAR(hardcode_direct, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_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_AC_TAGVAR(hardcode_minus_L, $1)=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: _LT_AC_TAGVAR(link_all_deplibs, $1)=yes ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; newsos6) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' else case $host_os in openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ;; *) _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ;; esac fi else _LT_AC_TAGVAR(ld_shlibs, $1)=no fi ;; os2*) _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_AC_TAGVAR(archive_cmds, $1)='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' else _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' _LT_AC_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~ $LD -shared${allow_undefined_flag} -input $lib.exp $linker_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_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' fi _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: ;; solaris*) _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text' if test "$GCC" = yes; then wlarc='${wl}' _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else wlarc='' _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_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' fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_AC_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 "$GCC" = yes; then _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' fi ;; esac _LT_AC_TAGVAR(link_all_deplibs, $1)=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_direct, $1)=yes _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4) case $host_vendor in sni) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' _LT_AC_TAGVAR(hardcode_direct, $1)=no ;; motorola) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4.3*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes _LT_AC_TAGVAR(ld_shlibs, $1)=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_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 can NOT 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_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_AC_TAGVAR(link_all_deplibs, $1)=yes _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_AC_TAGVAR(ld_shlibs, $1)=no ;; esac fi ]) AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no # # Do we need to explicitly link libc? # case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in x|xyes) # Assume -lc should be added _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $_LT_AC_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_MSG_CHECKING([whether -lc should be explicitly linked in]) $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_AC_TAGVAR(lt_prog_compiler_wl, $1) pic_flag=$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1) _LT_AC_TAGVAR(allow_undefined_flag, $1)= if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) then _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no else _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes fi _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $rm conftest* AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)]) ;; esac fi ;; esac ])# AC_LIBTOOL_PROG_LD_SHLIBS # _LT_AC_FILE_LTDLL_C # ------------------- # Be careful that the start marker always follows a newline. AC_DEFUN([_LT_AC_FILE_LTDLL_C], [ # /* ltdll.c starts here */ # #define WIN32_LEAN_AND_MEAN # #include # #undef WIN32_LEAN_AND_MEAN # #include # # #ifndef __CYGWIN__ # # ifdef __CYGWIN32__ # # define __CYGWIN__ __CYGWIN32__ # # endif # #endif # # #ifdef __cplusplus # extern "C" { # #endif # BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); # #ifdef __cplusplus # } # #endif # # #ifdef __CYGWIN__ # #include # DECLARE_CYGWIN_DLL( DllMain ); # #endif # HINSTANCE __hDllInstance_base; # # BOOL APIENTRY # DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) # { # __hDllInstance_base = hInst; # return TRUE; # } # /* ltdll.c ends here */ ])# _LT_AC_FILE_LTDLL_C # _LT_AC_TAGVAR(VARNAME, [TAGNAME]) # --------------------------------- AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])]) # old names AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL]) AC_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) AC_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) AC_DEFUN([AM_PROG_LD], [AC_PROG_LD]) AC_DEFUN([AM_PROG_NM], [AC_PROG_NM]) # This is just to silence aclocal about the macro not being used ifelse([AC_DISABLE_FAST_INSTALL]) AC_DEFUN([LT_AC_PROG_GCJ], [AC_CHECK_TOOL(GCJ, gcj, no) test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" AC_SUBST(GCJFLAGS) ]) AC_DEFUN([LT_AC_PROG_RC], [AC_CHECK_TOOL(RC, windres, no) ]) # Cheap backport of AS_EXECUTABLE_P and required macros # from Autoconf 2.59; we should not use $as_executable_p directly. # _AS_TEST_PREPARE # ---------------- m4_ifndef([_AS_TEST_PREPARE], [m4_defun([_AS_TEST_PREPARE], [if test -x / >/dev/null 2>&1; then as_executable_p='test -x' else as_executable_p='test -f' fi ])])# _AS_TEST_PREPARE # AS_EXECUTABLE_P # --------------- # Check whether a file is executable. m4_ifndef([AS_EXECUTABLE_P], [m4_defun([AS_EXECUTABLE_P], [AS_REQUIRE([_AS_TEST_PREPARE])dnl $as_executable_p $1[]dnl ])])# AS_EXECUTABLE_P # 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. # # LT_AC_PROG_SED # -------------- # Check for a fully-functional sed program, that truncates # as few characters as possible. Prefer GNU sed if found. AC_DEFUN([LT_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 $lt_ac_count -gt 10 && 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]) ]) # Copyright (C) 2002, 2003, 2005 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. AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"]) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION so it can be traced. # This function is AC_REQUIREd by AC_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.9.6])]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001, 2003, 2005 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], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # Copyright (C) 1996, 1997, 1999, 2000, 2001, 2002, 2003, 2005 # 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 4 # This was merged into AC_PROG_CC in Autoconf. AU_DEFUN([AM_PROG_CC_STDC], [AC_PROG_CC AC_DIAGNOSE([obsolete], [$0: your code should no longer depend upon `am_cv_prog_cc_stdc', but upon `ac_cv_prog_cc_stdc'. Remove this warning and the assignment when you adjust the code. You can also remove the above call to AC_PROG_CC if you already called it elsewhere.]) am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc ]) AU_DEFUN([fp_PROG_CC_STDC]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005 # 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 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE]) AC_SUBST([$1_FALSE]) 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, 2000, 2001, 2002, 2003, 2004, 2005 # 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 8 # 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", "GCJ", or "OBJC". # 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 ifelse([$1], CC, [depcc="$CC" am_compiler_list=], [$1], CXX, [depcc="$CXX" am_compiler_list=], [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$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'. 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 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 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf case $depmode in 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 ;; none) break ;; esac # 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. if depmode=$depmode \ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} 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, [ --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH]) ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 # 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 3 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [for mf in $CONFIG_FILES; do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # So let's grep whole file. if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ])# _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. FIXME. This creates each `.P' file that we will # 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" ac_aux_dir="$ac_aux_dir"]) ]) # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 # 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 8 # AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS. AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 # 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 12 # 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. # 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.58])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 # test to see if srcdir already configured if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) 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], [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])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) AM_PROG_INSTALL_SH AM_PROG_INSTALL_STRIP AC_REQUIRE([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. 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)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl ]) ]) # 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_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $1 | $1:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001, 2003, 2005 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 install_sh=${install_sh-"$am_aux_dir/install-sh"} AC_SUBST(install_sh)]) # Copyright (C) 2003, 2005 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 2 # 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, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 # 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 9 # AM_PATH_LISPDIR # --------------- AC_DEFUN([AM_PATH_LISPDIR], [ # 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], [ --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\),${datadir}/\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 AU_DEFUN([ud_PATH_LISPDIR], [AM_PATH_LISPDIR]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005 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 3 # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo done .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # We grep out `Entering directory' and `Leaving directory' # messages which can occur if `w' ends up in MAKEFLAGS. # In particular we don't look at `^make:' because GNU make might # be invoked under some other name (usually "gmake"), in which # case it prints its new name instead of `make'. if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then am__include=include am__quote= _am_result=GNU fi # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then am__include=.include am__quote="\"" _am_result=BSD fi fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005 # 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 4 # 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 supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # Copyright (C) 2003, 2004, 2005 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_MKDIR_P # --------------- # Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise. # # Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories # created by `make install' are always world readable, even if the # installer happens to have an overly restrictive umask (e.g. 077). # This was a mistake. There are at least two reasons why we must not # use `-m 0755': # - it causes special bits like SGID to be ignored, # - it may be too restrictive (some setups expect 775 directories). # # Do not use -m 0755 and let people choose whatever they expect by # setting umask. # # We cannot accept any implementation of `mkdir' that recognizes `-p'. # Some implementations (such as Solaris 8's) are not thread-safe: if a # parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c' # concurrently, both version can detect that a/ is missing, but only # one can create it and the other will error out. Consequently we # restrict ourselves to GNU make (using the --version option ensures # this.) AC_DEFUN([AM_PROG_MKDIR_P], [if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then # We used to keeping the `.' as first argument, in order to # allow $(mkdir_p) to be used without argument. As in # $(mkdir_p) $(somedir) # where $(somedir) is conditionally defined. However this is wrong # for two reasons: # 1. if the package is installed by a user who cannot write `.' # make install will fail, # 2. the above comment should most certainly read # $(mkdir_p) $(DESTDIR)$(somedir) # so it does not work when $(somedir) is undefined and # $(DESTDIR) is not. # To support the latter case, we have to write # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), # so the `.' trick is pointless. mkdir_p='mkdir -p --' else # On NextStep and OpenStep, the `mkdir' command does not # recognize any option. It will interpret all options as # directories to create, and then abort because `.' already # exists. for d in ./-p ./--version; do test -d $d && rmdir $d done # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. if test -f "$ac_aux_dir/mkinstalldirs"; then mkdir_p='$(mkinstalldirs)' else mkdir_p='$(install_sh) -d' fi fi AC_SUBST([mkdir_p])]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005 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 3 # _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], [AC_FOREACH([_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])]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 # 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 4 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # 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 ( 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 rm -f conftest.file 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 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)]) # Copyright (C) 2001, 2003, 2005 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="\${SHELL} \$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 2005 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 2 # _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. AM_MISSING_PROG([AMTAR], [tar]) m4_if([$1], [v7], [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of `-'. 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/a2_psutils.m4]) m4_include([m4/atexit.m4]) m4_include([m4/file.m4]) m4_include([m4/fp_echo.m4]) m4_include([m4/fullpath.m4]) m4_include([m4/gccwarn.m4]) m4_include([m4/gettext.m4]) m4_include([m4/gperf-check.m4]) m4_include([m4/iconv.m4]) m4_include([m4/inttypes_h.m4]) m4_include([m4/isc-posix.m4]) m4_include([m4/lex.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/lpr.m4]) m4_include([m4/m4.m4]) m4_include([m4/malloc.m4]) m4_include([m4/mbrtowc.m4]) m4_include([m4/mbstate_t.m4]) m4_include([m4/perl.m4]) m4_include([m4/prereq.m4]) m4_include([m4/progtest.m4]) m4_include([m4/protos.m4]) m4_include([m4/realloc.m4]) m4_include([m4/rename.m4]) m4_include([m4/stdint_h.m4]) m4_include([m4/strcasecmp.m4]) m4_include([m4/strftim.m4]) m4_include([m4/termios.m4]) m4_include([m4/tterm.m4]) m4_include([m4/uintmax_t.m4]) m4_include([m4/ulonglong.m4]) m4_include([m4/winsz.m4]) m4_include([m4/xstrtoumax.m4])